From a0b7214e89c4abd596ce8ad5ab115e9c7ea3dcda Mon Sep 17 00:00:00 2001 From: 于紫祥_1901 <email@yuzixiang_1910> Date: Thu, 13 Aug 2020 10:12:56 +0800 Subject: [PATCH] 风场图update --- src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java | 48 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 37 insertions(+), 11 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..5d0c824 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; @@ -358,21 +361,29 @@ } @Override - public List<Map<String, Object>> getAreaAvgDataByAreaCode(Map<String, Object> parameters) throws Exception { - convertQueryParam(parameters); - if (!ObjectUtils.isEmpty(parameters.get("compensate"))) { - parameters.put("timeUnits", "10min"); - } - return historyMinutelyMapper.getAreaAvgDataByAreaCode(parameters); - - } - - @Override public void convertQueryParam(Map<String, Object> parameters) throws ParseException { if (!parameters.containsKey("field")) { // 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]); + if (year >= 2020) { + String yearAndMonth; + if (month < 10) { + yearAndMonth = "minutely_" + year + "0" + month; + } else { + yearAndMonth = "minutely_" + year + month; + } + parameters.put("timeUnits", yearAndMonth); + } + } + } + } } String time = (String) parameters.get("time"); String format = (String) parameters.get("format"); @@ -508,7 +519,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