From cea8396d93b31fe6037a0558febcabb2169363a8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 14 十月 2026 14:02:25 +0800
Subject: [PATCH] feat(wm): 入库单和领料单支持手工填写关联信息

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
index aa30333..c0026fc 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
@@ -113,12 +113,15 @@
     private void validateItemReceiptSaveData(MesWmItemReceiptSaveReqVO reqVO) {
         // 鏍¢獙缂栫爜鍞竴
         validateCodeUnique(reqVO.getId(), reqVO.getCode());
-        // 鏍¢獙渚涘簲鍟嗗瓨鍦紙閲囪喘鍏ュ簱浣跨敤 ERP 渚涘簲鍟嗭級
-        srmSupplierApi.getSupplier(reqVO.getVendorId());
+        // 鏍¢獙渚涘簲鍟嗗瓨鍦紙閲囪喘鍏ュ簱浣跨敤 ERP 渚涘簲鍟嗭級锛涗緵搴斿晢宸叉敼涓哄彲閫夛紝鍏佽鎵嬪伐濉啓鍚嶇О锛屾鏃朵笉鏍¢獙涓绘暟鎹�
+        if (reqVO.getVendorId() != null) {
+            srmSupplierApi.getSupplier(reqVO.getVendorId());
+        }
         // 鏍¢獙鍒拌揣閫氱煡鍗曞瓨鍦�
         if (reqVO.getNoticeId() != null) {
             MesWmArrivalNoticeDO notice = arrivalNoticeService.validateArrivalNoticeReadyForReceipt(reqVO.getNoticeId());
-            if (ObjUtil.notEqual(notice.getVendorId(), reqVO.getVendorId())) {
+            // 浠呭湪閫夋嫨浜嗕緵搴斿晢涓绘暟鎹椂鎵嶆瘮瀵逛笌鍒拌揣閫氱煡鍗曠殑涓�鑷存�э紱鎵嬪~渚涘簲鍟嗗悕绉版椂璺宠繃
+            if (reqVO.getVendorId() != null && ObjUtil.notEqual(notice.getVendorId(), reqVO.getVendorId())) {
                 throw exception(WM_ARRIVAL_NOTICE_VENDOR_MISMATCH);
             }
         }
@@ -445,6 +448,16 @@
 
         // 2. 鍒涘缓 BPM 娴佺▼瀹炰緥
         Long userId = getCurrentUserId();
+        // 鍏ㄥ眬鍏嶅鎵癸細涓氬姟鏍¢獙閫氳繃鍚庣洿鎺ユ墽琛屽鎵归�氳繃閫昏緫锛屾棤闇�娴佺▼妯″瀷銆�
+        if (processInstanceApi.isGlobalAutoApprove()) {
+            itemReceiptMapper.updateById(new MesWmItemReceiptDO()
+                    .setId(id)
+                    .setStatus(MesWmItemReceiptStatusEnum.APPROVING.getStatus())
+                    .setProcessInstanceId(""));
+            updateItemReceiptAuditStatus(id, cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum.APPROVE.getStatus());
+            return;
+        }
+
         String processInstanceId = processInstanceApi.createProcessInstance(userId,
                 new BpmProcessInstanceCreateReqDTO()
                         .setProcessDefinitionKey(processDefinitionKey)

--
Gitblit v1.9.3