kaiyu
2021-11-12 f60aae617c859a972469f1fbbfea82d7aec939f8
screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -176,10 +176,10 @@
            //按照时间进行排序
            cityAqis.sort(Comparator.comparing(CityAqi::getTime));
        }
        //封装返回数据,map的key为HH:mm格式的时间,value为aqi的数值
        //封装返回数据,map的key为yyyy-MM-dd HH:mm格式的时间,value为aqi的数值
        Map<String, Object> result = new LinkedHashMap<>();
        for (CityAqi aqi : cityAqis) {
            String key = DateUtils.dateToDateString(aqi.getTime(), "HH:mm");
            String key = DateUtils.dateToDateString(aqi.getTime(), "yyyy-MM-dd HH:mm");
            String allDataJson = aqi.getValue();
            if (allDataJson == null) {
                result.put(key, "");
@@ -346,7 +346,12 @@
            sixParamMap.put(Constants.SENSOR_CODE_O3, dataMap.get("O3"));
            AQI aqi = AQIUtils.dailyAQI(sixParamMap);
            dataMap.put("AQI", aqi.getAQIValue());
            dataMap.put("primaryPollutant", aqi.getPrimaryPollutantNames());
            List<String> primaryPollutantNames = aqi.getPrimaryPollutantNames();
            String primaryPollutant = "";
            if (!ObjectUtils.isEmpty(primaryPollutantNames)) {
                primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(","));
            }
            dataMap.put("primaryPollutant", primaryPollutant);
            //今日累计综合指数计算,O3分综指用O3_8H计算
            Map<String, Object> compositeIndexMap = new HashMap<>(dataMap);
@@ -379,6 +384,12 @@
        List<Map<String, Object>> hourData = cityAqiMapper.selectMaps(wrapper);
        for (Map<String, Object> hourDatum : hourData) {
            Map<String, Object> value = JSONObject.parseObject((String) hourDatum.get("value"), Map.class);
            List<String> primaryPollutantNames = (List<String>) value.get("primaryPollutant");
            String primaryPollutant = "";
            if (!ObjectUtils.isEmpty(primaryPollutantNames)) {
                primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(","));
            }
            value.put("primaryPollutant", primaryPollutant);
            value.remove("pubtime");
            value.remove("rank");
            result.add(value);
@@ -400,6 +411,12 @@
        List<Map<String, Object>> dayData = cityAqiDailyService.listMaps(wrapper);
        for (Map<String, Object> dayDatum : dayData) {
            Map<String, Object> value = JSONObject.parseObject((String) dayDatum.get("value"), Map.class);
            List<String> primaryPollutantNames = (List<String>) value.get("primaryPollutant");
            String primaryPollutant = "";
            if (!ObjectUtils.isEmpty(primaryPollutantNames)) {
                primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(","));
            }
            value.put("primaryPollutant", primaryPollutant);
            //城市名
            QueryWrapper<SysArea> queryWrapper = new QueryWrapper<>();
            queryWrapper.select("area_name")
@@ -949,6 +966,4 @@
        }
        return result;
    }
}