Bläddra i källkod

添加线程异常处理逻辑

DESKTOP-6LTVLN7\Liumouren 2 månader sedan
förälder
incheckning
de1d70d662

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

@@ -242,11 +242,12 @@ public class TransfromDataTool {
 
     public AddressResult gdV3ResultToResult(String searchAddress, JSONArray array, boolean isInserted) {
         AddressResult result = new AddressResult();
-        if (array == null || array.size() < 1) {
-            result.setCode(AddressResultEnum.RESULT_NULL);
-            return result;
-        }
+
         try {
+            if (array == null || array.size() < 1) {
+                result.setCode(AddressResultEnum.RESULT_NULL);
+                return result;
+            }
             JSONObject jsonObject = com.skyversation.poiaddr.util.AddressTools.getInstance().findBestMatch(searchAddress, array, "address");
             if (jsonObject != null && jsonObject.containsKey("总分") && jsonObject.get("总分") != null && !jsonObject.getString("总分").isEmpty()) {
                 AddressResult.ContentBean content = new AddressResult.ContentBean();

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

@@ -466,7 +466,20 @@ public class YyskAddressStandardizationServiceImpl {
         }
         // 关闭线程池
         executorService.shutdown();
-        return listData;
+        List<YyskAddressStandardization> dataList = new ArrayList<>();
+        List<YyskAddressStandardization> errData = new ArrayList<>();
+        for (YyskAddressStandardization item : listData) {
+            if (item.getMatchLevel() == null || item.getMatchLevel().isEmpty()) {
+                errData.add(item);
+            } else {
+                dataList.add(item);
+            }
+        }
+        listData.clear();
+        if (errData.size() > 0) {
+            runExecutorService(errData);
+        }
+        return dataList;
     }
 }