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) {
|
private boolean isBackwardCrossDay(WmsAttendanceScheduleVo schedule) {
|
||||||
if (!isCrossDayShift(schedule)) return false;
|
if (!isCrossDayShift(schedule)) return false;
|
||||||
if (schedule.getShiftStartTime() == null || schedule.getShiftEndTime() == null) return false;
|
if (schedule.getShiftEndTime() == null) return false;
|
||||||
return toLocalTime(schedule.getShiftStartTime()).getHour() >= 16;
|
return toLocalTime(schedule.getShiftEndTime()).getHour() >= 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
private WmsAttendanceRule getActiveRule() {
|
private WmsAttendanceRule getActiveRule() {
|
||||||
@@ -309,7 +309,7 @@ public class WmsAttendanceCheckServiceImpl implements IWmsAttendanceCheckService
|
|||||||
LocalDateTime windowStart;
|
LocalDateTime windowStart;
|
||||||
LocalDateTime windowEnd;
|
LocalDateTime windowEnd;
|
||||||
|
|
||||||
boolean backward = st != null && et != null && st.getHour() >= 16 && crossDay;
|
boolean backward = crossDay && et != null && et.getHour() >= 12;
|
||||||
|
|
||||||
if (crossDay && backward) {
|
if (crossDay && backward) {
|
||||||
windowStart = LocalDateTime.of(ld, et).minusHours(2);
|
windowStart = LocalDateTime.of(ld, et).minusHours(2);
|
||||||
|
|||||||
Reference in New Issue
Block a user