From 278ee267a36ffebf875b004b3d2b4464867b2a57 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 23 一月 2026 11:15:55 +0800
Subject: [PATCH] feat(sales): 库存
---
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java | 85 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 82 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index ce2cbc9..d315003 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -2,23 +2,102 @@
import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
+import com.ruoyi.stock.dto.StockInRecordDto;
+import com.ruoyi.stock.dto.StockInventoryDto;
+import com.ruoyi.stock.dto.StockUninventoryDto;
+import com.ruoyi.stock.service.StockInventoryService;
+import com.ruoyi.stock.service.StockUninventoryService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
@Component
@RequiredArgsConstructor
public class StockUtils {
private final ProcurementRecordOutMapper procurementRecordOutMapper;
private final ProcurementRecordMapper procurementRecordMapper;
+ private final StockUninventoryService stockUninventoryService;
+ private final StockInventoryService stockInventoryService;
- // 鑾峰彇鍟嗗搧鍓╀綑搴撳瓨
- public BigDecimal getStockQuantity(Long productModelId) {
+ // 鑾峰彇鍟嗗搧鍏ュ簱鏁伴噺,鍑哄簱鏁伴噺,鍓╀綑搴撳瓨
+ public Map<String, BigDecimal> getStockQuantity(Long productModelId) {
// 鍏ュ簱鏁伴噺
BigDecimal sumQuantity = procurementRecordMapper.getSumQuantity(productModelId);
// 鍑哄簱鏁伴噺
BigDecimal outQuantity = procurementRecordOutMapper.getSumQuantity(productModelId);
- return outQuantity.compareTo(sumQuantity) > 0 ? BigDecimal.ZERO : sumQuantity.subtract(outQuantity);
+ // 鍓╀綑搴撳瓨
+ BigDecimal stockQuantity = outQuantity.compareTo(sumQuantity) > 0 ? BigDecimal.ZERO : sumQuantity.subtract(outQuantity);
+ Map<String, BigDecimal> stockMap = new HashMap<>();
+ stockMap.put("inboundNum", sumQuantity);
+ stockMap.put("outboundNum", outQuantity);
+ stockMap.put("stockQuantity", stockQuantity);
+ return stockMap;
+ }
+
+ /**
+ * 涓嶅悎鏍煎叆搴�
+ * @param productModelId
+ * @param quantity
+ * @param recordType
+ * @param recordId
+ */
+ public void addUnStock(Long productModelId, BigDecimal quantity, Integer recordType,Long recordId) {
+ StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
+ stockUninventoryDto.setRecordId(recordId);
+ stockUninventoryDto.setRecordType(String.valueOf(recordType));
+ stockUninventoryDto.setQualitity(quantity);
+ stockUninventoryDto.setProductModelId(productModelId);
+ stockUninventoryService.addStockUninventory(stockUninventoryDto);
+ }
+
+ /**
+ * 涓嶅悎鏍煎嚭搴�
+ * @param productModelId
+ * @param quantity
+ * @param recordType
+ * @param recordId
+ */
+ public void subtractUnStock(Long productModelId, BigDecimal quantity, Integer recordType,Long recordId) {
+ StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
+ stockUninventoryDto.setRecordId(recordId);
+ stockUninventoryDto.setRecordType(String.valueOf(recordType));
+ stockUninventoryDto.setQualitity(quantity);
+ stockUninventoryDto.setProductModelId(productModelId);
+ stockUninventoryService.subtractStockUninventory(stockUninventoryDto);
+ }
+
+ /**
+ * 鍚堟牸鍏ュ簱
+ * @param productModelId
+ * @param quantity
+ * @param recordType
+ * @param recordId
+ */
+ public void addStock(Long productModelId, BigDecimal quantity, Integer recordType,Long recordId) {
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setRecordId(recordId);
+ stockInventoryDto.setRecordType(String.valueOf(recordType));
+ stockInventoryDto.setQualitity(quantity);
+ stockInventoryDto.setProductModelId(productModelId);
+ stockInventoryService.addstockInventory(stockInventoryDto);
+ }
+
+ /**
+ * 鍚堟牸鍑哄簱
+ * @param productModelId
+ * @param quantity
+ * @param recordType
+ * @param recordId
+ */
+ public void substractStock(Long productModelId, BigDecimal quantity, Integer recordType,Long recordId) {
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setRecordId(recordId);
+ stockInventoryDto.setRecordType(String.valueOf(recordType));
+ stockInventoryDto.setQualitity(quantity);
+ stockInventoryDto.setProductModelId(productModelId);
+ stockInventoryService.subtractStockInventory(stockInventoryDto);
}
}
--
Gitblit v1.9.3