From 5fab4a685ce81fd2efa3546dc0716d223f9db09b Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Fri, 12 Nov 2021 13:48:37 +0800 Subject: [PATCH] 臭氧8小时滑动算法修改 --- screen-job/src/main/java/com/moral/api/service/impl/HistoryWeeklyServiceImpl.java | 1 screen-job/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java | 11 ----- screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml | 2 screen-common/src/main/java/com/moral/util/AmendUtils.java | 28 ++------------ screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java | 2 screen-job/src/main/java/com/moral/api/service/impl/HistoryMonthlyServiceImpl.java | 1 screen-job/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java | 22 +++------- 7 files changed, 16 insertions(+), 51 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 b1cf0a6..7b7348d 100644 --- a/screen-common/src/main/java/com/moral/util/AmendUtils.java +++ b/screen-common/src/main/java/com/moral/util/AmendUtils.java @@ -53,7 +53,7 @@ Object lower = params.get("o3Lower"); double max; List<Double> avgs = new ArrayList<>(); - for (int i = 8; i <= 24; i++) { + for (int i = 7; i <= 23; i++) { List<Double> data = new ArrayList<>(); for (Map<String, Object> dataMap : list) { Map<String, Object> dataValue = JSONObject.parseObject((String) dataMap.get("value"), Map.class); @@ -79,9 +79,6 @@ } int hour = DateUtils.getHour((Date) dataMap.get("time")); - if (hour == 0) { - hour = 24; - } if (hour <= i && hour >= i - 7) { data.add(o3); } @@ -123,34 +120,17 @@ * @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)); - } - } - + Date date = (Date) data.get(0).get("time"); List<Map<String, Object>> result = new ArrayList<>(); - for (int i = 8; i <= 24; i++) { + for (int i = 7; i <= 23; 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); - } + map.put("time", DateUtils.addHours(date, i)); List<Double> value = new ArrayList<>(); for (Map<String, Object> dataMap : data) { Map<String, Object> sensorValue = JSONObject.parseObject((String) dataMap.get("value"), Map.class); Double o3 = Double.parseDouble(sensorValue.get("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); } diff --git a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java index 24a9006..2398263 100644 --- a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java +++ b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java @@ -60,7 +60,7 @@ QueryWrapper<CityAqi> wrapper = new QueryWrapper<>(); wrapper.select("city_code", "time", "value") .ge("time", DateUtils.dateToDateString(start)) - .le("time", DateUtils.dateToDateString(end)); + .lt("time", DateUtils.dateToDateString(end)); List<Map<String, Object>> dailyData = cityAqiService.listMaps(wrapper); if (dailyData.size() == 0) { @@ -74,24 +74,16 @@ CityAqiDaily cityAqiDaily = new CityAqiDaily(); cityAqiDaily.setCityCode(Integer.parseInt(cityCode)); cityAqiDaily.setTime(start); - - //��������������������������������������������������� - List<Map<String, Object>> tempValue = new ArrayList<>(value); - - //������������������������0������������O3������������������������������1���-8��� - value.removeIf(map -> ((Date) map.get("time")).getTime() == start.getTime()); - //O3��������������������������������������� - Double o3OfDay = AmendUtils.o3OfDay(value); - if (o3OfDay != null) { - jsonMap.put("O3", o3OfDay); + if (!ObjectUtils.isEmpty(value)) { + Double o3OfDay = AmendUtils.o3OfDay(value); + if (o3OfDay != null) { + jsonMap.put("O3", o3OfDay); + } } - //������������������������������������ - tempValue.removeIf(o -> ((Date) o.get("time")).getTime() == end.getTime()); - sensors.forEach(sensor -> { - OptionalDouble optionalDouble = tempValue.parallelStream().flatMapToDouble(v -> { + OptionalDouble optionalDouble = value.parallelStream().flatMapToDouble(v -> { Map<String, Object> dataValue = JSONObject.parseObject((String) v.get("value"), Map.class); Object sensorValue = dataValue.get(sensor); if (ObjectUtils.isEmpty(sensorValue)) { diff --git a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java index b393684..c8be3d9 100644 --- a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java +++ b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java @@ -59,7 +59,7 @@ Date time = DateUtils.dataToTimeStampTime(now, DateUtils.yyyy_MM_dd_HH_EN); Date start = null; - if (DateUtils.getHour(time) == 0 || DateUtils.getHour(time) >= 8) { + if (DateUtils.getHour(time) >= 7) { start = DateUtils.addHours(time, -7); } diff --git a/screen-job/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java index 7f845eb..2dc5a04 100644 --- a/screen-job/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java +++ b/screen-job/src/main/java/com/moral/api/service/impl/HistoryDailyServiceImpl.java @@ -85,11 +85,6 @@ dataMap.put("mac", mac); dataMap.put("time", start); - //��������������������������������������������������� - List<Map<String, Object>> tempValue = new ArrayList<>(value); - - //������������������������0������������O3������������������������������1���-8��� - value.removeIf(map -> ((Date) map.get("time")).getTime() == start.getTime()); Map<String, Object> params = new HashMap<>(); params.put("data", value); params.put("type", "day"); @@ -131,12 +126,8 @@ if (!ObjectUtils.isEmpty(o3AvgOfDay)) { jsonMap.putAll(o3AvgOfDay); } - //������������������������������������ - tempValue.removeIf(o -> ((Date) o.get("time")).getTime() == end.getTime()); //��������������������������� - params.put("data", tempValue); - Map<String, Object> windDirAvg = AmendUtils.getWindDirAvg(params); if (!ObjectUtils.isEmpty(windDirAvg)) { jsonMap.putAll(windDirAvg); @@ -146,7 +137,7 @@ String sensorCode = sensor.getCode(); Double upper = sensor.getUpper(); Double lower = sensor.getLower(); - OptionalDouble optionalDouble = tempValue.parallelStream() + OptionalDouble optionalDouble = value.parallelStream() .flatMapToDouble(v -> { Map<String, Object> dataValue = JSONObject.parseObject((String) v.get("value"), Map.class); Object sensorValue = dataValue.get(sensorCode); diff --git a/screen-job/src/main/java/com/moral/api/service/impl/HistoryMonthlyServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/HistoryMonthlyServiceImpl.java index 3e607d2..0553ece 100644 --- a/screen-job/src/main/java/com/moral/api/service/impl/HistoryMonthlyServiceImpl.java +++ b/screen-job/src/main/java/com/moral/api/service/impl/HistoryMonthlyServiceImpl.java @@ -121,6 +121,7 @@ } } + //������������ Map<String, Object> windDirAvg = AmendUtils.getWindDirAvg(params); if (!ObjectUtils.isEmpty(windDirAvg)) { jsonMap.putAll(windDirAvg); diff --git a/screen-job/src/main/java/com/moral/api/service/impl/HistoryWeeklyServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/HistoryWeeklyServiceImpl.java index 528d37f..f211e73 100644 --- a/screen-job/src/main/java/com/moral/api/service/impl/HistoryWeeklyServiceImpl.java +++ b/screen-job/src/main/java/com/moral/api/service/impl/HistoryWeeklyServiceImpl.java @@ -122,6 +122,7 @@ } } + //������������ Map<String, Object> windDirAvg = AmendUtils.getWindDirAvg(params); if (!ObjectUtils.isEmpty(windDirAvg)) { jsonMap.putAll(windDirAvg); diff --git a/screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml b/screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml index 88153ae..8f133ca 100644 --- a/screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml +++ b/screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml @@ -30,6 +30,6 @@ SELECT mac, `time`, `value` FROM history_hourly_${timeUnits} WHERE `time` <![CDATA[>=]]> #{start} - AND `time` <![CDATA[<=]]> #{end} + AND `time` <![CDATA[<]]> #{end} </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0