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.hazard.MesSafetyHazardPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.safety.MesSafetyHazardDO; import org.apache.ibatis.annotations.Mapper; import java.time.LocalDate; import java.util.List; /** * 安全生产 - 隐患台账 Mapper * * @author 超级管理员 */ @Mapper public interface MesSafetyHazardMapper extends BaseMapperX { default PageResult selectPage(MesSafetyHazardPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesSafetyHazardDO::getCode, reqVO.getCode()) .likeIfPresent(MesSafetyHazardDO::getName, reqVO.getName()) .eqIfPresent(MesSafetyHazardDO::getSource, reqVO.getSource()) .eqIfPresent(MesSafetyHazardDO::getHazardLevel, reqVO.getHazardLevel()) .eqIfPresent(MesSafetyHazardDO::getStatus, reqVO.getStatus()) .eqIfPresent(MesSafetyHazardDO::getWorkshopId, reqVO.getWorkshopId()) .eqIfPresent(MesSafetyHazardDO::getChargeUserId, reqVO.getChargeUserId()) .eqIfPresent(MesSafetyHazardDO::getRiskId, reqVO.getRiskId()) .geIfPresent(MesSafetyHazardDO::getFoundDate, reqVO.getFoundDateStart()) .leIfPresent(MesSafetyHazardDO::getFoundDate, reqVO.getFoundDateEnd()) .orderByDesc(MesSafetyHazardDO::getId)); } default MesSafetyHazardDO selectByCode(String code) { return selectOne(MesSafetyHazardDO::getCode, code); } /** * 查询未闭环且已超期的隐患(用于逾期提醒/统计) */ default List selectOverdueList(LocalDate today) { return selectList(new LambdaQueryWrapperX() .lt(MesSafetyHazardDO::getDeadline, today) .ne(MesSafetyHazardDO::getStatus, MesSafetyHazardDO.STATUS_CLOSED) .orderByAsc(MesSafetyHazardDO::getDeadline)); } /** * 按状态统计数量 */ default Long selectCountByStatus(Integer status) { return selectCount(new LambdaQueryWrapperX() .eq(MesSafetyHazardDO::getStatus, status)); } /** * 风险单元被引用数量(用于删除单元前的校验) */ default Long selectCountByUnitId(Long unitId) { return selectCount(new LambdaQueryWrapperX() .eq(MesSafetyHazardDO::getUnitId, unitId)); } /** * 风险清单被引用数量 */ default Long selectCountByRiskId(Long riskId) { return selectCount(new LambdaQueryWrapperX() .eq(MesSafetyHazardDO::getRiskId, riskId)); } default List selectAllList() { return selectList(new LambdaQueryWrapperX() .orderByDesc(MesSafetyHazardDO::getId)); } }