From cd264145f9b4107f1430da46269dd306d26f3116 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Mon, 16 Nov 2020 13:16:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/moral/service/impl/WeatherServiceImpl.java |   47 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
index 8c83b3b..0991b8c 100644
--- a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
@@ -569,6 +569,7 @@
 
         //������������
         int x = 0;
+        parameters.put("cityCode", code);
         List<Map<String, Object>> realList = realWeatherMapper.getRealWeather(parameters);
         if (realList.size() == 0) {
             //1-23���������������������������������������������������������������������
@@ -670,7 +671,7 @@
             listMap.put("city", name);
             String time1 = listMap.get("time").toString();
             for (Map<String, Object> aqiMap : realAqilist) {
-                if(time1.equals(aqiMap.get("time"))){
+                if (time1.equals(aqiMap.get("time"))) {
                     listMap.putAll(aqiMap);
                 }
             }
@@ -826,19 +827,39 @@
 
         //������������
         Map<String, Object> geographyMap = shAreaMapper.getGeography(name);
-        for (Map<String, Object> map : resultList) {
-            double longitude = Double.valueOf(geographyMap.get("lng").toString());
-            double latitude = Double.valueOf(geographyMap.get("lat").toString());
-            map.put("longitude", df.format(longitude));
-            map.put("latitude", df.format(latitude));
-            if (geographyMap.get("altitude") != null) {
-                map.put("altitude", geographyMap.get("altitude").toString());
+        if (geographyMap != null) {
+            for (Map<String, Object> map : resultList) {
+                if (geographyMap.get("lng") != null) {
+                    double longitude = Double.valueOf(geographyMap.get("lng").toString());
+                    map.put("longitude", df.format(longitude));
+                }
+                if (geographyMap.get("lat") != null) {
+                    double latitude = Double.valueOf(geographyMap.get("lat").toString());
+                    map.put("latitude", df.format(latitude));
+                }
+                if (geographyMap.get("altitude") != null) {
+                    map.put("altitude", geographyMap.get("altitude").toString());
+                }
+                if (geographyMap.get("vegetation") != null) {
+                    map.put("vegetation", geographyMap.get("vegetation").toString());
+                }
+                if (geographyMap.get("river") != null) {
+                    map.put("river", geographyMap.get("river").toString());
+                }
             }
-            if (geographyMap.get("vegetation") != null) {
-                map.put("vegetation", geographyMap.get("vegetation").toString());
-            }
-            if (geographyMap.get("river") != null) {
-                map.put("river", geographyMap.get("river").toString());
+        }
+
+        for (int i = 0; i < resultList.size(); i = i + 2) {
+            Map<String, Object> foreMap = resultList.get(i);
+            Map<String, Object> realMap = resultList.get(i + 1);
+            if (foreMap.get("O3C") != null && realMap.get("O3C") != null) {
+                Double foreO3 = Double.valueOf(foreMap.get("O3C").toString());
+                Double realO3 = Double.valueOf(realMap.get("O3C").toString());
+                int round = (int) Math.round((realO3 - foreO3) / realO3 * 100);
+                if (round < 0) {
+                    round = -round;
+                }
+                realMap.put("errorRate", round + "%");
             }
         }
         return resultList;

--
Gitblit v1.8.0