From 2ec6b477938b95608873feefa819c687d69c4a88 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期六, 25 四月 2026 15:09:56 +0800
Subject: [PATCH] Merge branch 'dev_New_pro' of http://114.132.189.42:9002/r/product-inventory-management-after into dev_New_pro
---
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 59 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index e3c88e5..4d525c3 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -8,7 +8,8 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.R;
@@ -145,6 +146,63 @@
@Override
@Transactional(rollbackFor = Exception.class)
+ public Boolean addStockInRecordOnly(StockInventoryDto stockInventoryDto) {
+ StockInRecordDto stockInRecordDto = new StockInRecordDto();
+ stockInRecordDto.setRecordId(stockInventoryDto.getRecordId());
+ stockInRecordDto.setRecordType(stockInventoryDto.getRecordType());
+ stockInRecordDto.setStockInNum(stockInventoryDto.getQualitity());
+ stockInRecordDto.setBatchNo(stockInventoryDto.getBatchNo());
+ stockInRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
+ stockInRecordDto.setType("0");
+ stockInRecordDto.setRemark(stockInventoryDto.getRemark());
+ stockInRecordService.add(stockInRecordDto);
+ return true;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean addStockOutRecordOnly(StockInventoryDto stockInventoryDto) {
+ LambdaQueryWrapper<StockInventory> eq = new LambdaQueryWrapper<>();
+ eq.eq(StockInventory::getProductModelId, stockInventoryDto.getProductModelId());
+ if (StringUtils.isEmpty(stockInventoryDto.getBatchNo())) {
+ eq.isNull(StockInventory::getBatchNo);
+ } else {
+ eq.eq(StockInventory::getBatchNo, stockInventoryDto.getBatchNo());
+ }
+ StockInventory stockInventory = stockInventoryMapper.selectOne(eq);
+ if (stockInventory == null) {
+ throw new ServiceException("搴撳瓨璁板綍涓嶅瓨鍦�");
+ }
+ BigDecimal lockedQty = stockInventory.getLockedQuantity();
+ if (lockedQty == null) {
+ lockedQty = BigDecimal.ZERO;
+ }
+ BigDecimal pendingOut = stockInventoryMapper.selectPendingOutQuantity(
+ stockInventoryDto.getProductModelId(),
+ stockInventoryDto.getBatchNo(),
+ "0"
+ );
+ if (pendingOut == null) {
+ pendingOut = BigDecimal.ZERO;
+ }
+ BigDecimal availableQty = stockInventory.getQualitity().subtract(lockedQty).subtract(pendingOut);
+ if (stockInventoryDto.getQualitity().compareTo(availableQty) > 0) {
+ throw new ServiceException("鐢宠鏁伴噺瓒呰繃鍙敤搴撳瓨锛屽綋鍓嶅彲鐢ㄥ簱瀛樹负锛�" + availableQty);
+ }
+ StockOutRecordDto stockOutRecordDto = new StockOutRecordDto();
+ stockOutRecordDto.setRecordId(stockInventoryDto.getRecordId());
+ stockOutRecordDto.setRecordType(stockInventoryDto.getRecordType());
+ stockOutRecordDto.setStockOutNum(stockInventoryDto.getQualitity());
+ stockOutRecordDto.setBatchNo(stockInventoryDto.getBatchNo());
+ stockOutRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
+ stockOutRecordDto.setType("0");
+ stockOutRecordDto.setRemark(stockInventoryDto.getRemark());
+ stockOutRecordService.add(stockOutRecordDto);
+ return true;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
public R importStockInventory(MultipartFile file) {
try {
// 鏌ヨ鎵�鏈夌殑浜у搧骞舵瀯寤烘槧灏勶紝鎻愰珮鏌ユ壘鏁堢巼
--
Gitblit v1.9.3