From b08a6f05c20cbdb29ffc4d447aedb5ccdc2f607f Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 17 九月 2026 11:52:43 +0800
Subject: [PATCH] fix(mes): 委外检测/试验单保存时校验检测对象物料存在性

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/outsourcetest/MesQcOutsourceTestServiceImpl.java |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/outsourcetest/MesQcOutsourceTestServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/outsourcetest/MesQcOutsourceTestServiceImpl.java
index 6911ad6..290469e 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/outsourcetest/MesQcOutsourceTestServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/outsourcetest/MesQcOutsourceTestServiceImpl.java
@@ -8,6 +8,7 @@
 import cn.iocoder.yudao.module.mes.controller.admin.qc.outsourcetest.vo.MesQcOutsourceTestSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.outsourcetest.MesQcOutsourceTestDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.qc.outsourcetest.MesQcOutsourceTestMapper;
+import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
 import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
@@ -56,11 +57,15 @@
     @Resource
     private MesQcOutsourceTestMapper testMapper;
     @Resource
+    private MesMdItemService itemService;
+    @Resource
     private StorageAttachmentApi storageAttachmentApi;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long createTest(MesQcOutsourceTestSaveReqVO createReqVO) {
+        // 0. 鏍¢獙妫�娴嬪璞★紙鐗╂枡锛夊瓨鍦�
+        validateItemIfPresent(createReqVO.getItemId());
         // 1. 鐢熸垚鍗曞彿
         String code = generateCode();
         if (testMapper.selectByCode(code) != null) {
@@ -80,8 +85,9 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void updateTest(MesQcOutsourceTestSaveReqVO updateReqVO) {
-        // 1. 鏍¢獙瀛樺湪 + 鑽夌
+        // 1. 鏍¢獙瀛樺湪 + 鑽夌 + 妫�娴嬪璞★紙鐗╂枡锛夊瓨鍦�
         MesQcOutsourceTestDO oldTest = validateTestCanModify(updateReqVO.getId());
+        validateItemIfPresent(updateReqVO.getItemId());
         // 2. 鏇存柊
         MesQcOutsourceTestDO updateObj = BeanUtils.toBean(updateReqVO, MesQcOutsourceTestDO.class, req -> req
                 .setCode(oldTest.getCode())
@@ -134,6 +140,12 @@
         testMapper.updateById(new MesQcOutsourceTestDO().setId(id).setStatus(STATUS_FINISHED));
     }
 
+    private void validateItemIfPresent(Long itemId) {
+        if (itemId != null) {
+            itemService.validateItemExists(itemId);
+        }
+    }
+
     private String generateCode() {
         return "WT" + DateUtil.format(java.time.LocalDateTime.now(), "yyyyMMddHHmmss")
                 + String.format("%03d", (int) (Math.random() * 1000));

--
Gitblit v1.9.3