fix(workflow): 修复跨天班次考勤检查逻辑

- 修改 isBackwardCrossDay 方法中判断条件,使用 ShiftEndTime 替代 ShiftStartTime 进行小时比较
- 更新 backward 标志位计算逻辑,统一使用 et 变量进行小时数判断
- 修正跨天班次的判断阈值从 16 点调整为 12 点
This commit is contained in:
2026-05-14 18:12:45 +08:00
parent 9f12a57b26
commit 3d62ebf952

View File

@@ -149,8 +149,8 @@ public class WmsAttendanceCheckServiceImpl implements IWmsAttendanceCheckService
private boolean isBackwardCrossDay(WmsAttendanceScheduleVo schedule) {
if (!isCrossDayShift(schedule)) return false;
if (schedule.getShiftStartTime() == null || schedule.getShiftEndTime() == null) return false;
return toLocalTime(schedule.getShiftStartTime()).getHour() >= 16;
if (schedule.getShiftEndTime() == null) return false;
return toLocalTime(schedule.getShiftEndTime()).getHour() >= 12;
}
private WmsAttendanceRule getActiveRule() {
@@ -309,7 +309,7 @@ public class WmsAttendanceCheckServiceImpl implements IWmsAttendanceCheckService
LocalDateTime windowStart;
LocalDateTime windowEnd;
boolean backward = st != null && et != null && st.getHour() >= 16 && crossDay;
boolean backward = crossDay && et != null && et.getHour() >= 12;
if (crossDay && backward) {
windowStart = LocalDateTime.of(ld, et).minusHours(2);