gaoluyang
8 天以前 9e9f0e2d9f6fcce7dcea88b181b3c7e6069e8a1b
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/approval/HrmLeaveApplicationMapper.java
@@ -39,19 +39,22 @@
    }
    /**
     * 查询员工在指定时间范围内已审批通过的请假记录
     * 查询员工与指定时间范围有交集的已审批通过的请假记录
     *
     * 注意:按「交集」而不是「完全包含」查询。跨月请假(如 10-28 ~ 11-03)两端都不满足完全包含,
     * 会被整条漏掉;是否按天分摊由调用方处理。
     *
     * @param userId    员工ID(系统用户ID)
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @param startTime 范围开始时间
     * @param endTime   范围结束时间
     * @return 请假记录列表
     */
    default List<HrmLeaveApplicationDO> selectApprovedListByUserIdAndTimeRange(Long userId, LocalDateTime startTime, LocalDateTime endTime) {
        return selectList(new LambdaQueryWrapperX<HrmLeaveApplicationDO>()
                .eq(HrmLeaveApplicationDO::getUserId, userId)
                .eq(HrmLeaveApplicationDO::getStatus, HrmAuditStatusEnum.APPROVE.getStatus())
                .ge(HrmLeaveApplicationDO::getStartTime, startTime)
                .le(HrmLeaveApplicationDO::getEndTime, endTime));
                .le(HrmLeaveApplicationDO::getStartTime, endTime)
                .ge(HrmLeaveApplicationDO::getEndTime, startTime));
    }
}