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