From f4c9d1b0bbc0d9666180c7f77fb466bd45e10a48 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 16 一月 2026 17:44:22 +0800
Subject: [PATCH] 1.开票台账 2.来漂台账 未开票数量和金额优化

---
 src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java |   38 +++++++++++++++++++++++++++++++++-----
 1 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
index 7f8bd60..1d71938 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -2,17 +2,19 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.sales.dto.InvoiceRegistrationDto;
 import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
 import com.ruoyi.sales.dto.SalesLedgerDto;
 import com.ruoyi.sales.excel.InvoiceRegisAndProductExcelDto;
-import com.ruoyi.sales.mapper.InvoiceRegistrationMapper;
-import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
-import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.mapper.*;
+import com.ruoyi.sales.pojo.InvoiceLedger;
 import com.ruoyi.sales.pojo.InvoiceRegistration;
 import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
@@ -25,6 +27,7 @@
 import org.springframework.util.ObjectUtils;
 
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -39,6 +42,9 @@
 
     @Autowired
     private SalesLedgerProductMapper salesLedgerProductMapper;
+
+    @Autowired
+    private InvoiceLedgerMapper invoiceLedgerMapper;
 
     /**
      * 寮�绁ㄧ櫥璁拌褰曟柊澧�
@@ -55,23 +61,45 @@
         invoiceRegistration.setSalesLedgerId(salesLedgerDto.getId().intValue());
         invoiceRegistrationMapper.insert(invoiceRegistration);
         List<SalesLedgerProduct> productData = salesLedgerDto.getProductData();
+        BigDecimal invoiceAmountTotal = BigDecimal.ZERO;
         if(CollectionUtils.isNotEmpty(productData)){
             for (SalesLedgerProduct productDatum : productData) {
                 // 濡傛灉寮�绁ㄦ暟涓�0 璺宠繃
-                Integer currentInvoiceNum = productDatum.getCurrentInvoiceNum();
-                if(null == currentInvoiceNum || currentInvoiceNum == 0){
+                BigDecimal currentInvoiceNum = productDatum.getCurrentInvoiceNum();
+                if(null == currentInvoiceNum || BigDecimal.ZERO.compareTo(currentInvoiceNum) == 0){
                     continue;
                 }
+                invoiceAmountTotal = invoiceAmountTotal.add(currentInvoiceNum);
                 InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
                 BeanUtils.copyProperties(productDatum, invoiceRegistrationProduct);
+                //鏇存柊宸插紑绁ㄥ墿浣欐湭寮�绁ㄦ暟
+                invoiceRegistrationProductMapper.update(
+                        null,
+                        new LambdaUpdateWrapper<InvoiceRegistrationProduct>()
+                                .eq(InvoiceRegistrationProduct::getSalesLedgerId, salesLedgerDto.getId())
+                                .set(InvoiceRegistrationProduct::getNoInvoiceAmount, productDatum.getNoInvoiceAmount())
+                );
                 invoiceRegistrationProduct.setId(null);
                 invoiceRegistrationProduct.setSalesLedgerId(salesLedgerDto.getId().intValue());
                 invoiceRegistrationProduct.setInvoiceRegistrationId(invoiceRegistration.getId());
                 invoiceRegistrationProduct.setInvoiceAmount(productDatum.getCurrentInvoiceAmount());
                 invoiceRegistrationProduct.setInvoiceNum(productDatum.getCurrentInvoiceNum());
                 invoiceRegistrationProduct.setSalesLedgerProductId(productDatum.getId().intValue());
+
                 invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct);
+                productDatum.setInvoiceNum(currentInvoiceNum);
+                productDatum.setInvoiceAmount(productDatum.getCurrentInvoiceAmount());
                 salesLedgerProductMapper.updateById(productDatum);
+                // 鏂板涓�鏉″紑绁ㄥ彴璐︽暟鎹�
+                InvoiceLedger invoiceLedger = new InvoiceLedger();
+                invoiceLedger.setInvoiceDate(salesLedgerDto.getIssueDate());
+                invoiceLedger.setInvoiceRegistrationProductId(invoiceRegistrationProduct.getId());
+                invoiceLedger.setInvoiceTotal(invoiceRegistrationProduct.getInvoiceAmount());
+                invoiceLedger.setInvoiceNo(salesLedgerDto.getInvoiceNo());
+                invoiceLedger.setCreateUser(SecurityUtils.getUserId().intValue());
+                invoiceLedger.setInvoicePerson(productDatum.getRegister());
+
+                invoiceLedgerMapper.insert(invoiceLedger);
             }
         }
     }

--
Gitblit v1.9.3