gaoluyang
5 天以前 ce5f8a87bb5d411bae67c39b269d879677bb98da
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/mysql/approval/HrmLeaveApplicationMapper.java
@@ -9,12 +9,13 @@
import org.apache.ibatis.annotations.Mapper;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
/**
 * 请假申请 Mapper
 *
 * @author 芋道源码
 * @author 超级管理员
 */
@Mapper
public interface HrmLeaveApplicationMapper extends BaseMapperX<HrmLeaveApplicationDO> {
@@ -54,4 +55,23 @@
                .le(HrmLeaveApplicationDO::getEndTime, endTime));
    }
    /**
     * 查询多个员工在指定时间范围内已审批通过的请假记录(与时间范围有交集即命中)
     *
     * @param userIds   系统用户ID集合
     * @param startTime 区间开始时间
     * @param endTime   区间结束时间
     * @return 请假记录列表
     */
    default List<HrmLeaveApplicationDO> selectApprovedListByUserIdsAndTimeRange(Collection<Long> userIds,
                                                                                LocalDateTime startTime,
                                                                                LocalDateTime endTime) {
        return selectList(new LambdaQueryWrapperX<HrmLeaveApplicationDO>()
                .in(HrmLeaveApplicationDO::getUserId, userIds)
                .eq(HrmLeaveApplicationDO::getStatus, HrmAuditStatusEnum.APPROVE.getStatus())
                .le(HrmLeaveApplicationDO::getStartTime, endTime)
                .ge(HrmLeaveApplicationDO::getEndTime, startTime)
                .orderByAsc(HrmLeaveApplicationDO::getStartTime));
    }
}