fix(workflow): 修复跨天班次考勤检查逻辑
- 修改 isBackwardCrossDay 方法中判断条件,使用 ShiftEndTime 替代 ShiftStartTime 进行小时比较 - 更新 backward 标志位计算逻辑,统一使用 et 变量进行小时数判断 - 修正跨天班次的判断阈值从 16 点调整为 12 点
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user