| | |
| | | return Constants.GOOD; |
| | | return Constants.EXCELLENT; |
| | | } |
| | | |
| | | //PM2.5 IAQI |
| | | private static int PM2_5AQI(Double value) { |
| | | double result; |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |