北京经济技术开发区经开区虚拟城市项目-【后端】-服务,Poi,企业,地块等定制接口
13693261870
2023-10-07 9ceec267ba036ad81caadace7cec9dc6f338a239
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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;
 
/**
 * 地块服务类
 * @author WWW
 * @date 2023-10-05
 */
@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) {
            log.error(ex.getMessage(), ex);
            return false;
        }
    }
 
    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) {
            log.error(ex.getMessage(), ex);
            return false;
        }
    }
}