From d866a0c52c419156941801ea0008643d1c7f0e04 Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Wed, 05 Jan 2022 16:18:59 +0800 Subject: [PATCH] 新建污染警报小时表定时任务 --- screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java | 41 ++++++++++++++++++++++++++++------------- 1 files changed, 28 insertions(+), 13 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java index 8a3048c..536f9f5 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java +++ b/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); @@ -223,7 +240,7 @@ @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"))) { @@ -237,10 +254,10 @@ } 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)) { @@ -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 */ @@ -826,7 +843,7 @@ } @Override - public Map<String, Object> provincialRanking(Integer organizationId) { + public Map<String, Object> provincialRanking(Integer regionCode) { //��������� Map<String, Object> result = new HashMap<>(); @@ -835,10 +852,10 @@ 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); @@ -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)) { -- Gitblit v1.8.0