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.HrmResignationApplicationPageReqVO; import cn.iocoder.yudao.module.hrm.dal.dataobject.approval.HrmResignationApplicationDO; import org.apache.ibatis.annotations.Mapper; import java.time.LocalDate; import java.util.List; /** * 离职申请 Mapper * * @author 超级管理员 */ @Mapper public interface HrmResignationApplicationMapper extends BaseMapperX { default PageResult selectPage(HrmResignationApplicationPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(HrmResignationApplicationDO::getNo, reqVO.getNo()) .eqIfPresent(HrmResignationApplicationDO::getUserId, reqVO.getUserId()) .eqIfPresent(HrmResignationApplicationDO::getDeptId, reqVO.getDeptId()) .eqIfPresent(HrmResignationApplicationDO::getResignationType, reqVO.getResignationType()) .eqIfPresent(HrmResignationApplicationDO::getStatus, reqVO.getStatus()) .betweenIfPresent(HrmResignationApplicationDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(HrmResignationApplicationDO::getId)); } default HrmResignationApplicationDO selectByNo(String no) { return selectOne(HrmResignationApplicationDO::getNo, no); } default HrmResignationApplicationDO selectByProcessInstanceId(String processInstanceId) { return selectOne(HrmResignationApplicationDO::getProcessInstanceId, processInstanceId); } default HrmResignationApplicationDO selectByUserIdAndStatusNot(Long userId, Integer status) { return selectOne(new LambdaQueryWrapperX() .eq(HrmResignationApplicationDO::getUserId, userId) .ne(HrmResignationApplicationDO::getStatus, status)); } /** * 查询指定审批状态下,预计离职日期已到且尚未记录实际离职日期的申请 */ default List selectListByStatusAndExpectedDateLe(Integer status, LocalDate date) { return selectList(new LambdaQueryWrapperX() .eq(HrmResignationApplicationDO::getStatus, status) .le(HrmResignationApplicationDO::getExpectedDate, date) .isNull(HrmResignationApplicationDO::getActualDate) .orderByAsc(HrmResignationApplicationDO::getId)); } }