liu
9 天以前 82155dd6f2b16fbfb718e636a54e2c9dae31246b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package cn.iocoder.yudao.module.hrm.service.approval;
 
import cn.iocoder.yudao.module.hrm.dal.dataobject.approval.HrmLeaveApplicationDO;
import java.time.LocalDate;
import java.util.List;
 
/**
 * 请假查询服务:供考勤模块判断某员工某天是否请假
 *
 * <p>独立于 {@link HrmLeaveApplicationService},避免考勤模块依赖审批模块的写操作,
 * 只暴露只读查询,便于单测和复用。</p>
 *
 * @author 超级管理员
 */
public interface HrmLeaveQueryService {
 
    /**
     * 查询某员工在指定日期内、审批通过的请假单
     *
     * <p>只返回 status = 审批通过(20) 的单据;驳回、撤销、审批中都不算。</p>
     *
     * @param userId 员工编号(对应 hrm_leave_application.user_id)
     * @param date   日期
     * @return 覆盖该日期的请假单列表,无则空列表
     */
    List<HrmLeaveApplicationDO> getApprovedLeaveList(Long userId, LocalDate date);
 
    /**
     * 判断某员工某天是否请假(是否有审批通过的请假单覆盖该天)
     */
    default boolean isOnLeave(Long userId, LocalDate date) {
        return !getApprovedLeaveList(userId, date).isEmpty();
    }
 
}