Commit 488d555422348b80e57c96441dad09941a8b48fd
1 parent
16f71e97
fix: 全量更新人员信息接口
Showing
4 changed files
with
40 additions
and
3 deletions
Bsth-admin/src/main/java/com/ruoyi/driver/controller/DriverController.java
| ... | ... | @@ -213,4 +213,12 @@ public class DriverController extends BaseController { |
| 213 | 213 | return driverService.faceRegistrationFeedback(vo.getDeviceId(), vo.getJobCodes()); |
| 214 | 214 | } |
| 215 | 215 | |
| 216 | + /** | |
| 217 | + * 全量更新信息 | |
| 218 | + */ | |
| 219 | + @GetMapping("/allUpdateDriverInfo") | |
| 220 | + public AjaxResult allUpdateDriverInfo(HttpServletRequest request) { | |
| 221 | + return driverService.allUpdateDriverInfo(request); | |
| 222 | + } | |
| 223 | + | |
| 216 | 224 | } | ... | ... |
Bsth-admin/src/main/java/com/ruoyi/driver/service/IDriverService.java
Bsth-admin/src/main/java/com/ruoyi/driver/service/impl/DriverServiceImpl.java
| ... | ... | @@ -35,6 +35,8 @@ import com.ruoyi.pojo.request.DriverSignInRequestVo; |
| 35 | 35 | import com.ruoyi.pojo.request.FaceUpdateReqVo; |
| 36 | 36 | import com.ruoyi.pojo.response.DriverResponseVo; |
| 37 | 37 | import com.ruoyi.pojo.response.ResponseSchedulingDto; |
| 38 | +import com.ruoyi.pojo.response.personnel.PersonnelResultResponseVo; | |
| 39 | +import com.ruoyi.pojo.response.personnel.TokenResponseVo; | |
| 38 | 40 | import com.ruoyi.service.SchedulingService; |
| 39 | 41 | import com.ruoyi.service.ThreadJobService; |
| 40 | 42 | import com.ruoyi.system.domain.SysNotice; |
| ... | ... | @@ -75,6 +77,9 @@ public class DriverServiceImpl implements IDriverService { |
| 75 | 77 | |
| 76 | 78 | private Logger log = LoggerFactory.getLogger(DriverServiceImpl.class); |
| 77 | 79 | |
| 80 | + @Value("${api.personnel.token.tokenUrl}") | |
| 81 | + private String tokenUrl; | |
| 82 | + | |
| 78 | 83 | @Resource |
| 79 | 84 | private NowSchedulingCache cache; |
| 80 | 85 | |
| ... | ... | @@ -588,6 +593,28 @@ public class DriverServiceImpl implements IDriverService { |
| 588 | 593 | driverMapper.updateDriverBaseInfoByJobCodes(drivers, filterImage); |
| 589 | 594 | } |
| 590 | 595 | |
| 596 | + @Override | |
| 597 | + public AjaxResult allUpdateDriverInfo(HttpServletRequest request) { | |
| 598 | + String header = request.getHeader("X-TOKEN-AUTH"); | |
| 599 | + if (!"gzjUse".equals(header)) { | |
| 600 | + throw new RuntimeException("错误的认证"); | |
| 601 | + } | |
| 602 | + Date date = new Date(); | |
| 603 | + int pageSize = 100; | |
| 604 | + TokenResponseVo tokenVo = DriverJob.getToken(tokenUrl); | |
| 605 | + PersonnelResultResponseVo vo = DriverJob.getPersonInfo(tokenVo.getAccessToken(), pageSize, 1); | |
| 606 | + int countPage = vo.getTotalCount() / pageSize; | |
| 607 | + countPage = vo.getTotalCount() % pageSize == 0 ? countPage : countPage + 1; | |
| 608 | + List<Driver> drivers = DriverJob.getDrivers(date, vo); | |
| 609 | + for (int i = 2; i <= countPage; i++) { | |
| 610 | + drivers.addAll(DriverJob.getDrivers(date, DriverJob.getPersonInfo(tokenVo.getAccessToken(), 100, i))); | |
| 611 | + } | |
| 612 | + if (CollectionUtil.isNotEmpty(drivers)) { | |
| 613 | + driverMapper.updateDriverBaseInfoByJobCodes(drivers, 1); | |
| 614 | + } | |
| 615 | + return AjaxResult.success(); | |
| 616 | + } | |
| 617 | + | |
| 591 | 618 | private void sendNotice(List<DriverSignInRecommendation> nowTimerList) { |
| 592 | 619 | List<SysNotice> noticeList = new ArrayList<>(nowTimerList.size()); |
| 593 | 620 | for (DriverSignInRecommendation item : nowTimerList) { | ... | ... |
Bsth-admin/src/main/java/com/ruoyi/job/DriverJob.java
| ... | ... | @@ -410,7 +410,7 @@ public class DriverJob implements InitializingBean { |
| 410 | 410 | drivers.addAll(getDrivers(date, getPersonInfo(accessToken, 100, i))); |
| 411 | 411 | } |
| 412 | 412 | List<String> jobList = drivers.stream().map(Driver::getJobCode).collect(Collectors.toList()); |
| 413 | - DRIVER_SERVICE.updateDriverBaseInfoByJobCodes(drivers, 1); | |
| 413 | +// DRIVER_SERVICE.updateDriverBaseInfoByJobCodes(drivers, 1); | |
| 414 | 414 | // 删除离职员工 |
| 415 | 415 | handleNotEmptyJob(jobList); |
| 416 | 416 | // 过滤已经存在的员工工号 |
| ... | ... | @@ -442,7 +442,7 @@ public class DriverJob implements InitializingBean { |
| 442 | 442 | log.info("更新人脸注册状态完毕"); |
| 443 | 443 | } |
| 444 | 444 | |
| 445 | - private static List<Driver> getDrivers(Date date, PersonnelResultResponseVo vo) { | |
| 445 | + public static List<Driver> getDrivers(Date date, PersonnelResultResponseVo vo) { | |
| 446 | 446 | List<Driver> drivers = vo.getData().stream().map(item -> { |
| 447 | 447 | Driver driver = new Driver(); |
| 448 | 448 | FormData formData = item.getFormData(); |
| ... | ... | @@ -460,7 +460,7 @@ public class DriverJob implements InitializingBean { |
| 460 | 460 | return drivers; |
| 461 | 461 | } |
| 462 | 462 | |
| 463 | - private static PersonnelResultResponseVo getPersonInfo(String accessToken, Integer pageSize, Integer currentPage) { | |
| 463 | + public static PersonnelResultResponseVo getPersonInfo(String accessToken, Integer pageSize, Integer currentPage) { | |
| 464 | 464 | RestTemplate restTemplate = new RestTemplate(); |
| 465 | 465 | String url = "https://api.dingtalk.com/v1.0/yida/forms/instances/search"; |
| 466 | 466 | PersonnelRequestVo vo = new PersonnelRequestVo(); | ... | ... |