From 5d818f39c862884b7087488d588fef5b7ce47386 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 28 十月 2026 18:33:55 +0800
Subject: [PATCH] feat(mes): 增加销售退货单与出库单关联功能

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesDetailServiceImpl.java |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesDetailServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesDetailServiceImpl.java
index 32f0981..931bbe9 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesDetailServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesDetailServiceImpl.java
@@ -139,12 +139,27 @@
         // 鏍¢獙浠撳簱銆佸簱鍖恒�佸簱浣嶇殑鍏宠仈鍏崇郴
         warehouseAreaService.validateWarehouseAreaExists(
                 reqVO.getWarehouseId(), reqVO.getLocationId(), reqVO.getAreaId());
+        // 鐗╂枡銆佹壒娆′互閫�璐ц涓哄噯锛堥��璐ф壒娆℃潵鑷攢鍞嚭搴撳崟锛屼笂鏋舵椂涓嶅厑璁稿彉鏇达級
+        reqVO.setItemId(line.getItemId());
+        resolveBatch(reqVO, line);
         // 鏍¢獙搴撲綅鐗╂枡/鎵规娣锋斁瑙勫垯
         materialStockService.checkAreaMixingRule(reqVO.getAreaId(), reqVO.getItemId(), reqVO.getBatchId());
         // 鏍¢獙鏄庣粏鎬绘暟閲忎笉瓒呰繃琛屾暟閲忥紙鎺掗櫎鑷韩锛�
         validateDetailQuantityNotExceed(reqVO.getLineId(), reqVO.getQuantity(), reqVO.getId(), line);
+    }
 
-        // 鏍规嵁 batchCode 瑙f瀽 batchId锛堝繀椤诲湪娣锋斁瑙勫垯鏍¢獙涔嬪墠锛屽洜涓哄畠渚濊禆 batchId锛�
+    /**
+     * 瑙f瀽涓婃灦鏄庣粏鎵规锛氳宸叉寚瀹氭壒娆℃椂寮哄埗娌跨敤锛屽惁鍒欐寜鎵规鍙疯В鏋�
+     */
+    private void resolveBatch(MesWmReturnSalesDetailSaveReqVO reqVO, MesWmReturnSalesLineDO line) {
+        if (line.getBatchId() != null) {
+            if (reqVO.getBatchId() != null && ObjUtil.notEqual(reqVO.getBatchId(), line.getBatchId())) {
+                throw exception(WM_RETURN_SALES_DETAIL_BATCH_MISMATCH);
+            }
+            reqVO.setBatchId(line.getBatchId());
+            reqVO.setBatchCode(line.getBatchCode());
+            return;
+        }
         fillBatchId(reqVO);
     }
 

--
Gitblit v1.9.3