fix(attendance): 修复考勤检查中的日期时间格式和反向跨天逻辑问题
- 移除了 WmsAttendanceCheck 实体中 delFlag 字段的 TableLogic 注解 - 修复了跨天情况下工作日期范围计算的逻辑错误 - 修正了跨天考勤窗口开始时间的计算方式 - 将考勤检查VO中时间段字段的时间格式从 HH:mm 更新为 yyyy-MM-dd HH:mm
This commit is contained in:
@@ -227,7 +227,9 @@ public class WmsAttendanceCheckServiceImpl implements IWmsAttendanceCheckService
|
||||
return new ArrayList<>();
|
||||
}
|
||||
LocalDate ld = toLocalDate(workDate);
|
||||
LocalDateTime rangeStart = ld.atStartOfDay();
|
||||
LocalDateTime rangeStart = backward
|
||||
? ld.minusDays(1).atStartOfDay()
|
||||
: ld.atStartOfDay();
|
||||
LocalDateTime rangeEnd = crossDay && !backward
|
||||
? ld.plusDays(1).atTime(LocalTime.of(23, 59, 59))
|
||||
: ld.atTime(LocalTime.of(23, 59, 59));
|
||||
@@ -329,7 +331,9 @@ public class WmsAttendanceCheckServiceImpl implements IWmsAttendanceCheckService
|
||||
boolean backward = crossDay && et != null && et.getHour() >= 12;
|
||||
|
||||
if (crossDay && backward) {
|
||||
windowStart = LocalDateTime.of(ld, et).minusHours(2);
|
||||
windowStart = st != null
|
||||
? LocalDateTime.of(ld.minusDays(1), st).minusHours(2)
|
||||
: LocalDateTime.of(ld, et).minusHours(2);
|
||||
windowEnd = LocalDateTime.of(ld, et).plusHours(2);
|
||||
} else if (crossDay) {
|
||||
windowStart = LocalDateTime.of(ld, st).minusHours(2);
|
||||
|
||||
Reference in New Issue
Block a user