From 8eac708bacb8f5d76d7b7a62b44880dbc09ef1d2 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 12 May 2026 15:04:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(attendance):=20=E5=80=92=E7=8F=AD=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在WmsAttendanceScheduleMapper.xml中新增shiftStartTime2和shiftEndTime2字段映射 - 修改SQL查询语句以包含新的时间段字段 - 更新WmsAttendanceScheduleVo类添加shiftStartTime2和shiftEndTime2属性 - 修复倒班逻辑计算方式,调整周期天数判断条件 - 注释掉连续两天排班的相关业务逻辑 --- .../domain/vo/WmsAttendanceScheduleVo.java | 13 +++++++ .../WmsAttendanceScheduleServiceImpl.java | 37 ++++++++++--------- .../klp/WmsAttendanceScheduleMapper.xml | 4 +- 3 files changed, 35 insertions(+), 19 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsAttendanceScheduleVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsAttendanceScheduleVo.java index 111f06d9..07c332d7 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsAttendanceScheduleVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsAttendanceScheduleVo.java @@ -102,6 +102,19 @@ public class WmsAttendanceScheduleVo { @ExcelProperty(value = "结束时间") private java.util.Date shiftEndTime; + /** + * 班次开始时间2 + */ + @JsonFormat(pattern = "HH:mm") + @ExcelProperty(value = "开始时间2") + private java.util.Date shiftStartTime2; + + /** + * 班次结束时间2 + */ + @JsonFormat(pattern = "HH:mm") + @ExcelProperty(value = "结束时间2") + private java.util.Date shiftEndTime2; /** * 工时 */ diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsAttendanceScheduleServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsAttendanceScheduleServiceImpl.java index 513cb453..8ceb4a8c 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsAttendanceScheduleServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsAttendanceScheduleServiceImpl.java @@ -228,7 +228,8 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS // 判断是否为倒班日 long cycleDays = rule.getCycleDays() != null ? rule.getCycleDays() : 10; - boolean isChangeDay = (daysFromStart + 1) % cycleDays == 0; + // boolean isChangeDay = (daysFromStart + 1) % cycleDays == 0; + boolean isChangeDay = daysFromStart > 0 && daysFromStart % cycleDays == 0; if (isChangeDay) { // 倒班日 @@ -241,24 +242,24 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS schedule.setShiftId(rule.getShiftB()); schedule.setShiftName(shiftB.getShiftName()); } - // 下一天也使用倒班班次(工作18小时) - LocalDate nextDay = currentDate.plusDays(1); - if (!nextDay.isAfter(endDate) && !isScheduleExists(bo.getUserId(), nextDay)) { - WmsAttendanceSchedule nextSchedule = new WmsAttendanceSchedule(); - nextSchedule.setUserId(bo.getUserId()); - nextSchedule.setWorkDate(java.sql.Date.valueOf(nextDay)); - if (changeShiftB != null) { - nextSchedule.setShiftId(rule.getChangeShiftBId()); - nextSchedule.setShiftName(changeShiftB.getShiftName()); - } else { - nextSchedule.setShiftId(rule.getShiftB()); - nextSchedule.setShiftName(shiftB.getShiftName()); - } - schedules.add(nextSchedule); - } +// // 下一天也使用倒班班次(工作18小时) +// LocalDate nextDay = currentDate.plusDays(1); +// if (!nextDay.isAfter(endDate) && !isScheduleExists(bo.getUserId(), nextDay)) { +// WmsAttendanceSchedule nextSchedule = new WmsAttendanceSchedule(); +// nextSchedule.setUserId(bo.getUserId()); +// nextSchedule.setWorkDate(java.sql.Date.valueOf(nextDay)); +// if (changeShiftB != null) { +// nextSchedule.setShiftId(rule.getChangeShiftBId()); +// nextSchedule.setShiftName(changeShiftB.getShiftName()); +// } else { +// nextSchedule.setShiftId(rule.getShiftB()); +// nextSchedule.setShiftName(shiftB.getShiftName()); +// } +// schedules.add(nextSchedule); +// } isCurrentShiftA = false; - currentDate = currentDate.plusDays(1); // 跳过下一天,因为已经处理了 - daysFromStart++; +// currentDate = currentDate.plusDays(1); // 跳过下一天,因为已经处理了 +// daysFromStart++; } else { // 夜班转白班 if (changeShiftA != null) { diff --git a/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml index 52697c62..af0145d2 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml @@ -33,13 +33,15 @@ + + SELECT s.schedule_id, s.user_id, s.work_date, s.shift_id, s.shift_name, s.shift_group, s.remark, e.name as employee_name, e.dept as employee_dept, e.job_type as employee_job_type, - sh.shift_type, sh.start_time as shift_start_time, sh.end_time as shift_end_time, sh.work_hours + sh.shift_type, sh.start_time as shift_start_time, sh.end_time as shift_end_time, sh.start_time2 as shift_start_time2, sh.end_time2 as shift_end_time2, sh.work_hours FROM wms_attendance_schedule s LEFT JOIN wms_employee_info e ON s.user_id = e.info_id AND e.del_flag = 0 LEFT JOIN wms_attendance_shift sh ON s.shift_id = sh.shift_id AND sh.del_flag = 0