From 02047d917004c8f7dc44627c847583e54c297226 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 29 五月 2026 15:16:18 +0800
Subject: [PATCH] 入库管理的审批,支持修改入库数量
---
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java | 30 +++++++++++++++++++++++-------
1 files changed, 23 insertions(+), 7 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 7facfcf..2436940 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -207,14 +207,18 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public int batchApprove(List<Long> ids, Integer approvalStatus) {
- if (CollectionUtils.isEmpty(ids)) {
+ public int batchApprove(Integer approvalStatus, List<StockInRecordDto.StockInRecordApproveItemDto> items) {
+ if (CollectionUtils.isEmpty(items)) {
throw new BaseException("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
}
if (approvalStatus == null || (!ReviewStatusEnum.APPROVED.getCode().equals(approvalStatus) && !ReviewStatusEnum.REJECTED.getCode().equals(approvalStatus))) {
throw new BaseException("瀹℃壒鐘舵�佸�兼棤鏁�");
}
- for (Long id : ids) {
+ for (StockInRecordDto.StockInRecordApproveItemDto item : items) {
+ Long id = item.getId();
+ if (id == null) {
+ throw new BaseException("鍏ュ簱璁板綍ID涓嶈兘涓虹┖");
+ }
StockInRecord stockInRecord = stockInRecordMapper.selectById(id);
if (stockInRecord == null) {
throw new BaseException("鍏ュ簱璁板綍涓嶅瓨鍦�,鏃犳硶瀹℃壒!!!");
@@ -222,6 +226,17 @@
if (stockInRecord.getApprovalStatus() != null && !ReviewStatusEnum.PENDING_REVIEW.getCode().equals(stockInRecord.getApprovalStatus())) {
throw new BaseException("鍙湁寰呭鎵圭姸鎬佺殑璁板綍鎵嶈兘瀹℃壒,鍏ュ簱鎵规:" + stockInRecord.getInboundBatches());
}
+
+ // 鑾峰彇瀹℃壒鏃朵慨鏀圭殑鍏ュ簱鏁伴噺锛屽鏋滄病鏈変慨鏀瑰垯浣跨敤鍘熸暟閲�
+ final BigDecimal finalStockInNum;
+ if (item.getStockInNum() != null && item.getStockInNum().compareTo(BigDecimal.ZERO) > 0) {
+ finalStockInNum = item.getStockInNum();
+ // 鏇存柊鍏ュ簱璁板綍鐨勫叆搴撴暟閲�
+ stockInRecord.setStockInNum(finalStockInNum);
+ } else {
+ finalStockInNum = stockInRecord.getStockInNum();
+ }
+
stockInRecord.setApprovalStatus(approvalStatus);
stockInRecordMapper.updateById(stockInRecord);
@@ -237,10 +252,11 @@
// 鍚堟牸鍏ュ簱 -> 鍏堟煡搴撳瓨锛屽瓨鍦ㄥ垯鏇存柊锛屼笉瀛樺湪鍒欐柊澧�
StockInventory stockInventory = getStockInventory(stockInRecord.getProductModelId(), stockInRecord.getBatchNo());
StockInventoryDto stockInventoryDto = getStockInventoryDto(stockInRecord);
+ stockInventoryDto.setQualitity(finalStockInNum);
if (stockInventory == null) {
stockInventoryMapper.insert(new StockInventory() {{
setProductModelId(stockInRecord.getProductModelId());
- setQualitity(stockInRecord.getStockInNum());
+ setQualitity(finalStockInNum);
setBatchNo(stockInRecord.getBatchNo());
setRemark(stockInRecord.getRemark());
setWarnNum(stockInRecord.getWarnNum());
@@ -257,14 +273,14 @@
StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
stockUninventoryDto.setProductModelId(stockInRecord.getProductModelId());
stockUninventoryDto.setBatchNo(stockInRecord.getBatchNo());
- stockUninventoryDto.setQualitity(stockInRecord.getStockInNum());
+ stockUninventoryDto.setQualitity(finalStockInNum);
stockUninventoryDto.setRemark(stockInRecord.getRemark());
stockUninventoryDto.setManufacturerId(stockInRecord.getManufacturerId());
stockUninventoryDto.setSource(stockInRecord.getSource());
if (stockUninventory == null) {
stockUninventoryMapper.insert(new StockUninventory() {{
setProductModelId(stockInRecord.getProductModelId());
- setQualitity(stockInRecord.getStockInNum());
+ setQualitity(finalStockInNum);
setBatchNo(stockInRecord.getBatchNo());
setRemark(stockInRecord.getRemark());
setManufacturerId(stockInRecord.getManufacturerId());
@@ -277,7 +293,7 @@
}
}
}
- return ids.size();
+ return items.size();
}
private static @NonNull StockInventoryDto getStockInventoryDto(StockInRecord stockInRecord) {
--
Gitblit v1.9.3