package cn.iocoder.yudao.module.mes.dal.mysql.qc.iqc; 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.iqc.vo.MesQcIqcPageReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.qc.iqc.MesQcIqcDO; import org.apache.ibatis.annotations.Mapper; import java.time.LocalDateTime; import java.util.List; /** * MES 来料检验单(IQC) Mapper * * @author 超级管理员 */ @Mapper public interface MesQcIqcMapper extends BaseMapperX { default PageResult selectPage(MesQcIqcPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(MesQcIqcDO::getCode, reqVO.getCode()) .eqIfPresent(MesQcIqcDO::getVendorId, reqVO.getVendorId()) .likeIfPresent(MesQcIqcDO::getVendorBatch, reqVO.getVendorBatch()) .eqIfPresent(MesQcIqcDO::getItemId, reqVO.getItemId()) .eqIfPresent(MesQcIqcDO::getCheckResult, reqVO.getCheckResult()) .betweenIfPresent(MesQcIqcDO::getReceiveDate, reqVO.getReceiveDate()) .betweenIfPresent(MesQcIqcDO::getInspectDate, reqVO.getInspectDate()) .eqIfPresent(MesQcIqcDO::getInspectorUserId, reqVO.getInspectorUserId()) .orderByDesc(MesQcIqcDO::getId)); } default MesQcIqcDO selectByCode(String code) { return selectOne(MesQcIqcDO::getCode, code); } default Long selectCountByVendorId(Long vendorId) { return selectCount(MesQcIqcDO::getVendorId, vendorId); } /** * 按导入去重键查询:同一 物料 + 供应商 + 供应商批次 + 来料日期 视为同一批来料数据 */ default List selectListByImportKey(Long itemId, Long vendorId, String vendorBatch, LocalDateTime receiveDate) { return selectList(new LambdaQueryWrapperX() .eq(MesQcIqcDO::getItemId, itemId) .eq(vendorId != null, MesQcIqcDO::getVendorId, vendorId) .isNull(vendorId == null, MesQcIqcDO::getVendorId) .eq(vendorBatch != null, MesQcIqcDO::getVendorBatch, vendorBatch) .isNull(vendorBatch == null, MesQcIqcDO::getVendorBatch) .eq(MesQcIqcDO::getReceiveDate, receiveDate) .orderByAsc(MesQcIqcDO::getId)); } }