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/purchase/service/impl/TicketRegistrationServiceImpl.java |   28 ++++++++++++++++++----------
 1 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
index a1272c3..d154370 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.exception.base.BaseException;
@@ -88,13 +89,13 @@
         }
         List<TicketRegistration> ticketRegistrationList = ticketRegistrationMapper.selectList(queryWrapper);
         // 璁$畻宸蹭粯娆鹃噾棰�
-        if(CollectionUtils.isNotEmpty(ticketRegistrationList)){
+        if (CollectionUtils.isNotEmpty(ticketRegistrationList)) {
             List<Long> ids = ticketRegistrationList.stream().map(TicketRegistration::getId).collect(Collectors.toList());
             List<PaymentRegistrationDto> paymentRegistrationDtoList = paymentRegistrationMapper.countPaymentTotalByTicketRegId(ids);
             for (TicketRegistration registration : ticketRegistrationList) {
                 BigDecimal paymentAmountTotal = BigDecimal.ZERO;
                 for (PaymentRegistrationDto paymentRegistrationDto : paymentRegistrationDtoList) {
-                    if(registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())){
+                    if (registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())) {
                         paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal();
                         break;
                     }
@@ -138,13 +139,13 @@
 
         // 6. 澧炲姞閲囪喘鍙拌处浜у搧寮�绁ㄨ褰�
         List<SalesLedgerProduct> salesLedgerProducts = ticketRegistrationDto.getProductData();
-        if (CollectionUtils.isNotEmpty(salesLedgerProducts)){
+        if (CollectionUtils.isNotEmpty(salesLedgerProducts)) {
             for (SalesLedgerProduct salesLedgerProduct : salesLedgerProducts) {
                 ProductRecord productRecord = new ProductRecord();
                 productRecord.setTicketRegistrationId(ticketRegistration.getId());
                 productRecord.setPurchaseLedgerId(ticketRegistrationDto.getPurchaseLedgerId());
                 productRecord.setCreatedAt(DateUtils.getNowDate());
-                BeanUtils.copyProperties(salesLedgerProduct,productRecord);
+                BeanUtils.copyProperties(salesLedgerProduct, productRecord);
                 productRecord.setId(null);
                 productRecord.setType("2");
                 productRecordMapper.insert(productRecord);
@@ -257,8 +258,8 @@
     @Override
     public List getTicketNo(TicketRegistrationDto ticketRegistrationDto) {
         LambdaQueryWrapper<TicketRegistration> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.select(TicketRegistration::getId,TicketRegistration::getInvoiceNumber,TicketRegistration::getInvoiceAmount)
-                .eq(TicketRegistration::getPurchaseLedgerId,ticketRegistrationDto.getId());
+        queryWrapper.select(TicketRegistration::getId, TicketRegistration::getInvoiceNumber, TicketRegistration::getInvoiceAmount)
+                .eq(TicketRegistration::getPurchaseLedgerId, ticketRegistrationDto.getId());
         List<Map<String, Object>> result = ticketRegistrationMapper.selectMaps(queryWrapper);
         // 灏嗕笅鍒掔嚎鍛藉悕杞崲涓洪┘宄板懡鍚�
         return result.stream().map(map -> map.entrySet().stream()
@@ -273,18 +274,20 @@
         LambdaQueryWrapper<TicketRegistration> queryWrapper = new LambdaQueryWrapper<>();
         if (StringUtils.isNotBlank(ticketRegistration.getPurchaseContractNumber())) {
             queryWrapper.like(TicketRegistration::getPurchaseContractNumber, ticketRegistration.getPurchaseContractNumber())
-                    .like(TicketRegistration::getSupplierName, ticketRegistration.getSupplierName())
-                    .eq(TicketRegistration::getIssueDate, ticketRegistration.getIssueDate());
+                    .like(TicketRegistration::getSupplierName, ticketRegistration.getSupplierName());
+        }
+        if (ObjectUtils.isEmpty(ticketRegistration.getIssueDateStart())&&ObjectUtils.isEmpty(ticketRegistration.getIssueDateEnd())) {
+            queryWrapper.between(TicketRegistration::getIssueDate,LocalDate.parse(ticketRegistration.getIssueDateStart(), DateTimeFormatter.ofPattern("yyyy-MM-dd")), LocalDate.parse(ticketRegistration.getIssueDateEnd(), DateTimeFormatter.ofPattern("yyyy-MM-dd")));
         }
         IPage<TicketRegistration> ticketRegistrationIPage = ticketRegistrationMapper.selectPage(page, queryWrapper);
         // 璁$畻宸蹭粯娆鹃噾棰�
-        if(CollectionUtils.isNotEmpty(ticketRegistrationIPage.getRecords())){
+        if (CollectionUtils.isNotEmpty(ticketRegistrationIPage.getRecords())) {
             List<Long> ids = ticketRegistrationIPage.getRecords().stream().map(TicketRegistration::getId).collect(Collectors.toList());
             List<PaymentRegistrationDto> paymentRegistrationDtoList = paymentRegistrationMapper.countPaymentTotalByTicketRegId(ids);
             for (TicketRegistration registration : ticketRegistrationIPage.getRecords()) {
                 BigDecimal paymentAmountTotal = BigDecimal.ZERO;
                 for (PaymentRegistrationDto paymentRegistrationDto : paymentRegistrationDtoList) {
-                    if(registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())){
+                    if (registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())) {
                         paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal();
                         break;
                     }
@@ -295,7 +298,12 @@
                 registration.setUnPaymentAmountTotal(subtractAmount);
             }
         }
+        if (!ObjectUtils.isEmpty(ticketRegistration.getStatus())) {
 
+            if (ticketRegistration.getStatus()) {
+                ticketRegistrationIPage.getRecords().removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getUnPaymentAmountTotal()));
+            }
+        }
         return ticketRegistrationIPage;
     }
 

--
Gitblit v1.9.3