From 174c4a75e9dac46cf42399646bf49283583a43f5 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期二, 09 六月 2026 14:38:01 +0800
Subject: [PATCH] 增加废品库存列表和导出接口,以及修改发货逻辑
---
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java | 25 ++++++++++++++++++++++---
1 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
index e0aa340..f86c0cb 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -43,6 +43,9 @@
@AllArgsConstructor
public class StockInRecordServiceImpl extends ServiceImpl<StockInRecordMapper, StockInRecord> implements StockInRecordService {
+ private static final String UNQUALIFIED_TYPE = "unqualified";
+ private static final String WASTE_TYPE = "waste";
+
private StockInRecordMapper stockInRecordMapper;
private StockInventoryMapper stockInventoryMapper;
private StockUninventoryMapper stockUninventoryMapper;
@@ -102,8 +105,10 @@
stockInventoryMapper.updateSubtractStockInventory(stockInRecordDto);
}
}else if (stockInRecord.getType().equals("1")) {
+ String uninventoryType = resolveUninventoryTypeByInRecordType(stockInRecord.getRecordType());
LambdaQueryWrapper<StockUninventory> eq = new LambdaQueryWrapper<StockUninventory>()
- .eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId());
+ .eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId())
+ .eq(StockUninventory::getType, uninventoryType);
if (StringUtils.isEmpty(stockInRecord.getBatchNo())) {
eq.isNull(StockUninventory::getBatchNo);
} else {
@@ -117,6 +122,7 @@
stockUninventoryDto.setProductModelId(stockUninventory.getProductModelId());
stockUninventoryDto.setBatchNo(stockUninventory.getBatchNo());
stockUninventoryDto.setQualitity(stockInRecord.getStockInNum());
+ stockUninventoryDto.setType(uninventoryType);
stockUninventoryMapper.updateSubtractStockUnInventory(stockUninventoryDto);
}
}
@@ -149,9 +155,12 @@
return stockInventoryMapper.selectOne(eq);
}
- private StockUninventory getStockUninventory(Long productModelId, String batchNo) {
+ private StockUninventory getStockUninventory(Long productModelId, String batchNo, String uninventoryType) {
LambdaQueryWrapper<StockUninventory> eq = new LambdaQueryWrapper<>();
eq.eq(StockUninventory::getProductModelId, productModelId);
+ if (StringUtils.isNotEmpty(uninventoryType)) {
+ eq.eq(StockUninventory::getType, uninventoryType);
+ }
if (StringUtils.isEmpty(batchNo)) {
eq.isNull(StockUninventory::getBatchNo);
} else {
@@ -271,7 +280,8 @@
}
} else if ("1".equals(stockInRecord.getType())) {
// 涓嶅悎鏍煎叆搴� -> 鍏堟煡搴撳瓨锛屽瓨鍦ㄥ垯鏇存柊锛屼笉瀛樺湪鍒欐柊澧�
- StockUninventory stockUninventory = getStockUninventory(stockInRecord.getProductModelId(), stockInRecord.getBatchNo());
+ String uninventoryType = resolveUninventoryTypeByInRecordType(stockInRecord.getRecordType());
+ StockUninventory stockUninventory = getStockUninventory(stockInRecord.getProductModelId(), stockInRecord.getBatchNo(), uninventoryType);
StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
stockUninventoryDto.setProductModelId(stockInRecord.getProductModelId());
stockUninventoryDto.setBatchNo(stockInRecord.getBatchNo());
@@ -279,11 +289,13 @@
stockUninventoryDto.setRemark(stockInRecord.getRemark());
stockUninventoryDto.setManufacturerId(stockInRecord.getManufacturerId());
stockUninventoryDto.setSource(stockInRecord.getSource());
+ stockUninventoryDto.setType(uninventoryType);
if (stockUninventory == null) {
stockUninventoryMapper.insert(new StockUninventory() {{
setProductModelId(stockInRecord.getProductModelId());
setQualitity(finalStockInNum);
setBatchNo(stockInRecord.getBatchNo());
+ setType(uninventoryType);
setRemark(stockInRecord.getRemark());
setManufacturerId(stockInRecord.getManufacturerId());
setSource(stockInRecord.getSource());
@@ -298,6 +310,13 @@
return items.size();
}
+ private String resolveUninventoryTypeByInRecordType(String recordType) {
+ if (StockInQualifiedRecordTypeEnum.PRODUCTION_SCRAP.getCode().equals(recordType)) {
+ return WASTE_TYPE;
+ }
+ return UNQUALIFIED_TYPE;
+ }
+
private void adjustPurchaseInboundAuditFields(StockInRecord stockInRecord, BigDecimal finalStockInNum) {
if (stockInRecord == null || finalStockInNum == null) {
return;
--
Gitblit v1.9.3