From 47cbc59169b787e8a5f9c6969e2a0259c06249ca Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 24 四月 2026 13:31:48 +0800
Subject: [PATCH] feat:库存管理成品/半成品/原材料
---
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java | 79 ++++++++++++++++++++++++++-------------
1 files changed, 52 insertions(+), 27 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index f9a21d6..2a47d02 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -1,23 +1,24 @@
package com.ruoyi.procurementrecord.utils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
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.mapper.StockInventoryMapper;
import com.ruoyi.stock.pojo.StockInRecord;
+import com.ruoyi.stock.pojo.StockOutRecord;
import com.ruoyi.stock.service.StockInRecordService;
import com.ruoyi.stock.service.StockInventoryService;
+import com.ruoyi.stock.service.StockOutRecordService;
import com.ruoyi.stock.service.StockUninventoryService;
-import com.ruoyi.stock.service.impl.StockInRecordServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
@Component
@RequiredArgsConstructor
@@ -27,21 +28,8 @@
private final StockUninventoryService stockUninventoryService;
private final StockInventoryService stockInventoryService;
private final StockInRecordService stockInRecordService;
-
- // 鑾峰彇鍟嗗搧鍏ュ簱鏁伴噺,鍑哄簱鏁伴噺,鍓╀綑搴撳瓨
- public Map<String, BigDecimal> getStockQuantity(Long productModelId) {
- // 鍏ュ簱鏁伴噺
- BigDecimal sumQuantity = procurementRecordMapper.getSumQuantity(productModelId);
- // 鍑哄簱鏁伴噺
- BigDecimal outQuantity = procurementRecordOutMapper.getSumQuantity(productModelId);
- // 鍓╀綑搴撳瓨
- 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;
- }
+ private final StockOutRecordService stockOutRecordService;
+ private final StockInventoryMapper stockInventoryMapper;
/**
* 涓嶅悎鏍煎叆搴�
@@ -50,12 +38,15 @@
* @param recordType
* @param recordId
*/
- public void addUnStock(Long productModelId, BigDecimal quantity, Integer recordType,Long recordId) {
+ public void addUnStock(Long productModelId, BigDecimal quantity, String recordType,Long recordId, String batchNo, String customer, LocalDate productionDate) {
StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
stockUninventoryDto.setRecordId(recordId);
stockUninventoryDto.setRecordType(String.valueOf(recordType));
stockUninventoryDto.setQualitity(quantity);
stockUninventoryDto.setProductModelId(productModelId);
+ stockUninventoryDto.setBatchNo(batchNo);
+ stockUninventoryDto.setCustomer(customer);
+ stockUninventoryDto.setProductionDate(productionDate);
stockUninventoryService.addStockUninventory(stockUninventoryDto);
}
@@ -82,12 +73,21 @@
* @param recordType
* @param recordId
*/
- public void addStock(Long productModelId, BigDecimal quantity, Integer recordType,Long recordId) {
+ public void addStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo, String customer, LocalDate productionDate) {
StockInventoryDto stockInventoryDto = new StockInventoryDto();
stockInventoryDto.setRecordId(recordId);
- stockInventoryDto.setRecordType(String.valueOf(recordType));
+ if (recordType != null) {
+ stockInventoryDto.setRecordType(recordType);
+ }
stockInventoryDto.setQualitity(quantity);
stockInventoryDto.setProductModelId(productModelId);
+ stockInventoryDto.setBatchNo(batchNo);
+ stockInventoryDto.setCustomer(customer);
+ if (stockInventoryDto.getProductionDate() == null) {
+ stockInventoryDto.setProductionDate(LocalDate.now());
+ }else {
+ stockInventoryDto.setProductionDate(productionDate);
+ }
stockInventoryService.addstockInventory(stockInventoryDto);
}
@@ -98,21 +98,46 @@
* @param recordType
* @param recordId
*/
- public void substractStock(Long productModelId, BigDecimal quantity, Integer recordType,Long recordId) {
+ public void substractStock(Long productModelId, BigDecimal quantity, String recordType, Long recordId,String batchNo,String customer) {
StockInventoryDto stockInventoryDto = new StockInventoryDto();
stockInventoryDto.setRecordId(recordId);
- stockInventoryDto.setRecordType(String.valueOf(recordType));
+ if (recordType != null) {
+ stockInventoryDto.setRecordType(recordType);
+ }
stockInventoryDto.setQualitity(quantity);
stockInventoryDto.setProductModelId(productModelId);
+ stockInventoryDto.setBatchNo(batchNo);
+ stockInventoryDto.setCustomer(customer);
stockInventoryService.subtractStockInventory(stockInventoryDto);
}
//涓嶅悎鏍煎簱瀛樺垹闄�
- public void deleteStockRecord(Long recordId, Integer recordType) {
+ public void deleteStockInRecord(Long recordId, String recordType) {
StockInRecord one = stockInRecordService.getOne(new QueryWrapper<StockInRecord>()
.lambda().eq(StockInRecord::getRecordId, recordId)
.eq(StockInRecord::getRecordType, recordType));
-
- stockInRecordService.batchDelete(Collections.singletonList(one.getId()));
+ if (ObjectUtils.isNotEmpty(one)) {
+ stockInRecordService.batchDelete(Collections.singletonList(one.getId()));
+ //灏嗗簱瀛樺噺鍥炴潵
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setRecordId(recordId);
+ stockInventoryDto.setRecordType(recordType);
+ stockInventoryDto.setQualitity(one.getStockInNum());
+ stockInventoryMapper.updateSubtractStockInventory((stockInventoryDto));
+ }
+ }
+ public void deleteStockOutRecord(Long recordId, String recordType) {
+ StockOutRecord one = stockOutRecordService.getOne(new QueryWrapper<StockOutRecord>()
+ .lambda().eq(StockOutRecord::getRecordId, recordId)
+ .eq(StockOutRecord::getRecordType, recordType));
+ if (ObjectUtils.isNotEmpty(one)) {
+ stockOutRecordService.batchDelete(Collections.singletonList(one.getId()));
+ //灏嗗簱瀛樺姞鍥炴潵
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setRecordId(recordId);
+ stockInventoryDto.setRecordType(recordType);
+ stockInventoryDto.setQualitity(one.getStockOutNum());
+ stockInventoryMapper.updateAddStockInventory((stockInventoryDto));
+ }
}
}
--
Gitblit v1.9.3