package cn.iocoder.yudao.module.mes.dal.mysql.safety; 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.mes.controller.admin.safety.vo.ticket.MesSafetyWorkTicketPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.safety.MesSafetyWorkTicketDO; import org.apache.ibatis.annotations.Mapper; import java.time.LocalDateTime; import java.util.List; /** * 安全生产 - 特种作业票证 Mapper * * @author 超级管理员 */ @Mapper public interface MesSafetyWorkTicketMapper extends BaseMapperX { default PageResult selectPage(MesSafetyWorkTicketPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesSafetyWorkTicketDO::getCode, reqVO.getCode()) .eqIfPresent(MesSafetyWorkTicketDO::getTicketType, reqVO.getTicketType()) .eqIfPresent(MesSafetyWorkTicketDO::getTicketLevel, reqVO.getTicketLevel()) .eqIfPresent(MesSafetyWorkTicketDO::getStatus, reqVO.getStatus()) .eqIfPresent(MesSafetyWorkTicketDO::getWorkshopId, reqVO.getWorkshopId()) .eqIfPresent(MesSafetyWorkTicketDO::getApplicantUserId, reqVO.getApplicantUserId()) .likeIfPresent(MesSafetyWorkTicketDO::getWorkLocation, reqVO.getWorkLocation()) .geIfPresent(MesSafetyWorkTicketDO::getPlanStartTime, reqVO.getPlanStartTimeStart()) .leIfPresent(MesSafetyWorkTicketDO::getPlanStartTime, reqVO.getPlanStartTimeEnd()) .orderByDesc(MesSafetyWorkTicketDO::getId)); } default MesSafetyWorkTicketDO selectByCode(String code) { return selectOne(MesSafetyWorkTicketDO::getCode, code); } /** * 查询当前处于「已批准」但已超过计划结束时间的作业票(用于超期未完工提醒) */ default List selectApprovedOverdueList(LocalDateTime now) { return selectList(new LambdaQueryWrapperX() .eq(MesSafetyWorkTicketDO::getStatus, MesSafetyWorkTicketDO.STATUS_APPROVED) .lt(MesSafetyWorkTicketDO::getPlanEndTime, now) .orderByAsc(MesSafetyWorkTicketDO::getPlanEndTime)); } default Long selectCountByStatus(Integer status) { return selectCount(new LambdaQueryWrapperX() .eq(MesSafetyWorkTicketDO::getStatus, status)); } default Long selectCountByUnitId(Long unitId) { return selectCount(new LambdaQueryWrapperX() .eq(MesSafetyWorkTicketDO::getUnitId, unitId)); } default List selectAllList() { return selectList(new LambdaQueryWrapperX() .orderByDesc(MesSafetyWorkTicketDO::getId)); } }