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/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java |   39 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java
index f7c8664..368852e 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java
@@ -1,13 +1,16 @@
 package cn.iocoder.yudao.module.mes.service.wm.stocktaking.task;
 
 import cn.hutool.core.util.ObjUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.result.MesWmStockTakingTaskResultPageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.result.MesWmStockTakingTaskResultSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskLineDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskResultDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.task.MesWmStockTakingTaskResultMapper;
+import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseDefaultService;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -36,6 +39,8 @@
     private MesWmStockTakingTaskLineService stockTakingTaskLineService;
     @Resource
     private MesWmStockTakingTaskService stockTakingTaskService;
+    @Resource
+    private MesWmWarehouseDefaultService warehouseDefaultService;
 
     @Override
     public PageResult<MesWmStockTakingTaskResultDO> getStockTakingTaskResultPage(
@@ -57,19 +62,43 @@
         // 2. 纭畾 lineId 鍜岃处闈㈡暟閲�
         Long lineId = createReqVO.getLineId();
         MesWmStockTakingTaskLineDO existingLine = null;
+        if (lineId != null) {
+            // 2.1 濡傛灉浼犻�掍簡 lineId锛屼粠 line 涓幏鍙� quantity锛屽苟琛ラ綈浠撳簱/搴撳尯/搴撲綅/鎵规
+            existingLine = stockTakingTaskLineService.validateStockTakingTaskLineExists(lineId);
+            if (createReqVO.getWarehouseId() == null) {
+                createReqVO.setWarehouseId(existingLine.getWarehouseId());
+            }
+            if (createReqVO.getLocationId() == null) {
+                createReqVO.setLocationId(existingLine.getLocationId());
+            }
+            if (createReqVO.getAreaId() == null) {
+                createReqVO.setAreaId(existingLine.getAreaId());
+            }
+            if (createReqVO.getBatchId() == null) {
+                createReqVO.setBatchId(existingLine.getBatchId());
+            }
+            if (StrUtil.isEmpty(createReqVO.getBatchCode())) {
+                createReqVO.setBatchCode(existingLine.getBatchCode());
+            }
+        }
+        // 2.2 鏈寚瀹氬簱鍖�/搴撲綅鏃讹紝钀藉埌浠撳簱榛樿搴撳尯/搴撲綅锛堝鎴锋湭鍚敤搴撳尯/搴撲綅绠$悊锛�
+        if (createReqVO.getWarehouseId() != null
+                && (createReqVO.getLocationId() == null || createReqVO.getAreaId() == null)) {
+            MesWmWarehouseAreaDO defaultArea =
+                    warehouseDefaultService.getOrCreateDefaultArea(createReqVO.getWarehouseId());
+            createReqVO.setLocationId(defaultArea.getLocationId());
+            createReqVO.setAreaId(defaultArea.getId());
+        }
         if (lineId == null) {
-            // 2.1 鍩轰簬 taskId + itemId + areaId 鏌ヨ宸插瓨鍦ㄧ殑 line
+            // 2.3 鍩轰簬 taskId + itemId + areaId 鏌ヨ宸插瓨鍦ㄧ殑 line
             existingLine = stockTakingTaskLineService.getStockTakingTaskLine(
                     createReqVO.getTaskId(), createReqVO.getItemId(), createReqVO.getAreaId());
             if (existingLine != null) {
                 lineId = existingLine.getId();
             } else {
-                // 2.2 鍒涘缓鏂扮殑 line锛堟敞鎰忥細褰撶洏鐐圭粨鏋滄病鏈夊搴旂殑鐩樼偣娓呭崟琛屾椂锛屼細鑷姩鍒涘缓涓�涓柊鐨勭洏鐐逛换鍔¤锛�
+                // 2.4 鍒涘缓鏂扮殑 line锛堟敞鎰忥細褰撶洏鐐圭粨鏋滄病鏈夊搴旂殑鐩樼偣娓呭崟琛屾椂锛屼細鑷姩鍒涘缓涓�涓柊鐨勭洏鐐逛换鍔¤锛�
                 lineId = stockTakingTaskLineService.createStockTakingTaskLine(createReqVO);
             }
-        } else {
-            // 2.3 濡傛灉浼犻�掍簡 lineId锛屼粠 line 涓幏鍙� quantity
-            existingLine = stockTakingTaskLineService.validateStockTakingTaskLineExists(lineId);
         }
         if (existingLine != null
                 && existingLine.getTakingQuantity() != null

--
Gitblit v1.9.3