Explorar el Código

数据库连接和地名地址服务配置放到配置文件中

DESKTOP-6LTVLN7\Liumouren hace 3 meses
padre
commit
d48573d902

+ 17 - 3
src/main/java/com/skyversation/poiaddr/addquery/AddressQueryEngine.java

@@ -152,17 +152,31 @@ public class AddressQueryEngine {
         paramObject.put("position", "QUERY");
         paramObject.put("position", "QUERY");
         paramObject.put("value", address);
         paramObject.put("value", address);
         requestJson.add(paramObject);
         requestJson.add(paramObject);
+//      判断是否是关键字版搜索服务
+        if(Constant.SJ_SZX_SEARCH_BY_NAME.contains("1742459783686")){
+            JSONObject paramObject2 = new JSONObject();
+            paramObject2.put("name","region");
+            paramObject2.put("position", "QUERY");
+            paramObject2.put("value", Constant.getAMAP_CITY_CODE());
+            requestJson.add(paramObject2);
+            JSONObject paramObject3 = new JSONObject();
+            paramObject3.put("name","page_size");
+            paramObject3.put("position", "QUERY");
+            paramObject3.put("value", "10");
+            requestJson.add(paramObject3);
+        }
         params.put("requestJson", requestJson);
         params.put("requestJson", requestJson);
 //      发起请求
 //      发起请求
         ResponseEntity response = AddressNetTools.getInstance().requestGetOrPost(HttpMethod.POST, Constant.SJ_SZX_SEARCH_BY_NAME, params, headerMap, 1);
         ResponseEntity response = AddressNetTools.getInstance().requestGetOrPost(HttpMethod.POST, Constant.SJ_SZX_SEARCH_BY_NAME, params, headerMap, 1);
-        if (response != null) {
+        if (response != null && response.hasBody()) {
             String body = response.getBody() + "";
             String body = response.getBody() + "";
             if (!StringUtils.hasText(body))
             if (!StringUtils.hasText(body))
                 return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果");
                 return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果");
             try {
             try {
                 if (body.indexOf("[") != 0) {
                 if (body.indexOf("[") != 0) {
-                    System.out.println("请求地址:" + address + ";返回结果错误:" + body);
-                    return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "请求地址:" + address + ";返回结果错误:" + body);
+                    return TransfromDataTool.szxResultToResult(JSONObject.parseObject(body),address);
+//                    System.out.println("请求地址:" + address + ";返回结果错误:" + body);
+//                    return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "请求地址:" + address + ";返回结果错误:" + body);
                 } else {
                 } else {
 //                  将得分最高的结果映射到实体类
 //                  将得分最高的结果映射到实体类
                     return TransfromDataTool.szxResultToResult2(com.skyversation.poiaddr.util.AddressTools.getInstance().findBestMatch(address, JSONArray.parseArray(body), "address"));
                     return TransfromDataTool.szxResultToResult2(com.skyversation.poiaddr.util.AddressTools.getInstance().findBestMatch(address, JSONArray.parseArray(body), "address"));

+ 21 - 4
src/main/java/com/skyversation/poiaddr/addquery/Constant.java

@@ -3,6 +3,10 @@ package com.skyversation.poiaddr.addquery;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import javax.annotation.PostConstruct;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+
 @Service
 @Service
 public class Constant {
 public class Constant {
     public static Constant instance = new Constant();
     public static Constant instance = new Constant();
@@ -21,6 +25,12 @@ public class Constant {
 
 
     private String[] towns;
     private String[] towns;
 
 
+    @Value("${app.search_server_id}")
+    private String searchServerId;
+
+    //    TODO 服务器融合版地名地址接口
+    public static String SJ_SZX_SEARCH_BY_NAME;
+
     public static void setTowns(String[] town) {
     public static void setTowns(String[] town) {
         getInstance().towns = town;
         getInstance().towns = town;
     }
     }
@@ -46,12 +56,20 @@ public class Constant {
     public static final String GET_TOKEN_URL = "http://10.235.245.226:7010/addrMatch/auth/getToken";
     public static final String GET_TOKEN_URL = "http://10.235.245.226:7010/addrMatch/auth/getToken";
     public static final String GET_ADDRESS_MEG_URL = "http://10.235.245.226:7010/addrMatch/addrApi/searchAddr";
     public static final String GET_ADDRESS_MEG_URL = "http://10.235.245.226:7010/addrMatch/addrApi/searchAddr";
     public static final String SZX_URL = "https://service-api.onemap.sh.gov.cn/data-service-manage-service/MapProxyApi/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBsaWNhdGlvbl9pZCI6NjEsImFwcGxpY2F0aW9uX25hbWUiOiLpnZLmtabkuozkuInnu7TmnI3liqHns7vnu58iLCJleHAiOjIwNDY2Nzg0MDN9.IKUMdjUX4U1jncIUNren-iotL7duXI90aLECMjpvUX8/address_search/MapServer?page_num=1&page_size=5";
     public static final String SZX_URL = "https://service-api.onemap.sh.gov.cn/data-service-manage-service/MapProxyApi/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBsaWNhdGlvbl9pZCI6NjEsImFwcGxpY2F0aW9uX25hbWUiOiLpnZLmtabkuozkuInnu7TmnI3liqHns7vnu58iLCJleHAiOjIwNDY2Nzg0MDN9.IKUMdjUX4U1jncIUNren-iotL7duXI90aLECMjpvUX8/address_search/MapServer?page_num=1&page_size=5";
-//    TODO 平台融合版地名地址接口
-//    public static final String SJ_SZX_SEARCH_BY_NAME = "https://data.songjiang.gov.cn:8081/openapi/1736930075105";
 //    TODO 服务器融合版地名地址接口
 //    TODO 服务器融合版地名地址接口
-    public static final String SJ_SZX_SEARCH_BY_NAME = "http://172.30.77.19:8081/openapi/1736930075105";
+//    public static final String SJ_SZX_SEARCH_BY_NAME = "http://172.30.77.19:8081/openapi/1736930075105";
+    //    TODO 关键字模糊搜索服务
+//    public static final String SJ_SZX_SEARCH_BY_NAME2 = "http://172.30.77.19:8081/openapi/1742459783686";
     public static final String V4_URL = "http://10.235.245.174:10011/proxy/address/getAddressV4?token=65463DEE-620A-0ED5-2385-17ECD07CD351&address=";
     public static final String V4_URL = "http://10.235.245.174:10011/proxy/address/getAddressV4?token=65463DEE-620A-0ED5-2385-17ECD07CD351&address=";
 
 
+    @PostConstruct
+    public void initDbConnection() throws SQLException {
+//      加载驱动
+        System.out.println("加载搜索服务id!");
+        SJ_SZX_SEARCH_BY_NAME = "http://172.30.77.20:8084/openapi/" + searchServerId;
+        System.out.println("服务接口:" + SJ_SZX_SEARCH_BY_NAME);
+    }
+
     public static String AMAP_GEO_URL = "https://restapi.amap.com/v3/geocode/geo";
     public static String AMAP_GEO_URL = "https://restapi.amap.com/v3/geocode/geo";
     public static String AMAP_REGEO_URL = "https://restapi.amap.com/v3/geocode/regeo";
     public static String AMAP_REGEO_URL = "https://restapi.amap.com/v3/geocode/regeo";
     public static String AMAP_SEARCH_NAME_V3 = "https://restapi.amap" +
     public static String AMAP_SEARCH_NAME_V3 = "https://restapi.amap" +
@@ -59,7 +77,6 @@ public class Constant {
     public static String AMAP_SEARCH_TYPES = "010000|020000|030000|040000|050000|060000|070000|080000|090000" +
     public static String AMAP_SEARCH_TYPES = "010000|020000|030000|040000|050000|060000|070000|080000|090000" +
             "|100000|110000|120000|130000|140000|150000|160000|170000|180000|190000|200000|220000|970000|980000|990000";
             "|100000|110000|120000|130000|140000|150000|160000|170000|180000|190000|200000|220000|970000|980000|990000";
 
 
-    @Value("${amap_key}")
     public static String AMAP_KEY = "161e0c673807a9586ba5a115da2a0112";
     public static String AMAP_KEY = "161e0c673807a9586ba5a115da2a0112";
 
 
     //    oauth和dms搭建服务器地址
     //    oauth和dms搭建服务器地址

+ 61 - 57
src/main/java/com/skyversation/poiaddr/addquery/TransfromDataTool.java

@@ -83,26 +83,28 @@ public class TransfromDataTool {
             return result;
             return result;
         }
         }
         AddressResult.ContentBean content = new AddressResult.ContentBean();
         AddressResult.ContentBean content = new AddressResult.ContentBean();
-        content.setPname(jsonObject.getString("province"));
-        content.setCityname(jsonObject.getString("district"));
-        content.setAdname(jsonObject.getString("town"));
-        content.setType(jsonObject.getString("type"));
-        content.setAddress(jsonObject.getString("address"));
-        content.setName(jsonObject.getString("address"));
-        content.setSearchAddress(jsonObject.getString("searchAddress"));
-        content.setScore(jsonObject.getString("总分"));
-        if (jsonObject.containsKey("location") && jsonObject.getJSONObject("location").containsKey("lat") && jsonObject.getJSONObject("location").containsKey("lng")) {
-            double[] points = CoordTransform2.getInstance().shcj_to_wgs84(
-                    Double.parseDouble(jsonObject.getJSONObject("location").getString("lat")), Double.parseDouble(jsonObject.getJSONObject("location").getString("lng")));
-            content.setLocation(points[0] + "," + points[1]);
-            content.setLat(points[0]);
-            content.setLon(points[1]);
-        }
-        if (result.getData() == null) {
-            result.setData(new ArrayList<>());
+        if (jsonObject.containsKey("总分") && jsonObject.get("总分") != null) {
+            content.setPname(jsonObject.getString("province"));
+            content.setCityname(jsonObject.getString("district"));
+            content.setAdname(jsonObject.getString("town"));
+            content.setType(jsonObject.getString("type"));
+            content.setAddress(jsonObject.getString("address"));
+            content.setName(jsonObject.getString("address"));
+            content.setSearchAddress(jsonObject.getString("searchAddress"));
+            content.setScore(jsonObject.getString("总分"));
+            if (jsonObject.containsKey("location") && jsonObject.getJSONObject("location").containsKey("lat") && jsonObject.getJSONObject("location").containsKey("lng")) {
+                double[] points = CoordTransform2.getInstance().shcj_to_wgs84(
+                        Double.parseDouble(jsonObject.getJSONObject("location").getString("lat")), Double.parseDouble(jsonObject.getJSONObject("location").getString("lng")));
+                content.setLocation(points[0] + "," + points[1]);
+                content.setLat(points[0]);
+                content.setLon(points[1]);
+            }
+            if (result.getData() == null) {
+                result.setData(new ArrayList<>());
+            }
+            result.getData().add(content);
+            result.setCode(AddressResultEnum.WDJA_SUCCESS);
         }
         }
-        result.getData().add(content);
-        result.setCode(AddressResultEnum.WDJA_SUCCESS);
         return result;
         return result;
     }
     }
 
 
@@ -113,51 +115,53 @@ public class TransfromDataTool {
             result.setCode(AddressResultEnum.RESULT_NULL);
             result.setCode(AddressResultEnum.RESULT_NULL);
             return result;
             return result;
         }
         }
-        com.skyversation.poiaddr.util.AddressTools.getInstance().findBestMatch(searchAddress, array, "address");
         JSONObject jsonObject = com.skyversation.poiaddr.util.AddressTools.getInstance().findBestMatch(searchAddress, array, "address");
         JSONObject jsonObject = com.skyversation.poiaddr.util.AddressTools.getInstance().findBestMatch(searchAddress, array, "address");
-        AddressResult.ContentBean content = new AddressResult.ContentBean();
-        content.setType(jsonObject.getString("type_name"));
-        List<String> addressList = new ArrayList<>();
-        content.setAddress(jsonObject.getString("address"));
-        if (!jsonObject.getString("address").isEmpty()) {
-            addressList.add(jsonObject.getString("address"));
-        }
-        if (!jsonObject.getString("std_address").isEmpty()) {
-            addressList.add(jsonObject.getString("std_address"));
-        }
-        content.setName(jsonObject.getString("name"));
-        double[] points = new double[]{jsonObject.getJSONObject("location").getDouble("lng"),
-                jsonObject.getJSONObject("location").getDouble("lat")};
-        content.setLocation(points[0] + "," + points[1]);
-        content.setLon(points[0]);
-        content.setLat(points[1]);
-        if (jsonObject.containsKey("ext_data")) {
-            JSONObject extData = jsonObject.getJSONObject("ext_data");
-            if (extData.containsKey("address") && !extData.getString("address").isEmpty()) {
-                addressList.add(extData.getString("address"));
+        if (jsonObject.containsKey("总分") && jsonObject.get("总分") != null && !jsonObject.getString("总分").isEmpty()) {
+            AddressResult.ContentBean content = new AddressResult.ContentBean();
+            content.setScore(jsonObject.getString("总分"));
+            content.setSearchAddress(jsonObject.getString("searchAddress"));
+            content.setType(jsonObject.getString("type_name"));
+            List<String> addressList = new ArrayList<>();
+            content.setAddress(jsonObject.getString("address"));
+            if (!jsonObject.getString("address").isEmpty()) {
+                addressList.add(jsonObject.getString("address"));
             }
             }
-            if (extData.containsKey("source_address") && !extData.getString("source_address").isEmpty()) {
-                addressList.add(extData.getString("source_address"));
+            if (!jsonObject.getString("std_address").isEmpty()) {
+                addressList.add(jsonObject.getString("std_address"));
             }
             }
+            content.setName(jsonObject.getString("name"));
+            double[] points = new double[]{jsonObject.getJSONObject("location").getDouble("lng"),
+                    jsonObject.getJSONObject("location").getDouble("lat")};
+            content.setLocation(points[0] + "," + points[1]);
+            content.setLon(points[1]);
+            content.setLat(points[0]);
+            if (jsonObject.containsKey("ext_data")) {
+                JSONObject extData = jsonObject.getJSONObject("ext_data");
+                if (extData.containsKey("address") && !extData.getString("address").isEmpty()) {
+                    addressList.add(extData.getString("address"));
+                }
+                if (extData.containsKey("source_address") && !extData.getString("source_address").isEmpty()) {
+                    addressList.add(extData.getString("source_address"));
+                }
 
 
-            if (extData.containsKey("region_jw") && !extData.getString("region_jw").isEmpty()) {
-                JSONObject cjJson = new JSONObject();
-                cjJson.put("所属街道", extData.getString("region_jd"));
-                cjJson.put("所属居委", extData.getString("region_jw"));
-                content.setCjJson(cjJson);
+                if (extData.containsKey("region_jw") && !extData.getString("region_jw").isEmpty()) {
+                    JSONObject cjJson = new JSONObject();
+                    cjJson.put("所属街道", extData.getString("region_jd"));
+                    cjJson.put("所属居委", extData.getString("region_jw"));
+                    content.setCjJson(cjJson);
+                }
             }
             }
-
-        }
-        for (String item : addressList) {
-            if (item.contains("上海市") && item.contains(Constant.getArea() + "区") && item.length() > content.getAddress().length()) {
-                content.setAddress(item);
+            for (String item : addressList) {
+                if (item.contains("上海市") && item.contains(Constant.getArea() + "区") && item.length() > content.getAddress().length()) {
+                    content.setAddress(item);
+                }
             }
             }
+            if (result.getData() == null) {
+                result.setData(new ArrayList<>());
+            }
+            result.getData().add(content);
+            result.setCode(AddressResultEnum.SZX_SUCCESS);
         }
         }
-        if (result.getData() == null) {
-            result.setData(new ArrayList<>());
-        }
-        result.getData().add(content);
-        result.setCode(AddressResultEnum.SZX_SUCCESS);
         return result;
         return result;
     }
     }
 
 

+ 6 - 5
src/main/java/com/skyversation/poiaddr/config/DbConnection.java

@@ -27,6 +27,10 @@ public class DbConnection {
     private String db_user_name;
     private String db_user_name;
     @Value("${app.db.password}")
     @Value("${app.db.password}")
     private String db_password;
     private String db_password;
+    @Value("${app.db.driver}")
+    private String jdbcDriver;
+    @Value("${app.db.jdbc_url}")
+    private String jdbcURL;
 
 
     @PostConstruct
     @PostConstruct
     public void initDbConnection() throws SQLException {
     public void initDbConnection() throws SQLException {
@@ -34,16 +38,13 @@ public class DbConnection {
         System.out.println("加载驱动!");
         System.out.println("加载驱动!");
         dbConnection = this;
         dbConnection = this;
         try {
         try {
-            Class.forName("io.transwarp.jdbc.QuarkDriver");
+            Class.forName(jdbcDriver);
         } catch (Exception e) {
         } catch (Exception e) {
             System.err.println("加载驱动异常:" + e);
             System.err.println("加载驱动异常:" + e);
             System.exit(1);
             System.exit(1);
         }
         }
-        String jdbcURL = "jdbc:transwarp2://172.30.75.126:31768/kjyy_dev";
         System.out.println("配置文件中的数据库用户名:" + db_user_name + ";密码:" + db_password);
         System.out.println("配置文件中的数据库用户名:" + db_user_name + ";密码:" + db_password);
-        String user = db_user_name;
-        String password = db_password;
-        connection = DriverManager.getConnection(jdbcURL, user, password);
+        connection = DriverManager.getConnection(jdbcURL, db_user_name, db_password);
         stmt = connection.createStatement();
         stmt = connection.createStatement();
 
 
     }
     }

+ 2 - 2
src/main/java/com/skyversation/poiaddr/controller/PoiAddressController.java

@@ -53,10 +53,10 @@ public class PoiAddressController {
      * @return
      * @return
      */
      */
     @PostMapping(value = "/uploadDataBaseDataToLocal", produces = MediaType.APPLICATION_JSON_VALUE)
     @PostMapping(value = "/uploadDataBaseDataToLocal", produces = MediaType.APPLICATION_JSON_VALUE)
-    public Object uploadDataBaseDataToLocal(@RequestParam(name = "reAddr") String reAddr) {
+    public Object uploadDataBaseDataToLocal(@RequestParam(name = "reAddr") String reAddr,@RequestParam(name = "updateBase") Boolean updateBase) {
         // 记录程序开始时间
         // 记录程序开始时间
         long startTime = System.currentTimeMillis();
         long startTime = System.currentTimeMillis();
-        testDataService.uploadAllData(reAddr);// 记录程序结束时间
+        testDataService.uploadAllData(reAddr,updateBase);// 记录程序结束时间
         long endTime = System.currentTimeMillis();
         long endTime = System.currentTimeMillis();
         return "处理完成!用时" + (endTime - startTime) / 1000 + "秒!";
         return "处理完成!用时" + (endTime - startTime) / 1000 + "秒!";
     }
     }

+ 4 - 1
src/main/java/com/skyversation/poiaddr/service/AreaService.java

@@ -69,11 +69,14 @@ public class AreaService {
         System.out.println("<<<<<<<<------当前AMAP_CITY_CODE:" + Constant.getAMAP_CITY_CODE());
         System.out.println("<<<<<<<<------当前AMAP_CITY_CODE:" + Constant.getAMAP_CITY_CODE());
 //      TODO 网络连通性测试,可以请求一下测试的市中心地址
 //      TODO 网络连通性测试,可以请求一下测试的市中心地址
         try {
         try {
+            System.out.println("电脑最大线程数:" + Runtime.getRuntime().availableProcessors());
             System.out.println("<<<<<<<<------开始网络连通性测试");
             System.out.println("<<<<<<<<------开始网络连通性测试");
+            long startTime = System.currentTimeMillis();
             List<String> addrs = new ArrayList<>();
             List<String> addrs = new ArrayList<>();
             addrs.add("上海市松江区乐都路339号");
             addrs.add("上海市松江区乐都路339号");
             AddressResult addressResult = AddressQueryEngine.getInstance().commonSearchByName(addrs);
             AddressResult addressResult = AddressQueryEngine.getInstance().commonSearchByName(addrs);
-            System.out.println(">>>>>>>>------网络连通性测试结果:" + addressResult);
+            long endTime = System.currentTimeMillis();
+            System.out.println(">>>>>>>>------网络连通性测试完成!用时" + (endTime - startTime) / 1000 + "秒!结果:" + addressResult);
         } catch (Exception e) {
         } catch (Exception e) {
             System.err.println(">>>>>>>>------网络连通性测试结果:" + e);
             System.err.println(">>>>>>>>------网络连通性测试结果:" + e);
         }
         }

+ 12 - 8
src/main/java/com/skyversation/poiaddr/service/impl/SjArrDzbzhSjWcbryDzxxServiceImpl.java

@@ -47,7 +47,11 @@ public class SjArrDzbzhSjWcbryDzxxServiceImpl {
     public List<SjArrDzbzhSjWcbryDzxx> getAllData(String reAddr) {
     public List<SjArrDzbzhSjWcbryDzxx> getAllData(String reAddr) {
         try {
         try {
             List<SjArrDzbzhSjWcbryDzxx> requestData = new ArrayList<>();
             List<SjArrDzbzhSjWcbryDzxx> requestData = new ArrayList<>();
-            List<Map<String, Object>> oldDbData = DbConnection.getInstance().runSqlStr("select * FROM sj_zrr_dzbzh_sj_wcbry_dzxx where standardized_address like '%" + reAddr + "%'");
+            String sqlStr = "select * FROM sj_zrr_dzbzh_sj_wcbry_dzxx";
+            if (!reAddr.trim().isEmpty()) {
+                sqlStr = sqlStr + " where standardized_address like '%" + reAddr + "%'";
+            }
+            List<Map<String, Object>> oldDbData = DbConnection.getInstance().runSqlStr(sqlStr);
 //          去重
 //          去重
             Map<String, Map<String, Object>> newRequestData = new HashMap<>();
             Map<String, Map<String, Object>> newRequestData = new HashMap<>();
             for (Map<String, Object> item : oldDbData) {
             for (Map<String, Object> item : oldDbData) {
@@ -59,9 +63,6 @@ public class SjArrDzbzhSjWcbryDzxxServiceImpl {
             for (String id : newRequestData.keySet()) {
             for (String id : newRequestData.keySet()) {
                 dbData.add(newRequestData.get(id));
                 dbData.add(newRequestData.get(id));
             }
             }
-
-//          直接保存数据到xlsx
-//            ExcelReaderUtils.writeToExcel(dbData, "output/allData.xlsx");
             for (Map<String, Object> item : dbData) {
             for (Map<String, Object> item : dbData) {
                 SjArrDzbzhSjWcbryDzxx sjArrDzbzhSjWcbryDzxx = new SjArrDzbzhSjWcbryDzxx();
                 SjArrDzbzhSjWcbryDzxx sjArrDzbzhSjWcbryDzxx = new SjArrDzbzhSjWcbryDzxx();
                 if (item.get("id") != null) {
                 if (item.get("id") != null) {
@@ -242,11 +243,14 @@ public class SjArrDzbzhSjWcbryDzxxServiceImpl {
     }
     }
 
 
 
 
-    public void uploadAllData(String reAddr) {
+    public void uploadAllData(String reAddr,Boolean updateBase) {
         List<SjArrDzbzhSjWcbryDzxx> listData = getAllData(reAddr);
         List<SjArrDzbzhSjWcbryDzxx> listData = getAllData(reAddr);
         if (listData != null && listData.size() > 0) {
         if (listData != null && listData.size() > 0) {
-//            SerializationUtils.serialize(runExecutorService(listData), "output/testDataBase_all.ser");
-            updateDatas(runExecutorService(listData));
+            if(updateBase){
+                updateDatas(runExecutorService(listData));
+            }else{
+                SerializationUtils.serialize(runExecutorService(listData), "output/testDataBase_all.ser");
+            }
 //            PageSize++;
 //            PageSize++;
 //            uploadAllData(PageSize, PageNumber);
 //            uploadAllData(PageSize, PageNumber);
 //        } else {
 //        } else {
@@ -344,7 +348,7 @@ public class SjArrDzbzhSjWcbryDzxxServiceImpl {
                                     item.setResultAddrKey(resultAddrKey);
                                     item.setResultAddrKey(resultAddrKey);
                                     item.setMarket("上海市");
                                     item.setMarket("上海市");
                                     item.setLevel(contentBean.getScore());
                                     item.setLevel(contentBean.getScore());
-//                                              开始规范化地址(把查询地址的市、区、街镇替换为空,然后把得到的区、街镇拼接上去)(得到区、街镇)
+                                    //  开始规范化地址(把查询地址的市、区、街镇替换为空,然后把得到的区、街镇拼接上去)(得到区、街镇)
                                     String oldAddress = contentBean.getSearchAddress().replaceAll("上海市", "").replaceAll("松江区", "");
                                     String oldAddress = contentBean.getSearchAddress().replaceAll("上海市", "").replaceAll("松江区", "");
                                     String[] towns = Constant.getTowns();
                                     String[] towns = Constant.getTowns();
                                     for (String town : towns) {
                                     for (String town : towns) {

+ 2 - 1
src/main/java/com/skyversation/poiaddr/util/AddressTools.java

@@ -3,6 +3,7 @@ package com.skyversation.poiaddr.util;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.skyversation.poiaddr.addquery.AddressQueryEngine;
 import com.skyversation.poiaddr.addquery.AddressQueryEngine;
+import com.skyversation.poiaddr.addquery.Constant;
 import com.skyversation.poiaddr.bean.AddressResult;
 import com.skyversation.poiaddr.bean.AddressResult;
 
 
 import java.util.*;
 import java.util.*;
@@ -489,7 +490,7 @@ public class AddressTools {
         for (int i = 0; i < array.size(); i++) {
         for (int i = 0; i < array.size(); i++) {
             JSONObject obj = array.getJSONObject(i);
             JSONObject obj = array.getJSONObject(i);
             obj.put("searchAddress", address);
             obj.put("searchAddress", address);
-            if (obj.containsKey(param) && obj.get(param) != null && !obj.getString(param).trim().isEmpty() && obj.getString(param).contains("松江")) {
+            if (obj.containsKey(param) && obj.get(param) != null && !obj.getString(param).trim().isEmpty() && obj.getString(param).contains(Constant.getArea())) {
 //              得到返回的地址
 //              得到返回的地址
                 String addr = obj.getString(param);
                 String addr = obj.getString(param);
 //              规则4判断
 //              规则4判断

+ 27 - 1
src/main/java/com/skyversation/poiaddr/util/ExcelReaderUtils.java

@@ -1,12 +1,15 @@
 package com.skyversation.poiaddr.util;
 package com.skyversation.poiaddr.util;
 
 
 import com.skyversation.poiaddr.addquery.Constant;
 import com.skyversation.poiaddr.addquery.Constant;
+import com.skyversation.poiaddr.entity.SjArrDzbzhSjWcbryDzxx;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.ss.formula.functions.T;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.usermodel.*;
 
 
 import java.io.File;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.IOException;
+import java.lang.reflect.Field;
 import java.util.*;
 import java.util.*;
 
 
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.IOUtils;
@@ -66,6 +69,30 @@ public class ExcelReaderUtils {
         }
         }
     }
     }
 
 
+    public static void writeClassToExcel(List<SjArrDzbzhSjWcbryDzxx> dataList, String filePath) throws IOException {
+        writeToExcel(convertListToMapList(dataList),filePath);
+    }
+
+    public static List<Map<String,Object>> convertListToMapList(List<SjArrDzbzhSjWcbryDzxx> list){
+        List<Map<String,Object>> result = new ArrayList<>();
+        for(SjArrDzbzhSjWcbryDzxx item:list){
+            Map<String,Object> map = new HashMap<>();
+            Class<?> clazz = item.getClass();
+            Field[] fields = clazz.getDeclaredFields();
+            for (Field field:fields){
+                field.setAccessible(true);
+                try{
+                    map.put(field.getName(),field.get(item));
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+            }
+            result.add(map);
+        }
+        return result;
+    }
+
+
     public static List<Map<String, Object>> readExcel(String filePath) throws IOException {
     public static List<Map<String, Object>> readExcel(String filePath) throws IOException {
         List<Map<String, Object>> resultList = new ArrayList<>();
         List<Map<String, Object>> resultList = new ArrayList<>();
         FileInputStream fis = new FileInputStream(filePath);
         FileInputStream fis = new FileInputStream(filePath);
@@ -326,7 +353,6 @@ public class ExcelReaderUtils {
         }
         }
         return true;
         return true;
     }
     }
-
     /*public static void main(String[] args) {
     /*public static void main(String[] args) {
 //        根据Map字段修改表头
 //        根据Map字段修改表头
 //        ModifyExcelHeaderJExcelApi();
 //        ModifyExcelHeaderJExcelApi();

+ 3 - 7
src/main/java/com/skyversation/poiaddr/util/SerializationUtils.java

@@ -40,13 +40,9 @@ public class SerializationUtils {
         return list;
         return list;
     }
     }
 
 
-    public static void main(String[] args) {
+    public static void main(String[] args) throws IOException {
         List<SjArrDzbzhSjWcbryDzxx> listData = deserialize("output/testDataBase_all.ser");
         List<SjArrDzbzhSjWcbryDzxx> listData = deserialize("output/testDataBase_all.ser");
-        for (SjArrDzbzhSjWcbryDzxx item : listData){
-            if("异常".equals(item.getInTheArea())){
-                System.out.println(item);
-            }
-        }
-        System.out.println(listData.size());
+//      将序列化的文件转储为xlsx文件
+        ExcelReaderUtils.writeClassToExcel(listData, "output/allData.xlsx");
     }
     }
 }
 }

+ 5 - 0
src/main/java/com/skyversation/poiaddr/util/tasks/ScheduledTasks.java

@@ -1,10 +1,14 @@
 package com.skyversation.poiaddr.util.tasks;
 package com.skyversation.poiaddr.util.tasks;
 
 
+import com.skyversation.poiaddr.addquery.AddressQueryEngine;
+import com.skyversation.poiaddr.bean.AddressResult;
 import com.skyversation.poiaddr.service.impl.SjArrDzbzhSjWcbryDzxxServiceImpl;
 import com.skyversation.poiaddr.service.impl.SjArrDzbzhSjWcbryDzxxServiceImpl;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 @Component
 @Component
 public class ScheduledTasks {
 public class ScheduledTasks {
@@ -21,4 +25,5 @@ public class ScheduledTasks {
         // 在这里编写具体的业务逻辑
         // 在这里编写具体的业务逻辑
         testDataService.iterativeProcessing(50,  0);
         testDataService.iterativeProcessing(50,  0);
     }
     }
+
 }
 }

+ 5 - 0
src/main/resources/application.properties

@@ -31,8 +31,13 @@ spring.servlet.multipart.max-request-size=300MB
 # \u677E\u6C5F\u8857\u9547
 # \u677E\u6C5F\u8857\u9547
 app.area=\u677E\u6C5F
 app.area=\u677E\u6C5F
 app.town=\u5CB3\u9633\u8857\u9053\u3001\u6C38\u4E30\u8857\u9053\u3001\u65B9\u677E\u8857\u9053\u3001\u4E2D\u5C71\u8857\u9053\u3001\u5E7F\u5BCC\u6797\u8857\u9053\u3001\u4E5D\u91CC\u4EAD\u8857\u9053\u3001\u6CD7\u6CFE\u9547\u3001\u4F58\u5C71\u9547\u3001\u8F66\u58A9\u9547\u3001\u65B0\u6865\u9547\u3001\u6D1E\u6CFE\u9547\u3001\u4E5D\u4EAD\u9547\u3001\u6CD6\u6E2F\u9547\u3001\u77F3\u6E56\u8361\u9547\u3001\u65B0\u6D5C\u9547\u3001\u53F6\u69AD\u9547\u3001\u5C0F\u6606\u5C71\u9547
 app.town=\u5CB3\u9633\u8857\u9053\u3001\u6C38\u4E30\u8857\u9053\u3001\u65B9\u677E\u8857\u9053\u3001\u4E2D\u5C71\u8857\u9053\u3001\u5E7F\u5BCC\u6797\u8857\u9053\u3001\u4E5D\u91CC\u4EAD\u8857\u9053\u3001\u6CD7\u6CFE\u9547\u3001\u4F58\u5C71\u9547\u3001\u8F66\u58A9\u9547\u3001\u65B0\u6865\u9547\u3001\u6D1E\u6CFE\u9547\u3001\u4E5D\u4EAD\u9547\u3001\u6CD6\u6E2F\u9547\u3001\u77F3\u6E56\u8361\u9547\u3001\u65B0\u6D5C\u9547\u3001\u53F6\u69AD\u9547\u3001\u5C0F\u6606\u5C71\u9547
+# \u878D\u5408\u7248\uFF1A1736930075105|\u5173\u952E\u5B57\uFF1A1742459783686
+app.search_server_id=1742459783686
+
 app.db.username=dev_sjbdc_kjyy
 app.db.username=dev_sjbdc_kjyy
 app.db.password=30DFBEABYi#5
 app.db.password=30DFBEABYi#5
+app.db.driver=io.transwarp.jdbc.QuarkDriver
+app.db.jdbc_url=jdbc:transwarp2://172.30.75.126:31768/kjyy_dev
 # \u9752\u6D66\u8857\u9547
 # \u9752\u6D66\u8857\u9547
 #app.area=\u9752\u6D66
 #app.area=\u9752\u6D66
 #app.town2=\u6731\u5BB6\u89D2\u9547\u3001\u8D75\u5DF7\u9547\u3001\u5F90\u6CFE\u9547\u3001\u534E\u65B0\u9547\u3001\u91CD\u56FA\u9547\u3001\u767D\u9E64\u9547\u3001\u7EC3\u5858\u9547\u3001\u91D1\u6CFD\u9547\u3001\u590F\u9633\u8857\u9053\u3001\u76C8\u6D66\u8857\u9053\u3001\u9999\u82B1\u6865\u8857\u9053
 #app.town2=\u6731\u5BB6\u89D2\u9547\u3001\u8D75\u5DF7\u9547\u3001\u5F90\u6CFE\u9547\u3001\u534E\u65B0\u9547\u3001\u91CD\u56FA\u9547\u3001\u767D\u9E64\u9547\u3001\u7EC3\u5858\u9547\u3001\u91D1\u6CFD\u9547\u3001\u590F\u9633\u8857\u9053\u3001\u76C8\u6D66\u8857\u9053\u3001\u9999\u82B1\u6865\u8857\u9053