refactor(system): 优化打卡提醒功能
- 新增 editIdsList 用于存储需要更新提醒状态的打卡记录 ID - 只有需要提醒的打卡记录才会被添加到 editIdsList 中 - 修改更新提醒状态的逻辑,仅针对实际需要提醒的记录进行更新
This commit is contained in:
parent
37168b4ae9
commit
201c0e3c02
@ -63,6 +63,7 @@ public class RemindJob {
|
|||||||
//幸苦一天了,研发部全体人员提醒您,记得打卡哦~
|
//幸苦一天了,研发部全体人员提醒您,记得打卡哦~
|
||||||
Map<Long, AttendanceWorkDTO> map = new HashMap<>();
|
Map<Long, AttendanceWorkDTO> map = new HashMap<>();
|
||||||
//打卡时间 - 15分钟之后是否是 大于打卡时间 - 是的话 - 把用户id拿出来 组装好消息发送
|
//打卡时间 - 15分钟之后是否是 大于打卡时间 - 是的话 - 把用户id拿出来 组装好消息发送
|
||||||
|
List<Long> editIdsList = new ArrayList<>();
|
||||||
for (AttendancePunchRecordDO attendancePunchRecordDO : attendancePunchRecordDOS) {
|
for (AttendancePunchRecordDO attendancePunchRecordDO : attendancePunchRecordDOS) {
|
||||||
if (attendancePunchRecordDO.getWorkType().equals(Constants.ZERO) && futureTime.isAfter(attendancePunchRecordDO.getShouldPunchTime())) {
|
if (attendancePunchRecordDO.getWorkType().equals(Constants.ZERO) && futureTime.isAfter(attendancePunchRecordDO.getShouldPunchTime())) {
|
||||||
AttendanceWorkDTO dto = new AttendanceWorkDTO();
|
AttendanceWorkDTO dto = new AttendanceWorkDTO();
|
||||||
@ -70,11 +71,13 @@ public class RemindJob {
|
|||||||
dto.setData(String.format("还有%s钟就要上班了,别忘记打卡哦~",
|
dto.setData(String.format("还有%s钟就要上班了,别忘记打卡哦~",
|
||||||
DateUtil.formatBetween(LocalDateTimeUtil.between(localDateTime, attendancePunchRecordDO.getShouldPunchTime()).toMillis(), BetweenFormatter.Level.MINUTE)));
|
DateUtil.formatBetween(LocalDateTimeUtil.between(localDateTime, attendancePunchRecordDO.getShouldPunchTime()).toMillis(), BetweenFormatter.Level.MINUTE)));
|
||||||
map.put(attendancePunchRecordDO.getUserId(), dto);
|
map.put(attendancePunchRecordDO.getUserId(), dto);
|
||||||
|
editIdsList.add(attendancePunchRecordDO.getId());
|
||||||
} else if (attendancePunchRecordDO.getWorkType().equals(Constants.ONE) && localDateTime.isAfter(attendancePunchRecordDO.getShouldPunchTime())) {
|
} else if (attendancePunchRecordDO.getWorkType().equals(Constants.ONE) && localDateTime.isAfter(attendancePunchRecordDO.getShouldPunchTime())) {
|
||||||
AttendanceWorkDTO dto = new AttendanceWorkDTO();
|
AttendanceWorkDTO dto = new AttendanceWorkDTO();
|
||||||
dto.setWorkTypeStr("下班打卡");
|
dto.setWorkTypeStr("下班打卡");
|
||||||
dto.setData("工作幸苦了,记得打卡哦~");
|
dto.setData("工作幸苦了,记得打卡哦~");
|
||||||
map.put(attendancePunchRecordDO.getUserId(), dto);
|
map.put(attendancePunchRecordDO.getUserId(), dto);
|
||||||
|
editIdsList.add(attendancePunchRecordDO.getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//获取到所有的用户id
|
//获取到所有的用户id
|
||||||
@ -103,11 +106,10 @@ public class RemindJob {
|
|||||||
subscribeMessageSendApi.sendMaMsg(dto);
|
subscribeMessageSendApi.sendMaMsg(dto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<Long> ids = attendancePunchRecordDOS.stream().map(AttendancePunchRecordDO::getId).collect(Collectors.toList());
|
if (CollectionUtil.isNotEmpty(editIdsList)) {
|
||||||
if (CollectionUtil.isNotEmpty(ids)) {
|
|
||||||
attendancePunchRecordService.update(new AttendancePunchRecordDO().setRemindFlag(Constants.TRUE),
|
attendancePunchRecordService.update(new AttendancePunchRecordDO().setRemindFlag(Constants.TRUE),
|
||||||
new LambdaQueryWrapper<AttendancePunchRecordDO>()
|
new LambdaQueryWrapper<AttendancePunchRecordDO>()
|
||||||
.in(AttendancePunchRecordDO::getId, ids));
|
.in(AttendancePunchRecordDO::getId, editIdsList));
|
||||||
}
|
}
|
||||||
// 返回执行成功
|
// 返回执行成功
|
||||||
return ReturnT.SUCCESS;
|
return ReturnT.SUCCESS;
|
||||||
|
Loading…
Reference in New Issue
Block a user