From b28173836631e9ecb1aafbaa5786c0383462208e Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 12 三月 2026 15:09:57 +0800
Subject: [PATCH] 1.生产成品添加审核流程,半成品不审核

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   35 +++++++++++++++++++++++++++++------
 1 files changed, 29 insertions(+), 6 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 3a42fc7..fe3e20b 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -24,20 +24,18 @@
 import com.ruoyi.other.mapper.TempFileMapper;
 import com.ruoyi.other.pojo.TempFile;
 import com.ruoyi.production.mapper.*;
-import com.ruoyi.production.pojo.*;
 import com.ruoyi.production.service.ProductionProductMainService;
-import com.ruoyi.production.service.impl.ProductionProductMainServiceImpl;
 import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysDeptMapper;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.quality.mapper.QualityInspectMapper;
-import com.ruoyi.quality.pojo.QualityInspect;
 import com.ruoyi.sales.dto.*;
 import com.ruoyi.sales.mapper.*;
 import com.ruoyi.sales.pojo.*;
-import com.ruoyi.sales.service.ISalesLedgerProductService;
 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;
 import org.apache.commons.io.FilenameUtils;
@@ -129,6 +127,9 @@
     private final ProductionProductInputMapper productionProductInputMapper;
 
     private final QualityInspectMapper qualityInspectMapper;
+
+    private final StockInventoryMapper stockInventoryMapper;
+
 
     @Autowired
     private SysDeptMapper sysDeptMapper;
@@ -708,9 +709,26 @@
         List<SalesLedgerProduct> updateList = partitionedProducts.get(true);
         List<SalesLedgerProduct> insertList = partitionedProducts.get(false);
 
+        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;
+                        }
+                    }
+                }
                 product.setType(type);
                 salesLedgerProductMapper.updateById(product);
             }
@@ -718,13 +736,18 @@
         // 鎵ц鎻掑叆鎿嶄綔
         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("搴撳瓨涓嶈冻");
+                        }
+                    }
+                }
                 salesLedgerProduct.setType(type);
                 salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
                 salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProductMapper.insert(salesLedgerProduct);
-                // 娣诲姞鐢熶骇鏁版嵁
-                salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
             }
         }
     }

--
Gitblit v1.9.3