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 |   19 +++++++++++--------
 1 files changed, 11 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 ef1b5c0..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,7 +262,7 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void stockItemReceipt(Long id) {
-        // 鏍¢獙瀛樺湪
+        // 鏍¢獙瀛樺湪 + 寰呬笂鏋�
         MesWmItemReceiptDO receipt = validateItemReceiptExists(id);
         if (ObjUtil.notEqual(MesWmItemReceiptStatusEnum.APPROVING.getStatus(), receipt.getStatus())) {
             throw exception(WM_ITEM_RECEIPT_STATUS_ERROR);
@@ -283,8 +280,7 @@
                 throw exception(WM_ITEM_RECEIPT_DETAIL_QUANTITY_MISMATCH);
             }
         }
-
-        // 鎵ц涓婃灦锛堝緟涓婃灦 鈫� 寰呭叆搴擄級
+        // 涓婃灦瀹屾垚锛堝緟涓婃灦 鈫� 寰呮墽琛屽叆搴擄級
         itemReceiptMapper.updateById(new MesWmItemReceiptDO()
                 .setId(id).setStatus(MesWmItemReceiptStatusEnum.APPROVED.getStatus()));
     }
@@ -408,14 +404,21 @@
 
     @Override
     public MesWmItemReceiptDO validateItemReceiptEditable(Long id) {
+        // 鑽夌涓庡緟涓婃灦鐘舵�佸厑璁哥紪杈戜笂鏋舵槑缁嗭細鎻愪氦鍚庝粨搴撴墽琛屼笂鏋舵椂褰曞叆搴撲綅/鎵规
         MesWmItemReceiptDO receipt = validateItemReceiptExists(id);
-        if (ObjUtil.notEqual(receipt.getStatus(), MesWmItemReceiptStatusEnum.PREPARE.getStatus())
-                && ObjUtil.notEqual(receipt.getStatus(), MesWmItemReceiptStatusEnum.APPROVING.getStatus())) {
+        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);
+    }
+
     private MesWmItemReceiptDO validateItemReceiptExists(Long id) {
         MesWmItemReceiptDO receipt = itemReceiptMapper.selectById(id);
         if (receipt == null) {

--
Gitblit v1.9.3