Commit db35f26fbbd95ed690d9e7ec7e9ff65ac1d40ce1
1 parent
3168b6ae
fix: 修改人脸更新接口逻辑
Showing
4 changed files
with
58 additions
and
28 deletions
ruoyi-admin/src/main/java/com/ruoyi/driver/mapper/DriverMapper.java
| @@ -102,4 +102,5 @@ public interface DriverMapper | @@ -102,4 +102,5 @@ public interface DriverMapper | ||
| 102 | List<String> queryJobCodesIsExists(@Param("jobCodes") List<String> jobCodes); | 102 | List<String> queryJobCodesIsExists(@Param("jobCodes") List<String> jobCodes); |
| 103 | 103 | ||
| 104 | void updateDriverInfoByJobCodes(@Param("drivers") List<Driver> drivers); | 104 | void updateDriverInfoByJobCodes(@Param("drivers") List<Driver> drivers); |
| 105 | + | ||
| 105 | } | 106 | } |
ruoyi-admin/src/main/java/com/ruoyi/driver/service/impl/DriverServiceImpl.java
| @@ -284,45 +284,71 @@ public class DriverServiceImpl implements IDriverService { | @@ -284,45 +284,71 @@ public class DriverServiceImpl implements IDriverService { | ||
| 284 | Date date = new Date(); | 284 | Date date = new Date(); |
| 285 | // 查询当前人员信息库是否存在对应员工数据 | 285 | // 查询当前人员信息库是否存在对应员工数据 |
| 286 | List<String> jobCodes = vo.getFaceDataList().stream().map(FaceUpdateReqVo.FaceData::getJobCode).collect(Collectors.toList()); | 286 | List<String> jobCodes = vo.getFaceDataList().stream().map(FaceUpdateReqVo.FaceData::getJobCode).collect(Collectors.toList()); |
| 287 | - Map<String,String> existsSet = driverMapper.queryJobCodesIsExists(jobCodes).stream().collect(Collectors.toMap(item ->item,s->s)); | 287 | + Map<String, String> existsSet = driverMapper.queryJobCodesIsExists(jobCodes).stream().collect(Collectors.toMap(item -> item, s -> s)); |
| 288 | // 更新失败人员工号列表 | 288 | // 更新失败人员工号列表 |
| 289 | - List<String> updateFailJobCodes = new ArrayList<>(); | 289 | + List<String> insertDriverJobCodeList = new ArrayList<>(); |
| 290 | for (String jobCode : jobCodes) { | 290 | for (String jobCode : jobCodes) { |
| 291 | if (Objects.isNull(existsSet.get(jobCode))) { | 291 | if (Objects.isNull(existsSet.get(jobCode))) { |
| 292 | - updateFailJobCodes.add(jobCode); | 292 | + insertDriverJobCodeList.add(jobCode); |
| 293 | } | 293 | } |
| 294 | } | 294 | } |
| 295 | jobCodes = new ArrayList<>(existsSet.values()); | 295 | jobCodes = new ArrayList<>(existsSet.values()); |
| 296 | 296 | ||
| 297 | - List<Driver> drivers = vo.getFaceDataList().stream().map(item -> { | ||
| 298 | - Driver driver = new Driver(); | ||
| 299 | - driver.setPosts(item.getPosts()); | ||
| 300 | - driver.setJobCode(item.getJobCode()); | ||
| 301 | - try { | ||
| 302 | - driver.setImage(getNewImageUrl(item.getJobCode(), item.getImageUrl())); | ||
| 303 | - } catch (IOException e) { | ||
| 304 | - log.info(e.getMessage()); | ||
| 305 | - throw new RuntimeException(e); | ||
| 306 | - } | ||
| 307 | - driver.setPersonnelName(item.getName()); | ||
| 308 | - driver.setUpdateTime(date); | ||
| 309 | - return driver; | ||
| 310 | - }).filter(item -> !Objects.isNull(existsSet.get(item.getJobCode()))).collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(s -> s.getJobCode()))), ArrayList::new)); | ||
| 311 | - List<List<Driver>> lists = ListUtils.splitList(drivers, 400); | 297 | + List<Driver> updateDrivers = getDriversByJobCode(vo, date, existsSet, true); |
| 298 | + List<Driver> insertDrivers = getDriversByJobCode(vo, date, existsSet, false); | ||
| 299 | + List<List<Driver>> lists = ListUtils.splitList(updateDrivers, 400); | ||
| 312 | log.info("开始人脸数据更新"); | 300 | log.info("开始人脸数据更新"); |
| 313 | // 数据更新 更新人脸注册标识 更新基本数据 | 301 | // 数据更新 更新人脸注册标识 更新基本数据 |
| 314 | for (List<Driver> list : lists) { | 302 | for (List<Driver> list : lists) { |
| 315 | driverMapper.updateSignStatusDriversByJobCodes(list); | 303 | driverMapper.updateSignStatusDriversByJobCodes(list); |
| 316 | } | 304 | } |
| 305 | + if (insertDrivers.size() > 0) driverMapper.saveDrivers(insertDrivers); | ||
| 306 | + | ||
| 317 | log.info("人脸数据更新完成"); | 307 | log.info("人脸数据更新完成"); |
| 318 | - log.info("未成功更新工号:{}", updateFailJobCodes); | ||
| 319 | log.info("开始删除注册表中对应工号的数据"); | 308 | log.info("开始删除注册表中对应工号的数据"); |
| 320 | - driverMapper.deleteDeviceIdAssociatedJobCode(jobCodes); | 309 | + if (jobCodes.size() > 0) |
| 310 | + driverMapper.deleteDeviceIdAssociatedJobCode(jobCodes); | ||
| 321 | log.info("删除注册表中对应工号的数据结束"); | 311 | log.info("删除注册表中对应工号的数据结束"); |
| 322 | - if (updateFailJobCodes.size() != 0) | ||
| 323 | - return Result.OK(CODE_207, updateFailJobCodes); | 312 | + |
| 313 | + return Result.OK(); | ||
| 314 | + } | ||
| 315 | + | ||
| 316 | + private ArrayList<Driver> getDriversByJobCode(FaceUpdateReqVo vo, Date date, Map<String, String> existsSet, Boolean updateFlag) { | ||
| 317 | + if (updateFlag) | ||
| 318 | + return vo.getFaceDataList().stream().map(item -> { | ||
| 319 | + Driver driver = new Driver(); | ||
| 320 | + driver.setPosts(item.getPosts()); | ||
| 321 | + driver.setJobCode(item.getJobCode()); | ||
| 322 | + driver.setFleetName(item.getFleetName()); | ||
| 323 | + driver.setLineName(item.getLineName()); | ||
| 324 | + try { | ||
| 325 | + driver.setImage(getNewImageUrl(item.getJobCode(), item.getImageUrl())); | ||
| 326 | + } catch (IOException e) { | ||
| 327 | + log.info(e.getMessage()); | ||
| 328 | + throw new RuntimeException(e); | ||
| 329 | + } | ||
| 330 | + driver.setPersonnelName(item.getName()); | ||
| 331 | + driver.setUpdateTime(date); | ||
| 332 | + return driver; | ||
| 333 | + }).filter(item -> !Objects.isNull(existsSet.get(item.getJobCode()))).collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(s -> s.getJobCode()))), ArrayList::new)); | ||
| 324 | else | 334 | else |
| 325 | - return Result.OK(); | 335 | + return vo.getFaceDataList().stream().map(item -> { |
| 336 | + Driver driver = new Driver(); | ||
| 337 | + driver.setPosts(item.getPosts()); | ||
| 338 | + driver.setJobCode(item.getJobCode()); | ||
| 339 | + driver.setFleetName(item.getFleetName()); | ||
| 340 | + driver.setLineName(item.getLineName()); | ||
| 341 | + try { | ||
| 342 | + driver.setImage(getNewImageUrl(item.getJobCode(), item.getImageUrl())); | ||
| 343 | + } catch (IOException e) { | ||
| 344 | + log.info(e.getMessage()); | ||
| 345 | + throw new RuntimeException(e); | ||
| 346 | + } | ||
| 347 | + driver.setPersonnelName(item.getName()); | ||
| 348 | + driver.setUpdateTime(date); | ||
| 349 | + return driver; | ||
| 350 | + }).filter(item -> Objects.isNull(existsSet.get(item.getJobCode()))).collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(s -> s.getJobCode()))), ArrayList::new)); | ||
| 351 | + | ||
| 326 | } | 352 | } |
| 327 | 353 | ||
| 328 | @Override | 354 | @Override |
ruoyi-admin/src/main/java/com/ruoyi/job/DriverJob.java
| @@ -181,6 +181,7 @@ public class DriverJob implements InitializingBean { | @@ -181,6 +181,7 @@ public class DriverJob implements InitializingBean { | ||
| 181 | } | 181 | } |
| 182 | 182 | ||
| 183 | public Map<String, List<ResponseScheduling>> saveSchedulingToRedis(String getSchedulingInfoUrl, String dateKey) { | 183 | public Map<String, List<ResponseScheduling>> saveSchedulingToRedis(String getSchedulingInfoUrl, String dateKey) { |
| 184 | + log.info("开始拉取排班:{}", dateKey); | ||
| 184 | List<ResponseScheduling> originSchedulingList = RESTTEMPLATE.exchange( | 185 | List<ResponseScheduling> originSchedulingList = RESTTEMPLATE.exchange( |
| 185 | getSchedulingInfoUrl, | 186 | getSchedulingInfoUrl, |
| 186 | HttpMethod.GET, | 187 | HttpMethod.GET, |
| @@ -212,6 +213,7 @@ public class DriverJob implements InitializingBean { | @@ -212,6 +213,7 @@ public class DriverJob implements InitializingBean { | ||
| 212 | // DRIVER_SERVICE.saveDriverScheduling(originSchedulingList); | 213 | // DRIVER_SERVICE.saveDriverScheduling(originSchedulingList); |
| 213 | // 存入redis | 214 | // 存入redis |
| 214 | REDIS_CACHE.setCacheMap(DRIVER_SCHEDULING_PRE + dateKey, driverSchedulingMap, 1, TimeUnit.DAYS); | 215 | REDIS_CACHE.setCacheMap(DRIVER_SCHEDULING_PRE + dateKey, driverSchedulingMap, 1, TimeUnit.DAYS); |
| 216 | + log.info("拉取排班完毕:{}", dateKey); | ||
| 215 | return driverSchedulingMap; | 217 | return driverSchedulingMap; |
| 216 | } | 218 | } |
| 217 | 219 |
ruoyi-admin/src/main/resources/mapper/driver/DriverMapper.xml
| @@ -252,7 +252,7 @@ | @@ -252,7 +252,7 @@ | ||
| 252 | <update id="updateSignStatusDriversByJobCodes"> | 252 | <update id="updateSignStatusDriversByJobCodes"> |
| 253 | <foreach collection="list" item="item" separator=";"> | 253 | <foreach collection="list" item="item" separator=";"> |
| 254 | update driver set face_sign_in = 1, | 254 | update driver set face_sign_in = 1, |
| 255 | - personnel_name = #{item.personnelName,jdbcType=VARCHAR},posts = #{item.posts,jdbcType=VARCHAR},image = #{item.image,jdbcType=VARCHAR},update_time = #{item.updateTime} | 255 | + personnel_name = #{item.personnelName,jdbcType=VARCHAR},posts = #{item.posts,jdbcType=VARCHAR},image = #{item.image,jdbcType=VARCHAR},update_time = #{item.updateTime},fleet_name = #{item.fleetName},line_name = #{item.lineName} |
| 256 | where job_code = #{item.jobCode,jdbcType=VARCHAR} | 256 | where job_code = #{item.jobCode,jdbcType=VARCHAR} |
| 257 | </foreach> | 257 | </foreach> |
| 258 | </update> | 258 | </update> |
| @@ -278,10 +278,10 @@ | @@ -278,10 +278,10 @@ | ||
| 278 | </delete> | 278 | </delete> |
| 279 | <delete id="deleteDeviceIdAssociatedJobCode"> | 279 | <delete id="deleteDeviceIdAssociatedJobCode"> |
| 280 | delete from driver_face_device_id where | 280 | delete from driver_face_device_id where |
| 281 | - job_code in | ||
| 282 | - ( <foreach collection="jobCodes" item="item" separator=","> | ||
| 283 | - #{item} | ||
| 284 | - </foreach> ) | 281 | + job_code in |
| 282 | + ( <foreach collection="jobCodes" item="item" separator=","> | ||
| 283 | + #{item} | ||
| 284 | + </foreach> ) | ||
| 285 | </delete> | 285 | </delete> |
| 286 | 286 | ||
| 287 | 287 | ||
| @@ -332,4 +332,5 @@ | @@ -332,4 +332,5 @@ | ||
| 332 | device_id = values(device_id) | 332 | device_id = values(device_id) |
| 333 | </insert> | 333 | </insert> |
| 334 | 334 | ||
| 335 | + | ||
| 335 | </mapper> | 336 | </mapper> |
| 336 | \ No newline at end of file | 337 | \ No newline at end of file |