fix(attendance): 修复考勤检查中的日期时间格式和反向跨天逻辑问题
- 移除了 WmsAttendanceCheck 实体中 delFlag 字段的 TableLogic 注解 - 修复了跨天情况下工作日期范围计算的逻辑错误 - 修正了跨天考勤窗口开始时间的计算方式 - 将考勤检查VO中时间段字段的时间格式从 HH:mm 更新为 yyyy-MM-dd HH:mm
This commit is contained in:
@@ -49,6 +49,5 @@ public class WmsAttendanceCheck extends BaseEntity {
|
||||
private String overallStatus;
|
||||
private String remark;
|
||||
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
}
|
||||
|
||||
@@ -26,9 +26,9 @@ public class WmsAttendanceCheckVo {
|
||||
@ExcelProperty(value = "班次")
|
||||
private String shiftName;
|
||||
|
||||
@JsonFormat(pattern = "HH:mm")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private Date p1StartTime;
|
||||
@JsonFormat(pattern = "HH:mm")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private Date p1EndTime;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private Date p1FirstCheck;
|
||||
@@ -43,9 +43,9 @@ public class WmsAttendanceCheckVo {
|
||||
@ExcelProperty(value = "上午扣款")
|
||||
private BigDecimal p1Deduct;
|
||||
|
||||
@JsonFormat(pattern = "HH:mm")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private Date p2StartTime;
|
||||
@JsonFormat(pattern = "HH:mm")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private Date p2EndTime;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private Date p2FirstCheck;
|
||||
|
||||
@@ -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