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