From 1c1daebcb9f89138a84e9a7643d1909bb1a5a342 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 14 七月 2026 10:27:31 +0800
Subject: [PATCH] 1.仓储物流-自定义出入库分别新增接口
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java | 35 ++++++++++++++++++++++++-----------
1 files changed, 24 insertions(+), 11 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 5c9f684..b167ca2 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
@@ -243,22 +243,31 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public Long adjustMaterialStock(MesWmMaterialStockAdjustReqVO reqVO) {
+ public Long adjustMaterialStockIn(MesWmMaterialStockAdjustReqVO reqVO) {
+ return doAdjustMaterialStock(reqVO, true);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Long adjustMaterialStockOut(MesWmMaterialStockAdjustReqVO reqVO) {
+ return doAdjustMaterialStock(reqVO, false);
+ }
+
+ /**
+ * 鎵ц搴撳瓨璋冩暣
+ *
+ * @param reqVO 璋冩暣璇锋眰
+ * @param isInbound 鏄惁涓哄叆搴擄紙true=鍏ュ簱锛宖alse=鍑哄簱锛�
+ * @return 搴撳瓨璁板綍ID
+ */
+ private Long doAdjustMaterialStock(MesWmMaterialStockAdjustReqVO reqVO, boolean isInbound) {
// 1. 鏍¢獙鐗╂枡瀛樺湪涓斿惎鐢�
MesMdmItemDO item = mdmItemService.validateItemExistsAndEnable(reqVO.getItemId());
- // 2. 鍒ゆ柇鏄叆搴撹繕鏄嚭搴�
- BigDecimal quantity = reqVO.getQuantity();
- if (quantity == null || quantity.compareTo(BigDecimal.ZERO) == 0) {
- throw exception(WM_MATERIAL_STOCK_QUANTITY_INVALID);
- }
- boolean isInbound = quantity.compareTo(BigDecimal.ZERO) > 0;
- int bizType = isInbound ? MesBizTypeConstants.WM_STOCK_ADJUST_IN : MesBizTypeConstants.WM_STOCK_ADJUST_OUT;
-
- // 3. 鏍¢獙搴撲綅娣锋斁瑙勫垯
+ // 2. 鏍¢獙搴撲綅娣锋斁瑙勫垯
checkAreaMixingRule(reqVO.getAreaId(), reqVO.getItemId(), reqVO.getBatchId());
- // 4. 鑾峰彇鎴栧垱寤哄簱瀛樿褰�
+ // 3. 鑾峰彇鎴栧垱寤哄簱瀛樿褰�
MesWmMaterialStockDO stock = getOrCreateMaterialStock(
reqVO.getItemId(),
reqVO.getWarehouseId(),
@@ -270,10 +279,14 @@
LocalDateTime.now()
);
+ // 4. 璁$畻鍙樺姩鏁伴噺锛氬叆搴撲负姝o紝鍑哄簱涓鸿礋
+ BigDecimal quantity = isInbound ? reqVO.getQuantity() : reqVO.getQuantity().negate();
+
// 5. 鏇存柊搴撳瓨鏁伴噺锛堝嚭搴撴椂鏍¢獙搴撳瓨鍏呰冻锛�
updateMaterialStockQuantity(stock.getId(), quantity, !isInbound);
// 6. 鍒涘缓搴撳瓨浜嬪姟娴佹按
+ int bizType = isInbound ? MesBizTypeConstants.WM_STOCK_ADJUST_IN : MesBizTypeConstants.WM_STOCK_ADJUST_OUT;
MesWmTransactionSaveReqDTO transaction = new MesWmTransactionSaveReqDTO()
.setType(isInbound ? MesWmTransactionTypeEnum.IN.getType() : MesWmTransactionTypeEnum.OUT.getType())
.setBizType(bizType)
--
Gitblit v1.9.3