| | |
| | | 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; |
| | |
| | | //按照时间进行排序 |
| | | 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, ""); |
| | |
| | | @Override |
| | | public List<Map<String, Object>> rankingDetails(Map<String, Object> params) { |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | int orgId = Integer.parseInt(params.get("organizationId").toString()); |
| | | int regionCode = Integer.parseInt(params.get("regionCode").toString()); |
| | | String type = params.get("type").toString(); |
| | | String time = null; |
| | | if (!ObjectUtils.isEmpty(params.get("time"))) { |
| | |
| | | } |
| | | String cityType = params.get("cityType").toString(); |
| | | |
| | | //获取省,市code |
| | | Organization organization = organizationService.getById(orgId); |
| | | Integer curProvinceCode = organization.getProvinceCode(); |
| | | Integer curCityCode = organization.getCityCode(); |
| | | String s = String.valueOf(regionCode); |
| | | //获取当前省,市code |
| | | Integer curProvinceCode = Integer.parseInt(s.substring(0, 2) + "0000"); |
| | | Integer curCityCode = Integer.parseInt(s.substring(0, 4) + "00"); |
| | | |
| | | QueryWrapper<SysArea> areaWrapper = new QueryWrapper<>(); |
| | | if ("province".equals(cityType)) { |
| | |
| | | List<String> primaryPollutantNames = aqi.getPrimaryPollutantNames(); |
| | | String primaryPollutant = ""; |
| | | if (!ObjectUtils.isEmpty(primaryPollutantNames)) { |
| | | primaryPollutant = primaryPollutantNames.toString().replace("[", "").replace("]", ""); |
| | | primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(",")); |
| | | } |
| | | dataMap.put("primaryPollutant", primaryPollutant); |
| | | |
| | |
| | | List<String> primaryPollutantNames = (List<String>) value.get("primaryPollutant"); |
| | | String primaryPollutant = ""; |
| | | if (!ObjectUtils.isEmpty(primaryPollutantNames)) { |
| | | primaryPollutant = primaryPollutantNames.toString().replace("[", "").replace("]", ""); |
| | | primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(",")); |
| | | } |
| | | value.put("primaryPollutant", primaryPollutant); |
| | | value.remove("pubtime"); |
| | |
| | | List<String> primaryPollutantNames = (List<String>) value.get("primaryPollutant"); |
| | | String primaryPollutant = ""; |
| | | if (!ObjectUtils.isEmpty(primaryPollutantNames)) { |
| | | primaryPollutant = primaryPollutantNames.toString().replace("[", "").replace("]", ""); |
| | | primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(",")); |
| | | } |
| | | value.put("primaryPollutant", primaryPollutant); |
| | | //城市名 |
| | |
| | | /** |
| | | * @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 |
| | |
| | | /** |
| | | * @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 |
| | | */ |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> provincialRanking(Integer organizationId) { |
| | | public Map<String, Object> provincialRanking(Integer regionCode) { |
| | | //结果集 |
| | | Map<String, Object> result = new HashMap<>(); |
| | | |
| | |
| | | Date yesterday = DateUtils.dataToTimeStampTime(DateUtils.getDateOfDay(now, -1), DateUtils.yyyy_MM_dd_EN); |
| | | String dateString = DateUtils.dateToDateString(yesterday, DateUtils.yyyy_MM_dd_HH_mm_ss_EN); |
| | | |
| | | String s = String.valueOf(regionCode); |
| | | //获取省,市code |
| | | Organization organization = organizationService.getById(organizationId); |
| | | Integer provinceCode = organization.getProvinceCode(); |
| | | Integer cityCode = organization.getCityCode(); |
| | | Integer provinceCode = Integer.parseInt(s.substring(0, 2) + "0000"); |
| | | Integer cityCode = Integer.parseInt(s.substring(0, 4) + "00"); |
| | | //获取省内所有city_code |
| | | QueryWrapper<SysArea> wrapper = new QueryWrapper<>(); |
| | | wrapper.select("area_code").eq("parent_code", provinceCode); |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | } |