src/main/java/com/moral/entity/ForecastWeather.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/entity/RealWeather.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/impl/ForecastWeatherServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/impl/RealWeatherServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/ForecastWeatherMapper.xml | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/RealWeatherMapper.xml | ●●●●● patch | view | raw | blame | history |
src/main/java/com/moral/entity/ForecastWeather.java
@@ -9,7 +9,7 @@ @Data public class ForecastWeather { @Id private Integer monitorPointId; private String cityCode; private Date time; private String json; private String result; src/main/java/com/moral/entity/RealWeather.java
@@ -9,7 +9,7 @@ @Data public class RealWeather { @Id private Integer monitorPointId; private String cityCode; private Date time; private String json; } src/main/java/com/moral/service/impl/ForecastWeatherServiceImpl.java
@@ -64,39 +64,40 @@ RestTemplate restTemplate = new RestTemplate(); List<MonitorPoint> monitorPointList = monitorPointMapper.getMonitorPointList(); Set<Map<String, Object>> hashSet = new HashSet<>(); List<Map<String, Object>> resultList = new ArrayList<>(); for (MonitorPoint monitorPoint : monitorPointList) { Map<String, Object> hashMap1 = new HashMap<>(); Map<String, Object> hashMap = new HashMap<>(); Integer areaCode = monitorPoint.getAreaCode(); Integer cityCode = monitorPoint.getCityCode(); Integer provinceCode = monitorPoint.getProvinceCode(); String parentName = ""; String name1 = ""; Integer code=0; if (areaCode != null) { Area area = areaMapper.getAreaByAreaCode(areaCode); City city = cityMapper.getCityByCityCode(cityCode); name1 = area.getAreaName(); parentName = city.getCityName(); code=areaCode; if ("市辖区".equals(name1)) { name1 = parentName; parentName = provinceMapper.getProvinceByProvinceCode(provinceCode).getProvinceName(); code=cityCode; } } else { City city = cityMapper.getCityByCityCode(cityCode); name1 = city.getCityName(); parentName = provinceMapper.getProvinceByProvinceCode(provinceCode).getProvinceName(); code=cityCode; if ("市辖区".equals(name1)) { name1 = parentName; parentName = ""; code=provinceCode; } } hashMap.put("name1", name1); hashMap.put("parentName", parentName); hashMap.put("cityCode",code); hashSet.add(hashMap); hashMap1.put("monitorPointId", monitorPoint.getId()); hashMap1.put("name", name1); resultList.add(hashMap1); } List<Element> elements = Dom4jUtils.readDocument(); String cityID = "101190404"; @@ -124,7 +125,6 @@ } int count=0; for (Map<String, Object> map : hashSet) { String id = map.get("cityID").toString(); Map<String, Object> dataMap = restTemplate.getForObject("https://api.heweather.net/v7/weather/72h?key=da05c6c4852d4f7aa3364a9236ee9e26&gzip=n&location={1}", Map.class, id); @@ -149,37 +149,30 @@ } } for (Map<String, Object> map : hashSet) { List<Map<String,Object>> resultList=new ArrayList<>(); ArrayList<Map<String, Object>> dataList = (ArrayList<Map<String, Object>>) map.get("data"); for (Map<String, Object> dataMap : dataList) { Map<String,Object> hashMap=new HashMap<>(); hashMap.put("cityCode",map.get("cityCode").toString()); String time = dataMap.get("fxTime").toString().split("\\+")[0].replace("T", " ") + ":00"; hashMap.put("time",sdf1.parse(time)); hashMap.put("json",JSONObject.toJSONString(dataMap)); resultList.add(hashMap); } resultList.remove(0); for (Map<String, Object> resultMap : resultList) { ArrayList<Map<String, Object>> arrayList = new ArrayList<>(); for (Map<String, Object> hashMap : hashSet) { if (resultMap.get("name").equals(hashMap.get("name1"))) { ArrayList<Map<String, Object>> list = (ArrayList<Map<String, Object>>) hashMap.get("data"); for (Map<String, Object> hourMap : list) { Map<String, Object> map = new HashMap<>(); map.put("monitorPointId", resultMap.get("monitorPointId").toString()); Map<String, Object> jsonMap = new HashMap<>(); String time = hourMap.get("fxTime").toString().split("\\+")[0].replace("T", " ") + ":00"; map.put("time", sdf1.parse(time)); hourMap.remove("icon"); jsonMap.putAll(hourMap); map.put("json", JSONObject.toJSONString(jsonMap)); arrayList.add(map); Map<String, Object> jsonMap = (Map<String, Object>) JSONObject.parse(resultMap.get("json").toString()); jsonMap.remove("fxTime"); jsonMap.remove("icon"); resultMap.put("json", JSONObject.toJSONString(jsonMap)); } } } arrayList.remove(0); Map<String, Object> parameters = new HashMap<>(); parameters.put("start", start); parameters.put("end", end); parameters.put("monitorPointId", resultMap.get("monitorPointId").toString()); parameters.put("cityCode", map.get("cityCode").toString()); forecastWeatherMapper.deleteByTime(parameters); for (Map<String, Object> map : arrayList) { Map<String, Object> jsonMap = (Map<String, Object>) JSONObject.parse(map.get("json").toString()); jsonMap.remove("fxTime"); map.put("json", JSONObject.toJSONString(jsonMap)); } count = count+forecastWeatherMapper.insertForecastWeather(arrayList); count = count+forecastWeatherMapper.insertForecastWeather(resultList); } return count; } src/main/java/com/moral/service/impl/RealWeatherServiceImpl.java
@@ -58,39 +58,40 @@ RestTemplate restTemplate = new RestTemplate(); List<MonitorPoint> monitorPointList = monitorPointMapper.getMonitorPointList(); Set<Map<String, Object>> hashSet = new HashSet<>(); List<Map<String, Object>> resultList = new ArrayList<>(); for (MonitorPoint monitorPoint : monitorPointList) { Map<String, Object> hashMap1 = new HashMap<>(); Map<String, Object> hashMap = new HashMap<>(); Integer areaCode = monitorPoint.getAreaCode(); Integer cityCode = monitorPoint.getCityCode(); Integer provinceCode = monitorPoint.getProvinceCode(); String parentName = ""; String name1 = ""; Integer code = 0; if (areaCode != null) { Area area = areaMapper.getAreaByAreaCode(areaCode); City city = cityMapper.getCityByCityCode(cityCode); name1 = area.getAreaName(); parentName = city.getCityName(); code = areaCode; if ("市辖区".equals(name1)) { name1 = parentName; parentName = provinceMapper.getProvinceByProvinceCode(provinceCode).getProvinceName(); code = cityCode; } } else { City city = cityMapper.getCityByCityCode(cityCode); name1 = city.getCityName(); parentName = provinceMapper.getProvinceByProvinceCode(provinceCode).getProvinceName(); code = cityCode; if ("市辖区".equals(name1)) { name1 = parentName; parentName = ""; code = provinceCode; } } hashMap.put("name1", name1); hashMap.put("parentName", parentName); hashMap.put("cityCode", code); hashSet.add(hashMap); hashMap1.put("monitorPointId", monitorPoint.getId()); hashMap1.put("name", name1); resultList.add(hashMap1); } List<Element> elements = Dom4jUtils.readDocument(); String cityID = "101190404"; @@ -116,12 +117,12 @@ } } } int count = 0; for (Map<String, Object> map : hashSet) { String id = map.get("cityID").toString(); Map<String, Object> dataMap = restTemplate.getForObject("https://api.heweather.net/v7/weather/now?key=da05c6c4852d4f7aa3364a9236ee9e26&gzip=n&location={1}", Map.class, id); if (dataMap == null) { dataMap = new HashMap<>(); return count; } String json = JSONObject.toJSONString(dataMap); dataMap = (Map<String, Object>) JSONObject.parse(json); @@ -129,22 +130,16 @@ map.put("data",nowMap); } for (Map<String, Object> resultMap : resultList) { Map<String,Object> jsonMap=new HashMap<>(); for (Map<String, Object> hashMap : hashSet) { if(hashMap.get("name1").equals(resultMap.get("name"))){ Map<String, Object> map = (Map<String, Object>) hashMap.get("data"); map.remove("obsTime"); map.remove("icon"); List<Map<String,Object>> resultList=new ArrayList<>(); for (Map<String, Object> map : hashSet) { Map<String,Object> resultMap=new HashMap<>(); resultMap.put("cityCode",map.get("cityCode").toString()); resultMap.put("time",now); jsonMap.putAll(map); Map<String, Object> jsonMap = (Map<String, Object>) map.get("data"); jsonMap.remove("obsTime"); jsonMap.remove("icon"); resultMap.put("json",JSONObject.toJSONString(jsonMap)); } } } for (Map<String, Object> map : resultList) { map.remove("name"); resultList.add(resultMap); } return realWeatherMapper.insertRealWeather(resultList); } src/main/resources/mapper/ForecastWeatherMapper.xml
@@ -2,15 +2,15 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.moral.mapper.ForecastWeatherMapper"> <resultMap id="BaseResultMap" type="com.moral.entity.ForecastWeather" > <id column="monitor_point_id" property="monitorPointId" jdbcType="INTEGER" /> <id column="cityCode" property="cityCode" jdbcType="INTEGER" /> </resultMap> <insert id="insertForecastWeather"> insert into forecast_weather (monitor_point_id,time,json) (city_code,time,json) values <foreach collection="list" item="item" separator=","> (#{item.monitorPointId},#{item.time},#{item.json}) (#{item.cityCode},#{item.time},#{item.json}) </foreach> </insert> @@ -19,6 +19,6 @@ where time >= #{start} AND time <![CDATA[<]]> #{end} and monitor_point_id=#{monitorPointId} and city_code=#{cityCode} </delete> </mapper> src/main/resources/mapper/RealWeatherMapper.xml
@@ -2,14 +2,14 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.moral.mapper.RealWeatherMapper"> <resultMap id="BaseResultMap" type="com.moral.entity.RealWeather" > <id column="monitor_point_id" property="monitorPointId" jdbcType="INTEGER" /> <id column="city_code" property="cityCode" jdbcType="INTEGER" /> </resultMap> <insert id="insertRealWeather"> insert into real_weather values <foreach collection="list" item="item" separator=","> (#{item.monitorPointId},#{item.time},#{item.json}) (#{item.cityCode},#{item.time},#{item.json}) </foreach> </insert> </mapper>