北京经济技术开发区经开区虚拟城市项目-【后端】-服务,Poi,企业,地块等定制接口
13693261870
2023-10-07 9ceec267ba036ad81caadace7cec9dc6f338a239
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) {