From 113a18ea7368ebc5fbadc211ad3ee1feb743929d Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Fri, 29 Oct 2021 15:55:04 +0800 Subject: [PATCH] screen-api 根据AQI计算污染等级 --- screen-common/src/main/java/com/moral/util/AQIUtils.java | 39 +++++++++++++++++++++++++++++++++------ screen-common/src/main/java/com/moral/constant/Constants.java | 12 +++++++++++- screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java | 9 +++++++++ 3 files changed, 53 insertions(+), 7 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 e200f04..1bde34d 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 @@ -10,6 +10,7 @@ import com.moral.api.service.CityAqiService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.RedisConstants; +import com.moral.util.AQIUtils; import com.moral.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -104,6 +105,12 @@ Map<String,Object> value = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.CITY_AQI,String.valueOf(regionCode)); if(value==null) value = queryCityAqiByRegionCodeFromDB(regionCode); + //������AQI������������������ + if(value==null||value.get("aqi")==null) + return null; + Integer aqi = Integer.parseInt(value.get("aqi").toString()); + String category = AQIUtils.classOfPollutionByAqi(aqi); + value.put("category",category); return value; } @@ -120,6 +127,8 @@ wrapper.orderByDesc("time"); wrapper.last(true,"limit 1"); CityAqi cityAqi = cityAqiMapper.selectOne(wrapper); + if(cityAqi==null) + return null; String value = cityAqi.getValue(); redisTemplate.opsForHash().put(RedisConstants.CITY_AQI,regionCode,value); return JSON.parseObject(value,Map.class); diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java index 6699393..683d5b2 100644 --- a/screen-common/src/main/java/com/moral/constant/Constants.java +++ b/screen-common/src/main/java/com/moral/constant/Constants.java @@ -244,5 +244,15 @@ * */ public static final String NORMAL_FLAG = "N"; - + public static final String EXCELLENT = "���"; + + public static final String GOOD = "���"; + + public static final String MILD = "������������"; + + public static final String MIDDLE = "������������"; + + public static final String SERIOUS = "������������"; + + public static final String SERVER = "������������"; } diff --git a/screen-common/src/main/java/com/moral/util/AQIUtils.java b/screen-common/src/main/java/com/moral/util/AQIUtils.java index b7adb3a..592eadc 100644 --- a/screen-common/src/main/java/com/moral/util/AQIUtils.java +++ b/screen-common/src/main/java/com/moral/util/AQIUtils.java @@ -58,6 +58,13 @@ return AQIMAX; } + /** + * @Description: ������AQI��������������� + * @Param: [map] + * @return: java.util.Map<java.lang.String,java.lang.Object> + * @Author: ��������� + * @Date: 2021/10/29 + */ public static Map<String,Object> hourlyAqi_pollutant(Map<String, Object> map) { List<Integer> AQIList = new ArrayList<>(); Map<String,Integer> AQIMap = new HashMap<>(); @@ -123,8 +130,28 @@ return resultMap; } + /** + * @Description: ������AQI������������ + * @Param: + * @return: + * @Author: ��������� + * @Date: 2021/10/29 + */ + public static String classOfPollutionByAqi(Integer aqi){ + if(aqi>300) + return Constants.SERVER; + if(aqi>200) + return Constants.SERIOUS; + if(aqi>150) + return Constants.MIDDLE; + if(aqi>100) + return Constants.MILD; + if(aqi>50) + return Constants.GOOD; + return Constants.EXCELLENT; + } //PM2.5 IAQI - public static int PM2_5AQI(Double value) { + private static int PM2_5AQI(Double value) { double result; if (value <= 0) { result = 0; @@ -147,7 +174,7 @@ } //PM10 IAQI - public static int PM10AQI(Double value) { + private static int PM10AQI(Double value) { double result; if (value <= 0) { result = 0; @@ -170,7 +197,7 @@ } //SO2 IAQI - public static int SO2AQI(Double value) { + private static int SO2AQI(Double value) { double result; if (value <= 0) { result = 0; @@ -187,7 +214,7 @@ } //NO2 IAQI - public static int NO2AQI(Double value) { + private static int NO2AQI(Double value) { double result; if (value <= 0) { result = 0; @@ -210,7 +237,7 @@ } //CO IAQI - public static int COAQI(Double value) { + private static int COAQI(Double value) { double result; if (value <= 0) { result = 0; @@ -233,7 +260,7 @@ } //O3 IAQI - public static int O3AQI(Double value) { + private static int O3AQI(Double value) { double result; if (value <= 0) { result = 0; -- Gitblit v1.8.0