From 1212e2b0dea3b44668c5293a3267a6fb780b420f Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期六, 28 六月 2025 14:28:08 +0800
Subject: [PATCH] 2025-06-28 bug修改

---
 src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java |   44 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 35 insertions(+), 9 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 ca69eef..2bdf7d2 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
@@ -99,11 +99,12 @@
         PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(paymentRegistration.getPurchaseLedgerId());
         SalesLedger salesLedger = salesLedgerMapper.selectOne(new QueryWrapper<SalesLedger>().
                 eq("sales_contract_no", purchaseLedger.getSalesContractNo()));
-        if (salesLedger == null) {
-            throw new RuntimeException("鍏宠仈閿�鍞悎鍚屽彿涓嶅瓨鍦�");
+//        if (salesLedger == null) {
+//            throw new RuntimeException("鍏宠仈閿�鍞悎鍚屽彿涓嶅瓨鍦�");
+//        }
+        if (salesLedger != null) {
+            paymentRegistration.setSaleLedgerId(salesLedger.getId());
         }
-
-        paymentRegistration.setSaleLedgerId(salesLedger.getId());
         paymentRegistration.setSupplierId(purchaseLedger.getSupplierId());
 
         TicketRegistration tr = ticketRegistrationMapper.selectOne(new LambdaQueryWrapper<TicketRegistration>().eq(TicketRegistration::getId, paymentRegistration.getTicketRegistrationId()));
@@ -121,8 +122,8 @@
         }
 
         LoginUser loginUser = SecurityUtils.getLoginUser();
-        Integer tenantId = loginUser.getTenantId();
-        paymentRegistration.setTenantId(tenantId.longValue());
+        Long tenantId = loginUser.getTenantId();
+        paymentRegistration.setTenantId(tenantId);
         paymentRegistration.setRegistrantId(loginUser.getUserId());
         paymentRegistration.setCreateTime(DateUtils.getNowDate());
         paymentRegistration.setUpdateTime(DateUtils.getNowDate());
@@ -288,6 +289,8 @@
             detailPagination.put("pageSize", detailPageSize);
             detailPagination.put("pages", (int) Math.ceil((double) totalDetails / detailPageSize));
 
+            // 搴斾粯閲戦閫昏緫涓嶉噰鐢ㄥ悎鍚岄噾棰濇敼鎴�  鍙戠エ閲戦鍑忎粯娆鹃噾棰�
+            payableAmount = invoiceAmount.subtract(paymentAmount);
             res.put("invoiceAmount", invoiceAmount);
             res.put("payableAmount", payableAmount);
             res.put("paymentAmount", paymentAmount);
@@ -364,6 +367,7 @@
     public List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId) {
         List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationMapper.getPaymentRecordList(supplierId);
         List<PaymentHistoryRecordVo> result = new ArrayList<>();
+        List<PaymentHistoryRecordVo> newResult = new ArrayList<>();
         // 搴斾粯鎬婚噾棰濋噾棰濊绠�
         BigDecimal amountTotal = BigDecimal.ZERO;
         if(CollectionUtils.isNotEmpty(paymentRecordList)) {
@@ -374,7 +378,6 @@
                                                                                 Collectors.toList()
                                                                         )
                                                                         );
-            BigDecimal amountDateTotal = BigDecimal.ZERO;
             for (LocalDate localDate : dateListMap.keySet()) {
                 BigDecimal currentPaymentAmount = BigDecimal.ZERO;
                 BigDecimal invoiceAmount = BigDecimal.ZERO;
@@ -396,13 +399,36 @@
                 paymentHistoryRecordVo.setHappenTime(localDate);
                 paymentHistoryRecordVo.setCurrentPaymentAmount(currentPaymentAmount);
                 paymentHistoryRecordVo.setInvoiceAmount(invoiceAmount);
-                amountTotal = amountTotal.add(currentDateTotal);
+                amountTotal = paymentHistoryRecordVo.getInvoiceAmount().subtract(paymentHistoryRecordVo.getCurrentPaymentAmount());
                 paymentHistoryRecordVo.setPayableAmount(amountTotal);
                 result.add(paymentHistoryRecordVo);
             }
 
+
+            for (int i = 0; i < result.size(); i++) {
+                PaymentHistoryRecordVo paymentHistoryRecordVo = result.get(i);
+                if (i == 0) {
+                    paymentHistoryRecordVo.setPayableAmount(paymentHistoryRecordVo.getInvoiceAmount().subtract(paymentHistoryRecordVo.getCurrentPaymentAmount()));
+                }else {
+                    PaymentHistoryRecordVo paymentHistoryRecordVo1 = result.get(i-1);
+                    paymentHistoryRecordVo.setPayableAmount(paymentHistoryRecordVo1.getPayableAmount()
+                            .add(paymentHistoryRecordVo.getInvoiceAmount()).subtract(paymentHistoryRecordVo.getCurrentPaymentAmount()));
+                }
+                newResult.add(paymentHistoryRecordVo);
+            }
         }
-        return result;
+        return newResult;
+    }
+
+    /**
+     * 鏌ヨ浠樻鐧昏鍒楄〃鍒嗛〉
+     *
+     * @param paymentRegistrationDto 浠樻鐧昏
+     * @return 浠樻鐧昏闆嗗悎
+     */
+    @Override
+    public IPage<PaymentRegistrationDto> paymentHistoryListPage(Page page, PaymentRegistrationDto paymentRegistrationDto) {
+        return paymentRegistrationMapper.paymentHistoryListPage(page, paymentRegistrationDto);
     }
 
     // 鎵归噺鏌ヨ閲囪喘鍙拌处锛堝綋鏈堬級

--
Gitblit v1.9.3