| | |
| | | } |
| | | } |
| | | |
| | | if (!CollectionUtils.isEmpty(clockOutPlanListLast)){ |
| | | List<Long> fleetIds = clockOutPlanListLast.stream().map(XpSchedulingDetail::getFleetId).distinct().collect(Collectors.toList()); |
| | | // 查询所有车队的绑定人员 |
| | | List<XpFleetOperations> xpFleetOperations = xpFleetOperationsClient.getOperationsIdsByFleetIds(fleetIds).getData(); |
| | | // 查询班次 |
| | | List<Long> shiftIds = clockOutPlanListLast.stream().map(XpSchedulingDetail::getShiftId).collect(Collectors.toList()); |
| | | List<XpShift> xpShifts = xpShiftService.list(Wrappers.lambdaQuery(XpShift.class) |
| | | .in(XpShift::getId, shiftIds)); |
| | | log.info("========== 查询到{}个车队 ==========", xpFleetOperations.size()); |
| | | |
| | | // 处理下班卡缺卡情况 |
| | | // 过滤当前时间在班次下班打卡时间之后5小时的数据 今日已过下班打卡时间5小时后的班次 |
| | | List<XpShift> shiftListFive = xpShifts.stream().filter(xpShift -> |
| | | DateUtils.stringToLocalDateTime(LocalDate.now().minusDays(1) + " " + xpShift.getEndTime() + ":00").plusHours(5).isBefore(LocalDateTime.now())).collect(Collectors.toList()); |
| | | List<Long> fiveIds = shiftListFive.stream().map(XpShift::getId).collect(Collectors.toList()); |
| | | if(!CollectionUtils.isEmpty(fiveIds)){ |
| | | log.info("========== 进入下班过期的班次 =========="); |
| | | // 获取过期当前班次的排班明细 覆盖 |
| | | List<XpSchedulingDetail> fiveClockOutPlans = clockOutPlanListLast.stream().filter(xpSchedulingDetail -> fiveIds.contains(xpSchedulingDetail.getShiftId())).collect(Collectors.toList()); |
| | | List<Long> fiveFleetIdIn = fiveClockOutPlans.stream().map(XpSchedulingDetail::getFleetId).collect(Collectors.toList()); |
| | | // 查询所有车队的绑定人员 |
| | | if(!CollectionUtils.isEmpty(xpFleetOperations)){ |
| | | List<Long> operationsUserIdsFive = xpFleetOperations.stream().filter(x -> fiveFleetIdIn.contains(x.getFleetId())) |
| | | .map(XpFleetOperations::getOperationsUserId).distinct().collect(Collectors.toList()); |
| | | // 批量查询人员打卡信息 |
| | | List<XpClockIn> clockInListFive = xpClockInService.list(Wrappers.lambdaQuery(XpClockIn.class) |
| | | .in(XpClockIn::getAppUserId, operationsUserIdsFive) |
| | | .isNull(XpClockIn::getClockOutTime)); |
| | | log.info("========== 获取到{}个人员没有下班打卡信息 ==========", clockInListFive.size()); |
| | | if(!CollectionUtils.isEmpty(clockInListFive)){ |
| | | for (XpClockIn xpClockIn : clockInListFive) { |
| | | xpClockIn.setClockOutTime(LocalDateTime.now()); |
| | | xpClockIn.setClockOutResult(3); |
| | | } |
| | | xpClockInService.updateBatchById(clockInListFive); |
| | | log.info("========== 修改为下班缺卡 =========="); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // if (!CollectionUtils.isEmpty(clockOutPlanListLast)){ |
| | | // List<Long> fleetIds = clockOutPlanListLast.stream().map(XpSchedulingDetail::getFleetId).distinct().collect(Collectors.toList()); |
| | | // // 查询所有车队的绑定人员 |
| | | // List<XpFleetOperations> xpFleetOperations = xpFleetOperationsClient.getOperationsIdsByFleetIds(fleetIds).getData(); |
| | | // // 查询班次 |
| | | // List<Long> shiftIds = clockOutPlanListLast.stream().map(XpSchedulingDetail::getShiftId).collect(Collectors.toList()); |
| | | // List<XpShift> xpShifts = xpShiftService.list(Wrappers.lambdaQuery(XpShift.class) |
| | | // .in(XpShift::getId, shiftIds)); |
| | | // log.info("========== 查询到{}个车队 ==========", xpFleetOperations.size()); |
| | | // |
| | | // // 处理下班卡缺卡情况 |
| | | // // 过滤当前时间在班次下班打卡时间之后5小时的数据 今日已过下班打卡时间5小时后的班次 |
| | | // List<XpShift> shiftListFive = xpShifts.stream().filter(xpShift -> |
| | | // DateUtils.stringToLocalDateTime(LocalDate.now().minusDays(1) + " " + xpShift.getEndTime() + ":00").plusHours(5).isBefore(LocalDateTime.now())).collect(Collectors.toList()); |
| | | // List<Long> fiveIds = shiftListFive.stream().map(XpShift::getId).collect(Collectors.toList()); |
| | | // if(!CollectionUtils.isEmpty(fiveIds)){ |
| | | // log.info("========== 进入下班过期的班次 =========="); |
| | | // // 获取过期当前班次的排班明细 覆盖 |
| | | // List<XpSchedulingDetail> fiveClockOutPlans = clockOutPlanListLast.stream().filter(xpSchedulingDetail -> fiveIds.contains(xpSchedulingDetail.getShiftId())).collect(Collectors.toList()); |
| | | // List<Long> fiveFleetIdIn = fiveClockOutPlans.stream().map(XpSchedulingDetail::getFleetId).collect(Collectors.toList()); |
| | | // // 查询所有车队的绑定人员 |
| | | // if(!CollectionUtils.isEmpty(xpFleetOperations)){ |
| | | // List<Long> operationsUserIdsFive = xpFleetOperations.stream().filter(x -> fiveFleetIdIn.contains(x.getFleetId())) |
| | | // .map(XpFleetOperations::getOperationsUserId).distinct().collect(Collectors.toList()); |
| | | // // 批量查询人员打卡信息 |
| | | // List<XpClockIn> clockInListFive = xpClockInService.list(Wrappers.lambdaQuery(XpClockIn.class) |
| | | // .in(XpClockIn::getAppUserId, operationsUserIdsFive) |
| | | // .isNull(XpClockIn::getClockOutTime)); |
| | | // log.info("========== 获取到{}个人员没有下班打卡信息 ==========", clockInListFive.size()); |
| | | // if(!CollectionUtils.isEmpty(clockInListFive)){ |
| | | // for (XpClockIn xpClockIn : clockInListFive) { |
| | | // xpClockIn.setClockOutTime(LocalDateTime.now()); |
| | | // xpClockIn.setClockOutResult(3); |
| | | // } |
| | | // xpClockInService.updateBatchById(clockInListFive); |
| | | // log.info("========== 修改为下班缺卡 =========="); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | } catch (Exception e) { |
| | | log.error("执行打卡检查任务执行失败", e); |