From 955ff3b528ed9e47efa9c1d9a3a7f61c80830695 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 01 九月 2026 15:04:49 +0800
Subject: [PATCH] feat: add VIN order period counts

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java
index d118a24..ab59f2e 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java
@@ -152,6 +152,17 @@
         if (list == null || list.isEmpty()) {
             return;
         }
+        List<Long> orderIds = list.stream().map(ChargingOrderVO::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+        Map<Long, Integer> periodCounts = new HashMap<>();
+        if (!orderIds.isEmpty()) {
+            for (Map<String, Object> item : baseMapper.countAccountingStrategies(orderIds)) {
+                Number chargingOrderId = (Number) item.get("chargingOrderId");
+                Number periodCount = (Number) item.get("periodCount");
+                if (chargingOrderId != null && periodCount != null) {
+                    periodCounts.put(chargingOrderId.longValue(), periodCount.intValue());
+                }
+            }
+        }
         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());
         Map<Integer, Site> sites = siteIds.isEmpty() ? Collections.emptyMap()
@@ -168,12 +179,7 @@
             if (item.getStartTime() != null && item.getEndTime() != null) {
                 item.setChargingSecond(ChronoUnit.SECONDS.between(item.getStartTime(), item.getEndTime()));
             }
-            UploadRealTimeMonitoringData data = monitoringDataService.getLastDataById(item.getCode());
-            if (data != null) {
-                item.setChargeCurrent(data.getOutput_current());
-                item.setChargeVoltage(data.getOutput_voltage());
-                item.setChargePower(data.getPower());
-            }
+            item.setCount(periodCounts.getOrDefault(item.getId(), 0));
             item.setPlatformIncome(BigDecimal.ZERO);
             item.setPartnerIncome(BigDecimal.ZERO);
         }

--
Gitblit v1.7.1