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 overallStatus;
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
@TableLogic
|
|
||||||
private Integer delFlag;
|
private Integer delFlag;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,9 +26,9 @@ public class WmsAttendanceCheckVo {
|
|||||||
@ExcelProperty(value = "班次")
|
@ExcelProperty(value = "班次")
|
||||||
private String shiftName;
|
private String shiftName;
|
||||||
|
|
||||||
@JsonFormat(pattern = "HH:mm")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
private Date p1StartTime;
|
private Date p1StartTime;
|
||||||
@JsonFormat(pattern = "HH:mm")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
private Date p1EndTime;
|
private Date p1EndTime;
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
private Date p1FirstCheck;
|
private Date p1FirstCheck;
|
||||||
@@ -43,9 +43,9 @@ public class WmsAttendanceCheckVo {
|
|||||||
@ExcelProperty(value = "上午扣款")
|
@ExcelProperty(value = "上午扣款")
|
||||||
private BigDecimal p1Deduct;
|
private BigDecimal p1Deduct;
|
||||||
|
|
||||||
@JsonFormat(pattern = "HH:mm")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
private Date p2StartTime;
|
private Date p2StartTime;
|
||||||
@JsonFormat(pattern = "HH:mm")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
private Date p2EndTime;
|
private Date p2EndTime;
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
private Date p2FirstCheck;
|
private Date p2FirstCheck;
|
||||||
|
|||||||
@@ -227,7 +227,9 @@ public class WmsAttendanceCheckServiceImpl implements IWmsAttendanceCheckService
|
|||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
LocalDate ld = toLocalDate(workDate);
|
LocalDate ld = toLocalDate(workDate);
|
||||||
LocalDateTime rangeStart = ld.atStartOfDay();
|
LocalDateTime rangeStart = backward
|
||||||
|
? ld.minusDays(1).atStartOfDay()
|
||||||
|
: ld.atStartOfDay();
|
||||||
LocalDateTime rangeEnd = crossDay && !backward
|
LocalDateTime rangeEnd = crossDay && !backward
|
||||||
? ld.plusDays(1).atTime(LocalTime.of(23, 59, 59))
|
? ld.plusDays(1).atTime(LocalTime.of(23, 59, 59))
|
||||||
: ld.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;
|
boolean backward = crossDay && et != null && et.getHour() >= 12;
|
||||||
|
|
||||||
if (crossDay && backward) {
|
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);
|
windowEnd = LocalDateTime.of(ld, et).plusHours(2);
|
||||||
} else if (crossDay) {
|
} else if (crossDay) {
|
||||||
windowStart = LocalDateTime.of(ld, st).minusHours(2);
|
windowStart = LocalDateTime.of(ld, st).minusHours(2);
|
||||||
|
|||||||
Reference in New Issue
Block a user