From 37b697351e8e0a9200eee1276c4081c07588dc10 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 17 六月 2025 20:39:48 +0800
Subject: [PATCH] 未回款金额(元)为NaN修复

---
 src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 43db757..b5296d9 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.sales.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
@@ -22,6 +23,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -178,12 +180,28 @@
             return iPage;
         }
         for (SalesLedger salesLedger : iPage.getRecords()) {
+            boolean existFlag = false;
+            BigDecimal noInvoiceAmountTotal = BigDecimal.ZERO;
+            BigDecimal invoiceTotal = BigDecimal.ZERO;
             for (InvoiceLedgerDto invoiceLedgerDto : invoiceLedgerDtoList) {
                 if (salesLedger.getId().intValue() == invoiceLedgerDto.getSalesLedgerId()) {
-                    BigDecimal noInvoiceAmountTotal = salesLedger.getContractAmount().subtract(invoiceLedgerDto.getInvoiceTotal());
-                    salesLedger.setNoInvoiceAmountTotal(noInvoiceAmountTotal);
+                    noInvoiceAmountTotal = salesLedger.getContractAmount().subtract(invoiceLedgerDto.getInvoiceTotal());
+                    invoiceTotal = invoiceLedgerDto.getInvoiceTotal();
+                    existFlag = true;
+                    break;
                 }
             }
+            if(existFlag){
+                salesLedger.setNoInvoiceAmountTotal(noInvoiceAmountTotal);
+            }else {
+                salesLedger.setNoInvoiceAmountTotal(salesLedger.getContractAmount());
+            }
+            salesLedger.setInvoiceTotal(invoiceTotal);
+        }
+        if (ObjectUtils.isNotEmpty(salesLedgerDto.getStatus())) {
+            if (salesLedgerDto.getStatus()==1) {
+                iPage.getRecords().removeIf(salesLedger -> !Objects.equals(salesLedger.getNoInvoiceAmountTotal(), new BigDecimal("0.00")));
+            }
         }
         return iPage;
     }

--
Gitblit v1.9.3