From 9fa762cf783e2dc3f67b793e34d266dd4d3ec322 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 10 四月 2026 15:58:27 +0800
Subject: [PATCH] feat:1.销售添加是否生产 2.生产订单添加备注

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   55 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 29 insertions(+), 26 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 2e0b507..1e29d05 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -35,7 +35,6 @@
 import com.ruoyi.sales.mapper.*;
 import com.ruoyi.sales.pojo.*;
 import com.ruoyi.sales.service.ISalesLedgerService;
-import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.mapper.StockInventoryMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -606,7 +605,7 @@
             // 4. 澶勭悊瀛愯〃鏁版嵁
             List<SalesLedgerProduct> productList = salesLedgerDto.getProductData();
             if (productList != null && !productList.isEmpty()) {
-                handleSalesLedgerProducts(salesLedger.getId(), productList, salesLedgerDto.getType());
+                handleSalesLedgerProducts(salesLedger.getId(), productList, salesLedgerDto.getType(), salesLedgerDto.isProduce());
                 updateMainContractAmount(
                         salesLedger.getId(),
                         productList,
@@ -704,7 +703,7 @@
     }
 
 
-    private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) {
+    private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type, boolean isProduce) {
         // 鎸塈D鍒嗙粍锛屽尯鍒嗘柊澧炲拰鏇存柊鐨勮褰�
         Map<Boolean, List<SalesLedgerProduct>> partitionedProducts = products.stream()
                 .peek(p -> p.setSalesLedgerId(salesLedgerId))
@@ -713,26 +712,26 @@
         List<SalesLedgerProduct> updateList = partitionedProducts.get(true);
         List<SalesLedgerProduct> insertList = partitionedProducts.get(false);
 
-        List<StockInventoryDto> stockInventoryDtos = stockInventoryMapper.selectProductList();
+//        List<StockInventoryDto> stockInventoryDtos = stockInventoryMapper.selectProductList();
 
         // 鎵ц鏇存柊鎿嶄綔
         if (!updateList.isEmpty()) {
             for (SalesLedgerProduct product : updateList) {
-                // 鏌ヨ搴撳瓨鏁伴噺
-                SalesLedgerProduct oldProduct = salesLedgerProductMapper.selectById(product.getId());
-                BigDecimal quantityChange = product.getQuantity().subtract(oldProduct.getQuantity());
-
-                // 濡傛灉鏁伴噺澧炲姞浜嗭紝妫�鏌ュ簱瀛�
-                if (quantityChange.compareTo(BigDecimal.ZERO) > 0) {
-                    for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
-                        if (stockInventoryDto.getProductId().equals(product.getId())) {
-                            if (quantityChange.compareTo(stockInventoryDto.getQualitity()) > 0) {
-                                throw new RuntimeException("搴撳瓨涓嶈冻");
-                            }
-                            break;
-                        }
-                    }
-                }
+//                // 鏌ヨ搴撳瓨鏁伴噺
+//                SalesLedgerProduct oldProduct = salesLedgerProductMapper.selectById(product.getId());
+//                BigDecimal quantityChange = product.getQuantity().subtract(oldProduct.getQuantity());
+//
+//                // 濡傛灉鏁伴噺澧炲姞浜嗭紝妫�鏌ュ簱瀛�
+//                if (quantityChange.compareTo(BigDecimal.ZERO) > 0) {
+//                    for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
+//                        if (stockInventoryDto.getProductId().equals(product.getId())) {
+//                            if (quantityChange.compareTo(stockInventoryDto.getQualitity()) > 0) {
+//                                throw new RuntimeException("搴撳瓨涓嶈冻");
+//                            }
+//                            break;
+//                        }
+//                    }
+//                }
                 product.setType(type);
                 salesLedgerProductMapper.updateById(product);
             }
@@ -740,18 +739,22 @@
         // 鎵ц鎻掑叆鎿嶄綔
         if (!insertList.isEmpty()) {
             for (SalesLedgerProduct salesLedgerProduct : insertList) {
-                for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
-                    if (stockInventoryDto.getProductId().equals(salesLedgerProduct.getId())) {
-                        if (salesLedgerProduct.getQuantity().compareTo(stockInventoryDto.getQualitity()) > 0) {
-                            throw new RuntimeException("搴撳瓨涓嶈冻");
-                        }
-                    }
-                }
+//                for (StockInventoryDto stockInventoryDto : stockInventoryDtos) {
+//                    if (stockInventoryDto.getProductId().equals(salesLedgerProduct.getId())) {
+//                        if (salesLedgerProduct.getQuantity().compareTo(stockInventoryDto.getQualitity()) > 0) {
+//                            throw new RuntimeException("搴撳瓨涓嶈冻");
+//                        }
+//                    }
+//                }
                 salesLedgerProduct.setType(type);
                 salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
                 salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProductMapper.insert(salesLedgerProduct);
+                // 娣诲姞鐢熶骇鏁版嵁
+                if (isProduce) {
+                    salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
+                }
             }
         }
     }

--
Gitblit v1.9.3