Commit 38841d26587e26db1af3f96923126de6a646532c

Authored by 徐泉
1 parent f1e0c386
Exists in master

修改提交

cloud/dahua/src/main/java/com/example/dahua/control/UserOperateController.java
@@ -91,15 +91,25 @@ public class UserOperateController { @@ -91,15 +91,25 @@ public class UserOperateController {
91 } 91 }
92 92
93 @ApiOperation(value = "按班级指定下发") 93 @ApiOperation(value = "按班级指定下发")
94 - @RequestMapping(value = "sendFaceByClassId", method = RequestMethod.POST) 94 + @RequestMapping(value = "sendFaceByClassId", method = RequestMethod.GET)
95 public void exportFace(@RequestParam("schoolId") Integer schoolId, 95 public void exportFace(@RequestParam("schoolId") Integer schoolId,
96 @RequestParam(value = "classIds",required = false) String classIds, 96 @RequestParam(value = "classIds",required = false) String classIds,
97 @RequestParam(value = "deviceIds",required = false) String deviceIds){ 97 @RequestParam(value = "deviceIds",required = false) String deviceIds){
98 - userOperateService.sendFaceByClassId(schoolId,classIds,deviceIds); 98 + userOperateService.sendFaceByClassId(schoolId,classIds,deviceIds,"",null);
  99 + }
  100 +
  101 + @ApiOperation(value = "按班级指定下发")
  102 + @RequestMapping(value = "sendFaceByClassId2", method = RequestMethod.GET)
  103 + public void sendFaceByClassId2(@RequestParam("schoolId") Integer schoolId,
  104 + @RequestParam(value = "classIds",required = false) String classIds,
  105 + @RequestParam(value = "studentType",required = false) Integer studentType,
  106 + @RequestParam(value = "sex",required = false) String sex,
  107 + @RequestParam(value = "deviceIds",required = false) String deviceIds){
  108 + userOperateService.sendFaceByClassId(schoolId,classIds,deviceIds,sex,studentType);
99 } 109 }
100 110
101 @ApiOperation(value = "删除指定学校下无效人脸") 111 @ApiOperation(value = "删除指定学校下无效人脸")
102 - @RequestMapping(value = "deleteFaceByClassId", method = RequestMethod.POST) 112 + @RequestMapping(value = "deleteFaceByClassId", method = RequestMethod.GET)
103 public void exportFace(@RequestParam("schoolId") Integer schoolId, 113 public void exportFace(@RequestParam("schoolId") Integer schoolId,
104 @RequestParam(value = "deviceIds",required = false) String deviceIds){ 114 @RequestParam(value = "deviceIds",required = false) String deviceIds){
105 userOperateService.deleteFaceByClassId(schoolId,deviceIds); 115 userOperateService.deleteFaceByClassId(schoolId,deviceIds);
@@ -133,7 +143,7 @@ public class UserOperateController { @@ -133,7 +143,7 @@ public class UserOperateController {
133 public void importExcel(@RequestParam("schoolId") Integer schoolId, 143 public void importExcel(@RequestParam("schoolId") Integer schoolId,
134 HttpServletRequest request, HttpServletResponse response){ 144 HttpServletRequest request, HttpServletResponse response){
135 145
136 - List<Map<String, Object>> sheetList = userOperateService.exportStudent(schoolId,"188368,188369,188370,188371"); 146 + List<Map<String, Object>> sheetList = userOperateService.exportStudent(schoolId,"188368,188369,188370,188371",null,"");
137 ExcelUtil2.exportExcelByEasyPoi(sheetList,"中意",request,response); 147 ExcelUtil2.exportExcelByEasyPoi(sheetList,"中意",request,response);
138 } 148 }
139 149
@@ -144,18 +154,25 @@ public class UserOperateController { @@ -144,18 +154,25 @@ public class UserOperateController {
144 } 154 }
145 155
146 @ApiOperation(value = "下方指定卡号") 156 @ApiOperation(value = "下方指定卡号")
147 - @RequestMapping(value = "sendCard", method = RequestMethod.POST) 157 + @RequestMapping(value = "sendCard", method = RequestMethod.GET)
148 public void exportFace(@RequestParam("cardNum") String cardNum,@RequestParam("schoolId") Integer schoolId, 158 public void exportFace(@RequestParam("cardNum") String cardNum,@RequestParam("schoolId") Integer schoolId,
149 @RequestParam("deviceIds") String deviceIds){ 159 @RequestParam("deviceIds") String deviceIds){
150 userOperateService.sendCard(cardNum,schoolId,deviceIds); 160 userOperateService.sendCard(cardNum,schoolId,deviceIds);
151 } 161 }
152 -// @ApiOperation(value = "按班级指定下发")  
153 -// @RequestMapping(value = "sendFaceByRoomId", method = RequestMethod.POST)  
154 -// public void exportFace(@RequestParam("schoolId") Integer schoolId,  
155 -// @RequestParam(value = "classIds",required = false) String classIds,  
156 -// @RequestParam(value = "deviceIds",required = false) String deviceIds){  
157 -//// userOperateService.sendFaceByRoomId(schoolId,classIds,deviceIds);  
158 -// r  
159 -// }  
160 162
  163 + @ApiOperation(value = "按班级指定下发")
  164 + @RequestMapping(value = "sendFaceByRoomId", method = RequestMethod.GET)
  165 + public void exportFace(@RequestParam("schoolId") Integer schoolId,
  166 + @RequestParam("roomId") Integer roomId,
  167 + @RequestParam(value = "deviceIds",required = false) String deviceIds){
  168 + userOperateService.sendFaceByRoomId(schoolId,roomId,deviceIds);
  169 + }
  170 +
  171 + @ApiOperation(value = "按关键字指定下发")
  172 + @RequestMapping(value = "sendFaceByKeyword", method = RequestMethod.GET)
  173 + public void sendFaceByKeyword(@RequestParam("schoolId") Integer schoolId,
  174 + @RequestParam("keyword") String keyword,
  175 + @RequestParam(value = "deviceIds",required = false) String deviceIds){
  176 + userOperateService.sendFaceByKeyword(schoolId,keyword,deviceIds);
  177 + }
161 } 178 }
cloud/dahua/src/main/java/com/example/dahua/dao/UserDao.java
@@ -282,10 +282,17 @@ public interface UserDao { @@ -282,10 +282,17 @@ public interface UserDao {
282 282
283 List<String> queryStudentIdList(@Param("schoolId") Integer schoolId,@Param("roomId")Integer roomId); 283 List<String> queryStudentIdList(@Param("schoolId") Integer schoolId,@Param("roomId")Integer roomId);
284 284
285 - List<StudentBean> getStudentByClassId(@Param("schoolId") int schoolId,@Param("classIds") List<Integer> classIds); 285 + List<StudentBean> getStudentByClassId(@Param("schoolId") int schoolId,@Param("classIds") List<String> classIds,
  286 + @Param("studentType")Integer studentType,@Param("sexList") List<Integer> sexList);
  287 +
  288 + List<StudentBean> getStudentByKeyword(@Param("schoolId") int schoolId, @Param("keyword") String keyword);
286 289
287 List<Integer> getGroupByClassId(@Param("classId") Integer classId); 290 List<Integer> getGroupByClassId(@Param("classId") Integer classId);
288 291
  292 + List<Integer> getRoomBySchoolId(@Param("schoolId") Integer schoolId,@Param("groupId") Integer groupId);
  293 +
  294 + List<StudentBean> getStudentByRoomIds(@Param("schoolId") Integer schoolId,@Param("pIdList") List<Integer> pIdList);
  295 +
289 void insertStudent(ImportStudent studentBak); 296 void insertStudent(ImportStudent studentBak);
290 297
291 List<ImportStudent> selectYxStudentList(@Param("sceneName") String sceneName,@Param("schoolId") Integer schoolId); 298 List<ImportStudent> selectYxStudentList(@Param("sceneName") String sceneName,@Param("schoolId") Integer schoolId);
cloud/dahua/src/main/java/com/example/dahua/service/UserOperateService.java
@@ -25,7 +25,11 @@ public interface UserOperateService { @@ -25,7 +25,11 @@ public interface UserOperateService {
25 * @param classIds 25 * @param classIds
26 * @param deviceIds 26 * @param deviceIds
27 */ 27 */
28 - void sendFaceByClassId(Integer schoolId,String classIds,String deviceIds); 28 + void sendFaceByClassId(Integer schoolId,String classIds,String deviceIds,String sex,Integer studentType);
  29 +
  30 + void sendFaceByRoomId(Integer schoolId,Integer roomId,String deviceIds);
  31 +
  32 + void sendFaceByKeyword(Integer schoolId,String keyword,String deviceIds);
29 33
30 void deleteFaceByClassId(Integer schoolId,String deviceIds); 34 void deleteFaceByClassId(Integer schoolId,String deviceIds);
31 35
@@ -42,5 +46,5 @@ public interface UserOperateService { @@ -42,5 +46,5 @@ public interface UserOperateService {
42 46
43 void sendCard(String cardNum,Integer schoolId,String deviceIds); 47 void sendCard(String cardNum,Integer schoolId,String deviceIds);
44 48
45 - List<Map<String, Object>> exportStudent(Integer schoolId, String deviceIds); 49 + List<Map<String, Object>> exportStudent(Integer schoolId, String deviceIds,Integer studentType,String sex);
46 } 50 }
cloud/dahua/src/main/java/com/example/dahua/service/imp/BaseService.java
@@ -9,6 +9,7 @@ import com.example.dahua.xiananDao.SendRecordDao; @@ -9,6 +9,7 @@ import com.example.dahua.xiananDao.SendRecordDao;
9 import lombok.extern.slf4j.Slf4j; 9 import lombok.extern.slf4j.Slf4j;
10 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
  12 +import org.springframework.util.CollectionUtils;
12 import org.springframework.util.StringUtils; 13 import org.springframework.util.StringUtils;
13 14
14 import java.text.SimpleDateFormat; 15 import java.text.SimpleDateFormat;
@@ -132,15 +133,17 @@ public class BaseService { @@ -132,15 +133,17 @@ public class BaseService {
132 } 133 }
133 } 134 }
134 135
135 - public List<StudentBean> getStudentByClassId(Integer schoolId,String classIds) {  
136 - List<Integer> list = new ArrayList<>(); 136 + public List<StudentBean> getStudentByClassId(Integer schoolId,String classIds,Integer studentType,String sex) {
  137 + List<String> classList = null;
137 if(!StringUtils.isEmpty(classIds)){ 138 if(!StringUtils.isEmpty(classIds)){
138 - String[] msg = classIds.split(",");  
139 - for(String s : msg){  
140 - list.add(Integer.valueOf(s));  
141 - } 139 + classList = Arrays.asList(classIds.split(","));
  140 + }
  141 + List<Integer> sexList = null;
  142 + if(org.apache.commons.lang3.StringUtils.isNotBlank(sex)){
  143 + sexList = Arrays.asList(sex.split(","))
  144 + .stream().map(Integer::parseInt).collect(Collectors.toList());
142 } 145 }
143 - List<StudentBean> students = userDao.getStudentByClassId(schoolId,list); 146 + List<StudentBean> students = userDao.getStudentByClassId(schoolId,classList,studentType,sexList);
144 //去重重复数据 147 //去重重复数据
145 List<StudentBean> studentList = students.stream().collect(Collectors.collectingAndThen( 148 List<StudentBean> studentList = students.stream().collect(Collectors.collectingAndThen(
146 Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getStudent_num))), ArrayList::new)); 149 Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getStudent_num))), ArrayList::new));
@@ -176,4 +179,37 @@ public class BaseService { @@ -176,4 +179,37 @@ public class BaseService {
176 Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ImportStudent::getCardNum))), ArrayList::new)); 179 Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ImportStudent::getCardNum))), ArrayList::new));
177 return teacherist; 180 return teacherist;
178 } 181 }
  182 +
  183 + /**
  184 + * 获取宿舍分组管理学生
  185 + * @param schoolId
  186 + * @param roomId
  187 + * @return
  188 + */
  189 + public List<StudentBean> getStudentListByRoomId(Integer schoolId,Integer roomId) {
  190 + List<Integer> rooms = userDao.getRoomBySchoolId(schoolId,roomId);
  191 + if(!CollectionUtils.isEmpty(rooms)) {
  192 + List<Integer> pIdlIst = rooms.stream().distinct().collect(Collectors.toList());
  193 + List<StudentBean> studentBeans = userDao.getStudentByRoomIds(schoolId,pIdlIst);
  194 + //去重重复数据
  195 + List<StudentBean> studentList = studentBeans.stream().collect(Collectors.collectingAndThen(
  196 + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getStudent_num))), ArrayList::new));
  197 + return studentList;
  198 + }
  199 + return null;
  200 + }
  201 +
  202 + /**
  203 + * 根据班级关键字获取学生数据信息
  204 + * @param schoolId
  205 + * @param keyword
  206 + * @return
  207 + */
  208 + public List<StudentBean> getStudentByKeyword(Integer schoolId,String keyword) {
  209 + List<StudentBean> students = userDao.getStudentByKeyword(schoolId,keyword);
  210 + //去重重复数据
  211 + List<StudentBean> studentList = students.stream().collect(Collectors.collectingAndThen(
  212 + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getStudent_num))), ArrayList::new));
  213 + return studentList;
  214 + }
