From 0889e6b6045796115b254e34237a932d9241c0f8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 02 十一月 2026 10:54:50 +0800
Subject: [PATCH] 诚发五金:入库/调整/移库/调拨/退料/盘点不再要求手选库区库位,后端自动落到仓库默认库区库位

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java
index d4a42da..1f93da2 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java
@@ -39,6 +39,7 @@
 import cn.iocoder.yudao.module.mes.service.wm.transaction.MesWmTransactionService;
 import cn.iocoder.yudao.module.mes.service.wm.transaction.dto.MesWmTransactionSaveReqDTO;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
+import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseDefaultService;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
 import com.mzt.logapi.starter.annotation.LogRecord;
@@ -85,6 +86,9 @@
     @Resource
     @Lazy
     private MesWmWarehouseService warehouseService;
+    @Resource
+    @Lazy
+    private MesWmWarehouseDefaultService warehouseDefaultService;
     @Resource
     @Lazy
     private MesWmTransactionService wmTransactionService;
@@ -245,6 +249,10 @@
 
     @Override
     public void checkAreaMixingRule(Long areaId, Long itemId, Long batchId) {
+        // 鏈寚瀹氬簱浣嶏紙瀹㈡埛鏈惎鐢ㄥ簱鍖�/搴撲綅绠$悊锛夋椂涓嶆牎楠屾贩鏀撅紝鍚庣画鍏ュ簱浜嬪姟浼氳惤鍒颁粨搴撻粯璁ゅ簱浣�
+        if (areaId == null) {
+            return;
+        }
         // 1.1 鏍¢獙搴撲綅蹇呴』瀛樺湪
         MesWmWarehouseAreaDO area = areaService.validateWarehouseAreaExists(areaId);
 
@@ -403,7 +411,14 @@
             }
         }
 
-        // 3. 鏍¢獙搴撲綅娣锋斁瑙勫垯
+        // 3. 鏈寚瀹氬簱鍖�/搴撲綅鏃讹紝钀藉埌浠撳簱榛樿搴撳尯/搴撲綅锛堝鎴锋湭鍚敤搴撳尯/搴撲綅绠$悊锛�
+        if (reqVO.getWarehouseId() != null
+                && (reqVO.getLocationId() == null || reqVO.getAreaId() == null)) {
+            MesWmWarehouseAreaDO defaultArea = warehouseDefaultService.getOrCreateDefaultArea(reqVO.getWarehouseId());
+            reqVO.setLocationId(defaultArea.getLocationId());
+            reqVO.setAreaId(defaultArea.getId());
+        }
+        // 3.1 鏍¢獙搴撲綅娣锋斁瑙勫垯
         checkAreaMixingRule(reqVO.getAreaId(), reqVO.getItemId(), batchId);
 
         // 4. 鑾峰彇鎴栧垱寤哄簱瀛樿褰�
@@ -540,7 +555,16 @@
             throw exception(WM_MATERIAL_STOCK_FROZEN);
         }
 
-        // 4. 鏍¢獙鐩爣搴撲綅娣锋斁瑙勫垯
+        // 4. 鐩爣搴撳尯/搴撲綅鏈寚瀹氭椂锛岃惤鍒扮洰鏍囦粨搴撶殑榛樿搴撳尯/搴撲綅锛堝鎴锋湭鍚敤搴撳尯/搴撲綅绠$悊锛�
+        if (reqVO.getToWarehouseId() == null) {
+            reqVO.setToWarehouseId(sourceStock.getWarehouseId());
+        }
+        if ((reqVO.getToLocationId() == null || reqVO.getToAreaId() == null)) {
+            MesWmWarehouseAreaDO defaultArea = warehouseDefaultService.getOrCreateDefaultArea(reqVO.getToWarehouseId());
+            reqVO.setToLocationId(defaultArea.getLocationId());
+            reqVO.setToAreaId(defaultArea.getId());
+        }
+        // 4.1 鏍¢獙鐩爣搴撲綅娣锋斁瑙勫垯
         checkAreaMixingRule(reqVO.getToAreaId(), sourceStock.getItemId(), sourceStock.getBatchId());
 
         // 5. 鐢熸垚绉诲簱鍗曞彿

--
Gitblit v1.9.3