package cn.iocoder.yudao.module.hrm.service.approval; import cn.iocoder.yudao.module.hrm.dal.dataobject.approval.HrmLeaveApplicationDO; import cn.iocoder.yudao.module.hrm.dal.mysql.approval.HrmLeaveApplicationMapper; import cn.iocoder.yudao.module.hrm.enums.HrmAuditStatusEnum; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; /** * 请假查询服务实现 * * @author 超级管理员 */ @Service public class HrmLeaveQueryServiceImpl implements HrmLeaveQueryService { @Resource private HrmLeaveApplicationMapper leaveApplicationMapper; @Override public List getApprovedLeaveList(Long userId, LocalDate date) { if (userId == null || date == null) { return List.of(); } // 请假单与当天有交集即为命中:start_time < 次日 00:00 且 end_time >= 当天 00:00 LocalDateTime dayStart = date.atStartOfDay(); LocalDateTime dayEnd = date.plusDays(1).atStartOfDay(); return leaveApplicationMapper.selectListByUserIdAndOverlapDate( userId, HrmAuditStatusEnum.APPROVE.getStatus(), dayStart, dayEnd); } }