From 2e5ad6b6a97104693564ebc9108f58642386a362 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Wed, 03 Nov 2021 17:03:30 +0800 Subject: [PATCH] city_daily中aqi,首要污染物计算 --- screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java | 11 +++++------ screen-common/src/main/java/com/moral/util/AmendUtils.java | 6 +++--- screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java | 16 ++++++---------- screen-job/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java | 17 ++++++++++++----- 4 files changed, 26 insertions(+), 24 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java index 466b0c5..e405261 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java @@ -312,9 +312,8 @@ if (!ObjectUtils.isEmpty(one)) { String value = one.getValue(); Map<String, Object> valueMap = JSONObject.parseObject(value, Map.class); - rankMap.put("aqi", valueMap.get("aqi")); + rankMap.put("AQI", valueMap.get("AQI")); } - //2.������������������������������������������������ queryWrapper.clear(); @@ -353,15 +352,15 @@ } //���������������aqi������ - ranks.removeIf(o -> o.get("aqi") == null); - sortByField(ranks, "aqi"); + ranks.removeIf(o -> o.get("AQI") == null); + sortByField(ranks, "AQI"); //��������������� - Map<String, Object> dayMap = rankByField(ranks, cityCode, "aqi", cityCodes.size()); + Map<String, Object> dayMap = rankByField(ranks, cityCode, "AQI", cityCodes.size()); if (ObjectUtils.isEmpty(dayMap)) { dayMap.put("rank", null); dayMap.put("size", null); } - dayMap.put("aqi", dayMap.remove("value")); + dayMap.put("AQI", dayMap.remove("value")); result.put("day", dayMap); //������������������������������ 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 4218796..b1cf0a6 100644 --- a/screen-common/src/main/java/com/moral/util/AmendUtils.java +++ b/screen-common/src/main/java/com/moral/util/AmendUtils.java @@ -108,7 +108,7 @@ if (!ObjectUtils.isEmpty(o3_8H)) { double o3 = 0d; for (Map<String, Object> o : o3_8H) { - double temp = (double) o.get("o3"); + double temp = (double) o.get("O3"); if (temp > o3) { o3 = temp; } @@ -145,7 +145,7 @@ 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()); + Double o3 = Double.parseDouble(sensorValue.get("O3").toString()); Date time = (Date) dataMap.get("time"); int hour = DateUtils.getHour(time); if (hour == 0) { @@ -159,7 +159,7 @@ continue; } double average = value.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage(); - map.put("o3", average); + map.put("O3", sciCal(average, 0)); result.add(map); } return result; 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 28a0fc0..fcde6f6 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 @@ -8,6 +8,7 @@ import com.moral.api.service.CityAqiDailyService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.service.CityAqiService; +import com.moral.constant.Constants; import com.moral.pojo.AQI; import com.moral.util.AQIUtils; import com.moral.util.AmendUtils; @@ -120,16 +121,22 @@ } }); - //���aqi������ - AQI aqi = AQIUtils.dailyAQI(jsonMap); + //���aqi,��������������������� + Map<String, Object> sixParamMap = new HashMap<>(); + sixParamMap.put(Constants.SENSOR_CODE_PM25, jsonMap.get("PM2_5")); + sixParamMap.put(Constants.SENSOR_CODE_PM10, jsonMap.get("PM10")); + sixParamMap.put(Constants.SENSOR_CODE_SO2, jsonMap.get("SO2")); + sixParamMap.put(Constants.SENSOR_CODE_NO2, jsonMap.get("NO2")); + sixParamMap.put(Constants.SENSOR_CODE_CO, jsonMap.get("CO")); + sixParamMap.put(Constants.SENSOR_CODE_O3, jsonMap.get("O3")); + + AQI aqi = AQIUtils.dailyAQI(sixParamMap); jsonMap.put("AQI", aqi.getAQIValue()); + jsonMap.put("primaryPollutant", aqi.getPrimaryPollutantNames()); //��������������������� Double compositeIndex = ComprehensiveIndexUtils.dailyData(jsonMap); jsonMap.put("compositeIndex", compositeIndex); - - //��������������������� - jsonMap.put("primaryPollutant", aqi.getPrimaryPollutantNames()); cityAqiDaily.setValue(JSONObject.toJSONString(jsonMap)); cityAqiDailyMapper.insert(cityAqiDaily); 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 1af915e..be072d3 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 @@ -53,14 +53,10 @@ @Autowired private RedisTemplate redisTemplate; - @Autowired - - @Override public void insertCityAqi() { Date now = new Date(); Date time = DateUtils.dataToTimeStampTime(now, DateUtils.yyyy_MM_dd_HH_EN); - String format = DateUtils.yyyy_MM_dd_EN; Date start = null; if (DateUtils.getHour(time) == 0 || DateUtils.getHour(time) >= 8) { @@ -128,12 +124,12 @@ //��������������������� Map<String, Object> sixParamMap = new HashMap<>(); - sixParamMap.put("a34002", aqi.get("PM10")); - sixParamMap.put("a34004", aqi.get("PM2_5")); - sixParamMap.put("a21004", aqi.get("NO2")); - sixParamMap.put("a21005", aqi.get("CO")); - sixParamMap.put("a05024", aqi.get("O3")); - sixParamMap.put("a21026", aqi.get("SO2")); + sixParamMap.put(Constants.SENSOR_CODE_PM25, aqi.get("PM2_5")); + sixParamMap.put(Constants.SENSOR_CODE_PM10, aqi.get("PM10")); + sixParamMap.put(Constants.SENSOR_CODE_SO2, aqi.get("SO2")); + sixParamMap.put(Constants.SENSOR_CODE_NO2, aqi.get("NO2")); + sixParamMap.put(Constants.SENSOR_CODE_CO, aqi.get("CO")); + sixParamMap.put(Constants.SENSOR_CODE_O3, aqi.get("O3")); AQI aqiAndPollutant = AQIUtils.hourlyAQI(sixParamMap); if (!ObjectUtils.isEmpty(aqiAndPollutant.getPrimaryPollutantNames())) { aqi.put("primaryPollutant", aqiAndPollutant.getPrimaryPollutantNames()); -- Gitblit v1.8.0