From 96eecc97de7fc863fc76b63294d4c12bd9683ae4 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期二, 20 五月 2025 15:36:40 +0800
Subject: [PATCH] 回款台账

---
 src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java |  108 +++++++++++++++---------------------------------------
 1 files changed, 30 insertions(+), 78 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 baaeee9..7f8bd60 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -5,19 +5,17 @@
 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.basic.excel.SupplierManageExcelDto;
 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.InvoiceRegistrationProductRecordMapper;
-import com.ruoyi.sales.mapper.InvoiceRegistrationRecordMapper;
+import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
 import com.ruoyi.sales.pojo.InvoiceRegistration;
 import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
-import com.ruoyi.sales.pojo.InvoiceRegistrationProductRecord;
-import com.ruoyi.sales.pojo.InvoiceRegistrationRecord;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import com.ruoyi.sales.service.InvoiceRegistrationService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.BeanUtils;
@@ -27,7 +25,6 @@
 import org.springframework.util.ObjectUtils;
 
 import javax.servlet.http.HttpServletResponse;
-import java.math.BigDecimal;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -41,85 +38,40 @@
     private InvoiceRegistrationProductMapper invoiceRegistrationProductMapper;
 
     @Autowired
-    private InvoiceRegistrationRecordMapper invoiceRegistrationRecordMapper;
-
-    @Autowired
-    private InvoiceRegistrationProductRecordMapper invoiceRegistrationProductRecordMapper;
-
+    private SalesLedgerProductMapper salesLedgerProductMapper;
 
     /**
-     * 寮�绁ㄧ櫥璁版柊澧�
-     * @param invoiceRegistrationDto
+     * 寮�绁ㄧ櫥璁拌褰曟柊澧�
+     * @param salesLedgerDto
      * @return
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void invoiceRegistrationSaveOrUpdate(InvoiceRegistrationDto invoiceRegistrationDto) {
-        List<InvoiceRegistrationProductDto> productDtoList = invoiceRegistrationDto.getProductDtoList();
-        Integer salesLedgerId = invoiceRegistrationDto.getSalesLedgerId();
-        if (null == salesLedgerId){
-            throw new RuntimeException("鏈叧鑱旈攢鍞悎鍚�");
-        }
-        QueryWrapper<InvoiceRegistration> inRegWrapper = new QueryWrapper<>();
-        inRegWrapper.eq("sales_ledger_id", salesLedgerId);
-        InvoiceRegistration invoiceRegistration = invoiceRegistrationMapper.selectOne(inRegWrapper);
-        Integer invoiceRegistrationId = null;
-        // 鍒ゆ柇鏄惁宸茬粡鍋氳繃鐧昏锛屽鏋滄湁鍚堝苟锛屽鏋滄病鏈夋柊澧�
-        if(ObjectUtils.isEmpty(invoiceRegistration)){
-            InvoiceRegistration insertInvocieReg = new InvoiceRegistration();
-            BeanUtils.copyProperties(invoiceRegistrationDto, insertInvocieReg);
-            invoiceRegistrationMapper.insert(insertInvocieReg);
-            invoiceRegistrationId = insertInvocieReg.getId();
-        }else {
-            invoiceRegistrationId = invoiceRegistration.getId();
-        }
-        // 鏌ヨ浜у搧鏄惁宸茬粡鐧昏
-        if(CollectionUtils.isNotEmpty(productDtoList)){
-            QueryWrapper<InvoiceRegistrationProduct> inRegProductWrapper = new QueryWrapper<>();
-            inRegProductWrapper.eq("invoice_registration_id", invoiceRegistrationId);
-            List<InvoiceRegistrationProduct> invoiceRegistrationProductList = invoiceRegistrationProductMapper.selectList(inRegProductWrapper);
-            if(CollectionUtils.isNotEmpty(invoiceRegistrationProductList)){
-                // 鎵归噺鏇存柊
-                for (InvoiceRegistrationProduct invoiceRegistrationProduct : invoiceRegistrationProductList) {
-                    for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) {
-                        if( null != invoiceRegistrationProductDto.getId() && null != invoiceRegistrationProduct.getSalesLedgerProductId()
-                                && invoiceRegistrationProductDto.getId() == invoiceRegistrationProduct.getSalesLedgerProductId().longValue() ){
-                            // 璁$畻宸插紑绁ㄦ暟
-                            invoiceRegistrationProduct.setInvoiceNum(invoiceRegistrationProduct.getInvoiceNum() + invoiceRegistrationProductDto.getInvoiceNum());
-                            // 璁$畻宸插紑绁ㄩ噾棰�
-                            invoiceRegistrationProduct.setInvoiceAmount(invoiceRegistrationProduct.getInvoiceAmount().add(invoiceRegistrationProductDto.getInvoiceAmount()));
-//                            // 璁$畻鏈紑绁ㄦ暟
-                            invoiceRegistrationProduct.setNoInvoiceNum(invoiceRegistrationProductDto.getNoInvoiceNum());
-//                            // 璁$畻鏈紑绁ㄩ噾棰� 鍚◣鎬讳环-寮�绁ㄩ噾棰�
-                            invoiceRegistrationProduct.setNoInvoiceAmount(invoiceRegistrationProductDto.getNoInvoiceAmount());
-                            invoiceRegistrationProductMapper.updateById(invoiceRegistrationProduct);
-                        }
-                    }
+    public void invoiceRegistrationSave(SalesLedgerDto salesLedgerDto) {
+        InvoiceRegistration invoiceRegistration = new InvoiceRegistration();
+        BeanUtils.copyProperties(salesLedgerDto, invoiceRegistration);
+        invoiceRegistration.setId(null);
+        invoiceRegistration.setCustomerId(salesLedgerDto.getCustomerId().intValue());
+        invoiceRegistration.setSalesLedgerId(salesLedgerDto.getId().intValue());
+        invoiceRegistrationMapper.insert(invoiceRegistration);
+        List<SalesLedgerProduct> productData = salesLedgerDto.getProductData();
+        if(CollectionUtils.isNotEmpty(productData)){
+            for (SalesLedgerProduct productDatum : productData) {
+                // 濡傛灉寮�绁ㄦ暟涓�0 璺宠繃
+                Integer currentInvoiceNum = productDatum.getCurrentInvoiceNum();
+                if(null == currentInvoiceNum || currentInvoiceNum == 0){
+                    continue;
                 }
-            }else {
-                // 鎵归噺鎻掑叆
-                for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) {
-                    InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
-                    BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProduct);
-                    invoiceRegistrationProduct.setInvoiceRegistrationId(invoiceRegistrationId);
-                    invoiceRegistrationProduct.setSalesLedgerProductId(invoiceRegistrationProductDto.getId());
-                    invoiceRegistrationProduct.setId(null);
-                    invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct);
-                }
-            }
-        }
-        // 淇濆瓨鏈寮�绁ㄧ櫥璁拌褰�
-        InvoiceRegistrationRecord invoiceRegistrationRecord = new InvoiceRegistrationRecord();
-        BeanUtils.copyProperties(invoiceRegistrationDto, invoiceRegistrationRecord);
-        invoiceRegistrationRecordMapper.insert(invoiceRegistrationRecord);
-        if(CollectionUtils.isNotEmpty(productDtoList)){
-            for (InvoiceRegistrationProductDto invoiceRegistrationProductDto : productDtoList) {
-                InvoiceRegistrationProductRecord invoiceRegistrationProductRecord = new InvoiceRegistrationProductRecord();
-                BeanUtils.copyProperties(invoiceRegistrationProductDto, invoiceRegistrationProductRecord);
-                invoiceRegistrationProductRecord.setInvoiceRegistrationRecordId(invoiceRegistrationRecord.getId());
-                invoiceRegistrationProductRecord.setSalesLedgerProductId(invoiceRegistrationProductDto.getId());
-                invoiceRegistrationProductRecord.setId(null);
-                invoiceRegistrationProductRecordMapper.insert(invoiceRegistrationProductRecord);
+                InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
+                BeanUtils.copyProperties(productDatum, invoiceRegistrationProduct);
+                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);
+                salesLedgerProductMapper.updateById(productDatum);
             }
         }
     }

--
Gitblit v1.9.3