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/miscreceipt/MesWmMiscReceiptLineServiceImpl.java |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscreceipt/MesWmMiscReceiptLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscreceipt/MesWmMiscReceiptLineServiceImpl.java
index dee628f..c810d44 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscreceipt/MesWmMiscReceiptLineServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/miscreceipt/MesWmMiscReceiptLineServiceImpl.java
@@ -5,9 +5,11 @@
 import cn.iocoder.yudao.module.mes.controller.admin.wm.miscreceipt.vo.line.MesWmMiscReceiptLinePageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.miscreceipt.vo.line.MesWmMiscReceiptLineSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.miscreceipt.MesWmMiscReceiptLineDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.wm.miscreceipt.MesWmMiscReceiptLineMapper;
 import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
 import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
+import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseDefaultService;
 import jakarta.annotation.Resource;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -39,6 +41,8 @@
     private MesMdmItemService mdmItemService;
     @Resource
     private MesWmWarehouseAreaService warehouseAreaService;
+    @Resource
+    private MesWmWarehouseDefaultService warehouseDefaultService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -62,6 +66,8 @@
         // 1. 鏍¢獙
         MesWmMiscReceiptLineDO line = validateMiscReceiptLineExists(updateReqVO.getId());
         updateReqVO.setReceiptId(line.getReceiptId());
+        // 鏈寚瀹氬簱鍖�/搴撲綅鏃讹紝钀藉埌浠撳簱榛樿搴撳尯/搴撲綅锛堝鎴锋湭鍚敤搴撳尯/搴撲綅绠$悊锛�
+        fillDefaultLocationAndArea(updateReqVO);
 
         // 2. 鏇存柊琛�
         MesWmMiscReceiptLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmMiscReceiptLineDO.class);
@@ -126,9 +132,24 @@
         miscReceiptService.validateMiscReceiptEditable(reqVO.getReceiptId());
         // 鏍¢獙鐗╂枡瀛樺湪
         mdmItemService.validateItemExistsAndEnable(reqVO.getItemId());
+        // 鏈寚瀹氬簱鍖�/搴撲綅鏃讹紝钀藉埌浠撳簱榛樿搴撳尯/搴撲綅锛堝鎴锋湭鍚敤搴撳尯/搴撲綅绠$悊锛�
+        fillDefaultLocationAndArea(reqVO);
         // 鏍¢獙浠撳簱灞傜骇鍏崇郴锛堜粨搴� - 搴撲綅 - 搴撳尯锛�
         warehouseAreaService.validateWarehouseAreaExists(reqVO.getWarehouseId(),
                 reqVO.getLocationId(), reqVO.getAreaId());
     }
 
+    /**
+     * 鏈寚瀹氬簱鍖�/搴撲綅鏃讹紝钀藉埌浠撳簱榛樿搴撳尯/搴撲綅
+     */
+    private void fillDefaultLocationAndArea(MesWmMiscReceiptLineSaveReqVO reqVO) {
+        if (reqVO.getWarehouseId() == null
+                || (reqVO.getLocationId() != null && reqVO.getAreaId() != null)) {
+            return;
+        }
+        MesWmWarehouseAreaDO defaultArea = warehouseDefaultService.getOrCreateDefaultArea(reqVO.getWarehouseId());
+        reqVO.setLocationId(defaultArea.getLocationId());
+        reqVO.setAreaId(defaultArea.getId());
+    }
+
 }

--
Gitblit v1.9.3