From 2105af31d83d9f2596f785afd4d5c721dc2bcce3 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 21 Jan 2026 15:11:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(wms):=20=E4=BF=AE=E5=A4=8D=E8=AF=B7?= =?UTF-8?q?=E5=81=87=E5=92=8C=E7=94=A8=E9=A4=90=E6=8A=A5=E8=A1=A8=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E7=9A=84=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修正了请假申请查询中的时间范围条件,确保正确筛选时间段重叠的记录 - 更新了请假类型统计报表的时间筛选逻辑,修复开始时间和结束时间的比较条件 - 修复了请假部门统计报表的时间范围查询条件 - 修正了请假月度统计报表的时间筛选逻辑 - 修复了按申请人分组的请假统计报表时间范围筛选功能 - 在用餐报表查询中添加了开始时间和结束时间字段用于时间范围筛选 - 更新了用餐报表服务实现类中的时间范围查询逻辑,替换原有的单日期查询条件 --- .../com/klp/domain/bo/WmsMealReportBo.java | 8 ++ .../impl/WmsLeaveRequestServiceImpl.java | 80 +++++++++---------- .../impl/WmsMealReportServiceImpl.java | 12 +-- 3 files changed, 54 insertions(+), 46 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsMealReportBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsMealReportBo.java index cb670b0e..63b420c2 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsMealReportBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsMealReportBo.java @@ -77,4 +77,12 @@ public class WmsMealReportBo extends BaseEntity { private String dineInPeopleList; // 打包人名单 private String takeoutPeopleList; + + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date startTime; + + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date endTime; } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsLeaveRequestServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsLeaveRequestServiceImpl.java index 958d69f2..49787c3a 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsLeaveRequestServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsLeaveRequestServiceImpl.java @@ -38,7 +38,7 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService { * 查询员工请假申请 */ @Override - public WmsLeaveRequestVo queryById(Long leaveId){ + public WmsLeaveRequestVo queryById(Long leaveId) { return baseMapper.selectVoById(leaveId); } @@ -92,7 +92,7 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService { // 条件:(start_time <= endTime AND end_time >= startTime) if (bo.getStartTime() != null && bo.getEndTime() != null) { lqw.le(WmsLeaveRequest::getStartTime, bo.getEndTime()) - .ge(WmsLeaveRequest::getEndTime, bo.getStartTime()); + .ge(WmsLeaveRequest::getEndTime, bo.getStartTime()); } else if (bo.getStartTime() != null) { lqw.ge(WmsLeaveRequest::getEndTime, bo.getStartTime()); } else if (bo.getEndTime() != null) { @@ -147,7 +147,7 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(WmsLeaveRequest entity){ + private void validEntityBeforeSave(WmsLeaveRequest entity) { //TODO 做一些数据校验,如唯一约束 } @@ -156,7 +156,7 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteBatchIds(ids) > 0; @@ -169,14 +169,14 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService { public List> getLeaveTypeReport(WmsLeaveRequestBo bo) { QueryWrapper qw = new QueryWrapper<>(); qw.select("leave_type as type", - "COUNT(*) as count", - "SUM(leave_days) as total_days") - .eq(bo.getApplicantDeptName() != null, "applicant_dept_name", bo.getApplicantDeptName()) - .ge(bo.getStartTime() != null, "start_time", bo.getStartTime()) - .le(bo.getEndTime() != null, "end_time", bo.getEndTime()) - .eq("del_flag", 0) - .groupBy("leave_type") - .orderByDesc("total_days"); + "COUNT(*) as count", + "SUM(leave_days) as total_days") + .eq(bo.getApplicantDeptName() != null, "applicant_dept_name", bo.getApplicantDeptName()) + .le(bo.getStartTime() != null, "start_time", bo.getEndTime()) // 开始时间 <= 查询结束时间 + .ge(bo.getEndTime() != null, "end_time", bo.getStartTime()) // 结束时间 >= 查询开始时间 + .eq("del_flag", 0) + .groupBy("leave_type") + .orderByDesc("total_days"); return baseMapper.selectMaps(qw); } @@ -187,15 +187,15 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService { public List> getLeaveDeptReport(WmsLeaveRequestBo bo) { QueryWrapper qw = new QueryWrapper<>(); qw.select("applicant_dept_name as dept_name", - "COUNT(*) as count", - "SUM(leave_days) as total_days") - .isNotNull("applicant_dept_name") - .eq(StringUtils.isNotBlank(bo.getLeaveType()), "leave_type", bo.getLeaveType()) - .ge(bo.getStartTime() != null, "start_time", bo.getStartTime()) - .le(bo.getEndTime() != null, "end_time", bo.getEndTime()) - .eq("del_flag", 0) - .groupBy("applicant_dept_name") - .orderByDesc("total_days"); + "COUNT(*) as count", + "SUM(leave_days) as total_days") + .isNotNull("applicant_dept_name") + .eq(StringUtils.isNotBlank(bo.getLeaveType()), "leave_type", bo.getLeaveType()) + .le(bo.getStartTime() != null, "start_time", bo.getEndTime()) // 开始时间 <= 查询结束时间 + .ge(bo.getEndTime() != null, "end_time", bo.getStartTime()) // 结束时间 >= 查询开始时间 + .eq("del_flag", 0) + .groupBy("applicant_dept_name") + .orderByDesc("total_days"); return baseMapper.selectMaps(qw); } @@ -206,15 +206,15 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService { public List> getLeaveMonthlyReport(WmsLeaveRequestBo bo) { QueryWrapper qw = new QueryWrapper<>(); qw.select("DATE_FORMAT(start_time, '%Y-%m') as month", - "COUNT(*) as count", - "SUM(leave_days) as total_days") - .ge(bo.getStartTime() != null, "start_time", bo.getStartTime()) - .le(bo.getEndTime() != null, "end_time", bo.getEndTime()) - .eq(StringUtils.isNotBlank(bo.getLeaveType()), "leave_type", bo.getLeaveType()) - .eq(bo.getApplicantDeptName() != null, "applicant_dept_name", bo.getApplicantDeptName()) - .eq("del_flag", 0) - .groupBy("month") - .orderByAsc("month"); + "COUNT(*) as count", + "SUM(leave_days) as total_days") + .le(bo.getStartTime() != null, "start_time", bo.getEndTime()) // 开始时间 <= 查询结束时间 + .ge(bo.getEndTime() != null, "end_time", bo.getStartTime()) // 结束时间 >= 查询开始时间 + .eq(StringUtils.isNotBlank(bo.getLeaveType()), "leave_type", bo.getLeaveType()) + .eq(bo.getApplicantDeptName() != null, "applicant_dept_name", bo.getApplicantDeptName()) + .eq("del_flag", 0) + .groupBy("month") + .orderByAsc("month"); return baseMapper.selectMaps(qw); } @@ -225,16 +225,16 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService { public List> getLeaveListGroupedByApplicant(WmsLeaveRequestBo bo) { QueryWrapper qw = new QueryWrapper<>(); qw.select("applicant_name", - "applicant_dept_name", - "GROUP_CONCAT(CONCAT(leave_type, ':', DATE_FORMAT(start_time, '%Y-%m-%d %H:%i'), '~', DATE_FORMAT(end_time, '%Y-%m-%d %H:%i'), '(', leave_days, '天)') ORDER BY start_time SEPARATOR '; ') as leave_details", - "SUM(leave_days) as total_days", - "COUNT(*) as leave_count") - .eq("del_flag", 0); + "applicant_dept_name", + "GROUP_CONCAT(CONCAT(leave_type, ':', DATE_FORMAT(start_time, '%Y-%m-%d %H:%i'), '~', DATE_FORMAT(end_time, '%Y-%m-%d %H:%i'), '(', leave_days, '天)') ORDER BY start_time SEPARATOR '; ') as leave_details", + "SUM(leave_days) as total_days", + "COUNT(*) as leave_count") + .eq("del_flag", 0); // 时间范围筛选 if (bo.getStartTime() != null && bo.getEndTime() != null) { qw.le("start_time", bo.getEndTime()) - .ge("end_time", bo.getStartTime()); + .ge("end_time", bo.getStartTime()); } else if (bo.getStartTime() != null) { qw.ge("end_time", bo.getStartTime()); } else if (bo.getEndTime() != null) { @@ -243,10 +243,10 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService { // 其他筛选条件 qw.eq(StringUtils.isNotBlank(bo.getLeaveType()), "leave_type", bo.getLeaveType()) - .like(StringUtils.isNotBlank(bo.getApplicantName()), "applicant_name", bo.getApplicantName()) - .like(StringUtils.isNotBlank(bo.getApplicantDeptName()), "applicant_dept_name", bo.getApplicantDeptName()) - .groupBy("applicant_name", "applicant_dept_name") - .orderByDesc("total_days"); + .like(StringUtils.isNotBlank(bo.getApplicantName()), "applicant_name", bo.getApplicantName()) + .like(StringUtils.isNotBlank(bo.getApplicantDeptName()), "applicant_dept_name", bo.getApplicantDeptName()) + .groupBy("applicant_name", "applicant_dept_name") + .orderByDesc("total_days"); return baseMapper.selectMaps(qw); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMealReportServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMealReportServiceImpl.java index a31f9b2b..d9ec058b 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMealReportServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMealReportServiceImpl.java @@ -177,8 +177,8 @@ public class WmsMealReportServiceImpl implements IWmsMealReportService { "SUM(takeout_people) as total_takeout", "COUNT(*) as report_count") .eq(StringUtils.isNotBlank(bo.getDeptName()), "dept_name", bo.getDeptName()) - .ge(bo.getReportDate() != null, "report_date", bo.getReportDate()) - .le(bo.getReportDate() != null, "report_date", bo.getReportDate()) + .ge(bo.getStartTime() != null, "report_date", bo.getStartTime()) + .le(bo.getEndTime() != null, "report_date", bo.getEndTime()) .eq("del_flag", 0) .eq(bo.getStatus() != null, "status", bo.getStatus()) .groupBy("meal_type") @@ -199,8 +199,8 @@ public class WmsMealReportServiceImpl implements IWmsMealReportService { "COUNT(*) as report_count", "AVG(total_people) as avg_people") .eq(bo.getMealType() != null, "meal_type", bo.getMealType()) - .ge(bo.getReportDate() != null, "report_date", bo.getReportDate()) - .le(bo.getReportDate() != null, "report_date", bo.getReportDate()) + .ge(bo.getStartTime() != null, "report_date", bo.getStartTime()) + .le(bo.getEndTime() != null, "report_date", bo.getEndTime()) .eq("del_flag", 0) .eq(bo.getStatus() != null, "status", bo.getStatus()) .groupBy("dept_name") @@ -221,8 +221,8 @@ public class WmsMealReportServiceImpl implements IWmsMealReportService { "COUNT(*) as report_count") .eq(StringUtils.isNotBlank(bo.getDeptName()), "dept_name", bo.getDeptName()) .eq(bo.getMealType() != null, "meal_type", bo.getMealType()) - .ge(bo.getReportDate() != null, "report_date", bo.getReportDate()) - .le(bo.getReportDate() != null, "report_date", bo.getReportDate()) + .ge(bo.getStartTime() != null, "report_date", bo.getStartTime()) + .le(bo.getEndTime() != null, "report_date", bo.getEndTime()) .eq("del_flag", 0) .eq(bo.getStatus() != null, "status", bo.getStatus()) .groupBy("report_date")