云
5 天以前 9265065bea5a40bcaced67857cb3ba22324ce06c
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/batch/MesWmBatchMapper.java
@@ -1,11 +1,15 @@
package cn.iocoder.yudao.module.mes.dal.mysql.wm.batch;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
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.wm.batch.vo.MesWmBatchPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchProcessTraceRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchPurchaseSourceRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.batch.vo.MesWmBatchSalesTargetRespVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.ibatis.annotations.Mapper;
@@ -15,7 +19,7 @@
/**
 * 批次管理 Mapper
 *
 * @author 芋道源码
 * @author 超级管理员
 */
@Mapper
public interface MesWmBatchMapper extends BaseMapperX<MesWmBatchDO> {
@@ -50,6 +54,37 @@
    }
    /**
     * 分页查询(带客户权限过滤)
     */
    default PageResult<MesWmBatchDO> selectPage(MesWmBatchPageReqVO reqVO, List<Long> permittedClientIds) {
        LambdaQueryWrapperX<MesWmBatchDO> wrapper = new LambdaQueryWrapperX<MesWmBatchDO>()
                .likeIfPresent(MesWmBatchDO::getCode, reqVO.getCode())
                .eqIfPresent(MesWmBatchDO::getItemId, reqVO.getItemId())
                .eqIfPresent(MesWmBatchDO::getVendorId, reqVO.getVendorId())
                .eqIfPresent(MesWmBatchDO::getClientId, reqVO.getClientId())
                .likeIfPresent(MesWmBatchDO::getSalesOrderCode, reqVO.getSalesOrderCode())
                .likeIfPresent(MesWmBatchDO::getPurchaseOrderCode, reqVO.getPurchaseOrderCode())
                .eqIfPresent(MesWmBatchDO::getWorkOrderId, reqVO.getWorkOrderId())
                .eqIfPresent(MesWmBatchDO::getTaskId, reqVO.getTaskId())
                .eqIfPresent(MesWmBatchDO::getWorkstationId, reqVO.getWorkstationId())
                .eqIfPresent(MesWmBatchDO::getToolId, reqVO.getToolId())
                .eqIfPresent(MesWmBatchDO::getMoldId, reqVO.getMoldId())
                .likeIfPresent(MesWmBatchDO::getLotNumber, reqVO.getLotNumber())
                .eqIfPresent(MesWmBatchDO::getQualityStatus, reqVO.getQualityStatus())
                .betweenIfPresent(MesWmBatchDO::getProduceDate, reqVO.getProduceDate())
                .betweenIfPresent(MesWmBatchDO::getExpireDate, reqVO.getExpireDate())
                .betweenIfPresent(MesWmBatchDO::getReceiptDate, reqVO.getReceiptDate())
                .orderByDesc(MesWmBatchDO::getId);
//        if (permittedClientIds != null) {
//            if (CollUtil.isEmpty(permittedClientIds)) {
//                return PageResult.empty();
//            }
//            wrapper.in(MesWmBatchDO::getClientId, permittedClientIds);
//        }
        return selectPage(reqVO, wrapper);
    }
    /**
     * 根据参数查询匹配的第一条批次记录
     * <p>
     * 使用 NULL 值精确匹配,返回 ID 最小的批次
@@ -60,6 +95,11 @@
    default MesWmBatchDO selectFirst(MesWmBatchDO batch) {
        LambdaQueryWrapper<MesWmBatchDO> query = new LambdaQueryWrapper<>();
        query.eq(MesWmBatchDO::getItemId, batch.getItemId());
        if (ObjUtil.isNull(batch.getReelNo())) {
            query.isNull(MesWmBatchDO::getReelNo);
        } else {
            query.eq(MesWmBatchDO::getReelNo, batch.getReelNo());
        }
        if (ObjUtil.isNull(batch.getVendorId())) {
            query.isNull(MesWmBatchDO::getVendorId);
        } else {
@@ -133,6 +173,12 @@
        // 返回 ID 最小的批次
        query.orderByAsc(MesWmBatchDO::getId);
        if (batch.getReelNo() != null) {
            // 数据库排序规则可能忽略大小写或末尾空格;盘号必须按输入值精确匹配。
            return selectList(query).stream()
                    .filter(candidate -> batch.getReelNo().equals(candidate.getReelNo()))
                    .findFirst().orElse(null);
        }
        query.last("LIMIT 1");
        return selectOne(query);
    }
@@ -153,4 +199,28 @@
     */
    List<MesWmBatchDO> selectListByBackward(String batchCode);
    /**
     * 查询批次采购来源(采购入库单 + IQC)
     *
     * @param batchCode 批次号
     * @return 采购来源列表
     */
    List<MesWmBatchPurchaseSourceRespVO> selectPurchaseSourceList(String batchCode);
    /**
     * 查询批次销售去向(销售出库单 + OQC)
     *
     * @param batchCode 批次号
     * @return 销售去向列表
     */
    List<MesWmBatchSalesTargetRespVO> selectSalesTargetList(String batchCode);
    /**
     * 查询批次工序流转(产出/投入事件)
     *
     * @param batchCode 批次号
     * @return 工序流转列表
     */
    List<MesWmBatchProcessTraceRespVO> selectProcessTraceList(String batchCode);
}