From eee03bbfea8b15d1a56ab63bd09a35c6c861c4cb Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 09 十一月 2026 13:01:08 +0800
Subject: [PATCH] feat(mes): 不合格品处置联动入库与生产订单

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
index 327209c..ee084d0 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
@@ -415,7 +415,24 @@
             throw exception(SALE_ORDER_SUBMIT_FAIL_ITEM_EMPTY, saleOrder.getNo());
         }
 
-        // 4. 鍒涘缓 BPM 娴佺▼瀹炰緥锛堝鎵瑰湪鍗忓悓鍔炲叕瀹屾垚锛�
+        // 4. 鍚堝悓杞潵鐨勯攢鍞鍗曪紙contractId 闈炵┖锛夋棤闇�鍐嶈蛋瀹℃壒锛�
+        //    鍚堝悓鍦� CRM 宸插鎵归�氳繃锛岃鍗曞唴瀹圭敱鍚堝悓甯﹀叆锛屾彁浜ゅ嵆鐢熸晥銆�
+        //    鐢熸晥鍚庯細闇�瑕佺敓浜х殑鏄庣粏鑷姩鍒涘缓 MPS 娴佽浆鐢熶骇妯″潡锛涙棤闇�鐢熶骇鐨勬槑缁嗗彲鐩存帴鍦ㄤ粨鍌ㄧ敓鎴愬彂璐ч�氱煡鍗曘��
+        //    鍘嗗彶鍚堝悓鐢熸垚鐨勮鍗曟槑缁嗗彲鑳芥湭缁存姢鈥滄槸鍚﹂渶瑕佺敓浜р�濓紝鎸夌郴缁熼粯璁わ紙闇�瑕佺敓浜э級琛ラ綈鍚庡啀鐢熸晥銆�
+        if (saleOrder.getContractId() != null) {
+            items.stream()
+                    .filter(item -> item.getNeedProduction() == null)
+                    .forEach(item -> saleOrderItemMapper.updateById(
+                            new ErpSaleOrderItemDO().setId(item.getId()).setNeedProduction(1)));
+            saleOrderMapper.updateById(new ErpSaleOrderDO()
+                    .setId(id)
+                    .setStatus(ErpAuditStatus.APPROVING.getStatus())
+                    .setProcessInstanceId(""));
+            updateSaleOrderAuditStatus(id, cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.APPROVE.getStatus());
+            return;
+        }
+
+        // 5. 鍒涘缓 BPM 娴佺▼瀹炰緥锛堝鎵瑰湪鍗忓悓鍔炲叕瀹屾垚锛�
         // 鍏ㄥ眬鍏嶅鎵癸細涓氬姟鏍¢獙閫氳繃鍚庣洿鎺ユ墽琛屽鎵归�氳繃閫昏緫锛屾棤闇�娴佺▼妯″瀷銆�
         if (processInstanceApi.isGlobalAutoApprove()) {
             saleOrderMapper.updateById(new ErpSaleOrderDO()
@@ -431,7 +448,7 @@
                         .setProcessDefinitionKey(processDefinitionKey)
                         .setBusinessKey(String.valueOf(id)));
 
-        // 5. 鏇存柊閿�鍞鍗曠姸鎬佷负瀹℃壒涓紝璁板綍娴佺▼瀹炰緥缂栧彿
+        // 6. 鏇存柊閿�鍞鍗曠姸鎬佷负瀹℃壒涓紝璁板綍娴佺▼瀹炰緥缂栧彿
         saleOrderMapper.updateById(new ErpSaleOrderDO()
                 .setId(id)
                 .setStatus(ErpAuditStatus.APPROVING.getStatus())

--
Gitblit v1.9.3