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
ruoyi-admin/src/main/java/com/ruoyi/driver/service/impl/DriverServiceImpl.java
| ... | ... | @@ -284,45 +284,71 @@ public class DriverServiceImpl implements IDriverService { |
| 284 | 284 | Date date = new Date(); |
| 285 | 285 | // 查询当前人员信息库是否存在对应员工数据 |
| 286 | 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 | 290 | for (String jobCode : jobCodes) { |
| 291 | 291 | if (Objects.isNull(existsSet.get(jobCode))) { |
| 292 | - updateFailJobCodes.add(jobCode); | |
| 292 | + insertDriverJobCodeList.add(jobCode); | |
| 293 | 293 | } |
| 294 | 294 | } |
| 295 | 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 | 300 | log.info("开始人脸数据更新"); |
| 313 | 301 | // 数据更新 更新人脸注册标识 更新基本数据 |
| 314 | 302 | for (List<Driver> list : lists) { |
| 315 | 303 | driverMapper.updateSignStatusDriversByJobCodes(list); |
| 316 | 304 | } |
| 305 | + if (insertDrivers.size() > 0) driverMapper.saveDrivers(insertDrivers); | |
| 306 | + | |
| 317 | 307 | log.info("人脸数据更新完成"); |
| 318 | - log.info("未成功更新工号:{}", updateFailJobCodes); | |
| 319 | 308 | log.info("开始删除注册表中对应工号的数据"); |
| 320 | - driverMapper.deleteDeviceIdAssociatedJobCode(jobCodes); | |
| 309 | + if (jobCodes.size() > 0) | |
| 310 | + driverMapper.deleteDeviceIdAssociatedJobCode(jobCodes); | |
| 321 | 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 | 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 | 354 | @Override | ... | ... |
ruoyi-admin/src/main/java/com/ruoyi/job/DriverJob.java
| ... | ... | @@ -181,6 +181,7 @@ public class DriverJob implements InitializingBean { |
| 181 | 181 | } |
| 182 | 182 | |
| 183 | 183 | public Map<String, List<ResponseScheduling>> saveSchedulingToRedis(String getSchedulingInfoUrl, String dateKey) { |
| 184 | + log.info("开始拉取排班:{}", dateKey); | |
| 184 | 185 | List<ResponseScheduling> originSchedulingList = RESTTEMPLATE.exchange( |
| 185 | 186 | getSchedulingInfoUrl, |
| 186 | 187 | HttpMethod.GET, |
| ... | ... | @@ -212,6 +213,7 @@ public class DriverJob implements InitializingBean { |
| 212 | 213 | // DRIVER_SERVICE.saveDriverScheduling(originSchedulingList); |
| 213 | 214 | // 存入redis |
| 214 | 215 | REDIS_CACHE.setCacheMap(DRIVER_SCHEDULING_PRE + dateKey, driverSchedulingMap, 1, TimeUnit.DAYS); |
| 216 | + log.info("拉取排班完毕:{}", dateKey); | |
| 215 | 217 | return driverSchedulingMap; |
| 216 | 218 | } |
| 217 | 219 | ... | ... |
ruoyi-admin/src/main/resources/mapper/driver/DriverMapper.xml
| ... | ... | @@ -252,7 +252,7 @@ |
| 252 | 252 | <update id="updateSignStatusDriversByJobCodes"> |
| 253 | 253 | <foreach collection="list" item="item" separator=";"> |
| 254 | 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 | 256 | where job_code = #{item.jobCode,jdbcType=VARCHAR} |
| 257 | 257 | </foreach> |
| 258 | 258 | </update> |
| ... | ... | @@ -278,10 +278,10 @@ |
| 278 | 278 | </delete> |
| 279 | 279 | <delete id="deleteDeviceIdAssociatedJobCode"> |
| 280 | 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 | 285 | </delete> |
| 286 | 286 | |
| 287 | 287 | |
| ... | ... | @@ -332,4 +332,5 @@ |
| 332 | 332 | device_id = values(device_id) |
| 333 | 333 | </insert> |
| 334 | 334 | |
| 335 | + | |
| 335 | 336 | </mapper> |
| 336 | 337 | \ No newline at end of file | ... | ... |