liu
2026-10-24 3990ae574c221e3764ce9cbc2e4e3eb71b7b1b52
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/rqc/MesQcRqcServiceImpl.java
@@ -3,6 +3,8 @@
import cn.hutool.core.util.ObjUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi;
import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO;
import cn.iocoder.yudao.module.mes.controller.admin.qc.rqc.vo.MesQcRqcPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.qc.rqc.vo.MesQcRqcSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.defectrecord.MesQcDefectRecordDO;
@@ -23,6 +25,7 @@
import cn.iocoder.yudao.module.mes.service.wm.returnsales.MesWmReturnSalesLineService;
import cn.iocoder.yudao.module.mes.controller.admin.qc.ncr.vo.MesQcNcrSaveReqVO;
import cn.iocoder.yudao.module.mes.service.qc.ncr.MesQcNcrService;
import cn.iocoder.yudao.module.mes.service.qc.support.MesQcItemResolver;
import cn.iocoder.yudao.module.mes.enums.qc.MesQcCheckResultEnum;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import jakarta.annotation.Resource;
@@ -68,6 +71,10 @@
    @Resource
    @Lazy
    private MesMdItemService itemService;
    @Resource
    private MdmItemApi mdmItemApi;
    @Resource
    private MesQcItemResolver qcItemResolver;
    @Resource
    @Lazy
    private MesQcDefectRecordService defectRecordService;
@@ -137,8 +144,8 @@
    private void validateRqcSaveData(MesQcRqcSaveReqVO reqVO) {
        // 校验编号唯一
        validateRqcCodeUnique(reqVO.getId(), reqVO.getCode());
        // 校验物料、检测人员存在
        itemService.validateItemExists(reqVO.getItemId());
        // 校验物料、检测人员存在(兼容 mdm_item.id / mes_md_item.id)
        qcItemResolver.validateItemExists(reqVO.getItemId());
        adminUserApi.validateUser(reqVO.getInspectorUserId());
    }
@@ -379,7 +386,8 @@
                respVO.getFailureCodes().put(key, "检测日期不能为空");
                return;
            }
            cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO item = itemService.getItemByCode(importItem.getItemCode());
            // 退货检验单的物料以 MDM 为准,导入按 MDM 物料编码解析
            MdmItemRespDTO item = mdmItemApi.getItemByCode(importItem.getItemCode()).getCheckedData();
            if (item == null) {
                respVO.getFailureCodes().put(key, "物料不存在:" + importItem.getItemCode());
                return;