From bf82d9f70479a5ea99ff2ea00b35cb3b6b7d500f Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 02 九月 2026 15:40:38 +0800
Subject: [PATCH] 修改刷卡充电订单查询报错
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
index 97e9a87..e83d8f3 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
@@ -316,10 +316,38 @@
query.setSiteIds(siteIds);
}
+ private void fillElectronicProportion(List<ChargingOrderVO> list) {
+ List<Long> orderIds = list.stream().map(ChargingOrderVO::getId).filter(Objects::nonNull).collect(Collectors.toList());
+ if (orderIds.isEmpty()) {
+ return;
+ }
+ List<Map<String, Object>> capacityRows = new ArrayList<>();
+ int batchSize = 500;
+ for (int i = 0; i < orderIds.size(); i += batchSize) {
+ List<Long> batchIds = orderIds.subList(i, Math.min(i + batchSize, orderIds.size()));
+ capacityRows.addAll(Optional.ofNullable(baseMapper.capacitySummaryByOrderIds(batchIds))
+ .orElse(Collections.emptyList()));
+ }
+ Map<Long, Map<String, Object>> capacityByOrderId = capacityRows.stream()
+ .filter(item -> item.get("orderId") != null)
+ .collect(Collectors.toMap(item -> Long.valueOf(item.get("orderId").toString()), item -> item, (a, b) -> a));
+ for (ChargingOrderVO order : list) {
+ Map<String, Object> capacity = capacityByOrderId.get(order.getId());
+ Map<String, BigDecimal> summary = emptyAccountingSummary();
+ if (capacity != null) {
+ for (String key : new String[]{"capacityTotal", "capacity1", "capacity2", "capacity3", "capacity4"}) {
+ summary.put(key, summaryDecimal(capacity, key));
+ }
+ }
+ order.setElectronicProportion(buildProportion(summary, "capacity"));
+ }
+ }
+
private void fillPageExtra(List<ChargingOrderVO> list) {
if (list == null || list.isEmpty()) {
return;
}
+ fillElectronicProportion(list);
List<Integer> siteIds = list.stream().map(ChargingOrderVO::getSiteId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
List<Integer> gunIds = list.stream().map(ChargingOrderVO::getChargingGunId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
List<Long> carIds = list.stream().map(ChargingOrderVO::getAppUserCarId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
--
Gitblit v1.7.1