From 1ab612fa454477bfaec03b0fe9133f8881ce29cc Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 16 一月 2026 16:16:02 +0800
Subject: [PATCH] yys 回款---财务收入,付款---财务支出

---
 src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java |   71 +++++++++++++++++++++++++++++++++++
 1 files changed, 70 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
index 5a19bde..7f9b4cd 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -4,6 +4,8 @@
 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.account.pojo.AccountIncome;
+import com.ruoyi.account.service.AccountIncomeService;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.sales.dto.CustomerInteractionDto;
@@ -46,6 +48,9 @@
     @Autowired
     private InvoiceLedgerMapper invoiceLedgerMapper;
 
+    @Autowired
+    private AccountIncomeService accountIncomeService;
+
     /**
      * 鍥炴鐧昏鏂板
      * @param receiptPaymentList
@@ -59,7 +64,6 @@
             if (!ObjectUtils.isEmpty(receiptPayment.getId())){
                 receiptPayment = this.getById(receiptPayment.getId());
             }
-//        InvoiceLedger invoiceLedger = invoiceLedgerMapper.selectById(byId.getInvoiceLedgerId());
             SalesLedger salesLedger = salesLedgerMapper.selectById(receiptPayment.getSalesLedgerId());
             if(null==salesLedger) throw new RuntimeException("鏈壘鍒伴攢鍞崟");
             // 宸插洖娆鹃噾棰�
@@ -72,11 +76,35 @@
                 salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(receiptPayment.getReceiptPaymentAmount()));
                 salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
                 receiptPaymentMapper.insert(receiptPayment);
+                // 澧炲姞璐㈠姟鏀跺叆璁板綍
+                AccountIncome accountIncome = new AccountIncome();
+                accountIncome.setIncomeDate(salesLedger.getEntryDate());
+                accountIncome.setIncomeType("0");
+                accountIncome.setCustomerName(salesLedger.getCustomerName());
+                accountIncome.setIncomeMoney(salesLedger.getContractAmount());
+                accountIncome.setIncomeMethod("0");
+                accountIncome.setInputTime(new Date());
+                accountIncome.setInputUser(salesLedger.getEntryPerson());
+                accountIncome.setIncomeDescribed("鍥炴鏀跺叆");
+                accountIncome.setBusinessId(Long.parseLong(receiptPayment.getId().toString()));
+                accountIncome.setBusinessType(1);
+                accountIncomeService.save(accountIncome);
             }else {
                 BigDecimal subtract = receiptPayment.getReceiptPaymentAmount().subtract(byId.getReceiptPaymentAmount());
                 salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(subtract));
                 salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
+                receiptPayment.setReceiptPaymentAmount(byId.getReceiptPaymentAmount());
+                receiptPayment.setReceiptPaymentType(byId.getReceiptPaymentType());
                 receiptPaymentMapper.updateById(receiptPayment);
+                // 淇敼璐㈠姟鏀跺叆璁板綍
+                LambdaQueryWrapper<AccountIncome> accountIncomeLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                accountIncomeLambdaQueryWrapper.eq(AccountIncome::getBusinessId, receiptPayment.getId())
+                        .eq(AccountIncome::getBusinessType, 1);
+                AccountIncome accountIncome = accountIncomeService.getOne(accountIncomeLambdaQueryWrapper);
+                if(null!=accountIncome){
+                    accountIncome.setIncomeMoney(receiptPayment.getReceiptPaymentAmount());
+                    accountIncomeService.updateById(accountIncome);
+                }
             }
             salesLedgerProductMapper.updateById(salesLedgerProduct);
         }
@@ -90,6 +118,33 @@
      */
     @Override
     public int receiptPaymentUpdate(ReceiptPayment receiptPayment) {
+        ReceiptPayment byId = receiptPayment;
+        if (!ObjectUtils.isEmpty(receiptPayment.getId())){
+            receiptPayment = this.getById(receiptPayment.getId());
+        }
+        SalesLedger salesLedger = salesLedgerMapper.selectById(receiptPayment.getSalesLedgerId());
+        if(null==salesLedger) throw new RuntimeException("鏈壘鍒伴攢鍞崟");
+        // 宸插洖娆鹃噾棰�
+        SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(receiptPayment.getSalesLedgerProductId());
+        if(null==salesLedgerProduct) throw new RuntimeException("鏈壘鍒伴攢鍞崟浜у搧");
+        if (salesLedgerProduct.getPendingInvoiceTotal().compareTo(receiptPayment.getReceiptPaymentAmount())<0){
+            throw new RuntimeException("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�");
+        }
+        BigDecimal subtract = receiptPayment.getReceiptPaymentAmount().subtract(byId.getReceiptPaymentAmount());
+        salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().add(subtract));
+        salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
+        // 淇敼璐㈠姟鏀跺叆璁板綍
+        LambdaQueryWrapper<AccountIncome> accountIncomeLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        accountIncomeLambdaQueryWrapper.eq(AccountIncome::getBusinessId, receiptPayment.getId())
+                .eq(AccountIncome::getBusinessType, 1);
+        AccountIncome accountIncome = accountIncomeService.getOne(accountIncomeLambdaQueryWrapper);
+        if(null!=accountIncome){
+            accountIncome.setIncomeMoney(receiptPayment.getReceiptPaymentAmount());
+            accountIncomeService.updateById(accountIncome);
+        }
+        salesLedgerProductMapper.updateById(salesLedgerProduct);
+        receiptPayment.setReceiptPaymentAmount(byId.getReceiptPaymentAmount());
+        receiptPayment.setReceiptPaymentType(byId.getReceiptPaymentType());
         return receiptPaymentMapper.updateById(receiptPayment);
     }
 
@@ -102,6 +157,20 @@
     public int receiptPaymentDel(List<Integer> ids) {
         LambdaQueryWrapper<ReceiptPayment> delQuery = new LambdaQueryWrapper<>();
         delQuery.in(ReceiptPayment::getId, ids);
+        List<ReceiptPayment> receiptPayments = receiptPaymentMapper.selectList(delQuery);
+        if(CollectionUtils.isEmpty(receiptPayments)) throw new RuntimeException("鏈壘鍒板洖娆剧櫥璁�");
+        // 閲嶆柊璁$畻閿�鍞骇鍝佸洖娆鹃噾棰�
+        for (ReceiptPayment receiptPayment : receiptPayments) {
+            SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(receiptPayment.getSalesLedgerProductId());
+            salesLedgerProduct.setInvoiceTotal(salesLedgerProduct.getInvoiceTotal().subtract(receiptPayment.getReceiptPaymentAmount()));
+            salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice().subtract(salesLedgerProduct.getInvoiceTotal()));
+            salesLedgerProductMapper.updateById(salesLedgerProduct);
+        }
+        // 鍒犻櫎璐㈠姟鏀跺叆璁板綍
+        LambdaQueryWrapper<AccountIncome> accountIncomeLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        accountIncomeLambdaQueryWrapper.in(AccountIncome::getBusinessId, ids)
+                .eq(AccountIncome::getBusinessType, 1);
+        accountIncomeService.remove(accountIncomeLambdaQueryWrapper);
         return receiptPaymentMapper.delete(delQuery);
     }
 

--
Gitblit v1.9.3