From 36e527ebd18d95d8d0f94f3aec3d3ff3f49b6570 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期三, 29 七月 2026 20:30:17 +0800
Subject: [PATCH] 各类修复

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java |   63 +++++++++++++++++--------------
 1 files changed, 35 insertions(+), 28 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
index a6e1774..bc6dd74 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -8,6 +8,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.TAppUser;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.account.api.model.TAppUserCar;
 import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
 import com.ruoyi.chargingPile.api.feignClient.SiteClient;
@@ -390,14 +391,32 @@
 				return new PageInfo<>();
 			}
 		}
-		query.setUserIds(tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList()));
-		PageInfo<TOrderInvoiceVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
-		List<TOrderInvoiceVO> list = this.baseMapper.pageList(query,pageInfo);
-        List<Site> siteList = siteClient.getSiteAll().getData();
-        for (TOrderInvoiceVO tOrderInvoiceVO : list) {
-			tOrderInvoiceVO.setUid(tOrderInvoiceVO.getId().toString());
-			List<Long> collect = orderInvoiceDetailService.lambdaQuery().eq(TOrderInvoiceDetail::getOrderInvoiceId, tOrderInvoiceVO.getId()).list().stream()
-					.map(TOrderInvoiceDetail::getOrderId).collect(Collectors.toList());
+			query.setUserIds(tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList()));
+			PageInfo<TOrderInvoiceVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
+			List<TOrderInvoiceVO> list = this.baseMapper.pageList(query,pageInfo);
+			if (CollectionUtils.isEmpty(list)) {
+				pageInfo.setRecords(list);
+				return pageInfo;
+			}
+			List<Long> invoiceIds = list.stream().map(TOrderInvoiceVO::getId).filter(Objects::nonNull).collect(Collectors.toList());
+			List<TOrderInvoiceDetail> orderInvoiceDetailList = invoiceIds.isEmpty() ? new ArrayList<>()
+					: orderInvoiceDetailService.list(new LambdaQueryWrapper<TOrderInvoiceDetail>()
+					.in(TOrderInvoiceDetail::getOrderInvoiceId, invoiceIds));
+			Map<Long, List<TOrderInvoiceDetail>> invoiceDetailMap = orderInvoiceDetailList.stream()
+					.collect(Collectors.groupingBy(TOrderInvoiceDetail::getOrderInvoiceId));
+			List<Long> appUserIds = list.stream().map(TOrderInvoiceVO::getAppUserId)
+					.filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			R<List<TAppUser>> appUserResult = appUserIds.isEmpty() ? null : appUserClient.getUserByIds(appUserIds);
+			List<TAppUser> pageUsers = appUserResult == null || appUserResult.getData() == null
+					? new ArrayList<>() : appUserResult.getData();
+			Map<Long, TAppUser> appUserMap = pageUsers.stream()
+					.filter(user -> user != null && user.getId() != null)
+					.collect(Collectors.toMap(TAppUser::getId, user -> user, (first, second) -> first));
+	        List<Site> siteList = siteClient.getSiteAll().getData();
+	        for (TOrderInvoiceVO tOrderInvoiceVO : list) {
+				tOrderInvoiceVO.setUid(tOrderInvoiceVO.getId().toString());
+				List<Long> collect = invoiceDetailMap.getOrDefault(tOrderInvoiceVO.getId(), Collections.emptyList()).stream()
+						.map(TOrderInvoiceDetail::getOrderId).collect(Collectors.toList());
 			Integer siteId = tOrderInvoiceVO.getSiteId();
 			if (siteId == null && !CollectionUtils.isEmpty(collect) && Integer.valueOf(1).equals(tOrderInvoiceVO.getOrderType())) {
 				List<TChargingOrder> chargingOrders = chargingOrderService.listByIds(collect);
@@ -426,28 +445,16 @@
 					}
 				}
             }
-            // 将其全部转化为String
-			tOrderInvoiceVO.setIds(collect.stream().map(String::valueOf).collect(Collectors.toList()));
-			TAppUser appUser = appUserClient.getUserById(tOrderInvoiceVO.getAppUserId()).getData();
-			if (appUser!=null){
-				tOrderInvoiceVO.setUserPhone(appUser.getPhone());
+	            // 将其全部转化为String
+				tOrderInvoiceVO.setIds(collect.stream().map(String::valueOf).collect(Collectors.toList()));
+				TAppUser appUser = appUserMap.get(tOrderInvoiceVO.getAppUserId());
+				if (appUser!=null){
+					tOrderInvoiceVO.setUserPhone(appUser.getPhone());
+				}
+				fillInvoiceDetailAmount(tOrderInvoiceVO, orderInvoiceDetailList);
 			}
 
-		}
-		// 查询这个开票的订单ids
-
-		if (!list.isEmpty()){
-			List<Long> ids = list.stream().map(TOrderInvoiceVO::getId).collect(Collectors.toList());
-
-			List<TOrderInvoiceDetail> orderInvoiceDetailList = orderInvoiceDetailService.list(new LambdaQueryWrapper<TOrderInvoiceDetail>()
-					.in(TOrderInvoiceDetail::getOrderInvoiceId, ids));
-
-			List<TAppUser> finalTAppUsers = tAppUsers;
-			list.forEach(e -> fillInvoiceDetailAmount(e, orderInvoiceDetailList));
-		}
-
-
-		pageInfo.setRecords(list);
+			pageInfo.setRecords(list);
 		return pageInfo;
 	}
 

--
Gitblit v1.7.1