From 8d5e82d82c37c1c9236e0c679f199db53585c1ad Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 15 四月 2026 13:05:35 +0800
Subject: [PATCH] feat: 销售订单产品入库
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 41 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 0ed7d6e..88d6432 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -18,6 +18,7 @@
import com.ruoyi.basic.service.ICustomerRegionsService;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.enums.SaleEnum;
+import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
@@ -47,6 +48,8 @@
import com.ruoyi.sales.service.ISalesLedgerProductProcessBindService;
import com.ruoyi.sales.service.ISalesLedgerProductProcessService;
import com.ruoyi.sales.service.ISalesLedgerService;
+import com.ruoyi.stock.dto.StockInventoryDto;
+import com.ruoyi.stock.service.StockInventoryService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils;
@@ -125,6 +128,8 @@
private final ISalesLedgerProductProcessBindService salesLedgerProductProcessBindService;
private final ISalesLedgerProcessRouteService salesLedgerProcessRouteService;
+
+ private final StockInventoryService stockInventoryService;
@Autowired
private SysDeptMapper sysDeptMapper;
@@ -732,6 +737,7 @@
String contractNo = generateSalesContractNo();
salesLedger.setSalesContractNo(contractNo);
salesLedger.setDeliveryStatus(1);
+ salesLedger.setStockStatus(0);
salesLedgerMapper.insert(salesLedger);
} else {
if (salesLedger.getDeliveryStatus() == 5) {
@@ -1500,4 +1506,39 @@
return totalAmount;
}
}
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void salesStock(SalesLedger salesLedger) {
+ if (salesLedger == null || salesLedger.getId() == null) {
+ throw new NullPointerException("鍏ュ簱澶辫触,璇烽�夋嫨闇�瑕佸叆搴撶殑閿�鍞鍗�");
+ }
+ // 鏌ヨ閿�鍞鍗曟槸鍚﹀瓨鍦�
+ SalesLedger ledger = baseMapper.selectById(salesLedger.getId());
+ if (ledger == null) {
+ throw new ServiceException("鍏ュ簱澶辫触,閿�鍞鍗曚笉瀛樺湪");
+ }
+ if (ledger.getStockStatus() == null) {
+ throw new ServiceException("鍏ュ簱澶辫触,閿�鍞鍗曞叆搴撶姸鎬佸紓甯�");
+ }
+ if (ledger.getStockStatus() == 1) {
+ throw new ServiceException("鍏ュ簱澶辫触,璇ラ攢鍞鍗曞凡鍏ュ簱,璇峰嬁閲嶅鍏ュ簱");
+ }
+ // 鏌ヨ閿�鍞鍗曠殑浜у搧
+ List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(Wrappers.<SalesLedgerProduct>lambdaQuery().eq(SalesLedgerProduct::getSalesLedgerId, ledger.getId()));
+ if (salesLedgerProducts == null || salesLedgerProducts.isEmpty()) {
+ throw new ServiceException("鍏ュ簱澶辫触,鏈煡璇㈠埌璇ラ攢鍞鍗曠殑閿�鍞骇鍝�");
+ }
+ for (SalesLedgerProduct product : salesLedgerProducts) {
+ if (product.getProductModelId() == null) {
+ continue;
+ }
+ StockInventoryDto dto = new StockInventoryDto();
+ dto.setRecordId(product.getId());
+ dto.setRecordType(StockInQualifiedRecordTypeEnum.SALE_STOCK_IN.getCode());
+ dto.setQualitity(product.getQuantity());
+ dto.setProductModelId(product.getProductModelId());
+ stockInventoryService.addstockInventory(dto);
+ }
+ }
}
--
Gitblit v1.9.3