Commit 38841d26587e26db1af3f96923126de6a646532c
1 parent
f1e0c386
Exists in
master
修改提交
Showing
14 changed files
with
259 additions
and
83 deletions
Show diff stats
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 |