Commit f1e0c386ffb69f7a7c9e2d48e11b7c6bb843bb09
1 parent
1064a47d
Exists in
master
修改提交
Showing
10 changed files
with
287 additions
and
48 deletions
Show diff stats
cloud/dahua/src/main/java/com/example/dahua/MyTask.java
@@ -800,7 +800,7 @@ public class MyTask implements ApplicationRunner { | @@ -800,7 +800,7 @@ public class MyTask implements ApplicationRunner { | ||
800 | 800 | ||
801 | public static void sendRecordToSXYX(String name,String userId,int intOrOut,String eventTime,String scene) { | 801 | public static void sendRecordToSXYX(String name,String userId,int intOrOut,String eventTime,String scene) { |
802 | try { | 802 | try { |
803 | - String api = "http://yixiao.198.hmkj.com.cn/index.php/Attend/send"; | 803 | + String api = "https://yixiao.198.hmkj.com.cn/index.php/Attend/send"; |
804 | RestTemplate restTemplate = new RestTemplate(); | 804 | RestTemplate restTemplate = new RestTemplate(); |
805 | MultiValueMap<String, Object> map = new LinkedMultiValueMap<>(); | 805 | MultiValueMap<String, Object> map = new LinkedMultiValueMap<>(); |
806 | map.add("name", name); | 806 | map.add("name", name); |
@@ -813,7 +813,7 @@ public class MyTask implements ApplicationRunner { | @@ -813,7 +813,7 @@ public class MyTask implements ApplicationRunner { | ||
813 | HttpEntity<MultiValueMap<String, Object>> param = new HttpEntity<>(map, headers); | 813 | HttpEntity<MultiValueMap<String, Object>> param = new HttpEntity<>(map, headers); |
814 | ResponseEntity<String> response = restTemplate.postForEntity(api, param, String.class); | 814 | ResponseEntity<String> response = restTemplate.postForEntity(api, param, String.class); |
815 | String body = response.getBody(); | 815 | String body = response.getBody(); |
816 | - log.info("请求艺校OA,用户名称【{}】,返回信息【{}】 ",name,body); | 816 | + log.info("请求艺校OA >>> api: {}, 入参: {} , 响应数据:{} ",api,JSON.toJSONString(map),body); |
817 | } catch (Exception e) { | 817 | } catch (Exception e) { |
818 | sendRecordToSXYX(name,userId,intOrOut,eventTime,scene); | 818 | sendRecordToSXYX(name,userId,intOrOut,eventTime,scene); |
819 | } | 819 | } |
cloud/dahua/src/main/resources/logback-spring.xml
@@ -9,9 +9,9 @@ | @@ -9,9 +9,9 @@ | ||
9 | 9 | ||
10 | <!--日志文件存储的基础路径: ${user.home} 为当前服务器用户主目录--> | 10 | <!--日志文件存储的基础路径: ${user.home} 为当前服务器用户主目录--> |
11 | <!--100--> | 11 | <!--100--> |
12 | - <property name="LOG_PATH" value="D:\dahua\logs"/> | 12 | +<!-- <property name="LOG_PATH" value="D:\dahua\logs"/>--> |
13 | <!--137--> | 13 | <!--137--> |
14 | - <!--<property name="LOG_PATH" value="C:\workspace\dahua\logs"/>--> | 14 | + <property name="LOG_PATH" value="C:\\workspace\\dahua\\logs"/> |
15 | 15 | ||
16 | <!--日志文件基础名称--> | 16 | <!--日志文件基础名称--> |
17 | <property name="BASE_FILE_NAME" value="dahua"/> | 17 | <property name="BASE_FILE_NAME" value="dahua"/> |
cloud/haikangface/src/main/java/com/sincere/haikangface/control/UserOperateController.java
@@ -67,7 +67,8 @@ public class UserOperateController { | @@ -67,7 +67,8 @@ public class UserOperateController { | ||
67 | 67 | ||
68 | @ApiOperation(value = "照片下发2.0") | 68 | @ApiOperation(value = "照片下发2.0") |
69 | @RequestMapping(value = "sendFaceByThread", method = RequestMethod.POST) | 69 | @RequestMapping(value = "sendFaceByThread", method = RequestMethod.POST) |
70 | - public Result sendFaceByThread(@RequestBody SendFaceDto sendFaceDto,@RequestParam(value = "groupId",required = false) Integer groupId) { | 70 | + public Result sendFaceByThread(@RequestBody SendFaceDto sendFaceDto, |
71 | + @RequestParam(value = "groupId",required = false) Integer groupId) { | ||
71 | return userOperateService.sendUserFaceByThread(sendFaceDto,groupId); | 72 | return userOperateService.sendUserFaceByThread(sendFaceDto,groupId); |
72 | } | 73 | } |
73 | 74 | ||
@@ -85,7 +86,8 @@ public class UserOperateController { | @@ -85,7 +86,8 @@ public class UserOperateController { | ||
85 | 86 | ||
86 | @RequestMapping(value = "sendFailFace2", method = RequestMethod.POST) | 87 | @RequestMapping(value = "sendFailFace2", method = RequestMethod.POST) |
87 | @ApiOperation(value = "重新下发失败人脸2.1") | 88 | @ApiOperation(value = "重新下发失败人脸2.1") |
88 | - public Result sendFailFace(@RequestParam("schoolId") Integer schoolId,@RequestParam(value = "deviceIds",required = false) String deviceIds) { | 89 | + public Result sendFailFace(@RequestParam("schoolId") Integer schoolId, |
90 | + @RequestParam(value = "deviceIds",required = false) String deviceIds) { | ||
89 | return userOperateService.sendFailFace2(schoolId,deviceIds); | 91 | return userOperateService.sendFailFace2(schoolId,deviceIds); |
90 | } | 92 | } |
91 | 93 | ||
@@ -131,7 +133,7 @@ public class UserOperateController { | @@ -131,7 +133,7 @@ public class UserOperateController { | ||
131 | 133 | ||
132 | @ApiOperation(value = "按班级指定下发") | 134 | @ApiOperation(value = "按班级指定下发") |
133 | @RequestMapping(value = "sendFaceByClassId", method = RequestMethod.POST) | 135 | @RequestMapping(value = "sendFaceByClassId", method = RequestMethod.POST) |
134 | - public Result exportFace(@RequestParam("schoolId") Integer schoolId, | 136 | + public Result sendFaceByClassId(@RequestParam("schoolId") Integer schoolId, |
135 | @RequestParam(value = "classIds",required = false) String classIds, | 137 | @RequestParam(value = "classIds",required = false) String classIds, |
136 | @RequestParam(value = "deviceIds",required = false) String deviceIds, | 138 | @RequestParam(value = "deviceIds",required = false) String deviceIds, |
137 | @RequestParam(value = "studentType",required = false) Integer studentType, | 139 | @RequestParam(value = "studentType",required = false) Integer studentType, |
@@ -140,17 +142,28 @@ public class UserOperateController { | @@ -140,17 +142,28 @@ public class UserOperateController { | ||
140 | return userOperateService.sendFaceByClassId(schoolId,classIds,deviceIds,studentType,sex,isCheck); | 142 | return userOperateService.sendFaceByClassId(schoolId,classIds,deviceIds,studentType,sex,isCheck); |
141 | } | 143 | } |
142 | 144 | ||
145 | + @ApiOperation(value = "按班级指定下发") | ||
146 | + @RequestMapping(value = "sendFaceByKeyword", method = RequestMethod.POST) | ||
147 | + public Result sendFaceByKeyword(@RequestParam("schoolId") Integer schoolId, | ||
148 | + @RequestParam(value = "deviceIds",required = false) String deviceIds, | ||
149 | + @RequestParam(value = "keyword",required = false) String keyword, | ||
150 | + @RequestParam(value = "studentType",required = false) Integer studentType, | ||
151 | + @RequestParam(value = "sex",required = false) String sex, | ||
152 | + @RequestParam(value = "isCheck",required = false) Integer isCheck){ | ||
153 | + return userOperateService.sendFaceByKeyword(schoolId,deviceIds,keyword,studentType,sex,isCheck); | ||
154 | + } | ||
155 | + | ||
143 | @ApiOperation(value = "根据宿舍分组下发") | 156 | @ApiOperation(value = "根据宿舍分组下发") |
144 | - @RequestMapping(value = "sendFaceByGroupId", method = RequestMethod.POST) | ||
145 | - public Result sendFaceByThread(@RequestParam("schoolId") Integer schoolId, | ||
146 | - @RequestParam("groupId") Integer groupId, | 157 | + @RequestMapping(value = "sendFaceByRoomId", method = RequestMethod.POST) |
158 | + public Result sendFaceByRoomId(@RequestParam("schoolId") Integer schoolId, | ||
159 | + @RequestParam("roomId") Integer roomId, | ||
147 | @RequestParam(value = "deviceIds",required = false) String deviceIds) { | 160 | @RequestParam(value = "deviceIds",required = false) String deviceIds) { |
148 | - return userOperateService.sendFaceByGroupId(schoolId,groupId,deviceIds); | 161 | + return userOperateService.sendFaceByRoomId(schoolId,roomId,deviceIds); |
149 | } | 162 | } |
150 | 163 | ||
151 | @ApiOperation(value = "删除指定学校下人脸照片") | 164 | @ApiOperation(value = "删除指定学校下人脸照片") |
152 | @RequestMapping(value = "deleteBySchoolId", method = RequestMethod.POST) | 165 | @RequestMapping(value = "deleteBySchoolId", method = RequestMethod.POST) |
153 | - public Result exportFace(@RequestParam("schoolId") Integer schoolId, | 166 | + public Result deleteBySchoolId(@RequestParam("schoolId") Integer schoolId, |
154 | @RequestParam(value = "deviceIds",required = false) String deviceIds){ | 167 | @RequestParam(value = "deviceIds",required = false) String deviceIds){ |
155 | return userOperateService.deleteFaceBySchoolId(schoolId,deviceIds); | 168 | return userOperateService.deleteFaceBySchoolId(schoolId,deviceIds); |
156 | } | 169 | } |
@@ -159,4 +172,12 @@ public class UserOperateController { | @@ -159,4 +172,12 @@ public class UserOperateController { | ||
159 | public void checkFaceSend(){ | 172 | public void checkFaceSend(){ |
160 | userOperateService.checkFaceSend(); | 173 | userOperateService.checkFaceSend(); |
161 | } | 174 | } |
175 | + | ||
176 | + @ApiOperation(value = "按班级指定下发") | ||
177 | + @RequestMapping(value = "replaceFaceByKeyword", method = RequestMethod.POST) | ||
178 | + public Result replaceFaceByKeyword(@RequestParam("schoolId") Integer schoolId, | ||
179 | + @RequestParam("deviceIds") String deviceIds, | ||
180 | + @RequestParam("keyword") String keyword){ | ||
181 | + return userOperateService.replaceFaceByKeyword(schoolId,deviceIds,keyword); | ||
182 | + } | ||
162 | } | 183 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/dao/UserDao.java
@@ -262,13 +262,26 @@ public interface UserDao { | @@ -262,13 +262,26 @@ public interface UserDao { | ||
262 | 262 | ||
263 | List<StudentBean> getStudentBySchoolId(@Param("schoolId") Integer schoolId); | 263 | List<StudentBean> getStudentBySchoolId(@Param("schoolId") Integer schoolId); |
264 | 264 | ||
265 | - List<StudentBean> getStudentList(@Param("schoolId") Integer schoolId,@Param("studentType")Integer studentType,@Param("sex") List<Integer> sex); | 265 | + List<StudentBean> getTeacherBySchoolId(@Param("schoolId") Integer schoolId); |
266 | 266 | ||
267 | - List<StudentBean> getStudentCardGroup(@Param("schoolId") Integer schoolId,@Param("studentType")Integer studentType,@Param("sexList") List<Integer> sexList,@Param("groupId")Integer groupId); | 267 | + List<StudentBean> getStudentList(@Param("schoolId") Integer schoolId, |
268 | + @Param("studentType")Integer studentType, | ||
269 | + @Param("sex") List<Integer> sex); | ||
268 | 270 | ||
269 | - List<StudentBean> getTeacherList(@Param("schoolId") Integer schoolId); | 271 | + List<StudentBean> getStudentCardGroup(@Param("schoolId") Integer schoolId, |
272 | + @Param("studentType")Integer studentType, | ||
273 | + @Param("sexList") List<Integer> sexList, | ||
274 | + @Param("groupId")Integer groupId); | ||
270 | 275 | ||
271 | - List<StudentBean> getStudentByClassId(@Param("schoolId") int schoolId,@Param("classIds") List<Integer> classIds,@Param("sexList") List<Integer> sexList,@Param("studentType")int studentType); | 276 | + List<StudentBean> getStudentByClassId(@Param("schoolId") int schoolId, |
277 | + @Param("classIds") List<Integer> classIds, | ||
278 | + @Param("sexList") List<Integer> sexList, | ||
279 | + @Param("studentType")Integer studentType); | ||
280 | + | ||
281 | + List<StudentBean> getStudentByKeyword(@Param("schoolId") int schoolId, | ||
282 | + @Param("keyword") String keyword, | ||
283 | + @Param("sexList") List<Integer> sexList, | ||
284 | + @Param("studentType")Integer studentType); | ||
272 | 285 | ||
273 | List<String> getDeviceIds(@Param("schoolId") Integer schoolId,@Param("deviceId") String deviceId); | 286 | List<String> getDeviceIds(@Param("schoolId") Integer schoolId,@Param("deviceId") String deviceId); |
274 | 287 | ||
@@ -298,4 +311,9 @@ public interface UserDao { | @@ -298,4 +311,9 @@ public interface UserDao { | ||
298 | List<Integer> getRoomBySchoolId(@Param("schoolId") Integer schoolId,@Param("groupId") Integer groupId); | 311 | List<Integer> getRoomBySchoolId(@Param("schoolId") Integer schoolId,@Param("groupId") Integer groupId); |
299 | 312 | ||
300 | List<StudentBean> getStudentByRoomIds(@Param("schoolId") Integer schoolId,@Param("pIdList") List<Integer> pIdList); | 313 | List<StudentBean> getStudentByRoomIds(@Param("schoolId") Integer schoolId,@Param("pIdList") List<Integer> pIdList); |
314 | + | ||
315 | + List<StudentBean> getTestVsByKeyword(@Param("schoolId") int schoolId, | ||
316 | + @Param("keyword") String keyword, | ||
317 | + @Param("sexList") List<Integer> sexList, | ||
318 | + @Param("studentType")Integer studentType); | ||
301 | } | 319 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/service/UserOperateService.java
@@ -131,7 +131,19 @@ public interface UserOperateService { | @@ -131,7 +131,19 @@ public interface UserOperateService { | ||
131 | */ | 131 | */ |
132 | Result sendFaceByClassId(Integer schoolId,String classIds,String deviceIds,Integer studentType,String sex,Integer isCheck); | 132 | Result sendFaceByClassId(Integer schoolId,String classIds,String deviceIds,Integer studentType,String sex,Integer isCheck); |
133 | 133 | ||
134 | - Result sendFaceByGroupId(Integer schoolId,Integer groupId,String deviceIds); | 134 | + /** |
135 | + * 根据班级新生班级关键字下发 | ||
136 | + * @param schoolId | ||
137 | + * @param deviceIds | ||
138 | + * @param keyword | ||
139 | + * @param studentType | ||
140 | + * @param sex | ||
141 | + * @param isCheck | ||
142 | + * @return | ||
143 | + */ | ||
144 | + Result sendFaceByKeyword(Integer schoolId,String deviceIds,String keyword,Integer studentType,String sex,Integer isCheck); | ||
145 | + | ||
146 | + Result sendFaceByRoomId(Integer schoolId,Integer groupId,String deviceIds); | ||
135 | 147 | ||
136 | /** | 148 | /** |
137 | * 删除指定学校下的人脸 | 149 | * 删除指定学校下的人脸 |
@@ -142,4 +154,6 @@ public interface UserOperateService { | @@ -142,4 +154,6 @@ public interface UserOperateService { | ||
142 | Result deleteFaceBySchoolId(Integer schoolId,String deviceIds); | 154 | Result deleteFaceBySchoolId(Integer schoolId,String deviceIds); |
143 | 155 | ||
144 | void checkFaceSend(); | 156 | void checkFaceSend(); |
157 | + | ||
158 | + Result replaceFaceByKeyword(Integer schoolId,String deviceIds,String keyword); | ||
145 | } | 159 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/service/impl/BaseService.java
@@ -485,19 +485,15 @@ public class BaseService { | @@ -485,19 +485,15 @@ public class BaseService { | ||
485 | * @return | 485 | * @return |
486 | */ | 486 | */ |
487 | public List<StudentBean> getStudentByClassId(Integer schoolId,String classIds,Integer studentType,String sex) { | 487 | public List<StudentBean> getStudentByClassId(Integer schoolId,String classIds,Integer studentType,String sex) { |
488 | - List<Integer> classList = new ArrayList<>(); | 488 | + List<Integer> classList = null; |
489 | if(StringUtils.isNotBlank(classIds)){ | 489 | if(StringUtils.isNotBlank(classIds)){ |
490 | - String[] msg = classIds.split(","); | ||
491 | - for(String s : msg){ | ||
492 | - classList.add(Integer.valueOf(s)); | ||
493 | - } | 490 | + classList = Arrays.asList(classIds.split(",")) |
491 | + .stream().map(Integer::parseInt).collect(Collectors.toList()); | ||
494 | } | 492 | } |
495 | - List<Integer> sexList = new ArrayList<>(); | 493 | + List<Integer> sexList = null; |
496 | if(StringUtils.isNotBlank(sex)){ | 494 | if(StringUtils.isNotBlank(sex)){ |
497 | - String[] msg = sex.split(","); | ||
498 | - for(String s : msg){ | ||
499 | - sexList.add(Integer.valueOf(s)); | ||
500 | - } | 495 | + sexList = Arrays.asList(sex.split(",")) |
496 | + .stream().map(Integer::parseInt).collect(Collectors.toList()); | ||
501 | } | 497 | } |
502 | List<StudentBean> students = userDao.getStudentByClassId(schoolId,classList,sexList,studentType); | 498 | List<StudentBean> students = userDao.getStudentByClassId(schoolId,classList,sexList,studentType); |
503 | //去重重复数据 | 499 | //去重重复数据 |
@@ -507,6 +503,27 @@ public class BaseService { | @@ -507,6 +503,27 @@ public class BaseService { | ||
507 | } | 503 | } |
508 | 504 | ||
509 | /** | 505 | /** |
506 | + * 根据班级关键字获取学生数据信息 | ||
507 | + * @param schoolId | ||
508 | + * @param keyword | ||
509 | + * @param studentType | ||
510 | + * @param sex | ||
511 | + * @return | ||
512 | + */ | ||
513 | + public List<StudentBean> getStudentByKeyword(Integer schoolId,String keyword,Integer studentType,String sex) { | ||
514 | + List<Integer> sexList = null; | ||
515 | + if(StringUtils.isNotBlank(sex)){ | ||
516 | + sexList = Arrays.asList(sex.split(",")) | ||
517 | + .stream().map(Integer::parseInt).collect(Collectors.toList()); | ||
518 | + } | ||
519 | + List<StudentBean> students = userDao.getStudentByKeyword(schoolId,keyword,sexList,studentType); | ||
520 | + //去重重复数据 | ||
521 | + List<StudentBean> studentList = students.stream().collect(Collectors.collectingAndThen( | ||
522 | + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getStudent_num))), ArrayList::new)); | ||
523 | + return studentList; | ||
524 | + } | ||
525 | + | ||
526 | + /** | ||
510 | * 根据学生群组获取学校下对应群组的学生数据信息 | 527 | * 根据学生群组获取学校下对应群组的学生数据信息 |
511 | * @param schoolId | 528 | * @param schoolId |
512 | * @param studentType | 529 | * @param studentType |
@@ -514,12 +531,10 @@ public class BaseService { | @@ -514,12 +531,10 @@ public class BaseService { | ||
514 | * @return | 531 | * @return |
515 | */ | 532 | */ |
516 | public List<StudentBean> getStudentListByGroup(Integer schoolId,Integer studentType,String sex,Integer groupId) { | 533 | public List<StudentBean> getStudentListByGroup(Integer schoolId,Integer studentType,String sex,Integer groupId) { |
517 | - List<Integer> sexList = new ArrayList<>(); | 534 | + List<Integer> sexList = null; |
518 | if(StringUtils.isNotBlank(sex)){ | 535 | if(StringUtils.isNotBlank(sex)){ |
519 | - String[] msg = sex.split(","); | ||
520 | - for(String s : msg){ | ||
521 | - sexList.add(Integer.valueOf(s)); | ||
522 | - } | 536 | + sexList = Arrays.asList(sex.split(",")) |
537 | + .stream().map(Integer::parseInt).collect(Collectors.toList()); | ||
523 | } | 538 | } |
524 | List<StudentBean> students = userDao.getStudentCardGroup(schoolId,studentType,sexList,groupId); | 539 | List<StudentBean> students = userDao.getStudentCardGroup(schoolId,studentType,sexList,groupId); |
525 | //去重重复数据 | 540 | //去重重复数据 |
@@ -528,9 +543,14 @@ public class BaseService { | @@ -528,9 +543,14 @@ public class BaseService { | ||
528 | return studentList; | 543 | return studentList; |
529 | } | 544 | } |
530 | 545 | ||
531 | - | ||
532 | - public List<StudentBean> getStudentListByGroupId(Integer schoolId,Integer groupId) { | ||
533 | - List<Integer> rooms = userDao.getRoomBySchoolId(schoolId,groupId); | 546 | + /** |
547 | + * 获取宿舍分组管理学生 | ||
548 | + * @param schoolId | ||
549 | + * @param roomId | ||
550 | + * @return | ||
551 | + */ | ||
552 | + public List<StudentBean> getStudentListByRoomId(Integer schoolId,Integer roomId) { | ||
553 | + List<Integer> rooms = userDao.getRoomBySchoolId(schoolId,roomId); | ||
534 | if(!CollectionUtils.isEmpty(rooms)) { | 554 | if(!CollectionUtils.isEmpty(rooms)) { |
535 | List<Integer> pIdlIst = rooms.stream().distinct().collect(Collectors.toList()); | 555 | List<Integer> pIdlIst = rooms.stream().distinct().collect(Collectors.toList()); |
536 | List<StudentBean> studentBeans = userDao.getStudentByRoomIds(schoolId,pIdlIst); | 556 | List<StudentBean> studentBeans = userDao.getStudentByRoomIds(schoolId,pIdlIst); |
@@ -549,7 +569,7 @@ public class BaseService { | @@ -549,7 +569,7 @@ public class BaseService { | ||
549 | * @return | 569 | * @return |
550 | */ | 570 | */ |
551 | public List<StudentBean> getTeacherList(Integer schoolId) { | 571 | public List<StudentBean> getTeacherList(Integer schoolId) { |
552 | - List<StudentBean> teachers = userDao.getTeacherList(schoolId); | 572 | + List<StudentBean> teachers = userDao.getTeacherBySchoolId(schoolId); |
553 | //去重重复数据 | 573 | //去重重复数据 |
554 | List<StudentBean> teacherist = teachers.stream().collect(Collectors.collectingAndThen( | 574 | List<StudentBean> teacherist = teachers.stream().collect(Collectors.collectingAndThen( |
555 | Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getTeacher_num))), ArrayList::new)); | 575 | Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getTeacher_num))), ArrayList::new)); |
@@ -646,4 +666,15 @@ public class BaseService { | @@ -646,4 +666,15 @@ public class BaseService { | ||
646 | attendanceBean.getSchool_id(), attendanceBean.getState() + "", attendanceBean.getIsConnection() + ""); | 666 | attendanceBean.getSchool_id(), attendanceBean.getState() + "", attendanceBean.getIsConnection() + ""); |
647 | } | 667 | } |
648 | } | 668 | } |
669 | + | ||
670 | + public List<StudentBean> getReplaceByKeyword(Integer schoolId,String keyword) { | ||
671 | + List<StudentBean> students = userDao.getTestVsByKeyword(schoolId,keyword,null,null); | ||
672 | + //去重重复数据 | ||
673 | + List<StudentBean> studentList = students.stream().collect(Collectors.collectingAndThen( | ||
674 | + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getStudent_num))), ArrayList::new)); | ||
675 | + return studentList; | ||
676 | + } | ||
677 | + | ||
678 | + | ||
679 | + | ||
649 | } | 680 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/service/impl/UserOperateServiceImpl.java
@@ -25,7 +25,7 @@ import java.io.File; | @@ -25,7 +25,7 @@ import java.io.File; | ||
25 | import java.io.FileInputStream; | 25 | import java.io.FileInputStream; |
26 | import java.io.FileOutputStream; | 26 | import java.io.FileOutputStream; |
27 | import java.io.IOException; | 27 | import java.io.IOException; |
28 | -import java.nio.file.Files; | 28 | +import java.text.SimpleDateFormat; |
29 | import java.util.*; | 29 | import java.util.*; |
30 | import java.util.stream.Collectors; | 30 | import java.util.stream.Collectors; |
31 | 31 | ||
@@ -950,12 +950,11 @@ public class UserOperateServiceImpl implements UserOperateService { | @@ -950,12 +950,11 @@ public class UserOperateServiceImpl implements UserOperateService { | ||
950 | @Override | 950 | @Override |
951 | public Result sendFaceByClassId(Integer schoolId,String classIds,String deviceIds,Integer studentType,String sex,Integer isCheck) { | 951 | public Result sendFaceByClassId(Integer schoolId,String classIds,String deviceIds,Integer studentType,String sex,Integer isCheck) { |
952 | //下发设备集合 | 952 | //下发设备集合 |
953 | - List<String> deviceList = new ArrayList<>(); | 953 | + List<String> deviceList = null; |
954 | if(StringUtils.isBlank(deviceIds)){ | 954 | if(StringUtils.isBlank(deviceIds)){ |
955 | deviceList = deviceDao.selectDeviceBySchoolId(schoolId); | 955 | deviceList = deviceDao.selectDeviceBySchoolId(schoolId); |
956 | }else{ | 956 | }else{ |
957 | - String[] deviceArr = deviceIds.split(","); | ||
958 | - deviceList= new ArrayList<>(Arrays.asList(deviceArr)); | 957 | + deviceList= new ArrayList<>(Arrays.asList(deviceIds.split(","))); |
959 | } | 958 | } |
960 | List<StudentBean> resultCard = new ArrayList<>(); | 959 | List<StudentBean> resultCard = new ArrayList<>(); |
961 | List<String> resultDevices = new ArrayList<>(); | 960 | List<String> resultDevices = new ArrayList<>(); |
@@ -1011,7 +1010,71 @@ public class UserOperateServiceImpl implements UserOperateService { | @@ -1011,7 +1010,71 @@ public class UserOperateServiceImpl implements UserOperateService { | ||
1011 | } | 1010 | } |
1012 | 1011 | ||
1013 | @Override | 1012 | @Override |
1014 | - public Result sendFaceByGroupId(Integer schoolId,Integer groupId,String deviceIds) { | 1013 | + public Result sendFaceByKeyword(Integer schoolId,String keyword,String deviceIds,Integer studentType,String sex,Integer isCheck) { |
1014 | + //下发设备集合 | ||
1015 | + List<String> deviceList = null; | ||
1016 | + if(StringUtils.isBlank(deviceIds)){ | ||
1017 | + deviceList = deviceDao.selectDeviceBySchoolId(schoolId); | ||
1018 | + }else{ | ||
1019 | + deviceList= Arrays.asList(deviceIds.split(",")); | ||
1020 | + } | ||
1021 | + List<StudentBean> resultCard = new ArrayList<>(); | ||
1022 | + List<String> resultDevices = new ArrayList<>(); | ||
1023 | + //根据类型获取下发用户信息 | ||
1024 | + List<StudentBean> studentBeanList = baseService.getStudentByKeyword(schoolId,keyword,studentType,sex); | ||
1025 | + log.info("统计共有下发用户数量:{}",studentBeanList.size()); | ||
1026 | + if(isCheck !=null){ | ||
1027 | + for(StudentBean studentBean : studentBeanList){ | ||
1028 | + String cardNum = studentBean.getStudent_num(); | ||
1029 | + boolean isOk = true; | ||
1030 | + for(String deviceId : deviceList){ | ||
1031 | + if (cmsServer.getIsDeviceOnline(deviceId)) { | ||
1032 | + String cardNo = Long.parseLong(baseService.getCard(cardNum), 16) + ""; | ||
1033 | + isOk = cmsServer.getFace(deviceId,cardNo,null); | ||
1034 | + }else{ | ||
1035 | + isOk = HttpUtil.getCard(deviceId, cardNum); | ||
1036 | + } | ||
1037 | + if(!isOk){ | ||
1038 | + resultCard.add(studentBean); | ||
1039 | + resultCard.add(studentBean); | ||
1040 | + resultDevices.add(deviceId); | ||
1041 | + } | ||
1042 | + } | ||
1043 | + } | ||
1044 | + //去重重复数据 | ||
1045 | + studentBeanList = resultCard.stream().collect(Collectors.collectingAndThen( | ||
1046 | + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(StudentBean::getStudent_num))), ArrayList::new)); | ||
1047 | + //去重重复数据 | ||
1048 | + deviceList = resultDevices.stream().distinct().collect(Collectors.toList()); | ||
1049 | + } | ||
1050 | + log.info("统计共有下发用户数量:{}",studentBeanList.size()); | ||
1051 | + //设备类型 | ||
1052 | + Integer clintType = userDao.getClintTypeByDeviceId(deviceList.get(0)); | ||
1053 | + if(clintType.intValue()== 22 || clintType.intValue()== 29){ | ||
1054 | + //发送大华设备 | ||
1055 | + HttpUtil.uploadDHImgByClassId(String.valueOf(schoolId),deviceIds,keyword); | ||
1056 | + } | ||
1057 | + if(clintType.intValue()== 18 || clintType.intValue()== 28){ | ||
1058 | + //发送海康设备:异步执行 | ||
1059 | + baseService.sendUserFaceByAsyncThread(schoolId,2,studentBeanList,deviceList); | ||
1060 | + } | ||
1061 | + int fileSize = studentBeanList.size(); | ||
1062 | + int clintNum = deviceList.size(); | ||
1063 | + //下发所用时长 | ||
1064 | + int timeLength = new Double(clintNum * fileSize * 0.06).intValue(); | ||
1065 | + //下发截止时间 | ||
1066 | + String dateStr = baseService.getTime(fileSize,clintNum,timeLength); | ||
1067 | + Map map = new HashMap(); | ||
1068 | + map.put("timeLength",timeLength); | ||
1069 | + map.put("afterDate",dateStr); | ||
1070 | + map.put("fileSize",fileSize); | ||
1071 | + return ResultGenerator.genSuccessResult(objectMapper.toJson(map)); | ||
1072 | + } | ||
1073 | + | ||
1074 | + | ||
1075 | + | ||
1076 | + @Override | ||
1077 | + public Result sendFaceByRoomId(Integer schoolId,Integer roomId,String deviceIds) { | ||
1015 | //下发设备集合 | 1078 | //下发设备集合 |
1016 | List<String> deviceList = new ArrayList<>(); | 1079 | List<String> deviceList = new ArrayList<>(); |
1017 | if(StringUtils.isBlank(deviceIds)){ | 1080 | if(StringUtils.isBlank(deviceIds)){ |
@@ -1021,7 +1084,7 @@ public class UserOperateServiceImpl implements UserOperateService { | @@ -1021,7 +1084,7 @@ public class UserOperateServiceImpl implements UserOperateService { | ||
1021 | deviceList= new ArrayList<>(Arrays.asList(deviceArr)); | 1084 | deviceList= new ArrayList<>(Arrays.asList(deviceArr)); |
1022 | } | 1085 | } |
1023 | //根据类型获取下发用户信息 | 1086 | //根据类型获取下发用户信息 |
1024 | - List<StudentBean> studentBeanList = baseService.getStudentListByGroupId(schoolId,groupId); | 1087 | + List<StudentBean> studentBeanList = baseService.getStudentListByRoomId(schoolId,roomId); |
1025 | log.info("统计共有下发用户数量:{}",studentBeanList.size()); | 1088 | log.info("统计共有下发用户数量:{}",studentBeanList.size()); |
1026 | //设备类型 | 1089 | //设备类型 |
1027 | Integer clintType = userDao.getClintTypeByDeviceId(deviceList.get(0)); | 1090 | Integer clintType = userDao.getClintTypeByDeviceId(deviceList.get(0)); |
@@ -1171,4 +1234,55 @@ public class UserOperateServiceImpl implements UserOperateService { | @@ -1171,4 +1234,55 @@ public class UserOperateServiceImpl implements UserOperateService { | ||
1171 | }); | 1234 | }); |
1172 | } | 1235 | } |
1173 | } | 1236 | } |
1237 | + | ||
1238 | + @Override | ||
1239 | + public Result replaceFaceByKeyword(Integer schoolId,String deviceIds,String keyword) { | ||
1240 | + //下发设备集合 | ||
1241 | + List<String> deviceList = null; | ||
1242 | + if(StringUtils.isBlank(deviceIds)){ | ||
1243 | + deviceList = deviceDao.selectDeviceBySchoolId(schoolId); | ||
1244 | + }else{ | ||
1245 | + deviceList= Arrays.asList(deviceIds.split(",")); | ||
1246 | + } | ||
1247 | + //根据类型获取下发用户信息 | ||
1248 | + List<StudentBean> studentBeanList = baseService.getReplaceByKeyword(schoolId,keyword); | ||
1249 | + log.info("统计共有下发用户数量:{}",studentBeanList.size()); | ||
1250 | + | ||
1251 | + //发送海康设备:异步执行 | ||
1252 | + this.deleteReplaceFace(schoolId,studentBeanList,deviceList); | ||
1253 | + | ||
1254 | + int fileSize = studentBeanList.size(); | ||
1255 | + int clintNum = deviceList.size(); | ||
1256 | + //下发所用时长 | ||
1257 | + int timeLength = new Double(clintNum * fileSize * 0.06).intValue(); | ||
1258 | + //下发截止时间 | ||
1259 | + String dateStr = baseService.getTime(fileSize,clintNum,timeLength); | ||
1260 | + Map map = new HashMap(); | ||
1261 | + map.put("timeLength",timeLength); | ||
1262 | + map.put("afterDate",dateStr); | ||
1263 | + map.put("fileSize",fileSize); | ||
1264 | + return ResultGenerator.genSuccessResult(objectMapper.toJson(map)); | ||
1265 | + } | ||
1266 | + | ||
1267 | + @Async | ||
1268 | + public void deleteReplaceFace(Integer schoolId,List<StudentBean> studentBeanList,List<String> deviceList){ | ||
1269 | + //100服务器; | ||
1270 | + studentBeanList.stream().forEach(s->{ | ||
1271 | + String cardNum = s.getStudent_num(); | ||
1272 | + deviceList.stream().forEach(c->{ | ||
1273 | + boolean isOk = false; | ||
1274 | + if (cmsServer.getIsDeviceOnline(c)) { | ||
1275 | + String cardNo = Long.parseLong(baseService.getCard(cardNum), 16) + ""; | ||
1276 | + isOk = HttpUtil.deleteCard100(c,cardNo); | ||
1277 | + }else{ | ||
1278 | + isOk = HttpUtil.deleteCard(c, cardNum); | ||
1279 | + } | ||
1280 | + if(isOk){ | ||
1281 | + //删除成功记录 | ||
1282 | + sendRecordDao.deleteUserFaceSuccess(schoolId,cardNum,c); | ||
1283 | + sendRecordDao.deleteRecord(schoolId,c,cardNum); | ||
1284 | + } | ||
1285 | + }); | ||
1286 | + }); | ||
1287 | + } | ||
1174 | } | 1288 | } |
cloud/haikangface/src/main/java/com/sincere/haikangface/utils/HttpUtil.java
@@ -158,6 +158,13 @@ public class HttpUtil { | @@ -158,6 +158,13 @@ public class HttpUtil { | ||
158 | return res.equals("1"); | 158 | return res.equals("1"); |
159 | } | 159 | } |
160 | 160 | ||
161 | + public static boolean deleteCard100(String deviceId, String card) { | ||
162 | + String url = "http://114.55.30.100:8089/file/DeleteCard?deviceId=" + deviceId + "&card=" + card; | ||
163 | + RestTemplate restTemplate = new RestTemplate(); | ||
164 | + String res = restTemplate.getForObject(url, String.class); | ||
165 | + return res.equals("1"); | ||
166 | + } | ||
167 | + | ||
161 | /** | 168 | /** |
162 | * 获取海康设备卡信息 | 169 | * 获取海康设备卡信息 |
163 | * @param deviceId | 170 | * @param deviceId |
cloud/haikangface/src/main/resources/mapper/usermapper.xml
@@ -64,7 +64,11 @@ | @@ -64,7 +64,11 @@ | ||
64 | </update> | 64 | </update> |
65 | 65 | ||
66 | <select id="getStudentBySchoolId" resultType="com.sincere.haikangface.bean.StudentBean"> | 66 | <select id="getStudentBySchoolId" resultType="com.sincere.haikangface.bean.StudentBean"> |
67 | - select * from SZ_V_School_Student where school_id = #{schoolId} and (student_num is not null or student_num !='') and (photo is not null or photo !='') | 67 | + select * from SZ_V_School_Student where school_id = #{schoolId} and student_num !='' and photo !='' |
68 | + </select> | ||
69 | + | ||
70 | + <select id="getTeacherBySchoolId" resultType="com.sincere.haikangface.bean.StudentBean"> | ||
71 | + select * from SZ_V_School_Teacher where school_id = #{schoolId} and teacher_num !='' and face !='' | ||
68 | </select> | 72 | </select> |
69 | 73 | ||
70 | <select id="getStudentList" resultType="com.sincere.haikangface.bean.StudentBean"> | 74 | <select id="getStudentList" resultType="com.sincere.haikangface.bean.StudentBean"> |
@@ -101,6 +105,23 @@ | @@ -101,6 +105,23 @@ | ||
101 | and student_num != '' and photo !='' | 105 | and student_num != '' and photo !='' |
102 | </select> | 106 | </select> |
103 | 107 | ||
108 | + <select id="getStudentByKeyword" resultType="com.sincere.haikangface.bean.StudentBean"> | ||
109 | + select * from SZ_V_School_Student where school_id = #{schoolId} | ||
110 | + <if test="studentType != null"> | ||
111 | + and student_type = #{studentType} | ||
112 | + </if> | ||
113 | + <if test="sexList != null and sexList.size() >0"> | ||
114 | + and sex in | ||
115 | + <foreach item="item" collection="sexList" separator="," open="(" close=")" index=""> | ||
116 | + #{item} | ||
117 | + </foreach> | ||
118 | + </if> | ||
119 | + <if test="keyword != null and keyword !=''"> | ||
120 | + and class_name concat('%', #{keyword}, '%') | ||
121 | + </if> | ||
122 | + and student_num != '' and photo !='' | ||
123 | + </select> | ||
124 | + | ||
104 | <select id="getStudentCardGroup" resultType="com.sincere.haikangface.bean.StudentBean"> | 125 | <select id="getStudentCardGroup" resultType="com.sincere.haikangface.bean.StudentBean"> |
105 | select * from SZ_V_School_Student where school_id = #{schoolId} | 126 | select * from SZ_V_School_Student where school_id = #{schoolId} |
106 | <if test="studentType != null"> | 127 | <if test="studentType != null"> |
@@ -117,10 +138,6 @@ | @@ -117,10 +138,6 @@ | ||
117 | </if> | 138 | </if> |
118 | </select> | 139 | </select> |
119 | 140 | ||
120 | - <select id="getTeacherList" resultType="com.sincere.haikangface.bean.StudentBean"> | ||
121 | - select * from SZ_V_School_Teacher where school_id = #{schoolId} and teacher_num !='' and face !='' | ||
122 | - </select> | ||
123 | - | ||
124 | <select id="getDeviceIds" resultType="java.lang.String"> | 141 | <select id="getDeviceIds" resultType="java.lang.String"> |
125 | select clint_id from SZ_Attendance where clint_type in(22,18,28,29) and school_id = #{schoolId} | 142 | select clint_id from SZ_Attendance where clint_type in(22,18,28,29) and school_id = #{schoolId} |
126 | <if test="deviceId != null and deviceId.trim() != ''"> | 143 | <if test="deviceId != null and deviceId.trim() != ''"> |
@@ -221,4 +238,21 @@ | @@ -221,4 +238,21 @@ | ||
221 | </if> | 238 | </if> |
222 | </where> | 239 | </where> |
223 | </select> | 240 | </select> |
241 | + | ||
242 | + <select id="getTestVsByKeyword" resultType="com.sincere.haikangface.bean.StudentBean"> | ||
243 | + select * from test_vs where school_id = #{schoolId} | ||
244 | + <if test="studentType != null"> | ||
245 | + and student_type = #{studentType} | ||
246 | + </if> | ||
247 | + <if test="sexList != null and sexList.size() >0"> | ||
248 | + and sex in | ||
249 | + <foreach item="item" collection="sexList" separator="," open="(" close=")" index=""> | ||
250 | + #{item} | ||
251 | + </foreach> | ||
252 | + </if> | ||
253 | + <if test="keyword != null and keyword !=''"> | ||
254 | + and class_name like concat('%', #{keyword}, '%') | ||
255 | + </if> | ||
256 | + and student_num != '' and photo !='' | ||
257 | + </select> | ||
224 | </mapper> | 258 | </mapper> |
cloud/quartz/src/main/resources/logback.xml
@@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
4 | <property name="PROJECT_NAME" value="quartz"/> | 4 | <property name="PROJECT_NAME" value="quartz"/> |
5 | 5 | ||
6 | <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> | 6 | <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> |
7 | - <property name="LOG_HOME" value="C://log"/> | 7 | + <property name="LOG_HOME" value="D://log"/> |
8 | 8 | ||
9 | <!-- 控制台输出 --> | 9 | <!-- 控制台输出 --> |
10 | <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><!--<withJansi>true</withJansi>--> | 10 | <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><!--<withJansi>true</withJansi>--> |