From 95c11fbc9a456b1608117042ab2dc2345a1f37b0 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sat, 9 May 2026 14:23:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(schedule):=20=E6=B7=BB=E5=8A=A0=E6=8E=92?= =?UTF-8?q?=E7=8F=AD=E7=AE=A1=E7=90=86=E7=9A=84=E6=97=B6=E9=97=B4=E6=AE=B5?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 WmsAttendanceScheduleBo 中新增 startDate 和 endDate 字段用于时间段筛选 - 更新 mapper 接口方法参数,支持时间段范围查询 - 修改 XML 映射文件,添加时间段条件判断逻辑 - 重构服务实现类,优化分页查询逻辑并支持时间段筛选 - 完善查询方法,统一时间段参数传递机制 --- .../domain/bo/WmsAttendanceScheduleBo.java | 14 ++++++++ .../mapper/WmsAttendanceScheduleMapper.java | 16 +++++---- .../WmsAttendanceScheduleServiceImpl.java | 26 +++++--------- .../klp/WmsAttendanceScheduleMapper.xml | 34 +++++++++++++------ 4 files changed, 55 insertions(+), 35 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsAttendanceScheduleBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsAttendanceScheduleBo.java index 207a3be9..f8422a64 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsAttendanceScheduleBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsAttendanceScheduleBo.java @@ -7,6 +7,7 @@ import javax.validation.constraints.*; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; /** * 排班(谁在哪天上班)业务对象 wms_attendance_schedule @@ -54,5 +55,18 @@ public class WmsAttendanceScheduleBo extends BaseEntity { */ private String remark; + /** + * 开始日期(时间段筛选) + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date startDate; + + /** + * 结束日期(时间段筛选) + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date endDate; } diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsAttendanceScheduleMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsAttendanceScheduleMapper.java index 0e848296..73e5d0d5 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsAttendanceScheduleMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsAttendanceScheduleMapper.java @@ -1,10 +1,13 @@ package com.klp.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.klp.domain.WmsAttendanceSchedule; +import com.klp.domain.bo.WmsAttendanceScheduleBo; import com.klp.domain.vo.WmsAttendanceScheduleVo; import com.klp.common.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -18,18 +21,17 @@ public interface WmsAttendanceScheduleMapper extends BaseMapperPlus selectScheduleWithDetails(@Param("userId") Long userId, + List selectScheduleWithDetails(@Param("userId") Long userId, @Param("workDate") java.util.Date workDate, - @Param("shiftId") Long shiftId); + @Param("shiftId") Long shiftId, + @Param("startDate") Date startDate, + @Param("endDate") Date endDate); /** * 分页查询排班列表(关联员工和班次信息) */ - List selectScheduleWithDetailsPage(@Param("userId") Long userId, - @Param("workDate") java.util.Date workDate, - @Param("shiftId") Long shiftId, - @Param("shiftName") String shiftName, - @Param("shiftGroup") String shiftGroup); + Page selectScheduleWithDetailsPage(Page page, + @Param("bo") WmsAttendanceScheduleBo bo); /** * 批量插入排班 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 b6b27ddd..513cb453 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 @@ -58,7 +58,7 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS // 使用关联查询获取详细信息 List list = baseMapper.selectScheduleWithDetails( - schedule.getUserId(), schedule.getWorkDate(), schedule.getShiftId()); + schedule.getUserId(), schedule.getWorkDate(), schedule.getShiftId(),null, null); return list.isEmpty() ? null : list.get(0); } @@ -68,23 +68,14 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS */ @Override public TableDataInfo queryPageList(WmsAttendanceScheduleBo bo, PageQuery pageQuery) { - Page page = pageQuery.build(); - List list = baseMapper.selectScheduleWithDetailsPage( - bo.getUserId(), bo.getWorkDate(), bo.getShiftId(), bo.getShiftName(), bo.getShiftGroup()); + // 1. 构建 MP 标准分页对象 + Page page = pageQuery.build(); - // 手动分页处理 - int total = list.size(); - int startNum = (int) ((page.getCurrent() - 1) * page.getSize()); - int endNum = Math.min(startNum + (int) page.getSize(), total); + // 2. 调用 Mapper + baseMapper.selectScheduleWithDetailsPage(page, bo); - List pageList = new ArrayList<>(); - if (startNum < total) { - pageList = list.subList(startNum, endNum); - } - - Page result = new Page<>(page.getCurrent(), page.getSize(), total); - result.setRecords(pageList); - return TableDataInfo.build(result); + // 3. 直接返回 + return TableDataInfo.build(page); } /** @@ -92,7 +83,8 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS */ @Override public List queryList(WmsAttendanceScheduleBo bo) { - return baseMapper.selectScheduleWithDetails(bo.getUserId(), bo.getWorkDate(), bo.getShiftId()); + return baseMapper.selectScheduleWithDetails(bo.getUserId(), bo.getWorkDate(), bo.getShiftId(), + bo.getStartDate(), bo.getEndDate()); } /** diff --git a/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml index 974620b7..52697c62 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml @@ -57,25 +57,37 @@ AND s.shift_id = #{shiftId} + + AND s.work_date >= #{startDate} + + + AND s.work_date <= #{endDate} + ORDER BY s.work_date DESC, s.user_id - - - AND s.user_id = #{userId} + + AND s.user_id = #{bo.userId} - - AND s.work_date = #{workDate} + + AND s.work_date = #{bo.workDate} - - AND s.shift_id = #{shiftId} + + AND s.shift_id = #{bo.shiftId} - - AND s.shift_name LIKE CONCAT('%', #{shiftName}, '%') + + AND s.shift_name LIKE CONCAT('%', #{bo.shiftName}, '%') - - AND s.shift_group = #{shiftGroup} + + AND s.shift_group = #{bo.shiftGroup} + + + AND s.work_date >= #{bo.startDate} + + + AND s.work_date <= #{bo.endDate} ORDER BY s.work_date DESC, s.user_id