From f4a6f719f6c8db77443b16d5794b9b92b8d5b6ce Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 27 Aug 2020 17:55:38 +0800
Subject: [PATCH] update

---
 src/main/java/com/moral/service/impl/WeatherServiceImpl.java |   82 ++++++++++++++++++++++++++++------------
 1 files changed, 57 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
index 072c542..67ed26c 100644
--- a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
@@ -285,8 +285,8 @@
         parameters.put("typeFormat", "%Y-%m-%d %H:%i:%s");
         String cityName = parameters.get("city").toString();
         Area area = areaMapper.getAreaByName(cityName);
-        Integer code = 0;
-        String name = "";
+        Integer code;
+        String name;
         if (area == null) {
             City city = cityMapper.getCityByName(cityName);
             if (city == null) {
@@ -314,7 +314,6 @@
         cal.add(Calendar.DAY_OF_MONTH, 1);
         Date end = cal.getTime();
         cal.setTime(sdf.parse(time));
-        Date time1 = cal.getTime();
         cal.add(Calendar.DAY_OF_MONTH, -1);
         String beforeDay = sdf.format(cal.getTime());
         parameters.put("start", selectTime);
@@ -535,7 +534,7 @@
                 if (ttime.equals(rtime)) {
                     Double tvoc = Double.valueOf(tvocMap.get("TVOC").toString());
                     BigDecimal bd = new BigDecimal(tvoc);
-                    tvoc = bd.setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue();
+                    tvoc = bd.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
                     realMap.put("TVOC", tvoc);
                 }
             }
@@ -649,6 +648,7 @@
         //���4���������������
         double value = 160.0 * 8;
         int nowHour = Integer.valueOf(sdf1.format(now).substring(11, 13));
+        int nowMinute = Integer.valueOf(sdf1.format(now).substring(14, 16));
         String format = sdf1.format(now).substring(0, 13) + ":00:00";
         if (nowHour < 8) {
             return resultList;
@@ -669,23 +669,47 @@
                     if (rhour == 0) {
                         rhour = 24;
                     }
-                    if (rhour == nowHour) {
-                        Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
-                        double v = value - Double.valueOf(sumO3Map.get("O3Sum").toString());
-                        resultMap.put("goodValue", v);
-                    } else if (rhour == nowHour + 1) {
-                        Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
-                        double v = (value - Double.valueOf(sumO3Map.get("O3Sum").toString())) / 2;
-                        resultMap.put("goodValue", String.valueOf(Math.round(v)));
-                    } else if (rhour == nowHour + 2) {
-                        Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
-                        double v = (value - Double.valueOf(sumO3Map.get("O3Sum").toString())) / 3;
-                        resultMap.put("goodValue", String.valueOf(Math.round(v)));
-                    } else if (rhour == nowHour + 3) {
-                        Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
-                        double v = (value - Double.valueOf(sumO3Map.get("O3Sum").toString())) / 4;
-                        resultMap.put("goodValue", String.valueOf(Math.round(v)));
+
+                    if (nowMinute >= 46) {
+                        if (rhour == nowHour+1) {
+                            Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
+                            double v = value - Double.valueOf(sumO3Map.get("O3Sum").toString());
+                            resultMap.put("goodValue", v);
+                        } else if (rhour == nowHour + 2) {
+                            Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
+                            double v = (value - Double.valueOf(sumO3Map.get("O3Sum").toString())) / 2;
+                            resultMap.put("goodValue", String.valueOf(Math.round(v)));
+                        } else if (rhour == nowHour + 3) {
+                            Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
+                            double v = (value - Double.valueOf(sumO3Map.get("O3Sum").toString())) / 3;
+                            resultMap.put("goodValue", String.valueOf(Math.round(v)));
+                        } else if (rhour == nowHour + 4) {
+                            Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
+                            double v = (value - Double.valueOf(sumO3Map.get("O3Sum").toString())) / 4;
+                            resultMap.put("goodValue", String.valueOf(Math.round(v)));
+                        }
+                    }else {
+                        if (rhour == nowHour) {
+                            Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
+                            double v = value - Double.valueOf(sumO3Map.get("O3Sum").toString());
+                            resultMap.put("goodValue", v);
+                        } else if (rhour == nowHour + 1) {
+                            Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
+                            double v = (value - Double.valueOf(sumO3Map.get("O3Sum").toString())) / 2;
+                            resultMap.put("goodValue", String.valueOf(Math.round(v)));
+                        } else if (rhour == nowHour + 2) {
+                            Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
+                            double v = (value - Double.valueOf(sumO3Map.get("O3Sum").toString())) / 3;
+                            resultMap.put("goodValue", String.valueOf(Math.round(v)));
+                        } else if (rhour == nowHour + 3) {
+                            Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
+                            double v = (value - Double.valueOf(sumO3Map.get("O3Sum").toString())) / 4;
+                            resultMap.put("goodValue", String.valueOf(Math.round(v)));
+                        }
                     }
+
+
+
                 }
             }
             if (resultMap.get("O3C_8H") != null && !resultMap.get("O3C_8H").equals("")) {
@@ -709,15 +733,22 @@
             }
         }
 
+        //������������
         Map<String, Object> point = shAreaMapper.getgeography(name);
         for (Map<String, Object> map : resultList) {
             double longitude = Double.valueOf(point.get("lng").toString());
             double latitude = Double.valueOf(point.get("lat").toString());
-            map.put("longitude",df.format(longitude));
-            map.put("latitude",df.format(latitude));
-            map.put("altitude",point.get("altitude").toString());
-            map.put("vegetation",point.get("vegetation").toString());
-            map.put("river",point.get("river").toString());
+            map.put("longitude", df.format(longitude));
+            map.put("latitude", df.format(latitude));
+            if (point.get("altitude") != null) {
+                map.put("altitude", point.get("altitude").toString());
+            }
+            if (point.get("vegetation") != null) {
+                map.put("vegetation", point.get("vegetation").toString());
+            }
+            if (point.get("river") != null) {
+                map.put("river", point.get("river").toString());
+            }
         }
         return resultList;
     }
@@ -759,4 +790,5 @@
             }
         }
     }
+
 }

--
Gitblit v1.8.0