package cn.iocoder.yudao.module.mes.dal.mysql.qc.oqc;
|
|
import cn.hutool.core.collection.CollUtil;
|
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.oqc.vo.MesQcOqcPageReqVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.oqc.MesQcOqcDO;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
/**
|
* MES 出货检验单(OQC) Mapper
|
*
|
* @author 超级管理员
|
*/
|
@Mapper
|
public interface MesQcOqcMapper extends BaseMapperX<MesQcOqcDO> {
|
|
default PageResult<MesQcOqcDO> selectPage(MesQcOqcPageReqVO reqVO) {
|
return selectPage(reqVO, new LambdaQueryWrapperX<MesQcOqcDO>()
|
.likeIfPresent(MesQcOqcDO::getCode, reqVO.getCode())
|
.eqIfPresent(MesQcOqcDO::getClientId, reqVO.getClientId())
|
.likeIfPresent(MesQcOqcDO::getBatchCode, reqVO.getBatchCode())
|
.eqIfPresent(MesQcOqcDO::getItemId, reqVO.getItemId())
|
.eqIfPresent(MesQcOqcDO::getCheckResult, reqVO.getCheckResult())
|
.betweenIfPresent(MesQcOqcDO::getInspectDate, reqVO.getInspectDate())
|
.orderByDesc(MesQcOqcDO::getId));
|
}
|
|
/**
|
* 分页查询(带客户权限过滤)
|
*/
|
default PageResult<MesQcOqcDO> selectPage(MesQcOqcPageReqVO reqVO, List<Long> permittedClientIds) {
|
LambdaQueryWrapperX<MesQcOqcDO> wrapper = new LambdaQueryWrapperX<MesQcOqcDO>()
|
.likeIfPresent(MesQcOqcDO::getCode, reqVO.getCode())
|
.eqIfPresent(MesQcOqcDO::getClientId, reqVO.getClientId())
|
.likeIfPresent(MesQcOqcDO::getBatchCode, reqVO.getBatchCode())
|
.eqIfPresent(MesQcOqcDO::getItemId, reqVO.getItemId())
|
.eqIfPresent(MesQcOqcDO::getCheckResult, reqVO.getCheckResult())
|
.betweenIfPresent(MesQcOqcDO::getInspectDate, reqVO.getInspectDate())
|
.orderByDesc(MesQcOqcDO::getId);
|
if (permittedClientIds != null) {
|
if (CollUtil.isEmpty(permittedClientIds)) {
|
return PageResult.empty();
|
}
|
wrapper.in(MesQcOqcDO::getClientId, permittedClientIds);
|
}
|
return selectPage(reqVO, wrapper);
|
}
|
|
default MesQcOqcDO selectByCode(String code) {
|
return selectOne(MesQcOqcDO::getCode, code);
|
}
|
|
/**
|
* 按导入去重键查询:同一 物料 + 客户 + 批次号 + 出货日期 视为同一批出货检验数据
|
*/
|
default List<MesQcOqcDO> selectListByImportKey(Long itemId, Long clientId, String batchCode,
|
LocalDateTime outDate) {
|
return selectList(new LambdaQueryWrapperX<MesQcOqcDO>()
|
.eq(MesQcOqcDO::getItemId, itemId)
|
.eq(MesQcOqcDO::getClientId, clientId)
|
.eq(batchCode != null, MesQcOqcDO::getBatchCode, batchCode)
|
.isNull(batchCode == null, MesQcOqcDO::getBatchCode)
|
.eq(MesQcOqcDO::getOutDate, outDate)
|
.orderByAsc(MesQcOqcDO::getId));
|
}
|
|
}
|