lizijie
2022-01-05 d866a0c52c419156941801ea0008643d1c7f0e04
screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -135,6 +135,21 @@
        Map<String, Object> value = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.CITY_AQI, String.valueOf(regionCode));
        if (value == null)
            value = queryCityAqiByRegionCodeFromDB(regionCode);
        //如果地区码是县级市则转换到市级在进行查询
        if (value == null) {
            String regionCodeStr = String.valueOf(regionCode);
            String end = regionCodeStr.substring(regionCodeStr.length() - 2, regionCodeStr.length());
            if (!end.equals(00)) {
                regionCodeStr = regionCodeStr.substring(0, regionCodeStr.length() - 2);
                regionCodeStr += "00";
                regionCode = Integer.parseInt(regionCodeStr);
                value = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.CITY_AQI, String.valueOf(regionCode));
                if (value == null)
                    value = queryCityAqiByRegionCodeFromDB(regionCode);
            }else{
                return null;
            }
        }
        //根据AQI计算污染等级
        if (value == null || value.get("AQI") == null)
            return null;
@@ -152,6 +167,8 @@
        lastDataWrapper.orderByDesc("time");
        lastDataWrapper.last(true, "limit 1");
        CityAqi cityAqi = cityAqiMapper.selectOne(lastDataWrapper);
        if(cityAqi==null)
            return null;
        //算出前24小时的时间点
        Date endDate = cityAqi.getTime();
        Date startDate = DateUtils.addHours(endDate, -23);
@@ -754,7 +771,7 @@
    /**
     * @Description: 计算6参平均值
     * @Param: [cityAqiList]
     * @return: java.util.Map<java.lang.String, java.lang.Double>
     * @return: java.util.Map<java.lang.String       ,               java.lang.Double>
     * 返回值key为sensorCode,value为值
     * @Author: 陈凯裕
     * @Date: 2021/11/2
@@ -808,7 +825,7 @@
    /**
     * @Description: 从数据库查询数据
     * @Param: [regionCode]
     * @return: java.util.Map<java.lang.String, java.lang.Object>
     * @return: java.util.Map<java.lang.String       ,               java.lang.Object>
     * @Author: 陈凯裕
     * @Date: 2021/10/28
     */
@@ -920,8 +937,6 @@
        result.put("month", monthMap);
        //年排名,按累计综指排
        sortByField(ranks, "compositeIndexYear");
        //年排名结果
        sortByField(ranks, "compositeIndexYear");
        Map<String, Object> yearMap = rankByField(ranks, cityCode, "compositeIndexYear", cityCodes.size());
        if (ObjectUtils.isEmpty(yearMap)) {