From ffe7921a138331185186fd100846fe50dcaf841c Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 16 七月 2026 10:08:02 +0800
Subject: [PATCH] 1.采购管理-采购申请恢复

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java |   30 +++++++++++++++++++++++++++---
 1 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java
index 29db064..2f5f920 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/arrivalnotice/MesWmArrivalNoticeServiceImpl.java
@@ -15,8 +15,10 @@
 import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderRespDTO;
 import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpPurchaseOrderItemRespDTO;
 import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
+import cn.iocoder.yudao.module.mes.service.qc.iqc.MesQcIqcService;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -50,6 +52,10 @@
 
     @Resource
     private MesMdmItemService mdmItemService;
+
+    @Resource
+    @Lazy
+    private MesQcIqcService iqcService;
 
     @Override
     public Long createArrivalNotice(MesWmArrivalNoticeSaveReqVO createReqVO) {
@@ -115,7 +121,7 @@
     @Transactional(rollbackFor = Exception.class)
     public void submitArrivalNotice(Long id) {
         // 1.1 鏍¢獙瀛樺湪 + 鑽夌鐘舵��
-        validateArrivalNoticeExistsAndDraft(id);
+        MesWmArrivalNoticeDO notice = validateArrivalNoticeExistsAndDraft(id);
         // 1.2 妫�鏌ユ槸鍚︽湁琛岄」鐩�
         List<MesWmArrivalNoticeLineDO> lines = arrivalNoticeLineService.getArrivalNoticeLineListByNoticeId(id);
         if (CollUtil.isEmpty(lines)) {
@@ -126,9 +132,26 @@
         boolean needCheck = CollectionUtils.anyMatch(lines,
                 line -> Boolean.TRUE.equals(line.getIqcCheckFlag()));
         if (needCheck) {
-            // 闇�瑕佹楠岋紝杩涘叆寰呰川妫�
+            // 2.1 闇�瑕佹楠岋紝杩涘叆寰呰川妫�
             arrivalNoticeMapper.updateById(new MesWmArrivalNoticeDO()
                     .setId(id).setStatus(MesWmArrivalNoticeStatusEnum.PENDING_QC.getStatus()));
+            // 2.2 涓洪渶瑕佽川妫�鐨勮鑷姩鍒涘缓 IQC 妫�楠屽崟
+            for (MesWmArrivalNoticeLineDO line : lines) {
+                if (Boolean.TRUE.equals(line.getIqcCheckFlag()) && line.getIqcId() == null) {
+                    try {
+                        Long iqcId = iqcService.createIqcFromArrivalNotice(
+                                id, line, notice.getCode(), notice.getVendorId());
+                        // 鏇存柊琛屼笂鐨� iqcId
+                        arrivalNoticeLineService.updateArrivalNoticeLineIqcId(line.getId(), iqcId);
+                        log.info("[submitArrivalNotice][鍒拌揣閫氱煡鍗�({}) 琛�({}) 鑷姩鍒涘缓 IQC 妫�楠屽崟({})]",
+                                id, line.getId(), iqcId);
+                    } catch (Exception e) {
+                        log.warn("[submitArrivalNotice][鍒拌揣閫氱煡鍗�({}) 琛�({}) 鍒涘缓 IQC 澶辫触: {}]",
+                                id, line.getId(), e.getMessage());
+                        // 缁х画澶勭悊鍏朵粬琛岋紝涓嶄腑鏂祦绋�
+                    }
+                }
+            }
             return;
         }
         // 涓嶉渶瑕佹楠岋紝鐩存帴杩涘叆寰呭叆搴�
@@ -295,7 +318,8 @@
             // 娉ㄦ剰锛氳繖閲岄渶瑕佹牴鎹� ERP 浜у搧 ID 鏄犲皠鍒� MES 鐗╂枡 ID
             // 瀹為檯椤圭洰涓渶瑕侀�氳繃鏄犲皠鏈嶅姟澶勭悊锛岃繖閲屾殏鏃剁暀绌鸿鐢ㄦ埛鎵嬪姩閫夋嫨
             line.setArrivalQuantity(item.getCount() != null ? item.getCount().subtract(item.getInCount() != null ? item.getInCount() : BigDecimal.ZERO) : BigDecimal.ZERO);
-            line.setIqcCheckFlag(false); // 榛樿涓嶉渶瑕佹楠岋紝鐢ㄦ埛鍙慨鏀�
+            // 浠庨噰璐鍗曟槑缁嗗甫鍏ヨ川妫�鏍囪瘑
+            line.setIqcCheckFlag(Boolean.TRUE.equals(item.getQcCheckFlag()));
             arrivalNoticeLineService.createArrivalNoticeLineFromPurchaseOrderItem(line);
         }
 

--
Gitblit v1.9.3