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 |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 4b3aaf6..b5296d9 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -1,5 +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;
@@ -21,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;
 
 /**
@@ -160,4 +163,46 @@
     public AjaxResult getAmountHalfYear() {
         return AjaxResult.success(salesLedgerService.getAmountHalfYear());
     }
+
+    /**
+     * 鏌ヨ閿�鍞彴璐﹀垪琛�
+     */
+    @GetMapping("/listPage")
+    public IPage<SalesLedger> listPage(Page page, SalesLedgerDto salesLedgerDto) {
+        IPage<SalesLedger> iPage = salesLedgerService.selectSalesLedgerListPage(page,salesLedgerDto);
+        // 璁$畻宸插紑绁ㄩ噾棰�/鏈紑绁ㄩ噾棰�(宸插~鍐欏彂绁ㄩ噾棰濅负鍑�)
+        if(CollectionUtils.isEmpty(iPage.getRecords())){
+            return iPage;
+        }
+        List<Long> salesLedgerIds = iPage.getRecords().stream().map(SalesLedger::getId).collect(Collectors.toList());
+        List<InvoiceLedgerDto> invoiceLedgerDtoList = invoiceLedgerMapper.invoicedTotal(salesLedgerIds);
+        if(CollectionUtils.isEmpty(invoiceLedgerDtoList)){
+            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()) {
+                    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