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