From a8db8fd61f48e3f367cd5968c11ffa1596c52e2f Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Fri, 19 Nov 2021 08:51:23 +0800
Subject: [PATCH] screen-api            增加污染等级柱状图接口mock数据

---
 screen-api/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java |  100 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 78 insertions(+), 22 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
index 2a3c803..7ddf17e 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java
@@ -14,6 +14,7 @@
 import com.moral.api.service.OrganizationService;
 import com.moral.constant.Constants;
 import com.moral.constant.RedisConstants;
+import com.moral.pojo.AQI;
 import com.moral.util.AQIUtils;
 import com.moral.util.RegionCodeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -199,12 +200,30 @@
                             }
                         }
                     }
-                    Double PM2_5Avg = (double)Math.round(PM2_5List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
-                    Double PM10Avg = (double)Math.round(PM10List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
-                    Double SO2Avg = (double)Math.round(SO2List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
-                    Double NO2Avg = (double)Math.round(NO2List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
-                    Double COAvg = new BigDecimal(COList.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage()).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
-                    Double O3_1hAvg = (double)Math.round(O3_1hList.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                    Double PM2_5Avg = null;
+                    Double PM10Avg = null;
+                    Double SO2Avg = null;
+                    Double NO2Avg = null;
+                    Double COAvg = null;
+                    Double O3_1hAvg = null;
+                    if (PM2_5List.size()>0){
+                        PM2_5Avg = (double)Math.round(PM2_5List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                    }
+                    if (PM10List.size()>0){
+                        PM10Avg = (double)Math.round(PM10List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                    }
+                    if (SO2List.size()>0){
+                        SO2Avg = (double)Math.round(SO2List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                    }
+                    if (NO2List.size()>0){
+                        NO2Avg = (double)Math.round(NO2List.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                    }
+                    if (COList.size()>0){
+                        COAvg = new BigDecimal(COList.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage()).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
+                    }
+                    if (O3_1hList.size()>0){
+                        O3_1hAvg = (double)Math.round(O3_1hList.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                    }
                     if (!ObjectUtils.isEmpty(PM2_5Avg)){
                         PM2_5List_daliy.add(PM2_5Avg);
                         oneGovMonitorPointOneHourData.put("a34004_"+govMonitorPointId,PM2_5Avg);
@@ -243,6 +262,18 @@
                         oneGovMonitorPointOneHourData.put("a05024_"+govMonitorPointId,null);
                     }
                     Double O3_8h = null;
+                    //������������
+                    Date now = new Date();
+                    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
+                    //���������������������
+                    String nowDay = sf.format(now);
+                    //���������������
+                    //String day = sf.format(date);
+                    int curHour24 = 25;
+                    if (date.equals(nowDay)){
+                        Calendar calendar = Calendar.getInstance();
+                        curHour24 = calendar.get(calendar.HOUR_OF_DAY);
+                    }
                     if (i>=7){
                         List<Double> O3_8hList = new ArrayList<>();
                         for (Integer key:O3_1hMap.keySet()){
@@ -251,7 +282,11 @@
                                 O3_8hList_daliy.add(O3_1hMap.get(key));
                             }
                         }
-                        O3_8h = (double)Math.round(O3_8hList.stream().mapToDouble(aDouble ->aDouble).summaryStatistics().getAverage());
+                        if (i<curHour24){
+                            if (O3_8hList.size()>0){
+                                O3_8h = (double)Math.round(O3_8hList.stream().mapToDouble(aDouble ->aDouble).summaryStatistics().getAverage());
+                            }
+                        }
                     }
                     oneGovMonitorPointOneHourData.put("O3_8h_"+govMonitorPointId,O3_8h);
                     switch (i){
@@ -307,13 +342,34 @@
                             break;
                     }
                 }
-                Double PM2_5Avg_daliy = (double)Math.round(PM2_5List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
-                Double PM10Avg_daliy = (double)Math.round(PM10List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
-                Double SO2Avg_daliy = (double)Math.round(SO2List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
-                Double NO2Avg_daliy = (double)Math.round(NO2List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
-                Double COAvg_daliy = new BigDecimal(COList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage()).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
-                Double O3_1hAvg_daliy = (double)Math.round(O3_1hList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
-                Double O3_8hAvg_daliy = (double)Math.round(O3_8hList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                Double PM2_5Avg_daliy = null;
+                Double PM10Avg_daliy = null;
+                Double SO2Avg_daliy = null;
+                Double NO2Avg_daliy = null;
+                Double COAvg_daliy = null;
+                Double O3_1hAvg_daliy = null;
+                Double O3_8hAvg_daliy = null;
+                if (PM2_5List_daliy.size()>0){
+                    PM2_5Avg_daliy = (double)Math.round(PM2_5List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                }
+                if (PM10List_daliy.size()>0){
+                    PM10Avg_daliy = (double)Math.round(PM10List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                }
+                if (SO2List_daliy.size()>0){
+                    SO2Avg_daliy = (double)Math.round(SO2List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                }
+                if (NO2List_daliy.size()>0){
+                    NO2Avg_daliy = (double)Math.round(NO2List_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                }
+                if (COList_daliy.size()>0){
+                    COAvg_daliy = new BigDecimal(COList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage()).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
+                }
+                if (O3_1hList_daliy.size()>0){
+                    O3_1hAvg_daliy = (double)Math.round(O3_1hList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                }
+                if (O3_8hList_daliy.size()>0){
+                    O3_8hAvg_daliy = (double)Math.round(O3_8hList_daliy.stream().mapToDouble(aDouble -> aDouble).summaryStatistics().getAverage());
+                }
                 hour_AVG.put("a34004_"+govMonitorPointId,PM2_5Avg_daliy);
                 hour_AVG.put("a34002_"+govMonitorPointId,PM10Avg_daliy);
                 hour_AVG.put("a21026_"+govMonitorPointId,SO2Avg_daliy);
@@ -437,9 +493,9 @@
                 if (!ObjectUtils.isEmpty(PM2_5)){
                     AQIMap.put("a05024",O3_1h);
                 }
-                Map<String,Object> AQIResultMap = new HashMap<>();
+                AQI aqi = new AQI();
                 if (AQIMap.size()!=0){
-                    AQIResultMap = AQIUtils.hourlyAqi_pollutant(AQIMap);
+                    aqi = AQIUtils.hourlyAQI(AQIMap);
                 }
                 Map<String,Object> avgMap = new HashMap<>();
                 avgMap.put("a34004_"+"0",PM2_5);
@@ -449,19 +505,19 @@
                 avgMap.put("a21005_"+"0",CO);
                 avgMap.put("a05024_"+"0",O3_1h);
                 avgMap.put("O3_8h_"+"0",O3_8h);
-                if (!ObjectUtils.isEmpty(AQIResultMap.get("aqi"))){
-                    avgMap.put("aqi",AQIResultMap.get("aqi"));
+                if (!ObjectUtils.isEmpty(aqi.getAQIValue())){
+                    avgMap.put("aqi",aqi.getAQIValue());
                 }else {
                     avgMap.put("aqi","");
                 }
-                if (!ObjectUtils.isEmpty(AQIResultMap.get("pollutant"))){
-                    if (Integer.parseInt(AQIResultMap.get("aqi").toString())>50){
-                        String pollutant = AQIResultMap.get("pollutant").toString();
+                if (!ObjectUtils.isEmpty(aqi.getPrimaryPollutantNames())){
+                    if (Integer.parseInt(aqi.getAQIValue().toString())>50){
+                        String pollutant = aqi.getPrimaryPollutantNames().toString();
                         pollutant = pollutant.replace("[","");
                         pollutant = pollutant.replace("]","");
                         avgMap.put("pollutant",pollutant);
                     }else {
-                        avgMap.put("pollutant","");
+                        avgMap.put("pollutant","-");
                     }
                 }else {
                     avgMap.put("aqi","");

--
Gitblit v1.8.0