jinpengyong
2021-11-08 100e952066f126467e128a672fb6a7fc3cf367c3
screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -89,7 +89,7 @@
                    Date date = (Date) forecastDatum.get("time");
                    String value = forecastDatum.get("value").toString();
                    Map<String, Object> data = JSONObject.parseObject(value, Map.class);
                    Object o3 = data.get("o3");
                    Object o3 = data.get("O3");
                    if (i == DateUtils.getHour(date) * 2) {
                        if (!ObjectUtils.isEmpty(o3)) {
                            map.put("O3", o3);
@@ -104,7 +104,7 @@
                    Date date = (Date) measuredDatum.get("time");
                    String value = measuredDatum.get("value").toString();
                    Map<String, Object> data = JSONObject.parseObject(value, Map.class);
                    Object o3 = data.get("o3");
                    Object o3 = data.get("O3");
                    if (i == (DateUtils.getHour(date) * 2 + 1)) {
                        if (!ObjectUtils.isEmpty(o3)) {
                            map.put("O3", o3);
@@ -216,12 +216,12 @@
     * @Date: 2021/11/2
     */
    private Map<String, Object> calculate6ParamAvg(List<CityAqi> cityAqiList) {
        Double co = calculateSensorAvg(cityAqiList, "co");
        Double pm2_5 = calculateSensorAvg(cityAqiList, "pm2_5");
        Double pm10 = calculateSensorAvg(cityAqiList, "pm10");
        Double so2 = calculateSensorAvg(cityAqiList, "so2");
        Double no2 = calculateSensorAvg(cityAqiList, "no2");
        Double o3 = calculateSensorAvg(cityAqiList, "o3");
        Double co = calculateSensorAvg(cityAqiList, "CO");
        Double pm2_5 = calculateSensorAvg(cityAqiList, "PM2_5");
        Double pm10 = calculateSensorAvg(cityAqiList, "PM10");
        Double so2 = calculateSensorAvg(cityAqiList, "SO2");
        Double no2 = calculateSensorAvg(cityAqiList, "NO2");
        Double o3 = calculateSensorAvg(cityAqiList, "O3");
        Map<String, Object> result = new HashMap<>();
        result.put(Constants.SENSOR_CODE_CO, co);
        result.put(Constants.SENSOR_CODE_NO2, no2);
@@ -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);
        //月排名,按累计综指排