From 56424206be7af38a02be17f215654f3ca813ebcb Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 07 四月 2026 17:54:24 +0800
Subject: [PATCH] feat:销售记录excel导入(查询,删除)

---
 src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java |   86 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 79 insertions(+), 7 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..7b0d4db 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java
@@ -4,9 +4,10 @@
 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;
 import com.ruoyi.sales.dto.InvoiceLedgerDto;
 import com.ruoyi.sales.dto.ReceiptPaymentDto;
 import com.ruoyi.sales.dto.ReceiptPaymentExeclDto;
@@ -14,7 +15,6 @@
 import com.ruoyi.sales.mapper.ReceiptPaymentMapper;
 import com.ruoyi.sales.mapper.SalesLedgerMapper;
 import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
-import com.ruoyi.sales.pojo.InvoiceLedger;
 import com.ruoyi.sales.pojo.ReceiptPayment;
 import com.ruoyi.sales.pojo.SalesLedger;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
@@ -30,7 +30,6 @@
 import java.time.LocalDate;
 import java.time.YearMonth;
 import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class ReceiptPaymentServiceImpl extends ServiceImpl<ReceiptPaymentMapper,ReceiptPayment> implements ReceiptPaymentService {
@@ -46,6 +45,9 @@
     @Autowired
     private InvoiceLedgerMapper invoiceLedgerMapper;
 
+    @Autowired
+    private AccountIncomeService accountIncomeService;
+
     /**
      * 鍥炴鐧昏鏂板
      * @param receiptPaymentList
@@ -59,24 +61,47 @@
             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("鏈壘鍒伴攢鍞崟");
             // 宸插洖娆鹃噾棰�
             SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(receiptPayment.getSalesLedgerProductId());
             if(null==salesLedgerProduct) throw new RuntimeException("鏈壘鍒伴攢鍞崟浜у搧");
-            if (salesLedgerProduct.getPendingInvoiceTotal().compareTo(receiptPayment.getReceiptPaymentAmount())<0){
-                throw new RuntimeException("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�");
+            if (salesLedgerProduct.getPendingInvoiceTotal().add(receiptPayment.getReceiptPaymentAmount()).compareTo(byId.getReceiptPaymentAmount())<0){
+                throw new RuntimeException("鏈鍥炴閲戦涓嶈兘澶т簬寰呭洖娆鹃噾棰�+鍥炴閲戦");
             }
             if(null==receiptPayment.getId()){
                 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("3");
+                accountIncome.setCustomerName(salesLedger.getCustomerName());
+                accountIncome.setIncomeMoney(receiptPayment.getReceiptPaymentAmount());
+                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());
+                BigDecimal subtract = byId.getReceiptPaymentAmount().subtract(receiptPayment.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 +115,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 +154,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);
     }
 
@@ -288,4 +354,10 @@
         }
 
     }
+
+    @Override
+    public List<InvoiceLedgerDto> customerSalesInteractions(InvoiceLedgerDto receiptPaymentDto) {
+        receiptPaymentDto.getCustomerId();
+        return receiptPaymentMapper.customerSalesInteractions(receiptPaymentDto);
+    }
 }

--
Gitblit v1.9.3