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.util.List; /** * MES 出货检验单(OQC) Mapper * * @author 超级管理员 */ @Mapper public interface MesQcOqcMapper extends BaseMapperX { default PageResult selectPage(MesQcOqcPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .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 selectPage(MesQcOqcPageReqVO reqVO, List permittedClientIds) { LambdaQueryWrapperX wrapper = new LambdaQueryWrapperX() .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)) { wrapper.isNull(MesQcOqcDO::getClientId); } else { // 允许 client_id 为空的记录(未填客户的检验单对所有有权限用户可见) wrapper.and(w -> w.in(MesQcOqcDO::getClientId, permittedClientIds) .or().isNull(MesQcOqcDO::getClientId)); } } return selectPage(reqVO, wrapper); } default MesQcOqcDO selectByCode(String code) { return selectOne(MesQcOqcDO::getCode, code); } }