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