From 4336d99906953517399187638925817d969c4e10 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 14 五月 2026 14:18:14 +0800
Subject: [PATCH] refactor(stock): 优化库存管理和产品模型查询功能
---
src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java | 24 +++++++++++++++++++-----
1 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java
index 86b78a1..309e12f 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
+import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.OrderUtils;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.procurementrecord.utils.StockUtils;
@@ -20,6 +21,7 @@
import com.ruoyi.stock.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
@@ -58,6 +60,7 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public R start(Long id) {
StockInventoryCheckPlan stockInventoryCheckPlan = this.getById(id);
StockInventoryCheckPlanDto stockInventoryCheckPlanDto = new StockInventoryCheckPlanDto();
@@ -96,6 +99,7 @@
StockInventoryCheckItemDto stockInventoryCheckItemDto = new StockInventoryCheckItemDto();
stockInventoryCheckItemDto.setProductModelId(stockInventory.getProductModelId());
stockInventoryCheckItemDto.setBatchNo(stockInventory.getBatchNo());
+ stockInventoryCheckItemDto.setWarehouseInfoId(stockInventory.getWarehouseInfoId());
stockInventoryCheckItemDto.setSystemQuantity(stockInventory.getQualitity());
stockInventoryCheckItemDto.setModel(stockInventory.getModel());
stockInventoryCheckItemDto.setUnit(stockInventory.getUnit());
@@ -130,14 +134,14 @@
if (item.getDifferenceQuantity().compareTo(BigDecimal.ZERO) > 0) {
stockInventoryDto.setRecordType(StockInQualifiedRecordTypeEnum.INVENTORY_CHECK_STOCK_IN.getCode());
- StockInRecordDto stockInRecordDto = stockUtils.addStockWithBatchNo(stockInventoryDto.getProductModelId(), item.getDifferenceQuantity().abs (), stockInventoryDto.getRecordType(), stockInventoryDto.getRecordId(), stockInventoryDto.getBatchNo());
+ StockInRecordDto stockInRecordDto = stockUtils.addStockWithBatchNo(stockInventoryDto.getProductModelId(), item.getDifferenceQuantity().abs (), stockInventoryDto.getRecordType(), stockInventoryDto.getRecordId(), stockInventoryDto.getBatchNo(), resolveWarehouseInfoId(item.getProductModelId(), item.getBatchNo()));
//鐩存帴瀹℃牳閫氳繃
- stockInRecordService.batchApprove(Collections.singletonList(stockInRecordDto.getId()), 1);
+ stockInRecordService.batchApprove(Collections.singletonList(stockInRecordDto.getId()), 1, resolveWarehouseInfoId(item.getProductModelId(), item.getBatchNo()));
}else {
- stockInventoryDto.setRecordType(StockInQualifiedRecordTypeEnum.INVENTORY_CHECK_STOCK_OUT.getCode());
- StockOutRecordDto stock = stockUtils.substractStock(stockInventoryDto.getProductModelId(), item.getDifferenceQuantity().abs(), stockInventoryDto.getRecordType(), stockInventoryDto.getRecordId(), stockInventoryDto.getBatchNo());
+ stockInventoryDto.setRecordType(StockOutQualifiedRecordTypeEnum.INVENTORY_CHECK_STOCK_OUT.getCode());
+ StockOutRecordDto stock = stockUtils.substractStock(stockInventoryDto.getProductModelId(), item.getDifferenceQuantity().abs(), stockInventoryDto.getRecordType(), stockInventoryDto.getRecordId(), stockInventoryDto.getBatchNo(), resolveWarehouseInfoId(item.getProductModelId(), item.getBatchNo()));
//鐩存帴瀹℃牳閫氳繃
- stockOutRecordService.batchApprove(Collections.singletonList(stock.getId()), 1);
+ stockOutRecordService.batchApprove(Collections.singletonList(stock.getId()), 1,item.getWarehouseInfoId());
}
}
stockInventoryCheckItemMapper.updateById(stockInventoryCheckPlanDto.getCheckItems());
@@ -253,4 +257,14 @@
}
+ private Long resolveWarehouseInfoId(Long productModelId, String batchNo) {
+ List<StockInventory> inventories = stockInventoryService.list(new LambdaQueryWrapper<StockInventory>()
+ .eq(StockInventory::getProductModelId, productModelId)
+ .eq(batchNo != null, StockInventory::getBatchNo, batchNo)
+ .isNull(batchNo == null, StockInventory::getBatchNo));
+ if (inventories.isEmpty() || inventories.get(0).getWarehouseInfoId() == null) {
+ return 1L;
+ }
+ return inventories.get(0).getWarehouseInfoId();
+ }
}
--
Gitblit v1.9.3