package cn.iocoder.yudao.module.mes.dal.mysql.qc.ipqc; 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.qc.ipqc.vo.MesQcIpqcPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.qc.ipqc.MesQcIpqcDO; import org.apache.ibatis.annotations.Mapper; import java.time.LocalDateTime; import java.util.List; /** * MES 过程检验单(IPQC) Mapper * * @author 超级管理员 */ @Mapper public interface MesQcIpqcMapper extends BaseMapperX { default PageResult selectPage(MesQcIpqcPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesQcIpqcDO::getCode, reqVO.getCode()) .eqIfPresent(MesQcIpqcDO::getType, reqVO.getType()) .eqIfPresent(MesQcIpqcDO::getWorkOrderId, reqVO.getWorkOrderId()) .eqIfPresent(MesQcIpqcDO::getItemId, reqVO.getItemId()) .eqIfPresent(MesQcIpqcDO::getCheckResult, reqVO.getCheckResult()) .eqIfPresent(MesQcIpqcDO::getStatus, reqVO.getStatus()) .eqIfPresent(MesQcIpqcDO::getInspectorUserId, reqVO.getInspectorUserId()) .betweenIfPresent(MesQcIpqcDO::getInspectDate, reqVO.getInspectDate()) .orderByDesc(MesQcIpqcDO::getId)); } default MesQcIpqcDO selectByCode(String code) { return selectOne(MesQcIpqcDO::getCode, code); } default List selectListBySourceDoc(Integer sourceDocType, Long sourceDocId) { return selectList(new LambdaQueryWrapperX() .eq(MesQcIpqcDO::getSourceDocType, sourceDocType) .eq(MesQcIpqcDO::getSourceDocId, sourceDocId) .orderByDesc(MesQcIpqcDO::getId)); } /** * 按导入去重键查询:同一 生产工单 + 检验类型 + 工位 + 检测日期 视为同一批过程检验数据 */ default List selectListByImportKey(Long workOrderId, Integer type, Long workstationId, LocalDateTime inspectDate) { return selectList(new LambdaQueryWrapperX() .eq(MesQcIpqcDO::getWorkOrderId, workOrderId) .eq(MesQcIpqcDO::getType, type) .eq(MesQcIpqcDO::getWorkstationId, workstationId) .eq(inspectDate != null, MesQcIpqcDO::getInspectDate, inspectDate) .isNull(inspectDate == null, MesQcIpqcDO::getInspectDate) .orderByAsc(MesQcIpqcDO::getId)); } }