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/transaction/MesWmTransactionServiceImpl.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
index 43f4f0b..7cb1721 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/transaction/MesWmTransactionServiceImpl.java
@@ -21,6 +21,7 @@
 import cn.iocoder.yudao.module.mes.service.wm.stockwarning.MesWmStockWarningService;
 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 jakarta.annotation.Resource;
@@ -60,6 +61,8 @@
     @Resource
     private MesWmWarehouseAreaService areaService;
     @Resource
+    private MesWmWarehouseDefaultService warehouseDefaultService;
+    @Resource
     private MesWmStockWarningService stockWarningService;
 
     @Override
@@ -75,6 +78,10 @@
         checkQuantity(reqDTO, inbound);
         // 1.3 鍏ュ簱浜嬪姟锛氭壒娆″彿鏍¢獙 + batchId/batchCode 浜掕ˉ
         checkBatch(reqDTO, inbound);
+        // 1.3.1 鍏ュ簱浜嬪姟鏈寚瀹氬簱鍖�/搴撲綅鏃讹紝鑷姩钀藉埌浠撳簱榛樿搴撳尯/搴撲綅锛堝鎴锋湭鍚敤搴撳尯/搴撲綅绠$悊锛�
+        if (inbound) {
+            fillDefaultLocationAndArea(reqDTO);
+        }
         // 1.4 鍏ュ簱浜嬪姟锛氬簱浣嶆贩鏀捐鍒欐牎楠�
         if (inbound) {
             materialStockService.checkAreaMixingRule(reqDTO.getAreaId(), reqDTO.getItemId(), reqDTO.getBatchId());
@@ -171,6 +178,21 @@
     // ==================== 绉佹湁鏍¢獙鏂规硶 ====================
 
     /**
+     * 鍏ュ簱浜嬪姟鏈寚瀹氬簱鍖�/搴撲綅鏃讹紝鑷姩浣跨敤浠撳簱鐨勯粯璁ゅ簱鍖�/榛樿搴撲綅
+     *
+     * 瀹㈡埛鏈惎鐢ㄥ簱鍖�/搴撲綅绠$悊锛屽墠绔笉鍐嶈鐢ㄦ埛閫夋嫨锛屽簱瀛樹粛闇�瑕佸畬鏁寸殑浠撳簱-搴撳尯-搴撲綅缁村害銆�
+     */
+    private void fillDefaultLocationAndArea(MesWmTransactionSaveReqDTO reqDTO) {
+        if (reqDTO.getWarehouseId() == null
+                || (reqDTO.getLocationId() != null && reqDTO.getAreaId() != null)) {
+            return;
+        }
+        MesWmWarehouseAreaDO defaultArea = warehouseDefaultService.getOrCreateDefaultArea(reqDTO.getWarehouseId());
+        reqDTO.setLocationId(defaultArea.getLocationId());
+        reqDTO.setAreaId(defaultArea.getId());
+    }
+
+    /**
      * 鏍¢獙鏁伴噺姝h礋鍙蜂笌浜嬪姟鏂瑰悜涓�鑷�
      */
     private void checkQuantity(MesWmTransactionSaveReqDTO reqDTO, boolean inbound) {

--
Gitblit v1.9.3