From 7fc5bc0c6f92d65099397690128cbf218935972d Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 16 六月 2026 13:33:41 +0800
Subject: [PATCH] feat: 修改小时同步回看窗口为1小时,并添加天维度汇总功能
---
src/main/java/com/ruoyi/http/service/impl/StatisticEleServiceImpl.java | 35 ++++++++++++++++++++++++-----------
1 files changed, 24 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/ruoyi/http/service/impl/StatisticEleServiceImpl.java b/src/main/java/com/ruoyi/http/service/impl/StatisticEleServiceImpl.java
index 357fdcd..b7c32a8 100644
--- a/src/main/java/com/ruoyi/http/service/impl/StatisticEleServiceImpl.java
+++ b/src/main/java/com/ruoyi/http/service/impl/StatisticEleServiceImpl.java
@@ -24,6 +24,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
+import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
@@ -84,8 +85,29 @@
throw new ServiceException("缁熻缁村害鏃犳晥锛屾敮鎸� hour/day/month/quarter/year");
}
+ if ("day".equals(dimension)) {
+ return getDayDimensionSummary(startTime, endTime);
+ }
+
List<StatisticEleRecordVo> detailRecords = aggregateFromHour(dimension, startTime, endTime, true);
List<StatisticEleRecordVo> chartRecords = aggregateFromHour(dimension, startTime, endTime, false);
+ return buildSummary(detailRecords, chartRecords);
+ }
+
+ /**
+ * 澶╃淮搴︽眹鎬伙細鍗曟棩鐢ㄥ皬鏃剁骇鏁版嵁璁$畻鍧囧��/鏋佸�煎苟灞曠ず 24 灏忔椂瓒嬪娍锛涘鏃ユ寜鏃ユ《瀵规瘮銆�
+ */
+ private StatisticEleSummaryVo getDayDimensionSummary(String startTime, String endTime) {
+ HourRange range = StatisticEleAggregateUtil.toHourQueryRange("day", startTime, endTime);
+ List<StatisticEleRecordVo> hourRecords = queryHourRecords(range.startTime(), range.endTime());
+ List<StatisticEleRecordVo> detailRecords = StatisticEleAggregateUtil.aggregateHourPerMeter(
+ hourRecords, StatisticEleAggregateUtil.HOUR_TO_DAY);
+
+ boolean singleDay = startTime.equals(endTime);
+ List<StatisticEleRecordVo> chartRecords = singleDay
+ ? StatisticEleAggregateUtil.aggregateHourToBuckets(hourRecords, StatisticEleAggregateUtil.HOUR_TO_HOUR)
+ : StatisticEleAggregateUtil.aggregateHourToBuckets(hourRecords, StatisticEleAggregateUtil.HOUR_TO_DAY);
+
return buildSummary(detailRecords, chartRecords);
}
@@ -106,17 +128,8 @@
@Override
public StatisticEleSummaryVo getYesterdaySummary() {
- HourRange range = StatisticEleAggregateUtil.yesterdayHourRange();
- List<StatisticEleRecordVo> records = queryHourRecords(range.startTime(), range.endTime());
- List<StatisticEleRecordVo> chartRecords = StatisticEleAggregateUtil.aggregateHourToBuckets(
- records, StatisticEleAggregateUtil.HOUR_TO_HOUR);
- StatisticEleSummaryVo summary = buildSummary(records, chartRecords);
- summary.setTotalConsumption(round(StatisticEleAggregateUtil.sumRecordsTotal(records)));
- return summary;
- }
-
- private static double round(double value) {
- return Math.round(value * 100.0) / 100.0;
+ String day = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyyMMdd"));
+ return getDayDimensionSummary(day, day);
}
@Override
--
Gitblit v1.9.3