fix(wms): 修复请假和用餐报表查询的时间范围筛选逻辑
- 修正了请假申请查询中的时间范围条件,确保正确筛选时间段重叠的记录 - 更新了请假类型统计报表的时间筛选逻辑,修复开始时间和结束时间的比较条件 - 修复了请假部门统计报表的时间范围查询条件 - 修正了请假月度统计报表的时间筛选逻辑 - 修复了按申请人分组的请假统计报表时间范围筛选功能 - 在用餐报表查询中添加了开始时间和结束时间字段用于时间范围筛选 - 更新了用餐报表服务实现类中的时间范围查询逻辑,替换原有的单日期查询条件
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
@@ -169,14 +169,14 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService {
|
||||
public List<Map<String, Object>> getLeaveTypeReport(WmsLeaveRequestBo bo) {
|
||||
QueryWrapper<WmsLeaveRequest> 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<Map<String, Object>> getLeaveDeptReport(WmsLeaveRequestBo bo) {
|
||||
QueryWrapper<WmsLeaveRequest> 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<Map<String, Object>> getLeaveMonthlyReport(WmsLeaveRequestBo bo) {
|
||||
QueryWrapper<WmsLeaveRequest> 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<Map<String, Object>> getLeaveListGroupedByApplicant(WmsLeaveRequestBo bo) {
|
||||
QueryWrapper<WmsLeaveRequest> 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);
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user