From 3990ae574c221e3764ce9cbc2e4e3eb71b7b1b52 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 24 十月 2026 23:41:23 +0800
Subject: [PATCH] fix(mes): 修复批次正反向追溯链路

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 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 018802e..18bdd6d 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
@@ -181,9 +181,6 @@
         // 鏍¢獙鐗╂枡鎵规绠$悊锛氬鏋滅墿鏂欏紑鍚壒娆$鐞嗭紝鍒欐槑缁嗙殑鎵规鍙蜂笉鑳戒负绌�
         validateBatchManagement(lines);
 
-        // 鏍¢獙瀹℃壒閰嶇疆宸插惎鐢ㄤ笖閰嶇疆浜嗘湁鏁堝鏍镐汉锛堟湭閰嶇疆鏃舵姏鍑哄甫鏄庣‘鎻愮ず鐨勪笟鍔″紓甯革級
-        approvalConfigApi.validateApprovalEnabledAndGetApprovers(ITEM_RECEIPT_APPROVE_BIZ_TYPE);
-
         // 鎻愪氦锛堣崏绋� 鈫� 寰呬笂鏋讹級锛屽苟娓呯┖涓婁竴杞鏍哥粨鏋�
         itemReceiptMapper.submitAndResetAuditInfo(id, MesWmItemReceiptStatusEnum.APPROVING.getStatus());
     }
@@ -265,9 +262,9 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void stockItemReceipt(Long id) {
-        // 鏍¢獙瀛樺湪 + 宸插鎵癸紙鐘舵�佸彧鑳界敱 audit 鎺ㄨ繘锛欰PPROVING 鈫� APPROVED锛�
+        // 鏍¢獙瀛樺湪 + 寰呬笂鏋�
         MesWmItemReceiptDO receipt = validateItemReceiptExists(id);
-        if (ObjUtil.notEqual(MesWmItemReceiptStatusEnum.APPROVED.getStatus(), receipt.getStatus())) {
+        if (ObjUtil.notEqual(MesWmItemReceiptStatusEnum.APPROVING.getStatus(), receipt.getStatus())) {
             throw exception(WM_ITEM_RECEIPT_STATUS_ERROR);
         }
         // 鏍¢獙姣忚鏄庣粏鏁伴噺涔嬪拰鏄惁绛変簬琛屽叆搴撴暟閲�
@@ -283,8 +280,9 @@
                 throw exception(WM_ITEM_RECEIPT_DETAIL_QUANTITY_MISMATCH);
             }
         }
-        // 娉ㄦ剰锛氭湰鏂规硶浠呭仛鏁伴噺涓�鑷存�ф牎楠岋紝涓嶅緱淇敼鍗曟嵁鐘舵�併��
-        // 鐘舵�佹祦杞敱 audit锛圓PPROVING 鈫� APPROVED锛変笌 finish锛圓PPROVED 鈫� FINISHED锛夎礋璐c��
+        // 涓婃灦瀹屾垚锛堝緟涓婃灦 鈫� 寰呮墽琛屽叆搴擄級
+        itemReceiptMapper.updateById(new MesWmItemReceiptDO()
+                .setId(id).setStatus(MesWmItemReceiptStatusEnum.APPROVED.getStatus()));
     }
 
     @Override
@@ -406,7 +404,18 @@
 
     @Override
     public MesWmItemReceiptDO validateItemReceiptEditable(Long id) {
-        // 浠呰崏绋跨姸鎬佸厑璁哥紪杈戣/鏄庣粏锛涘鎵逛腑锛圓PPROVING锛夊凡閿佸畾锛岄伩鍏嶇粫杩囧鏍镐慨鏀规暟鎹�
+        // 鑽夌涓庡緟涓婃灦鐘舵�佸厑璁哥紪杈戜笂鏋舵槑缁嗭細鎻愪氦鍚庝粨搴撴墽琛屼笂鏋舵椂褰曞叆搴撲綅/鎵规
+        MesWmItemReceiptDO receipt = validateItemReceiptExists(id);
+        if (ObjUtil.notEqual(MesWmItemReceiptStatusEnum.PREPARE.getStatus(), receipt.getStatus())
+                && ObjUtil.notEqual(MesWmItemReceiptStatusEnum.APPROVING.getStatus(), receipt.getStatus())) {
+            throw exception(WM_ITEM_RECEIPT_STATUS_NOT_PREPARE);
+        }
+        return receipt;
+    }
+
+    @Override
+    public MesWmItemReceiptDO validateItemReceiptLineEditable(Long id) {
+        // 琛屾暟鎹粎鑽夌鍙敼锛氭彁浜ゅ悗琛屾暟鎹攣瀹氾紝閬垮厤涓婃灦闃舵鏀瑰姩鍏ュ簱鏁伴噺
         return validateItemReceiptExistsAndDraft(id);
     }
 

--
Gitblit v1.9.3