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/sales/service/impl/ShippingInfoServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 43 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index e9b04eb..0de9c64 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -29,6 +29,10 @@
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.pojo.ShippingProductDetail;
import com.ruoyi.sales.service.ShippingInfoService;
+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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -62,6 +66,8 @@
private final ShippingProductDetailMapper shippingProductDetailMapper;
private final ApprovalTemplateMapper approvalTemplateMapper;
private final ApprovalInstanceService approvalInstanceService;
+ private final StockInventoryService stockInventoryService;
+ private final StockUninventoryService stockUninventoryService;
@Override
public IPage<ShippingInfoDto> listPage(Page page, ShippingInfo req) {
@@ -85,7 +91,7 @@
throw new RuntimeException("鍙戣揣淇℃伅涓嶅瓨鍦�");
}
for (ShippingProductDetail shippingProductDetail : shippingProductDetails) {
- stockUtils.substractStock(shippingProductDetail.getProductModelId(), shippingProductDetail.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId(), shippingProductDetail.getBatchNo());
+ addShippingStockOutRecord(shippingProductDetail, req.getId());
}
}
byId.setExpressNumber(req.getExpressNumber());
@@ -145,9 +151,6 @@
this.save(req);
req.getBatchNoDetailList().forEach(item -> item.setShippingInfoId(req.getId()));
shippingProductDetailMapper.insert(req.getBatchNoDetailList());
- for (ShippingProductDetail shippingProductDetail : req.getBatchNoDetailList()) {
- stockUtils.substractStock(shippingProductDetail.getProductModelId(), shippingProductDetail.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId(), shippingProductDetail.getBatchNo());
- }
// 淇濆瓨鏂囦欢
fileUtil.saveStorageAttachment(ApplicationTypeEnum.IMAGE, RecordTypeEnum.SHIPPING_INFO, req.getId(), req.getStorageBlobDTOs());
return true;
@@ -192,4 +195,40 @@
approvalInstanceService.add(approvalInstance);
return true;
}
+
+ private void addShippingStockOutRecord(ShippingProductDetail shippingProductDetail, Long shippingInfoId) {
+ String stockType = shippingProductDetail.getStockType();
+ if (stockType != null) {
+ stockType = stockType.trim().toLowerCase();
+ }
+ if ("waste".equals(stockType) || "unqualified".equals(stockType)) {
+ StockUninventoryDto stockUninventoryDto = new StockUninventoryDto();
+ stockUninventoryDto.setRecordId(shippingInfoId);
+ stockUninventoryDto.setRecordType(StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode());
+ stockUninventoryDto.setQualitity(shippingProductDetail.getQuantity());
+ stockUninventoryDto.setProductModelId(shippingProductDetail.getProductModelId());
+ stockUninventoryDto.setBatchNo(normalizeBatchNo(shippingProductDetail.getBatchNo()));
+ stockUninventoryDto.setType("waste");
+ stockUninventoryService.addStockOutRecordOnly(stockUninventoryDto);
+ return;
+ }
+ if (!"qualified".equals(stockType)) {
+ throw new RuntimeException("鍙戣揣鏄庣粏搴撳瓨绫诲瀷鏃犳晥锛屽彧鏀寔 qualified 鎴� waste");
+ }
+ StockInventoryDto stockInventoryDto = new StockInventoryDto();
+ stockInventoryDto.setRecordId(shippingInfoId);
+ stockInventoryDto.setRecordType(StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode());
+ stockInventoryDto.setQualitity(shippingProductDetail.getQuantity());
+ stockInventoryDto.setProductModelId(shippingProductDetail.getProductModelId());
+ stockInventoryDto.setBatchNo(normalizeBatchNo(shippingProductDetail.getBatchNo()));
+ stockInventoryService.addStockOutRecordOnly(stockInventoryDto);
+ }
+
+ private String normalizeBatchNo(String batchNo) {
+ if (batchNo == null) {
+ return null;
+ }
+ String normalized = batchNo.trim();
+ return normalized.isEmpty() ? null : normalized;
+ }
}
--
Gitblit v1.9.3