From f71dabccb0e4c2fa410683e6058eb906a7dbf094 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期三, 26 八月 2026 18:12:07 +0800
Subject: [PATCH] feat 采购修正

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java |   14 +++++++++++---
 1 files changed, 11 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 f6fd5bf..f15ad92 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
@@ -184,13 +184,21 @@
             if (item == null) {
                 continue;
             }
-            // 濡傛灉鐗╂枡寮�鍚壒娆$鐞嗭紝妫�鏌ヨ涓婄殑鎵规鍙锋槸鍚︿负绌�
-            if (Boolean.TRUE.equals(item.getIsBatchManaged()) && line.getBatchId() == null) {
-                throw exception(WM_ITEM_RECEIPT_BATCH_REQUIRED, item.getCode(), item.getName());
+            // 濡傛灉鐗╂枡寮�鍚壒娆$鐞嗭紝琛屾垨鍏朵笂鏋舵槑缁嗗繀椤绘惡甯︽壒娆″彿锛屽惁鍒欐棤娉曠敓鎴愬簱瀛樹簨鍔�
+            if (Boolean.TRUE.equals(item.getIsBatchManaged())) {
+                boolean hasBatch = line.getBatchId() != null
+                        || hasDetailBatch(itemReceiptDetailService.getItemReceiptDetailListByLineId(line.getId()));
+                if (!hasBatch) {
+                    throw exception(WM_ITEM_RECEIPT_BATCH_REQUIRED, item.getCode(), item.getName());
+                }
             }
         }
     }
 
+    private boolean hasDetailBatch(List<MesWmItemReceiptDetailDO> details) {
+        return details.stream().anyMatch(detail -> detail.getBatchId() != null);
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void stockItemReceipt(Long id) {

--
Gitblit v1.9.3