From 77bbe488ca8aa21d81a4f8f4fcef205fd890ef83 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 24 三月 2026 09:33:27 +0800
Subject: [PATCH] yys 1.批量回款,付款

---
 src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
index 30e838f..688fff3 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
@@ -97,6 +97,9 @@
     @Override
     public int insertPaymentRegistration(PaymentRegistration paymentRegistration) {
         PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(paymentRegistration.getPurchaseLedgerId());
+        if(purchaseLedger == null){
+            throw new RuntimeException("鍏宠仈閲囪喘鍙拌处涓嶅瓨鍦�");
+        }
         SalesLedger salesLedger = salesLedgerMapper.selectOne(new QueryWrapper<SalesLedger>().
                 eq("sales_contract_no", purchaseLedger.getSalesContractNo()));
 //        if (salesLedger == null) {
@@ -220,10 +223,10 @@
                             new QueryWrapper<SalesLedgerProduct>().eq("sales_ledger_id", id).eq("type",2)
                     ).stream())
                     .collect(Collectors.toList());
-            payableAmount = salesLedgerProducts.stream()
-                    .map(SalesLedgerProduct::getTaxInclusiveTotalPrice)
-                    .filter(Objects::nonNull)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+//            payableAmount = salesLedgerProducts.stream()
+//                    .map(SalesLedgerProduct::getTaxInclusiveTotalPrice)
+//                    .filter(Objects::nonNull)
+//                    .reduce(BigDecimal.ZERO, BigDecimal::add);
 
             // 鏉ョエ閲戦璁$畻
             List<TicketRegistration> ticketRegistrations = purchaseLedgers.stream()
@@ -247,6 +250,11 @@
                     .map(PaymentRegistration::getCurrentPaymentAmount)
                     .filter(Objects::nonNull)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            // 鏍稿績杩囨护閫昏緫锛氬綋paymentAmount鍜宨nvoiceAmount鍚屾椂涓�0鏃讹紝璺宠繃璇ヨ褰�
+            if (BigDecimal.ZERO.compareTo(paymentAmount) == 0 && BigDecimal.ZERO.compareTo(invoiceAmount) == 0) {
+                continue; // 璺宠繃褰撳墠渚涘簲鍟嗭紝涓嶅姞鍏ョ粨鏋滈泦
+            }
 
             // 璇︽儏鍒嗛〉澶勭悊
             detailPageNum = detailPageNum != null ? detailPageNum : 1;
@@ -301,6 +309,8 @@
             result.add(res);
         }
 
+        // 淇鎬绘潯鏁帮細杩囨护鍚庨渶瑕侀噸鏂拌绠楁�绘潯鏁�
+        resultPage.setTotal(result.size());
         resultPage.setRecords(result);
         return resultPage;
     }
@@ -373,13 +383,14 @@
         // 搴斾粯鎬婚噾棰濋噾棰濊绠�
         BigDecimal amountTotal = BigDecimal.ZERO;
         if(CollectionUtils.isNotEmpty(paymentRecordList)) {
+            // 鏍稿績鍒嗙粍姹傚拰閫昏緫
             Map<LocalDate, List<PaymentHistoryRecordVo>> dateListMap = paymentRecordList.stream().collect(
-                                                                        Collectors.groupingBy(
-                                                                                PaymentHistoryRecordVo::getHappenTime,
-                                                                                LinkedHashMap::new,
-                                                                                Collectors.toList()
-                                                                        )
-                                                                        );
+                    Collectors.groupingBy(
+                            PaymentHistoryRecordVo::getHappenTime,
+                            LinkedHashMap::new,
+                            Collectors.toList()
+                    )
+            );
             for (LocalDate localDate : dateListMap.keySet()) {
                 BigDecimal currentPaymentAmount = BigDecimal.ZERO;
                 BigDecimal invoiceAmount = BigDecimal.ZERO;

--
Gitblit v1.9.3