From c7d5088dbd18cbbcb98d12aeac35e7d38cdf93be Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Sun, 26 Sep 2021 17:31:23 +0800
Subject: [PATCH] 臭氧8小时滑动值算法,分钟,小时数据时间变更为开始时间
---
screen-common/src/main/java/com/moral/util/DateUtils.java | 8 ++++++++
screen-manage/src/main/java/com/moral/api/service/impl/HistoryMinutelyServiceImpl.java | 2 +-
screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java | 2 +-
screen-common/src/main/java/com/moral/util/AmendUtils.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/screen-common/src/main/java/com/moral/util/AmendUtils.java b/screen-common/src/main/java/com/moral/util/AmendUtils.java
index 4a9104a..a22b4a1 100644
--- a/screen-common/src/main/java/com/moral/util/AmendUtils.java
+++ b/screen-common/src/main/java/com/moral/util/AmendUtils.java
@@ -103,6 +103,52 @@
}
/**
+ * @param data ������ time:Date������
+ * @return ���������������8���������������������
+ */
+ public static List<Map<String, Object>> getO3_8H(List<Map<String, Object>> data) {
+ Date time1 = null;
+ Date time2 = null;
+ for (Map<String, Object> datum : data) {
+ Date time = (Date) datum.get("time");
+ if (DateUtils.getHour(time) == 0) {
+ time2 = DateUtils.getDate(DateUtils.dateToDateString(time, DateUtils.yyyy_MM_dd_EN));
+ } else {
+ time1 = DateUtils.getDate(DateUtils.dateToDateString(time, DateUtils.yyyy_MM_dd_EN));
+ }
+ }
+
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (int i = 8; i <= 24; i++) {
+ Map<String, Object> map = new HashMap<>();
+ if (i < 24) {
+ map.put("time", ObjectUtils.isEmpty(time1) ? null : DateUtils.addHours(time1, i));
+ } else {
+ map.put("time", ObjectUtils.isEmpty(time2) ? null : time2);
+ }
+ List<Double> value = new ArrayList<>();
+ for (Map<String, Object> dataMap : data) {
+ Double o3 = Double.parseDouble(dataMap.get(Constants.SENSOR_CODE_O3).toString());
+ Date time = (Date) dataMap.get("time");
+ int hour = DateUtils.getHour(time);
+ if (hour == 0) {
+ hour = 24;
+ }
+ if (hour <= i && hour >= i - 7) {
+ value.add(o3);
+ }
+ }
+ if (value.size() < 6) {
+ continue;
+ }
+ double average = value.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage();
+ map.put(Constants.SENSOR_CODE_O3, average);
+ result.add(map);
+ }
+ return result;
+ }
+
+ /**
* @param params ������
* @return ���������������������������
*/
diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index 4c7d1f4..a523879 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -1614,4 +1614,12 @@
stringBuffer.replace(15, 16, String.valueOf(i));
return getDate(stringBuffer.toString(), yyyy_MM_dd_HH_mm_EN);
}
+
+ //������������������hours���������������
+ public static Date addHours(Date date, int hours) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ calendar.add(Calendar.HOUR_OF_DAY, hours);
+ return calendar.getTime();
+ }
}
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
index 35be6ae..62a4269 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/HistoryHourlyServiceImpl.java
@@ -54,7 +54,7 @@
String yearAndMonth = DateUtils.dateToDateString(time, DateUtils.yyyyMM_EN);
result.put("mac", mac);
- result.put("time", time);
+ result.put("time", DateUtils.addHours(time, -1));
result.put("version", version);
result.put("timeUnits", yearAndMonth + "_" + Constants.UN_ADJUST);
result.put("value", JSONObject.toJSONString(data));
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/HistoryMinutelyServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/HistoryMinutelyServiceImpl.java
index 51167ed..69bf01c 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/HistoryMinutelyServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/HistoryMinutelyServiceImpl.java
@@ -44,7 +44,7 @@
result.put("version", version);
Date time = DateUtils.getDate((String) data.remove("DataTime"), DateUtils.yyyyMMddHHmmss_EN);
- result.put("time", time);
+ result.put("time", DateUtils.getDateOfMin(time, -1));
result.put("value", JSONObject.toJSONString(data));
String timeUnits = DateUtils.dateToDateString(time, DateUtils.yyyyMM_EN);
result.put("timeUnits", timeUnits + "_" + Constants.UN_ADJUST);
--
Gitblit v1.8.0