From 9485a0cb33bb4535bb553a5bf49debeadbe0c89d Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Wed, 03 Nov 2021 11:48:55 +0800 Subject: [PATCH] city_aqi o3_8h,综指,首要污染物计算 --- screen-common/src/main/java/com/moral/util/AQIUtils.java | 152 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 113 insertions(+), 39 deletions(-) diff --git a/screen-common/src/main/java/com/moral/util/AQIUtils.java b/screen-common/src/main/java/com/moral/util/AQIUtils.java index a55c8f5..d283d23 100644 --- a/screen-common/src/main/java/com/moral/util/AQIUtils.java +++ b/screen-common/src/main/java/com/moral/util/AQIUtils.java @@ -59,15 +59,15 @@ } /** - * @Description: ������AQI������������������map���key���sensorCode���value��������� - * @Param: [map] - * @return: java.util.Map<java.lang.String,java.lang.Object> - * @Author: ��������� - * @Date: 2021/10/29 - */ - public static Map<String,Object> hourlyAqi_pollutant(Map<String, Object> map) { + * @Description: ������AQI������������������map���key���sensorCode���value��������� + * @Param: [map] + * @return: java.util.Map<java.lang.String, java.lang.Object> + * @Author: ��������� + * @Date: 2021/10/29 + */ + public static Map<String, Object> hourlyAqi_pollutant(Map<String, Object> map) { List<Integer> AQIList = new ArrayList<>(); - Map<String,Integer> AQIMap = new HashMap<>(); + Map<String, Integer> AQIMap = new HashMap<>(); for (Map.Entry<String, Object> entry : map.entrySet()) { String key = entry.getKey(); if (entry.getValue().toString().equals("")) { @@ -83,32 +83,32 @@ case Constants.SENSOR_CODE_PM25: PM2_5AQI = PM2_5AQI(Double.valueOf(entry.getValue().toString())); AQIList.add(PM2_5AQI); - AQIMap.put("PM2.5",PM2_5AQI); + AQIMap.put("PM2.5", PM2_5AQI); break; case Constants.SENSOR_CODE_PM10: PM10AQI = PM10AQI(Double.valueOf(entry.getValue().toString())); AQIList.add(PM10AQI); - AQIMap.put("PM10",PM10AQI); + AQIMap.put("PM10", PM10AQI); break; case Constants.SENSOR_CODE_SO2: SO2AQI = SO2AQI(Double.valueOf(entry.getValue().toString())); AQIList.add(SO2AQI); - AQIMap.put("SO2",SO2AQI); + AQIMap.put("SO2", SO2AQI); break; case Constants.SENSOR_CODE_NO2: NO2AQI = NO2AQI(Double.valueOf(entry.getValue().toString())); AQIList.add(NO2AQI); - AQIMap.put("NO2",NO2AQI); + AQIMap.put("NO2", NO2AQI); break; case Constants.SENSOR_CODE_CO: COAQI = COAQI(Double.valueOf(entry.getValue().toString())); AQIList.add(COAQI); - AQIMap.put("CO",COAQI); + AQIMap.put("CO", COAQI); break; case Constants.SENSOR_CODE_O3: O3AQI = O3AQI(Double.valueOf(entry.getValue().toString())); AQIList.add(O3AQI); - AQIMap.put("O3",O3AQI); + AQIMap.put("O3", O3AQI); break; default: break; @@ -119,49 +119,50 @@ AQIMAX = Collections.max(AQIList); } List<String> nameList = new ArrayList<>(); - for (String key:AQIMap.keySet()){ - if (AQIMap.get(key).equals(AQIMAX)){ + for (String key : AQIMap.keySet()) { + if (AQIMap.get(key).equals(AQIMAX)) { nameList.add(key); } } - Map<String,Object> resultMap = new HashMap<>(); - resultMap.put("aqi",AQIMAX); - if(AQIMAX>50) - resultMap.put("pollutant",nameList); + Map<String, Object> resultMap = new HashMap<>(); + resultMap.put("aqi", AQIMAX); + if (AQIMAX > 50) + resultMap.put("pollutant", nameList); return resultMap; } public static void main(String[] args) { - Map<String,Object> map = new HashMap<>(); - map.put("a34004",11.25); - map.put("a34002",18.25); - map.put("a21026",55); - map.put("a21004",200.01); - map.put("a21005",18.94); - map.put("a05024",55); + Map<String, Object> map = new HashMap<>(); + map.put("a34004", 11.25); + map.put("a34002", 18.25); + map.put("a21026", 55); + map.put("a21004", 200.01); + map.put("a21005", 18.94); + map.put("a05024", 55); System.out.println(hourlyAqi_pollutant(map)); } /** - * @Description: ������AQI������������ - * @Param: - * @return: - * @Author: ��������� - * @Date: 2021/10/29 - */ - public static String classOfPollutionByAqi(Integer aqi){ - if(aqi>300) + * @Description: ������AQI������������ + * @Param: + * @return: + * @Author: ��������� + * @Date: 2021/10/29 + */ + public static String classOfPollutionByAqi(Integer aqi) { + if (aqi > 300) return Constants.SERVER; - if(aqi>200) + if (aqi > 200) return Constants.SERIOUS; - if(aqi>150) + if (aqi > 150) return Constants.MIDDLE; - if(aqi>100) + if (aqi > 100) return Constants.MILD; - if(aqi>50) + if (aqi > 50) return Constants.GOOD; return Constants.EXCELLENT; } + //PM2.5 IAQI private static int PM2_5AQI(Double value) { double result; @@ -293,4 +294,77 @@ } return (int) Math.ceil(result); } + + /** + * @Description: ������AQI������������������map���key���sensorCode���value��������� + * @Param: [map] + * @return: java.util.Map<java.lang.String, java.lang.Object> + * @Author: ��������� + * @Date: 2021/10/29 + */ + public static Map<String, Object> cityAqiPollutant(Map<String, Object> map) { + List<Integer> AQIList = new ArrayList<>(); + Map<String, Integer> AQIMap = new HashMap<>(); + for (Map.Entry<String, Object> entry : map.entrySet()) { + String key = entry.getKey(); + if (entry.getValue().toString().equals("")) { + continue; + } + int PM2_5AQI; + int PM10AQI; + int SO2AQI; + int NO2AQI; + int COAQI; + int O3AQI; + switch (key) { + case "pm2_5": + PM2_5AQI = PM2_5AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(PM2_5AQI); + AQIMap.put("pm2_5", PM2_5AQI); + break; + case "pm10": + PM10AQI = PM10AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(PM10AQI); + AQIMap.put("pm10", PM10AQI); + break; + case Constants.SENSOR_CODE_SO2: + SO2AQI = SO2AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(SO2AQI); + AQIMap.put("so2", SO2AQI); + break; + case Constants.SENSOR_CODE_NO2: + NO2AQI = NO2AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(NO2AQI); + AQIMap.put("no2", NO2AQI); + break; + case Constants.SENSOR_CODE_CO: + COAQI = COAQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(COAQI); + AQIMap.put("co", COAQI); + break; + case Constants.SENSOR_CODE_O3: + O3AQI = O3AQI(Double.valueOf(entry.getValue().toString())); + AQIList.add(O3AQI); + AQIMap.put("o3", O3AQI); + break; + default: + break; + } + } + int AQIMAX = 0; + if (!ObjectUtils.isEmpty(AQIList)) { + AQIMAX = Collections.max(AQIList); + } + List<String> nameList = new ArrayList<>(); + for (String key : AQIMap.keySet()) { + if (AQIMap.get(key).equals(AQIMAX)) { + nameList.add(key); + } + } + Map<String, Object> resultMap = new HashMap<>(); + resultMap.put("aqi", AQIMAX); + if (AQIMAX > 50) + resultMap.put("pollutant", nameList); + return resultMap; + } } -- Gitblit v1.8.0