From 9ceec267ba036ad81caadace7cec9dc6f338a239 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 07 十月 2023 17:28:05 +0800 Subject: [PATCH] 修改地块同步数据功能 --- src/main/java/com/smartearth/poiexcel/service/DkService.java | 90 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 88 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/smartearth/poiexcel/service/DkService.java b/src/main/java/com/smartearth/poiexcel/service/DkService.java index d0ab1e0..59408b3 100644 --- a/src/main/java/com/smartearth/poiexcel/service/DkService.java +++ b/src/main/java/com/smartearth/poiexcel/service/DkService.java @@ -1,9 +1,14 @@ package com.smartearth.poiexcel.service; +import com.alibaba.fastjson.JSONObject; import com.smartearth.poiexcel.entity.DkEntity; +import com.smartearth.poiexcel.utils.RestHelper; +import com.smartearth.poiexcel.utils.StringHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; /** * 鍦板潡鏈嶅姟绫� @@ -13,14 +18,56 @@ @Service @SuppressWarnings("ALL") public class DkService { + @Value("${dk.host}") + String host; + private final static Log log = LogFactory.getLog(DkService.class); + + private final static String GET_INFO_URL = "%s/poisearch/guihuacon/getInfo?ydbm=%s"; + + private final static String GET_COORD_URL = "/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225鑼冨洿鍒嗗尯瑙勫垝.geojson&geom=true&requesttype=json"; /** * 鏍规嵁缂栧彿鏇存柊 */ public boolean updateByBh(DkEntity dk) { try { - // + String url = String.format(GET_INFO_URL, host, dk.getDikuaibianhao()); + + RestTemplate rest = RestHelper.getRestTemplate(); + JSONObject obj = rest.getForObject(url, JSONObject.class); + if (null == obj || !"200".equals(obj.get("code").toString()) || null == obj.getJSONObject("data")) { + return false; + } + + JSONObject data = obj.getJSONObject("data"); + JSONObject cr = data.getJSONObject("churangxinxi"); + JSONObject yd = data.getJSONObject("yongdishuju"); + if (null == cr && null == yd) { + return false; + } + + if (null != cr) { + dk.setYdbh(cr.getString("ydbh")); + dk.setXmmc(cr.getString("xmmc")); + dk.setYdlx(cr.getString("ydlx")); + dk.setCyfx(cr.getString("cyfx")); + dk.setYdmj(getDouble(cr, "ydmj")); + dk.setXmdz(cr.getString("xmdz")); + dk.setCrnx(getInteger(cr, "crnx")); + dk.setCrnf(getInteger(cr, "crnf")); + } + if (null != yd) { + dk.setYdbh(yd.getString("ydbh")); + dk.setXmmc(yd.getString("xmmc")); + dk.setYdlx(yd.getString("ydlx")); + dk.setYdmj(getDouble(yd, "ydmj")); + dk.setXmdz(yd.getString("xmdz")); + dk.setRjl(getDouble(yd, "rjl")); + dk.setYdlxmc(yd.getString("ydlxmc")); + dk.setCyfx(yd.getString("cyfx")); + dk.setJzxg(getDouble(yd, "jzxg")); + } return true; } catch (Exception ex) { @@ -29,12 +76,51 @@ } } + private Integer getInteger(JSONObject obj, String key) { + try { + return obj.getInteger(key); + } catch (Exception ex) { + return null; + } + } + + private Double getDouble(JSONObject obj, String key) { + try { + return obj.getDouble(key); + } catch (Exception ex) { + return null; + } + } + /** * 鏍规嵁鍧愭爣鏇存柊 */ public boolean updateByCoord(DkEntity dk) { try { - // + String url = host + GET_COORD_URL + "&lng=" + dk.getLng() + "&lat=" + dk.getLat(); + + RestTemplate rest = RestHelper.getRestTemplate(); + String str = rest.getForObject(url, String.class); + if (StringHelper.isEmpty(str)) { + return false; + } + JSONObject obj = JSONObject.parseObject(str); + if (null == obj) { + return false; + } + + dk.setArea(getDouble(obj, "area")); + dk.setNo(obj.getString("NO")); + dk.setJzgd(getDouble(obj, "寤虹瓚楂樺害锛�")); + dk.setPT2(obj.getString("PT2")); + dk.setGhrjl(getDouble(obj, "瑙勫垝瀹圭Н鐜�")); + dk.setQymc(obj.getString("QYMC")); + dk.setZt(getInteger(obj, "ZT")); + dk.setYdxz(obj.getString("鐢ㄥ湴鎬ц川")); + dk.setType(obj.getString("TYPE")); + dk.setJzgh(getDouble(obj, "瑙勫垝寤虹瓚瑙�")); + dk.setLtype(obj.getString("lType")); + dk.setPoint_area(obj.getString("geometry")); return true; } catch (Exception ex) { -- Gitblit v1.9.3