4 Commits 4330addfe6 ... f35e45e14d

Autor SHA1 Nachricht Datum
  zhanghan f35e45e14d 跟换高德key,可用 vor 2 Monaten
  zhanghan d715cca41d Merge branch '松江大数据中心专用' of http://47.103.92.60:3003/skyversation-public/place_name_search into 松江大数据中心专用 vor 2 Monaten
  zhanghan 4cd15e12e3 merge vor 2 Monaten
  zhanghan b2c2e15ebd merge vor 2 Monaten

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

@@ -82,14 +82,14 @@ public class AddressQueryEngine {
             //  创建请求
             addressResult = szxSearchByName(addr);
 //          TODO 高德接口无法使用,市中心的接口请求成为了最后一道防线  && ifRuleData(addressResult.getData().get(0).getScore())
-            if (addressResult != null && addressResult.getData() != null && addressResult.getData().size() > 0) {
+            if (addressResult != null && addressResult.getData() != null && addressResult.getData().size() > 0 && ifRuleData(addressResult.getData().get(0).getScore())) {
                 addressResult.setCode(AddressResultEnum.SZX_SUCCESS);
                 addressResult.setMessage("成功");
                 return getCjWgWgwByLoc(addressResult);
             }
         }
 //      TODO 如果多次尝试请求市中心地址后,还是请求失败就使用高德地名地址搜索,现在是到了上限,暂时不用
-        /*for (String addr : addrs) {
+        for (String addr : addrs) {
             //  创建请求(要返回对应的搜索地址,返回地址,总分,市:cityname,街道:adname,村居:community)
             addressResult = gdV3SearchByName(addr);
             if (addressResult != null && addressResult.getData() != null && addressResult.getData().size() > 0) {
@@ -97,7 +97,7 @@ public class AddressQueryEngine {
                 addressResult.setMessage("成功");
                 return getCjWgWgwByLoc(addressResult);
             }
-        }*/
+        }
 //        addressResult.setCode(AddressResultEnum.RESULT_NULL);
         if(addressResult != null){
             addressResult.setMessage("失败");
@@ -311,7 +311,7 @@ public class AddressQueryEngine {
      * @return
      */
     public AddressResult gdSearchByName(String address) {
-        String geoUrl = Constant.AMAP_GEO_URL + "?key=" + Constant.AMAP_KEY[ThreadLocalRandom.current().nextInt(0, 4)] + "&address=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&output=JSON";
+        String geoUrl = Constant.AMAP_GEO_URL + "?key=" + Constant.AMAP_KEY[ThreadLocalRandom.current().nextInt(0, Constant.AMAP_KEY.length)] + "&address=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&output=JSON";
         ResponseEntity response = AddressNetTools.getInstance().requestGetOrPost(HttpMethod.GET, geoUrl, null, null, 0);
         if (response != null && response.getBody() != null) {
             String body = response.getBody() + "";
@@ -341,7 +341,7 @@ public class AddressQueryEngine {
         JSONArray pois = new JSONArray();
         ScheduledTasks.gdRequestSize++;
         String geoUrl =
-                Constant.AMAP_SEARCH_NAME_V3 + "?key=" + Constant.AMAP_KEY[ThreadLocalRandom.current().nextInt(0, 4)] + "&types=" + Constant.AMAP_SEARCH_TYPES +
+                Constant.AMAP_SEARCH_NAME_V3 + "?key=" + Constant.AMAP_KEY[ThreadLocalRandom.current().nextInt(0, Constant.AMAP_KEY.length)] + "&types=" + Constant.AMAP_SEARCH_TYPES +
                         "&keywords=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&offset=20";
         ResponseEntity responseEntity = AddressNetTools.getInstance().requestGetOrPost(HttpMethod.GET, geoUrl, null, null, 0);
         if (responseEntity.hasBody()) {

+ 7 - 1
src/main/java/com/skyversation/poiaddr/addquery/Constant.java

@@ -80,7 +80,13 @@ public class Constant {
 
     //    public static String AMAP_KEY = "38511ab3763ab97a10bd68ad8210933d";
 //    public static String AMAP_KEY = "28f736e6421ff3577280bdca9a0ce1d9";
-    public static String[] AMAP_KEY = new String[]{"a91ac5c3dc208259d8a3ac971f2c2529", "7a68ed576a6e2539c53b172e735cf342", "50ab96b1297395c29216150c4284704b", "2e1fa082d655f41d4643acc997709c02"};
+    public static String[] AMAP_KEY = new String[]{
+//            "a91ac5c3dc208259d8a3ac971f2c2529", "7a68ed576a6e2539c53b172e735cf342",
+//            "50ab96b1297395c29216150c4284704b", "2e1fa082d655f41d4643acc997709c02"
+            "e41c5b2d1a5f8fe5460978af53e58015", "93a315e8c7b82f2796563753140e7e70",
+            "ee5a608c1549dcc15a896622a67ff7ba", "28842655dc4e9febf58984e96a5a1d68",
+            "2dad2b0edf38fb0d3052396a8493878c"
+    };
     //    oauth和dms搭建服务器地址
     public static String ServerBaseUrl = "http://121.43.55.7:";
     //    DMS服务端口和路径

+ 6 - 3
src/main/java/com/skyversation/poiaddr/service/AreaService.java

@@ -89,11 +89,14 @@ public class AreaService {
             System.out.println(">>>>>>>>------数据库连通性测试完成!用时" + (endTime - startTime) / 1000 + "秒!当前数据库数据条数:" + amapAddressV3List.size());
             System.out.println("<<<<<<<<------开始缓存数据库数据");
             for (AmapAddressV3 amapAddressV3 : amapAddressV3List) {
-                allAddressData.put(amapAddressV3.getAddress(), amapAddressV3);
+                if(amapAddressV3 != null && amapAddressV3.getAddress() != null){
+                    allAddressData.put(amapAddressV3.getAddress(), amapAddressV3);
+                }
             }
             amapAddressV3List.clear();
             System.out.println(">>>>>>>>------缓存数据库数据完成!allAddressData.size()=" + allAddressData.size());
         } catch (Exception e) {
+            e.printStackTrace();
             System.err.println(">>>>>>>>------数据库连通性测试结果:" + e);
         }
 
@@ -195,9 +198,9 @@ public class AreaService {
             resultData.add(allAddressData.get(addr));
             return resultData;
         } else {
-            int sumSize = 20;
+            int sumSize = 100;
             for (String address : allAddressData.keySet()) {
-                if (address.contains(addr) && sumSize > 0) {
+                if (address != null && address.contains(addr) && sumSize > 0) {
                     sumSize--;
                     resultData.add(allAddressData.get(address));
                 }

+ 3 - 3
src/main/java/com/skyversation/poiaddr/service/impl/YyskAddressStandardizationServiceImpl.java

@@ -356,7 +356,7 @@ public class YyskAddressStandardizationServiceImpl {
 
     public List<YyskAddressStandardization> runExecutorService(List<YyskAddressStandardization> listData) {
         // 创建线程池
-        int executorSize = Runtime.getRuntime().availableProcessors() / 2;
+        int executorSize = Runtime.getRuntime().availableProcessors() / 4;
         System.out.println("创建线程池个数:" + executorSize);
         ExecutorService executorService = Executors.newFixedThreadPool(executorSize);
         List<Future<?>> futures = new ArrayList<>();
@@ -469,8 +469,8 @@ public class YyskAddressStandardizationServiceImpl {
             try {
                 future.get();
             } catch (InterruptedException | ExecutionException e) {
-//                e.printStackTrace();
-//                System.err.println("线程异常:" + e);
+                e.printStackTrace();
+                System.err.println("线程异常:" + e);
             }
         }
         // 关闭线程池

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

@@ -119,6 +119,7 @@ public class ExcelReaderUtils {
         } catch (Exception e) {
             e.printStackTrace();
         }
+        System.out.println("写入文件完成:" + filePath);
     }