From 8a4fccc993cbef14b83443d91e51e9b74664eab5 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Mon, 10 Aug 2020 11:18:46 +0800 Subject: [PATCH] update --- src/main/resources/mapper/MonitorPointMapper.xml | 4 +- src/main/resources/mapper/RealWeatherMapper.xml | 2 src/main/resources/mapper/HangzhouAqiMapper.xml | 9 ++-- src/main/java/com/moral/mapper/DeviceMapper.java | 2 src/main/java/com/moral/service/impl/WeatherServiceImpl.java | 93 +++++++++++++++++++++++----------------------- 5 files changed, 54 insertions(+), 56 deletions(-) diff --git a/src/main/java/com/moral/mapper/DeviceMapper.java b/src/main/java/com/moral/mapper/DeviceMapper.java index 1daae12..99b1786 100644 --- a/src/main/java/com/moral/mapper/DeviceMapper.java +++ b/src/main/java/com/moral/mapper/DeviceMapper.java @@ -55,7 +55,7 @@ List<Device> selectDevicesAll(Map<String, Object> params); - List<Device> getDeviceListByMonitorPointIds(List<Integer> id); + List<Device> getDeviceListByMonitorPointIds(List<Integer> list); Map<String, Object> selectAllFieldByMac(Map<String, Object> params); } \ No newline at end of file diff --git a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java index 781a6bc..106f60d 100644 --- a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java +++ b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java @@ -189,9 +189,6 @@ parameters.put("start", sdf.parse(time)); parameters.put("end", sdf.parse(nextDay)); MonitorPoint monitorPoint = monitorPointMapper.selectByPrimaryKey(Integer.valueOf(monitorPointId)); - - //List<Map<String, Object>> forecastList = forecastWeatherMapper.getForecastHour(parameters); - if (monitorPoint.getAreaCode() == null) { parameters.put("cityCode", monitorPoint.getCityCode()); } else { @@ -282,8 +279,6 @@ parameters.put("typeFormat", "%Y-%m-%d %H:%i:%s"); String cityName = parameters.get("city").toString(); Area area = areaMapper.getAreaByName(cityName); - MonitorPoint monitorPoint; - Integer parentCode = 0; Integer code = 0; String name = ""; if (area == null) { @@ -294,20 +289,15 @@ name = province.getProvinceName(); } else { code = city.getCityCode(); - parentCode = city.getProvinceCode(); name = city.getCityName(); } } else { code = area.getAreaCode(); - parentCode = area.getCityCode(); name = area.getAreaName(); } parameters.put("cityCode", code); parameters.put("name", name); - parameters.put("areaCode", code); - - String time = parameters.get("time").toString(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -322,20 +312,22 @@ String beforeDay = sdf.format(cal.getTime()); parameters.put("start", selectTime); parameters.put("end", end); + Integer fcode=0; List<Map<String, Object>> forecastList = forecastWeatherMapper.getForecast(parameters); if (forecastList.size() == 0) { - parameters.put("cityCode", parentCode); - forecastList = forecastWeatherMapper.getForecast(parameters); - if (forecastList.size() == 0) { - List<Area> areaList = areaMapper.getAreaByCityCode(code); - for (Area area1 : areaList) { + List<Area> areaList = areaMapper.getAreaByCityCode(code); + for (Area area1 : areaList) { + if (area1 != null) { parameters.put("cityCode", area1.getAreaCode()); + fcode=area1.getAreaCode(); forecastList = forecastWeatherMapper.getForecast(parameters); if (forecastList.size() != 0) { break; } } } + }else { + fcode= Integer.valueOf(parameters.get("cityCode").toString()); } List<Map<String, Object>> foreList = new ArrayList<>(); @@ -354,6 +346,7 @@ hashMap.put("PM25C", ""); hashMap.put("PM10C", ""); hashMap.put("city", parameters.get("name").toString()); + hashMap.put("code",fcode); if (sdf.parse(time).getTime() <= now.getTime()) { hashMap.put("fxTime", (beforeDay + " 15:00").substring(5, 16)); } else { @@ -388,12 +381,24 @@ } } + String ac = parameters.get("cityCode").toString(); List<Map<String, Object>> aqiList = hangzhouAqiMapper.getAqi(parameters); if (aqiList.size() == 0) { - parameters.put("areaCode", parentCode); + parameters.put("cityCode", code);//320500 aqiList = hangzhouAqiMapper.getAqi(parameters); + if (aqiList.size() == 0) { + List<Area> areaList = areaMapper.getAreaByCityCode(code); + for (Area area1 : areaList) { + if (area1 != null) { + parameters.put("cityCode", area1.getAreaCode()); + aqiList = hangzhouAqiMapper.getAqi(parameters); + if (aqiList.size() != 0) { + break; + } + } + } + } } - List<Map<String, Object>> realAqilist = new ArrayList<>(); for (Map<String, Object> aqiMap : aqiList) { Map<String, Object> hashMap = new HashMap<>(); @@ -403,25 +408,20 @@ hashMap.put("city", parameters.get("name").toString()); realAqilist.add(hashMap); } - for (Map<String, Object> map : realAqilist) { Date endTime = sdf1.parse(map.get("time").toString()); cal.setTime(endTime); cal.add(Calendar.HOUR, -8); Date startTime = cal.getTime(); Map<String, Object> hashMap = new HashMap<>(); - hashMap.put("areaCode", Integer.valueOf(parameters.get("areaCode").toString())); + hashMap.put("cityCode", Integer.valueOf(parameters.get("cityCode").toString())); hashMap.put("start", startTime); hashMap.put("end", endTime); Map<String, Object> O3Map = hangzhouAqiMapper.getAvgO3EightHours(hashMap); - map.put("O3_8H", O3Map.get("O3_8H").toString()); - if (O3Map.get("O3C_8H") != null) { - map.put("O3C_8H", O3Map.get("O3C_8H").toString()); - } + map.put("O3C_8H", O3Map.get("O3C_8H").toString()); } - //������ - String ac = parameters.get("areaCode").toString(); + Map<String, Object> params = new HashMap<>(); if (ac.endsWith("00")) { params.put("cityCode", Integer.valueOf(ac)); @@ -435,7 +435,6 @@ Integer pointId = point.getId(); pointList.add(pointId); } - List<Device> deviceList = deviceMapper.getDeviceListByMonitorPointIds(pointList); List<String> macList = new ArrayList<>(); List<Map<String, Object>> beamList = new ArrayList<>(); @@ -474,7 +473,7 @@ cal.add(Calendar.HOUR, -6); Date startTime = cal.getTime(); Map<String, Object> hashMap = new HashMap<>(); - hashMap.put("cityCode", Integer.valueOf(parameters.get("areaCode").toString())); + hashMap.put("cityCode", Integer.valueOf(parameters.get("cityCode").toString())); hashMap.put("start", startTime); hashMap.put("end", endTime); @@ -566,6 +565,25 @@ map.put("precip6", ""); } } + if ((!map.containsKey("SO2C")) && map.containsKey("SO2")) { + map.put("SO2C", map.get("SO2").toString()); + } + if ((!map.containsKey("NO2C")) && map.containsKey("NO2")) { + map.put("SO2C", map.get("SO2").toString()); + } + if ((!map.containsKey("O3C")) && map.containsKey("O3")) { + map.put("O3C", map.get("O3").toString()); + } + if ((!map.containsKey("COC")) && map.containsKey("CO")) { + map.put("COC", map.get("CO").toString()); + } + if ((!map.containsKey("PM25C")) && map.containsKey("PM25")) { + map.put("PM25C", map.get("PM25").toString()); + } + if ((!map.containsKey("PM10C")) && map.containsKey("PM10")) { + map.put("PM10C", map.get("PM10").toString()); + } + } return resultList; } @@ -595,26 +613,7 @@ String time = map.get("time").toString() + ":00"; Map<String, Object> hashMap = new HashMap<>(); hashMap.put("time", time); - String cityName = map.get("city").toString(); - Area area = areaMapper.getAreaByName(cityName); - if (area == null) { - City city = cityMapper.getCityByName(cityName); - if (city == null) { - Province province = provinceMapper.getProvinceByName(cityName); - if (province == null) { - return; - } else { - hashMap.put("cityCode", province.getProvinceCode()); - } - } else { - Integer cityCode = city.getCityCode(); - hashMap.put("cityCode", cityCode); - } - } else { - Integer areaCode = area.getAreaCode(); - hashMap.put("cityCode", areaCode); - } - + hashMap.put("cityCode",Integer.valueOf(map.get("code").toString())); Map<String, Object> jsonMap = new HashMap<>(); for (String key : map.keySet()) { if (!key.equals("city") && !key.equals("time") && !key.equals("type") && !key.equals("fxTime")) { diff --git a/src/main/resources/mapper/HangzhouAqiMapper.xml b/src/main/resources/mapper/HangzhouAqiMapper.xml index dff422f..5e1a166 100644 --- a/src/main/resources/mapper/HangzhouAqiMapper.xml +++ b/src/main/resources/mapper/HangzhouAqiMapper.xml @@ -71,7 +71,7 @@ <select id="getAqiDataByAreaCode" resultType="java.util.Map"> SELECT DATE_FORMAT(time, #{typeFormat}) time, - ifnull(aqi_json->'$.O3C',"") as 'O3' + ifnull(aqi_json->'$.O3C',aqi_json->'$.O3') as 'O3' FROM hangzhou_aqi ha WHERE @@ -91,21 +91,20 @@ WHERE time >= #{start} AND time <![CDATA[<]]> #{end} - AND city_code = #{areaCode} + AND city_code = #{cityCode} ORDER BY time </select> <select id="getAvgO3EightHours" resultType="java.util.Map"> select - AVG(aqi_json->'$.O3') 'O3_8H', - AVG(aqi_json->'$.O3C') 'O3C_8H' + AVG(case when aqi_json->'$.O3C' is null then aqi_json->'$.O3' else aqi_json->'$.O3C' end) as 'O3C_8H' FROM hangzhou_aqi WHERE time >= #{start} AND time <![CDATA[<]]> #{end} - AND city_code = #{areaCode} + AND city_code = #{cityCode} </select> </mapper> diff --git a/src/main/resources/mapper/MonitorPointMapper.xml b/src/main/resources/mapper/MonitorPointMapper.xml index 5e2d6da..c1d3c7d 100644 --- a/src/main/resources/mapper/MonitorPointMapper.xml +++ b/src/main/resources/mapper/MonitorPointMapper.xml @@ -190,11 +190,11 @@ select * from monitor_point where <if test="areaCode != null"> - area_Code = #{areaCode} + area_code = #{areaCode} </if> <if test="cityCode != null"> - city_Code = #{cityCode} + city_code = #{cityCode} </if> </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/RealWeatherMapper.xml b/src/main/resources/mapper/RealWeatherMapper.xml index f1eec74..2882762 100644 --- a/src/main/resources/mapper/RealWeatherMapper.xml +++ b/src/main/resources/mapper/RealWeatherMapper.xml @@ -13,7 +13,7 @@ WHERE time >= #{start} AND time <![CDATA[<]]> #{end} - AND city_code = #{areaCode} + AND city_code = #{cityCode} ORDER BY time </select> -- Gitblit v1.8.0