From 6b36697e56dee7d787b9003ab2aab069eb6b6568 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 27 May 2026 17:12:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms/attendance):=20=E4=B8=BA=E8=80=83?= =?UTF-8?q?=E5=8B=A4=E6=8E=92=E7=8F=AD=E6=9F=A5=E8=AF=A2=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=91=98=E5=B7=A5=E5=A7=93=E5=90=8D=E5=92=8C=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=A8=A1=E7=B3=8A=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在WmsAttendanceScheduleBo中新增employeeName和employeeDept字段用于接收模糊查询条件。在WmsAttendanceScheduleServiceImpl中新增resolveEmployeeNameAndDept私有方法,根据姓名和部门条件查询员工ID集合,并自动设置到bo的userIds字段中,实现通过员工姓名和部门名称进行模糊筛选考勤排班数据。 --- .../domain/bo/WmsAttendanceScheduleBo.java | 10 +++++++ .../WmsAttendanceScheduleServiceImpl.java | 30 ++++++++++++++++++- .../klp/WmsAttendanceScheduleMapper.xml | 6 ++++ 3 files changed, 45 insertions(+), 1 deletion(-) 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 84d6c7c6..67c791b6 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 @@ -31,6 +31,16 @@ public class WmsAttendanceScheduleBo extends BaseEntity { */ private Long userId; + /** + * 员工姓名(模糊查询) + */ + private String employeeName; + + /** + * 部门名称(模糊查询) + */ + private String employeeDept; + /** * 日期 */ 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 bd031c7a..d5e05fad 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 @@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; import com.klp.domain.vo.WmsAttendanceShiftRuleVo; import com.klp.domain.vo.WmsAttendanceShiftVo; +import com.klp.domain.WmsEmployeeInfo; +import com.klp.mapper.WmsEmployeeInfoMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -42,6 +44,7 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS private final WmsAttendanceScheduleMapper baseMapper; private final IWmsAttendanceShiftRuleService shiftRuleService; private final IWmsAttendanceShiftService shiftService; + private final WmsEmployeeInfoMapper employeeInfoMapper; /** * 查询排班(谁在哪天上班) @@ -65,7 +68,7 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS */ @Override public TableDataInfo queryPageList(WmsAttendanceScheduleBo bo, PageQuery pageQuery) { - // 1. 构建 MP 标准分页对象 + resolveEmployeeNameAndDept(bo); Page page = pageQuery.build(); // 2. 调用 Mapper @@ -80,10 +83,35 @@ public class WmsAttendanceScheduleServiceImpl implements IWmsAttendanceScheduleS */ @Override public List queryList(WmsAttendanceScheduleBo bo) { + resolveEmployeeNameAndDept(bo); return baseMapper.selectScheduleWithDetails(bo.getUserId(), bo.getWorkDate(), bo.getShiftId(), bo.getStartDate(), bo.getEndDate(), bo.getUserIds()); } + private void resolveEmployeeNameAndDept(WmsAttendanceScheduleBo bo) { + boolean hasName = StringUtils.isNotBlank(bo.getEmployeeName()); + boolean hasDept = StringUtils.isNotBlank(bo.getEmployeeDept()); + if (!hasName && !hasDept) { + return; + } + LambdaQueryWrapper qw = Wrappers.lambdaQuery(); + qw.select(WmsEmployeeInfo::getInfoId); + if (hasName) { + qw.like(WmsEmployeeInfo::getName, bo.getEmployeeName()); + } + if (hasDept) { + qw.like(WmsEmployeeInfo::getDept, bo.getEmployeeDept()); + } + List ids = employeeInfoMapper.selectList(qw).stream() + .map(WmsEmployeeInfo::getInfoId) + .collect(Collectors.toList()); + if (ids.isEmpty()) { + bo.setUserIds(java.util.Collections.singletonList(-1L)); + } else { + bo.setUserIds(ids); + } + } + /** * 新增排班(谁在哪天上班) */ diff --git a/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml index 3254a0ff..0c4f8561 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsAttendanceScheduleMapper.xml @@ -98,6 +98,12 @@ AND s.work_date <= #{bo.endDate} + + AND s.user_id IN + + #{userIdItem} + + ORDER BY s.work_date DESC, s.user_id