From 2dee01ae6f13a72b1d2ba9ca3d1ffbea72ab513b Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Sat, 09 Oct 2021 08:59:28 +0800
Subject: [PATCH] screen-aqi            增加监测因子对比图接口

---
 screen-api/src/main/java/com/moral/api/service/impl/GovMonitorPointServiceImpl.java |   52 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 42 insertions(+), 10 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 56d7241..69e1073 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
@@ -105,7 +105,6 @@
             govMonitorPoint_avg.setId(0);
             govMonitorPoint_avg.setName("");
             govMonitorPoint_avg.setGuid("");
-            govMonitorPointList.add(govMonitorPoint_avg);
             List<Map<String,Object>> data = new ArrayList<>();
             Map<String,Object> hour_1 = new HashMap<>();
             Map<String,Object> hour_2 = new HashMap<>();
@@ -200,12 +199,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);
@@ -244,6 +261,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()){
@@ -252,7 +281,9 @@
                                 O3_8hList_daliy.add(O3_1hMap.get(key));
                             }
                         }
-                        O3_8h = (double)Math.round(O3_8hList.stream().mapToDouble(aDouble ->aDouble).summaryStatistics().getAverage());
+                        if (i<curHour24){
+                            O3_8h = (double)Math.round(O3_8hList.stream().mapToDouble(aDouble ->aDouble).summaryStatistics().getAverage());
+                        }
                     }
                     oneGovMonitorPointOneHourData.put("O3_8h_"+govMonitorPointId,O3_8h);
                     switch (i){
@@ -462,7 +493,7 @@
                         pollutant = pollutant.replace("]","");
                         avgMap.put("pollutant",pollutant);
                     }else {
-                        avgMap.put("pollutant","");
+                        avgMap.put("pollutant","-");
                     }
                 }else {
                     avgMap.put("aqi","");
@@ -546,7 +577,7 @@
             hour_22.put("time","22���");
             hour_23.put("time","23���");
             hour_24.put("time","0���");
-            hour_AVG.put("time","avg");
+            hour_AVG.put("time","������");
             data.add(hour_1);
             data.add(hour_2);
             data.add(hour_3);
@@ -574,6 +605,7 @@
             data.add(hour_AVG);
             resultMap.put("title",date+"������");
             resultMap.put("data",data);
+            govMonitorPointList.add(govMonitorPoint_avg);
             resultMap.put("govMonitorPoint",govMonitorPointList);
             return resultMap;
         }catch (Exception e){

--
Gitblit v1.8.0