From 4f879df01e855d436c65e1fbdc74f64ce47c901b Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Thu, 30 Apr 2020 16:49:15 +0800
Subject: [PATCH] update小时查询表时判断

---
 src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
index d5f11cb..9a24f1b 100644
--- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
@@ -2,8 +2,11 @@
 
 import java.math.BigDecimal;
 import java.text.ParseException;
+import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.TemporalAdjusters;
 import java.util.ArrayList;
@@ -373,6 +376,24 @@
             // String type = (String) parameters.get("type");
             // parameters.putAll(getElementByType(type));
             ParameterUtils.getElementByType(parameters);
+            if (parameters.containsKey("timeUnits")) {
+                if ("minutely".equals(parameters.get("timeUnits"))) {
+                    if (parameters.containsKey("time")) {
+                        String[] timeStr = parameters.get("time").toString().split("-");
+                        int year = Integer.valueOf(timeStr[0]);
+                        int month = Integer.valueOf(timeStr[1]);
+                        String yearAndMonth;
+                        if (month < 10) {
+                            yearAndMonth = "minutely_" + year + "0" + month;
+                        } else {
+                            yearAndMonth = "minutely_" + year + month;
+                        }
+                        if (year >= 2020) {
+                            parameters.put("timeUnits", yearAndMonth);
+                        }
+                    }
+                }
+            }
         }
         String time = (String) parameters.get("time");
         String format = (String) parameters.get("format");
@@ -508,7 +529,22 @@
      */
     public Map<String, List<Double>> queryOneLineChartDateByCrieria(List<String> sensorKeys, TimePeriod timePeriod, DataCondition dataCondition) {
         List<String> timeList = ReportTimeFormat.makeTimeList(timePeriod);
-        List<Map<String, Object>> lineChartDatas = historyMinutelyMapper.selectLineChartDateByCrieria(sensorKeys, timePeriod, dataCondition);
+        Instant instant = timePeriod.getStartTime().toInstant();
+        ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
+        LocalDate localDate = zdt.toLocalDate();
+        int year = localDate.getYear();
+        int month = localDate.getMonthValue();
+        String timeUnits;
+        if (year < 2020) {
+            timeUnits = "minutely";
+        } else {
+            if (month < 10) {
+                timeUnits = "minutely_" + year + "0" + month;
+            } else {
+                timeUnits = "minutely_" + year + month;
+            }
+        }
+        List<Map<String, Object>> lineChartDatas = historyMinutelyMapper.selectLineChartDateByCrieria(sensorKeys, timePeriod, timeUnits, dataCondition);
         Map<String, List<Double>> lineChartDatasWithEmpty = new HashMap<>();
         // lineChartDatasWithEmpty ���������
         sensorKeys.forEach(sensorKey -> {

--
Gitblit v1.8.0