179 } 215 }
cloud/dahua/src/main/java/com/example/dahua/service/imp/UserOperateServiceImpl.java
@@ -70,7 +70,7 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -70,7 +70,7 @@ public class UserOperateServiceImpl implements UserOperateService {
70 70
71 71
72 @Override 72 @Override
73 - public void sendFaceByClassId(Integer schoolId,String classIds,String deviceIds) { 73 + public void sendFaceByClassId(Integer schoolId,String classIds,String deviceIds,String sex,Integer studentType) {
74 //下发设备集合 74 //下发设备集合
75 List<String> deviceList = new ArrayList<>(); 75 List<String> deviceList = new ArrayList<>();
76 if(StringUtils.isEmpty(deviceIds)){ 76 if(StringUtils.isEmpty(deviceIds)){
@@ -80,7 +80,39 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -80,7 +80,39 @@ public class UserOperateServiceImpl implements UserOperateService {
80 deviceList= new ArrayList<>(Arrays.asList(deviceArr)); 80 deviceList= new ArrayList<>(Arrays.asList(deviceArr));
81 } 81 }
82 //根据类型获取下发用户信息 82 //根据类型获取下发用户信息
83 - List<StudentBean> studentBeanList = baseService.getStudentByClassId(schoolId,classIds); 83 + List<StudentBean> studentBeanList = baseService.getStudentByClassId(schoolId,classIds,studentType,sex);
  84 + log.info("统计共有下发用户数量:{}",studentBeanList.size());
  85 + //下發人臉
  86 + sendFace(studentBeanList,deviceList,schoolId,2);
  87 + }
  88 +
  89 + @Override
  90 + public void sendFaceByRoomId(Integer schoolId,Integer roomId,String deviceIds) {
  91 + //下发设备集合
  92 + List<String> deviceList = null;
  93 + if(StringUtils.isEmpty(deviceIds)){
  94 + deviceList = userDao.selectDeviceBySchoolId(schoolId);
  95 + }else{
  96 + deviceList= Arrays.asList( deviceIds.split(","));
  97 + }
  98 + //根据类型获取下发用户信息
  99 + List<StudentBean> studentBeanList = baseService.getStudentListByRoomId(schoolId,roomId);
  100 + log.info("统计共有下发用户数量:{}",studentBeanList.size());
  101 + //下發人臉
  102 + sendFace(studentBeanList,deviceList,schoolId,2);
  103 + }
  104 +
  105 + @Override
  106 + public void sendFaceByKeyword(Integer schoolId,String keyword,String deviceIds) {
  107 + //下发设备集合
  108 + List<String> deviceList = null;
  109 + if(StringUtils.isEmpty(deviceIds)){
  110 + deviceList = userDao.selectDeviceBySchoolId(schoolId);
  111 + }else{
  112 + deviceList= Arrays.asList( deviceIds.split(","));
  113 + }
  114 + //根据类型获取下发用户信息
  115 + List<StudentBean> studentBeanList = baseService.getStudentByKeyword(schoolId,keyword);
84 log.info("统计共有下发用户数量:{}",studentBeanList.size()); 116 log.info("统计共有下发用户数量:{}",studentBeanList.size());
85 //下發人臉 117 //下發人臉
86 sendFace(studentBeanList,deviceList,schoolId,2); 118 sendFace(studentBeanList,deviceList,schoolId,2);
@@ -325,11 +357,11 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -325,11 +357,11 @@ public class UserOperateServiceImpl implements UserOperateService {
325 357
326 358
327 @Override 359 @Override
328 - public List<Map<String, Object>> exportStudent(Integer schoolId,String classIds) { 360 + public List<Map<String, Object>> exportStudent(Integer schoolId,String classIds,Integer studentType,String sex) {
329 // 将sheet1、sheet2使用得map进行包装 361 // 将sheet1、sheet2使用得map进行包装
330 List<Map<String, Object>> sheetsList = new ArrayList<>(); 362 List<Map<String, Object>> sheetsList = new ArrayList<>();
331 //根据类型获取下发用户信息 363 //根据类型获取下发用户信息
332 - List<StudentBean> studentBeanList = baseService.getStudentByClassId(schoolId,classIds); 364 + List<StudentBean> studentBeanList = baseService.getStudentByClassId(schoolId,classIds,studentType,sex);
333 log.info("统计共有下发用户数量:{}",studentBeanList.size()); 365 log.info("统计共有下发用户数量:{}",studentBeanList.size());
334 366
335 List<ExportStudentBean> studentBeans = studentBeanList.stream().map(s->{ 367 List<ExportStudentBean> studentBeans = studentBeanList.stream().map(s->{
cloud/dahua/src/main/resources/mapper/usermapper.xml
@@ -49,8 +49,39 @@ @@ -49,8 +49,39 @@
49 and StudentId in (select student_id from SZ_V_School_Student where school_id= #{schoolId}) order by newid() 49 and StudentId in (select student_id from SZ_V_School_Student where school_id= #{schoolId}) order by newid()
50 </select> 50 </select>
51 51
  52 + <select id="getRoomBySchoolId" resultType="java.lang.Integer">
  53 + select Id from ss_room where schoolId = #{schoolId} and pId = #{groupId}
  54 + </select>
  55 +
  56 + <select id="getStudentByRoomIds" resultType="com.example.dahua.bean.StudentBean">
  57 + SELECT
  58 + ssu.*
  59 + from SS_RoomNumber ssr
  60 + LEFT JOIN SZ_V_School_Student ssu ON ssr.studentId = ssu.student_id
  61 + <where>
  62 + <if test="schoolId != null">
  63 + and ssr.schoolId = #{schoolId}
  64 + </if>
  65 + <if test="pIdList != null and pIdList.size()>0">
  66 + and ssr.Pid in
  67 + <foreach item="item" collection="pIdList" open="(" separator="," close=")" index="">
  68 + #{item}
  69 + </foreach>
  70 + </if>
  71 + </where>
  72 + </select>
  73 +
52 <select id="getStudentByClassId" resultType="com.example.dahua.bean.StudentBean"> 74 <select id="getStudentByClassId" resultType="com.example.dahua.bean.StudentBean">
53 select * from SZ_V_School_Student where school_id = #{schoolId} 75 select * from SZ_V_School_Student where school_id = #{schoolId}
  76 + <if test="studentType != null">
  77 + and student_type = #{studentType}
  78 + </if>
  79 + <if test="sexList != null and sexList.size() >0">
  80 + and sex in
  81 + <foreach item="item" collection="sexList" separator="," open="(" close=")" index="">
  82 + #{item}
  83 + </foreach>
  84 + </if>
54 <if test="classIds != null and classIds.size() >0"> 85 <if test="classIds != null and classIds.size() >0">
55 and class_id in 86 and class_id in
56 <foreach item="item" collection="classIds" separator="," open="(" close=")" index=""> 87 <foreach item="item" collection="classIds" separator="," open="(" close=")" index="">
@@ -60,6 +91,14 @@ @@ -60,6 +91,14 @@
60 and student_num != '' and photo !='' 91 and student_num != '' and photo !=''
61 </select> 92 </select>
62 93
  94 + <select id="getStudentByKeyword" resultType="com.example.dahua.bean.StudentBean">
  95 + select * from SZ_V_School_Student where school_id = #{schoolId}
  96 + <if test="keyword != null and keyword !=''">
  97 + and class_name like concat('%', #{keyword}, '%')
  98 + </if>
  99 + and student_num != '' and photo !=''
  100 + </select>
  101 +
63 <select id="getGroupByClassId" resultType="java.lang.Integer"> 102 <select id="getGroupByClassId" resultType="java.lang.Integer">
64 SELECT 103 SELECT
65 Pid 104 Pid
cloud/fIle-center/src/main/resources/application.yml
1 #阿里云文件上传 1 #阿里云文件上传
2 aliyun: 2 aliyun:
3 oss: 3 oss:
4 - access-key: QiuM3PwHTnVotcGy  
5 - accessKeySecret: Yqs7RlaC1MioZu2YYJ6u0TdeO13VFC 4 + access-key: LTAI5t9bvWV4Rnu9CvWNRL6J
  5 + accessKeySecret: YGs4fH0BYTqMM26vXJ74lk3ce1Ha5A
6 endpoint: http://oss-cn-hangzhou.aliyuncs.com 6 endpoint: http://oss-cn-hangzhou.aliyuncs.com
7 bucketName: szyundisk 7 bucketName: szyundisk
8 domain: https://szyundisk.oss-cn-hangzhou.aliyuncs.com 8 domain: https://szyundisk.oss-cn-hangzhou.aliyuncs.com
cloud/haikangface/src/main/java/com/sincere/haikangface/CMSServer.java
@@ -37,10 +37,7 @@ import java.net.InetAddress; @@ -37,10 +37,7 @@ import java.net.InetAddress;
37 import java.net.UnknownHostException; 37 import java.net.UnknownHostException;
38 import java.nio.ByteBuffer; 38 import java.nio.ByteBuffer;
39 import java.text.SimpleDateFormat; 39 import java.text.SimpleDateFormat;
40 -import java.util.Date;  
41 -import java.util.HashMap;  
42 -import java.util.List;  
43 -import java.util.Map; 40 +import java.util.*;
44 import java.util.regex.Pattern; 41 import java.util.regex.Pattern;
45 42
46 @Component 43 @Component
@@ -64,10 +61,10 @@ public class CMSServer implements ApplicationRunner { @@ -64,10 +61,10 @@ public class CMSServer implements ApplicationRunner {
64 // 存储设备登录句柄 61 // 存储设备登录句柄
65 static Map<String, NativeLong> map = new HashMap<>(); 62 static Map<String, NativeLong> map = new HashMap<>();
66 63
67 - private String ip_cloud = "114.55.30.100";  
68 - private String strPath = "E://EhomePicServer/";  
69 -// private String ip_cloud = "120.26.116.253";  
70 -// private String strPath = "D://EhomePicServer/"; 64 +// private String ip_cloud = "114.55.30.100";
  65 +// private String strPath = "E://EhomePicServer/";
  66 + private String ip_cloud = "120.26.116.253";
  67 + private String strPath = "D://EhomePicServer/";
71 68
72 private String ip; 69 private String ip;
73 { 70 {
@@ -388,10 +385,8 @@ public class CMSServer implements ApplicationRunner { @@ -388,10 +385,8 @@ public class CMSServer implements ApplicationRunner {
388 saveFaceRecoder(deviceID, cardNo, time, picDataUrlId, currTemperature,outOrIn); 385 saveFaceRecoder(deviceID, cardNo, time, picDataUrlId, currTemperature,outOrIn);
389 //944柯桥实验幼儿园,海康一体机考勤签到 386 //944柯桥实验幼儿园,海康一体机考勤签到
390 if(StringUtils.isNotBlank(schoolId)){ 387 if(StringUtils.isNotBlank(schoolId)){
391 - if(Integer.parseInt(schoolId)== 944){  
392 - log.info("柯桥实验考勤:考勤卡号:{} "+ cardNo);  
393 - }  
394 - if(Integer.parseInt(schoolId)== 944 && !StringUtils.isEmpty(cardNo) && isNumeric(cardNo)){ 388 + if((Objects.equals(schoolId,"1066") || Objects.equals(schoolId,"944") )
  389 + && !StringUtils.isEmpty(cardNo) && isNumeric(cardNo)){
395 kaoQinRecord(outOrIn,cardNo,deviceID,time); 390 kaoQinRecord(outOrIn,cardNo,deviceID,time);
396 } 391 }
397 } 392 }
@@ -408,10 +403,8 @@ public class CMSServer implements ApplicationRunner { @@ -408,10 +403,8 @@ public class CMSServer implements ApplicationRunner {
408 saveFaceRecoder(deviceID, cardNo, time, picDataUrlId, currTemperature,outOrIn); 403 saveFaceRecoder(deviceID, cardNo, time, picDataUrlId, currTemperature,outOrIn);
409 //944柯桥实验幼儿园,海康一体机考勤签到 404 //944柯桥实验幼儿园,海康一体机考勤签到
410 if(StringUtils.isNotBlank(schoolId)){ 405 if(StringUtils.isNotBlank(schoolId)){
411 - if(Integer.parseInt(schoolId)== 944){  
412 - log.info("柯桥实验考勤:考勤卡号:{} "+ cardNo);  
413 - }  
414 - if(Integer.parseInt(schoolId)== 944 && !StringUtils.isEmpty(cardNo) && isNumeric(cardNo)){ 406 + if((Objects.equals(schoolId,"1066") || Objects.equals(schoolId,"944") )
  407 + && !StringUtils.isEmpty(cardNo) && isNumeric(cardNo)){
415 kaoQinRecord(outOrIn,cardNo,deviceID,time); 408 kaoQinRecord(outOrIn,cardNo,deviceID,time);
416 } 409 }
417 } 410 }
@@ -421,10 +414,8 @@ public class CMSServer implements ApplicationRunner { @@ -421,10 +414,8 @@ public class CMSServer implements ApplicationRunner {
421 saveFaceRecoder(deviceID, cardNo, time, picDataUrlId, currTemperature,outOrIn); 414 saveFaceRecoder(deviceID, cardNo, time, picDataUrlId, currTemperature,outOrIn);
422 //944柯桥实验幼儿园,海康一体机考勤签到 415 //944柯桥实验幼儿园,海康一体机考勤签到
423 if(StringUtils.isNotBlank(schoolId)){ 416 if(StringUtils.isNotBlank(schoolId)){
424 - if(Integer.parseInt(schoolId)== 944){  
425 - log.info("柯桥实验考勤:考勤卡号:{} "+ cardNo);  
426 - }  
427 - if(Integer.parseInt(schoolId)== 944 && !StringUtils.isEmpty(cardNo) && isNumeric(cardNo)){ 417 + if((Objects.equals(schoolId,"1066") || Objects.equals(schoolId,"944") )
  418 + && !StringUtils.isEmpty(cardNo) && isNumeric(cardNo)){
428 kaoQinRecord(outOrIn,cardNo,deviceID,time); 419 kaoQinRecord(outOrIn,cardNo,deviceID,time);
429 } 420 }
430 } 421 }
@@ -456,9 +447,9 @@ public class CMSServer implements ApplicationRunner { @@ -456,9 +447,9 @@ public class CMSServer implements ApplicationRunner {
456 checkIn.setCheckTime(eventTime); 447 checkIn.setCheckTime(eventTime);
457 sendRecordDao.checkIn(checkIn); 448 sendRecordDao.checkIn(checkIn);
458 if (checkIn.getIsSuccess() == 1) { 449 if (checkIn.getIsSuccess() == 1) {
459 - log.info("柯桥实验幼儿园考勤成功: checkIn: {}, 方向:{}", JsonUtils.nonDefaultMapper().toJson(checkIn),outOrIn == 1 ? "门" : "出门"); 450 + log.info("考勤成功: checkIn: {}, 方向:{}",JSON.toJSONString(checkIn),outOrIn == 1 ? "门" : "出门");
460 } else { 451 } else {
461 - log.info("柯桥实验幼儿园考勤失败: checkIn: {}, 方向:{}",JsonUtils.nonDefaultMapper().toJson(checkIn),outOrIn == 1 ? "进门" : "出门"); 452 + log.info("考勤失败: checkIn: {}, 方向:{}",JSON.toJSONString(checkIn),outOrIn == 1 ? "进门" : "出门");
462 } 453 }
463 } 454 }
464 455
cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserOperateController.java
@@ -100,7 +100,8 @@ public class UserOperateController { @@ -100,7 +100,8 @@ public class UserOperateController {
100 100
101 @ApiOperation(value = "下发未下发的人脸至指定设备2.0") 101 @ApiOperation(value = "下发未下发的人脸至指定设备2.0")
102 @RequestMapping(value = "sendFaceForNoSend", method = RequestMethod.POST) 102 @RequestMapping(value = "sendFaceForNoSend", method = RequestMethod.POST)
103 - public Result sendFaceForNoSend(@RequestParam("schoolId") Integer schoolId,@RequestParam("userType") Integer userType, 103 + public Result sendFaceForNoSend(@RequestParam("schoolId") Integer schoolId,
  104 + @RequestParam("userType") Integer userType,
104 @RequestParam(value = "studentType",required = false) Integer studentType, 105 @RequestParam(value = "studentType",required = false) Integer studentType,
105 @RequestParam(value = "sex",required = false) String sex, 106 @RequestParam(value = "sex",required = false) String sex,
106 @RequestParam(value = "deviceIds",required = false) String deviceIds, 107 @RequestParam(value = "deviceIds",required = false) String deviceIds,
@@ -153,6 +154,14 @@ public class UserOperateController { @@ -153,6 +154,14 @@ public class UserOperateController {
153 return userOperateService.sendFaceByKeyword(schoolId,deviceIds,keyword,studentType,sex,isCheck); 154 return userOperateService.sendFaceByKeyword(schoolId,deviceIds,keyword,studentType,sex,isCheck);
154 } 155 }
155 156
  157 + @ApiOperation(value = "指定班级下发未下发人脸")
  158 + @RequestMapping(value = "noSendByKeyword", method = RequestMethod.POST)
  159 + public Result noSendByKeyword(@RequestParam("schoolId") Integer schoolId,
  160 + @RequestParam(value = "keyword",required = false) String keyword,
  161 + @RequestParam(value = "deviceIds",required = false) String deviceIds) {
  162 + return userOperateService.noSendByKeyword(schoolId,keyword,deviceIds);
  163 + }
  164 +
156 @ApiOperation(value = "根据宿舍分组下发") 165 @ApiOperation(value = "根据宿舍分组下发")
157 @RequestMapping(value = "sendFaceByRoomId", method = RequestMethod.POST) 166 @RequestMapping(value = "sendFaceByRoomId", method = RequestMethod.POST)
158 public Result sendFaceByRoomId(@RequestParam("schoolId") Integer schoolId, 167 public Result sendFaceByRoomId(@RequestParam("schoolId") Integer schoolId,
cloud/haikangface/src/main/java/com/sincere/haikangface/service/UserOperateService.java
@@ -143,6 +143,15 @@ public interface UserOperateService { @@ -143,6 +143,15 @@ public interface UserOperateService {
143 */ 143 */
144 Result sendFaceByKeyword(Integer schoolId,String deviceIds,String keyword,Integer studentType,String sex,Integer isCheck); 144 Result sendFaceByKeyword(Integer schoolId,String deviceIds,String keyword,Integer studentType,String sex,Integer isCheck);
145 145
  146 + Result noSendByKeyword(Integer schoolId,String keyword,String deviceIds);
  147 +
  148 + /**
  149 + * 根据寝室号下发人脸
  150 + * @param schoolId
  151 + * @param groupId
  152 + * @param deviceIds
  153 + * @return
  154 + */
146 Result sendFaceByRoomId(Integer schoolId,Integer groupId,String deviceIds); 155 Result sendFaceByRoomId(Integer schoolId,Integer groupId,String deviceIds);
147 156
148 /** 157 /**
cloud/haikangface/src/main/java/com/sincere/haikangface/service/impl/UserOperateServiceImpl.java
@@ -641,7 +641,6 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -641,7 +641,6 @@ public class UserOperateServiceImpl implements UserOperateService {
641 log.warn("该学校下未查询到下发设备"); 641 log.warn("该学校下未查询到下发设备");
642 return ResultGenerator.genFailResult("该学校下未查询到下发设备"); 642 return ResultGenerator.genFailResult("该学校下未查询到下发设备");
643 } 643 }
644 -  
645 //下发用户集合 644 //下发用户集合
646 List<StudentBean> list = null; 645 List<StudentBean> list = null;
647 if (userType == EnumSzBusinessType.EnumUserType.STUDENT.code && groupId ==null) { 646 if (userType == EnumSzBusinessType.EnumUserType.STUDENT.code && groupId ==null) {
@@ -667,7 +666,6 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -667,7 +666,6 @@ public class UserOperateServiceImpl implements UserOperateService {
667 return ResultGenerator.genSuccessResult(objectMapper.toJson(map)); 666 return ResultGenerator.genSuccessResult(objectMapper.toJson(map));
668 } 667 }
669 668
670 -  
671 @Async 669 @Async
672 public void sendFaceForNoSend(Integer schoolId,Integer userType,List<StudentBean> studentList,List<String> deviceIds){ 670 public void sendFaceForNoSend(Integer schoolId,Integer userType,List<StudentBean> studentList,List<String> deviceIds){
673 log.info("统计共有:"+studentList.size()+"张卡,"+deviceIds.size()+"台设备." ); 671 log.info("统计共有:"+studentList.size()+"张卡,"+deviceIds.size()+"台设备." );
@@ -1071,7 +1069,28 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -1071,7 +1069,28 @@ public class UserOperateServiceImpl implements UserOperateService {
1071 return ResultGenerator.genSuccessResult(objectMapper.toJson(map)); 1069 return ResultGenerator.genSuccessResult(objectMapper.toJson(map));
1072 } 1070 }
1073 1071
  1072 + @Override
  1073 + public Result noSendByKeyword(Integer schoolId,String keyword,String deviceIds) {
  1074 + //下发设备集合
  1075 + List<String> deviceList = Arrays.asList(deviceIds.split(","));
  1076 + //根据类型获取下发用户信息
  1077 + List<StudentBean> studentBeanList = baseService.getStudentByKeyword(schoolId,keyword,null,null);
  1078 +
  1079 + //异步执行下发
  1080 + sendFaceForNoSend(schoolId,2,studentBeanList,deviceList);
1074 1081
  1082 + int fileSize = studentBeanList.size();
  1083 + int clintNum = deviceList.size();
  1084 + //下发所用时长
  1085 + int timeLength = new Double(clintNum * fileSize * 0.06).intValue();
  1086 + //下发截止时间
  1087 + String dateStr = baseService.getTime(fileSize,clintNum,timeLength);
  1088 + Map map = new HashMap();
  1089 + map.put("timeLength",timeLength);
  1090 + map.put("afterDate",dateStr);
  1091 + map.put("fileSize",fileSize);
  1092 + return ResultGenerator.genSuccessResult(objectMapper.toJson(map));
  1093 + }
1075 1094
1076 @Override 1095 @Override
1077 public Result sendFaceByRoomId(Integer schoolId,Integer roomId,String deviceIds) { 1096 public Result sendFaceByRoomId(Integer schoolId,Integer roomId,String deviceIds) {
@@ -1090,7 +1109,7 @@ public class UserOperateServiceImpl implements UserOperateService { @@ -1090,7 +1109,7 @@ public class UserOperateServiceImpl implements UserOperateService {
1090 Integer clintType = userDao.getClintTypeByDeviceId(deviceList.get(0)); 1109 Integer clintType = userDao.getClintTypeByDeviceId(deviceList.get(0));
1091 // if(clintType.intValue()== 22 || clintType.intValue()== 29){ 1110 // if(clintType.intValue()== 22 || clintType.intValue()== 29){
1092 // //发送大华设备 1111 // //发送大华设备
1093 -// HttpUtil.uploadDHImgByClassId(String.valueOf(schoolId),deviceIds); 1112 +// HttpUtil.uploadDHImgByClassId(String.valueOf(schoolId),deviceIds,roomId);
1094 // } 1113 // }
1095 if(clintType.intValue()== 18 || clintType.intValue()== 28){ 1114 if(clintType.intValue()== 18 || clintType.intValue()== 28){
1096 //发送海康设备:异步执行 1115 //发送海康设备:异步执行
cloud/haikangface/src/main/resources/application.yaml
@@ -31,6 +31,22 @@ spring: @@ -31,6 +31,22 @@ spring:
31 username: szjxtuser 31 username: szjxtuser
32 password: RQminVCJota3H1u8bBYH 32 password: RQminVCJota3H1u8bBYH
33 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver 33 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
  34 + hikari:
  35 + #连接池名
  36 + pool-name: SzDateHikari
  37 + #最小空闲连接数
  38 + minimum-idle: 20
  39 + # 空闲连接存活最大时间,默认600000(10分钟)
  40 + idle-timeout: 180000
  41 + # 连接池最大连接数,默认是10
  42 + maximum-pool-size: 200
  43 + # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
  44 + auto-commit: true
  45 + # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
  46 + max-lifetime: 1800000
  47 + # 数据库连接超时时间,默认30秒,即30000
  48 + connection-timeout: 30000
  49 + connection-test-query: SELECT 1
34 # resources: 50 # resources:
35 # static-locations: classpath:/META-INF/resources/,classpath:/resources/, classpath:/static/, classpath:/public/, file:C:/EhomePicServer/ 51 # static-locations: classpath:/META-INF/resources/,classpath:/resources/, classpath:/static/, classpath:/public/, file:C:/EhomePicServer/
36 52
cloud/haikangface/src/main/resources/mapper/usermapper.xml
@@ -117,7 +117,7 @@ @@ -117,7 +117,7 @@
117 </foreach> 117 </foreach>
118 </if> 118 </if>
119 <if test="keyword != null and keyword !=''"> 119 <if test="keyword != null and keyword !=''">
120 - and class_name concat('%', #{keyword}, '%') 120 + and class_name like concat('%', #{keyword}, '%')
121 </if> 121 </if>
122 and student_num != '' and photo !='' 122 and student_num != '' and photo !=''
123 </select> 123 </select>
cloud/quartz/src/main/resources/application.yaml
@@ -4,26 +4,23 @@ server: @@ -4,26 +4,23 @@ server:
4 spring: 4 spring:
5 application: 5 application:
6 name: quartz-server 6 name: quartz-server
  7 + datasource:
  8 + master: ## 查询
  9 + username: szjxtuser
  10 + password: RQminVCJota3H1u8bBYH
  11 + jdbc-url: jdbc:sqlserver://116.62.155.137:33419;database=SmartAdmin
  12 + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
  13 + slave: ## 短信
  14 + username: sa
  15 + password: qaz!@#0401
  16 + jdbc-url: jdbc:sqlserver://60.190.202.38:49469;database=XST
  17 + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
  18 + yxy: ## 翼学云
  19 + username: szyxt
  20 + password: QWer123$%^
  21 + jdbc-url: jdbc:sqlserver://47.110.50.251:33419;database=SZYXT
  22 + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
7 23
8 -datasource:  
9 - master: ## 查询  
10 - username: szjxtuser  
11 - password: RQminVCJota3H1u8bBYH  
12 - jdbcUrl: jdbc:sqlserver://116.62.155.137:33419;database=SmartAdmin  
13 - driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver  
14 - slave: ## 短信  
15 - username: sa  
16 - password: qaz!@#0401  
17 - jdbcUrl: jdbc:sqlserver://60.190.202.38:49469;database=XST  
18 - driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver  
19 - yxy: ## 翼学云  
20 - username: szyxt  
21 - password: QWer123$%^  
22 - jdbcUrl: jdbc:sqlserver://47.110.50.251:33419;database=SZYXT  
23 -# username: SZJXTUSER  
24 -# password: xst200919  
25 -# jdbcUrl: jdbc:sqlserver://60.190.202.57:14333;database=SZYXT  
26 - driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver  
27 ##mybatis 24 ##mybatis
28 mybatis: 25 mybatis:
29 mapper-locations: classpath:mapper/*.xml 26 mapper-locations: classpath:mapper/*.xml
@@ -32,12 +29,12 @@ mybatis: @@ -32,12 +29,12 @@ mybatis:
32 ribbon: 29 ribbon:
33 ReadTimeout: 50000 30 ReadTimeout: 50000
34 ConnectTimeout: 5000 31 ConnectTimeout: 5000
35 -#eureka:  
36 -# instance:  
37 -# hostname: localhost  
38 -# lease-expiration-duration-in-seconds: 60  
39 -# lease-renewal-interval-in-seconds: 10  
40 -# client:  
41 -# service-url:  
42 -# defaultZone: http://121.40.109.21:8761/eureka/,http://121.40.109.21:8762/eureka/ 32 +eureka:
  33 + instance:
  34 + hostname: localhost
  35 + lease-expiration-duration-in-seconds: 60
  36 + lease-renewal-interval-in-seconds: 10
  37 + client:
  38 + service-url:
  39 + defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
43 40