| | |
| | | .le(HrmLeaveApplicationDO::getEndTime, endTime)); |
| | | } |
| | | |
| | | /** |
| | | * 查询与指定时间范围有交集的审批通过请假记录(可限定申请人) |
| | | * |
| | | * 请假开始早于范围起点、结束晚于范围终点也算交集,因此用 start <= 范围终点 且 end >= 范围起点。 |
| | | * |
| | | * @param startTime 范围开始时间 |
| | | * @param endTime 范围结束时间 |
| | | * @param userIds 申请人ID集合,为空表示不限 |
| | | * @return 请假记录列表 |
| | | */ |
| | | default List<HrmLeaveApplicationDO> selectApprovedListByTimeRange(LocalDateTime startTime, LocalDateTime endTime, |
| | | java.util.Collection<Long> userIds) { |
| | | LambdaQueryWrapperX<HrmLeaveApplicationDO> query = new LambdaQueryWrapperX<HrmLeaveApplicationDO>() |
| | | .inIfPresent(HrmLeaveApplicationDO::getUserId, userIds); |
| | | query.eq(HrmLeaveApplicationDO::getStatus, HrmAuditStatusEnum.APPROVE.getStatus()) |
| | | .le(HrmLeaveApplicationDO::getStartTime, endTime) |
| | | .ge(HrmLeaveApplicationDO::getEndTime, startTime) |
| | | .orderByAsc(HrmLeaveApplicationDO::getStartTime); |
| | | return selectList(query); |
| | | } |
| | | |
| | | } |