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/mapper/HistoryMinutelyMapper.java | 30 +++++++-------
src/main/resources/mapper/HistoryMinutelyMapper.xml | 2
src/main/java/com/moral/controller/ReportController.java | 9 +++-
src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java | 38 ++++++++++++++++++
4 files changed, 59 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/moral/controller/ReportController.java b/src/main/java/com/moral/controller/ReportController.java
index 4a5b678..8e0f4ef 100644
--- a/src/main/java/com/moral/controller/ReportController.java
+++ b/src/main/java/com/moral/controller/ReportController.java
@@ -2,7 +2,12 @@
import java.io.OutputStream;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
@@ -10,7 +15,6 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
@@ -104,7 +108,6 @@
String type = parameters.get("type").toString();
String time = parameters.get("time").toString();
- System.out.println(parameters);
String timeb = "";
if (parameters.get("timeb") == null) {
timeb = parameters.get("time").toString();
diff --git a/src/main/java/com/moral/mapper/HistoryMinutelyMapper.java b/src/main/java/com/moral/mapper/HistoryMinutelyMapper.java
index 12ba243..ca530b5 100644
--- a/src/main/java/com/moral/mapper/HistoryMinutelyMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryMinutelyMapper.java
@@ -10,27 +10,27 @@
public interface HistoryMinutelyMapper {
- Map<String, Double> getSersionAvgByDevice(Map<String, Object> parameters);
+ Map<String, Double> getSersionAvgByDevice(Map<String, Object> parameters);
- Map<String, Double> getAvgByDevice(Map<String, Object> parameters);
+ Map<String, Double> getAvgByDevice(Map<String, Object> parameters);
- List<Map<String, Object>> getMonitorPointOrDeviceAvgData(Map<String, Object> parameters);
+ List<Map<String, Object>> getMonitorPointOrDeviceAvgData(Map<String, Object> parameters);
- List<Map<String, Object>> getAreaAvgDataByAreaCode(Map<String, Object> parameters);
+ List<Map<String, Object>> getAreaAvgDataByAreaCode(Map<String, Object> parameters);
- /**
- * @param sensorKeys
- * @param timePeriod
- * @param dataCondition
- * @return {format_time:string,e1:double,e2...............}
- */
- List<Map<String, Object>> selectLineChartDateByCrieria(@Param("sensorKeys") List<String> sensorKeys, @Param("timePeriod") TimePeriod timePeriod, @Param("dataCondition") DataCondition dataCondition);
+ /**
+ * @param sensorKeys
+ * @param timePeriod
+ * @param dataCondition
+ * @return {format_time:string,e1:double,e2...............}
+ */
+ List<Map<String, Object>> selectLineChartDateByCrieria(@Param("sensorKeys") List<String> sensorKeys, @Param("timePeriod") TimePeriod timePeriod, @Param("timeUnits") String timeUnits, @Param("dataCondition") DataCondition dataCondition);
- List<Map<String, Object>> getSensorData(Map<String, Object> parameters);
+ List<Map<String, Object>> getSensorData(Map<String, Object> parameters);
- List<Map<String, Object>> getSensorData2020(Map<String, Object> parameters);
+ List<Map<String, Object>> getSensorData2020(Map<String, Object> parameters);
- List<Map<String, Object>> getDevicesAvgDataToExcel(Map<String, Object> parameters);
+ List<Map<String, Object>> getDevicesAvgDataToExcel(Map<String, Object> parameters);
- List<Map<String, Object>> getDevicesSensorsAvgDataToExcel(Map<String, Object> parameters);
+ List<Map<String, Object>> getDevicesSensorsAvgDataToExcel(Map<String, Object> parameters);
}
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 -> {
diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index bf83a38..3f4c176 100644
--- a/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -139,7 +139,7 @@
DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as
format_time
FROM
- `history_minutely` hmi
+ history_${timeUnits} hmi
<where>
and hmi.time >= #{timePeriod.startTime}
and hmi.time <![CDATA[<=]]> #{timePeriod.endTime}
--
Gitblit v1.8.0