package cn.iocoder.yudao.module.hrm.dal.mysql.approval; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.hrm.controller.admin.approval.vo.HrmOvertimeApplicationPageReqVO; import cn.iocoder.yudao.module.hrm.dal.dataobject.approval.HrmOvertimeApplicationDO; import cn.iocoder.yudao.module.hrm.enums.HrmAuditStatusEnum; import org.apache.ibatis.annotations.Mapper; import java.time.LocalDate; import java.util.List; @Mapper public interface HrmOvertimeApplicationMapper extends BaseMapperX { default PageResult selectPage(HrmOvertimeApplicationPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(HrmOvertimeApplicationDO::getNo, reqVO.getNo()) .eqIfPresent(HrmOvertimeApplicationDO::getUserId, reqVO.getUserId()) .eqIfPresent(HrmOvertimeApplicationDO::getDeptId, reqVO.getDeptId()) .eqIfPresent(HrmOvertimeApplicationDO::getOvertimeDate, reqVO.getOvertimeDate()) .eqIfPresent(HrmOvertimeApplicationDO::getOvertimeType, reqVO.getOvertimeType()) .eqIfPresent(HrmOvertimeApplicationDO::getStatus, reqVO.getStatus()) .orderByDesc(HrmOvertimeApplicationDO::getId)); } default HrmOvertimeApplicationDO selectByProcessInstanceId(String processInstanceId) { return selectOne(HrmOvertimeApplicationDO::getProcessInstanceId, processInstanceId); } default List selectApprovedByUserAndDateRange(Long userId, LocalDate start, LocalDate end) { return selectList(new LambdaQueryWrapperX() .eq(HrmOvertimeApplicationDO::getUserId, userId) .eq(HrmOvertimeApplicationDO::getStatus, HrmAuditStatusEnum.APPROVE.getStatus()) .between(HrmOvertimeApplicationDO::getOvertimeDate, start, end)); } }