fix(query): 修复请假和外出申请的时间范围查询逻辑

- 移除WmsLeaveRequestServiceImpl中重复的时间条件查询
- 为WmsOutRequestServiceImpl添加正确的日期范围交集查询逻辑
- 实现(start_time <= endTime AND end_time >= startTime)的时间范围匹配条件
- 添加单侧时间条件查询支持(仅开始时间或结束时间)
- 导入WmsLeaveRequest类到WmsOutRequestServiceImpl中
This commit is contained in:
2026-05-15 13:57:42 +08:00
parent ffecaf9a5a
commit edbad7e0df
2 changed files with 11 additions and 5 deletions

View File

@@ -114,9 +114,6 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService {
} else if (bo.getEndTime() != null) {
lqw.le(WmsLeaveRequest::getStartTime, bo.getEndTime());
}
lqw.eq(bo.getStartTime() != null, WmsLeaveRequest::getStartTime, bo.getStartTime());
lqw.eq(bo.getEndTime() != null, WmsLeaveRequest::getEndTime, bo.getEndTime());
lqw.eq(StringUtils.isNotBlank(bo.getLeaveShift()), WmsLeaveRequest::getLeaveShift, bo.getLeaveShift());
lqw.eq(bo.getLeaveDays() != null, WmsLeaveRequest::getLeaveDays, bo.getLeaveDays());
lqw.eq(StringUtils.isNotBlank(bo.getLeaveReason()), WmsLeaveRequest::getLeaveReason, bo.getLeaveReason());

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import com.klp.domain.WmsLeaveRequest;
import com.klp.domain.bo.WmsApprovalBo;
import com.klp.domain.vo.WmsApprovalVo;
import com.klp.service.IWmsApprovalService;
@@ -84,8 +85,16 @@ public class WmsOutRequestServiceImpl implements IWmsOutRequestService {
lqw.eq(StringUtils.isNotBlank(bo.getOutType()), WmsOutRequest::getOutType, bo.getOutType());
lqw.like(StringUtils.isNotBlank(bo.getApplicantName()), WmsOutRequest::getApplicantName, bo.getApplicantName());
lqw.like(StringUtils.isNotBlank(bo.getApplicantDeptName()), WmsOutRequest::getApplicantDeptName, bo.getApplicantDeptName());
lqw.eq(bo.getStartTime() != null, WmsOutRequest::getStartTime, bo.getStartTime());
lqw.eq(bo.getEndTime() != null, WmsOutRequest::getEndTime, bo.getEndTime());
// 请假时间范围筛选:筛选出请假时间与查询时间范围有交集的记录
// 条件:(start_time <= endTime AND end_time >= startTime)
if (bo.getStartTime() != null && bo.getEndTime() != null) {
lqw.le(WmsOutRequest::getStartTime, bo.getEndTime())
.ge(WmsOutRequest::getEndTime, bo.getStartTime());
} else if (bo.getStartTime() != null) {
lqw.ge(WmsOutRequest::getEndTime, bo.getStartTime());
} else if (bo.getEndTime() != null) {
lqw.le(WmsOutRequest::getStartTime, bo.getEndTime());
}
lqw.eq(bo.getOutHours() != null, WmsOutRequest::getOutHours, bo.getOutHours());
lqw.eq(StringUtils.isNotBlank(bo.getOutPlace()), WmsOutRequest::getOutPlace, bo.getOutPlace());
lqw.eq(StringUtils.isNotBlank(bo.getOutReason()), WmsOutRequest::getOutReason, bo.getOutReason());