kaiyu
2021-11-03 30c76f1f25ddf6437014ea47bdc206cf0e288ec7
screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -17,11 +17,13 @@
import com.moral.api.service.SysAreaService;
import com.moral.constant.Constants;
import com.moral.constant.RedisConstants;
import com.moral.pojo.AQI;
import com.moral.util.AQIUtils;
import com.moral.util.AmendUtils;
import com.moral.util.DateUtils;
import com.moral.util.MathUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -194,7 +196,10 @@
        //计算平均数
        Map<String, Object> sixParamAvg = calculate6ParamAvg(cityAqis);
        //计算累计aqi和首要污染物
        Map<String, Object> result = AQIUtils.hourlyAqi_pollutant(sixParamAvg);
        Map<String, Object> result = new HashMap<>();
        AQI aqi = AQIUtils.hourlyAQI(sixParamAvg);
        result.put("aqi",aqi.getAQIValue());
        result.put("pollutant",aqi.getPrimaryPollutantNames());
        //结果集添加时间
        CityAqi lastCityAqi = cityAqis.get(cityAqis.size() - 1);
        String time = DateUtils.dateToDateString(lastCityAqi.getTime(), "HH:mm");
@@ -352,6 +357,10 @@
        sortByField(ranks, "aqi");
        //日排名结果
        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"));
        result.put("day", dayMap);
@@ -360,15 +369,22 @@
        sortByField(ranks, "compositeIndexMonth");
        //月排名结果
        Map<String, Object> monthMap = rankByField(ranks, cityCode, "compositeIndexMonth", cityCodes.size());
        if (ObjectUtils.isEmpty(monthMap)) {
            monthMap.put("rank", null);
            monthMap.put("size", null);
        }
        monthMap.put("compositeIndex", monthMap.remove("value"));
        result.put("month", monthMap);
        //年排名,按累计综指排
        sortByField(ranks, "compositeIndexYear");
        //年排名结果
        sortByField(ranks, "compositeIndexYear");
        Map<String, Object> yearMap = rankByField(ranks, cityCode, "compositeIndexYear", cityCodes.size());
        if (ObjectUtils.isEmpty(yearMap)) {
            yearMap.put("rank", null);
            yearMap.put("size", null);
        }
        yearMap.put("compositeIndex", yearMap.remove("value"));
        result.put("year", yearMap);