From 11dd65b7be4bf4a1ba3899578e620b153bae4f95 Mon Sep 17 00:00:00 2001 From: xiachao Date: Mon, 21 Oct 2024 10:50:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=83=BD=E8=80=97=E6=8A=A5=E8=A1=A8=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=9F=A5=E8=AF=A2bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/enumeration/AttributeTypeEnum.java | 10 ++++++++++ .../service/impl/EnergyUsageServiceImpl.java | 10 ++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/common/core/src/main/java/com/thing/common/core/enumeration/AttributeTypeEnum.java b/common/core/src/main/java/com/thing/common/core/enumeration/AttributeTypeEnum.java index 5730468..a23ec18 100644 --- a/common/core/src/main/java/com/thing/common/core/enumeration/AttributeTypeEnum.java +++ b/common/core/src/main/java/com/thing/common/core/enumeration/AttributeTypeEnum.java @@ -230,4 +230,14 @@ public enum AttributeTypeEnum { } return attrCode; } + + + public List getTimeRangeAny(LocalDateTime localDateTime, LocalDateTime localDateTime1) { + + LocalDateTime beginTimeOfMin = LocalDateTime.of(localDateTime.toLocalDate(), LocalTime.MIN); + LocalDateTime endTimeOfMin = LocalDateTime.of(localDateTime1.toLocalDate(), LocalTime.MAX); + return Stream.iterate(beginTimeOfMin, d -> d.plusMinutes(15)) + .limit((ChronoUnit.MINUTES.between(beginTimeOfMin, endTimeOfMin) + 1) / 15) + .collect(Collectors.toList()); + } } diff --git a/modules/report-analysis/src/main/java/com/thing/carbon/energyrepory/service/impl/EnergyUsageServiceImpl.java b/modules/report-analysis/src/main/java/com/thing/carbon/energyrepory/service/impl/EnergyUsageServiceImpl.java index b5d3699..594b843 100644 --- a/modules/report-analysis/src/main/java/com/thing/carbon/energyrepory/service/impl/EnergyUsageServiceImpl.java +++ b/modules/report-analysis/src/main/java/com/thing/carbon/energyrepory/service/impl/EnergyUsageServiceImpl.java @@ -313,10 +313,10 @@ public class EnergyUsageServiceImpl implements EnergyUsageService { // 超过十天的任意时间的数据特殊处理: // 1. 小于10天数据量极小,全量查询无压力; // 2. 以三四天的数据量分多次查询反而会有更多IO消耗,直观感觉至少要五天才不亏,这里选择10天 - if (request.isAnyTime() && moreThanTenDays(timeRange)) { - return handleAnyTimeReport( - thing, sourceList, codeInfoMap, energyDictMap, varietyMap, timeRange); - } +// if (request.isAnyTime() && moreThanTenDays(timeRange)) { +// return handleAnyTimeReport( +// thing, sourceList, codeInfoMap, energyDictMap, varietyMap, timeRange); +// } // 查询tskv List tsKvMapList = findTsKv(sourceList, timeRange, null); @@ -371,6 +371,8 @@ public class EnergyUsageServiceImpl implements EnergyUsageService { begin = begin.plusDays(1); } return dateTimeList; + } else if(request.isAnyTime()){ + return attrTypeEnum.getTimeRangeAny(DateTimeUtils.parseDateTime(request.getBeginTime()),DateTimeUtils.parseDateTime(request.getEndTime())); } else { return attrTypeEnum.getTimeRange(DateTimeUtils.parseDateTime(request.getBeginTime())); }