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