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