| 
					
				 | 
			
			
				@@ -78,7 +78,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     addressResult.setData(contentBeans); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     addressResult.setCode(AddressResultEnum.SZX_SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     addressResult.setMessage("成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return addressResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return getCjWgWgwByLoc(addressResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -90,7 +90,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     addressResult.setData(contentBeans); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     addressResult.setCode(AddressResultEnum.GD_SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     addressResult.setMessage("成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return addressResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return getCjWgWgwByLoc(addressResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -102,7 +102,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     addressResult.setData(contentBeans); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     addressResult.setCode(AddressResultEnum.GDV3_SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     addressResult.setMessage("成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return addressResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return getCjWgWgwByLoc(addressResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -151,14 +151,13 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AddressResult szxSearchByName(String address) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ResponseEntity response = AddressNetTools.getInstance().requestGet(Constant.SZX_URL + address, null, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ResponseEntity response = AddressNetTools.getInstance().requestGet(Constant.SZX_URL + "®ion=" + Constant.getAMAP_CITY_CODE() + "&query=" + address, null, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (response != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String body = response.getBody() + ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!StringUtils.hasText(body)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                JSONObject json = JSONObject.parseObject(body); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return getCjWgWgwByLoc(TransfromDataTool.szxResultToResult(json)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return TransfromDataTool.szxResultToResult(JSONObject.parseObject(body)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 System.err.println(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -169,7 +168,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public AddressResult v4SearchByName(String address) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /*public AddressResult v4SearchByName(String address) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ResponseEntity response = AddressNetTools.getInstance().requestGet(Constant.V4_URL + address, null, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (response != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String body = response.getBody() + ""; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -186,7 +185,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             System.out.println("地址" + address + "未查询到数据!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /*** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 高德普通地名搜索 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -194,14 +193,14 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AddressResult gdSearchByName(String address) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String geoUrl = Constant.AMAP_GEO_URL + "?key=" + Constant.AMAP_KEY + "&address=" + address + "&city=" + Constant.AMAP_CITY_CODE + "&output=JSON"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String geoUrl = Constant.AMAP_GEO_URL + "?key=" + Constant.AMAP_KEY + "&address=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&output=JSON"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ResponseEntity response = AddressNetTools.getInstance().requestGet(geoUrl, null, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String body = response.getBody() + ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!StringUtils.hasText(body)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_NULL, "搜索无结果"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             JSONObject json = JSONObject.parseObject(body); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return getCjWgWgwByLoc(TransfromDataTool.gdResultToResult(json)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return TransfromDataTool.gdResultToResult(json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             System.err.println(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -217,7 +216,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String geoUrl = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //                + Constant.AMAP_SEARCH_TYPES  070500 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Constant.AMAP_SEARCH_NAME_V3 + "?key=" + Constant.AMAP_KEY + "&types=" + Constant.AMAP_SEARCH_TYPES + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        "&keywords=" + address + "&city=" + Constant.AMAP_CITY_CODE + "&offset=20"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        "&keywords=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&offset=20"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         System.out.println("geoUrl:" + geoUrl); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String body = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         body = AddressNetTools.getInstance().requestGet(geoUrl, null, null).getBody() + ""; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -233,7 +232,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (int i = 2; i < (count % 20 + 1); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 geoUrl = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         Constant.AMAP_SEARCH_NAME_V3 + "?key=" + Constant.AMAP_KEY + "&types=" + Constant.AMAP_SEARCH_TYPES + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                "&keywords=" + address + "&city=" + Constant.AMAP_CITY_CODE + "&offset=20&page=" + i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                "&keywords=" + address + "&city=" + Constant.getAMAP_CITY_CODE() + "&offset=20&page=" + i; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 body = AddressNetTools.getInstance().requestGet(geoUrl, null, null).getBody() + ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!StringUtils.hasText(body)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return AddressTools.getInstance().faildQuery(AddressResultEnum.RESULT_AGAIN_NULL, "多次搜索无结果"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,7 +241,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return getCjWgWgwByLoc(TransfromDataTool.gdV3ResultToResult(pois)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return TransfromDataTool.gdV3ResultToResult(pois); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             System.err.println(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return AddressTools.getInstance().faildQuery(AddressResultEnum.DATA_FROMAT_FAILD, "格式化失败"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -272,6 +271,11 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static boolean isNotEmptyOrBlank(String str) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return str != null && !str.trim().isEmpty(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 1. 搜索到结果就返回第一个; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 2. 搜索到结果去除行政区划后,存在包含关系,则使用; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -299,7 +303,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (AddressResult.ContentBean contentBean1 : contentBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String address = addressReplaceAll(contentBean1.getAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String address2 = addressReplaceAll(addr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (address.contains(address2) || address2.contains(address)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (isNotEmptyOrBlank(address) && (address.contains(address2) || address2.contains(address))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             return contentBean1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -314,7 +318,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (AddressResult.ContentBean contentBean1 : contentBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String address = extractNumbers(contentBean1.getAddress(), false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String address2 = extractNumbers(addr, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (address.contains(address2) || address2.contains(address)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (isNotEmptyOrBlank(address) && address.contains(address2) || address2.contains(address)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             return contentBean1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -331,7 +335,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String address2 = extractNumbers(addressReplaceAll(addr), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String addressNumber = extractNumbers(contentBean1.getAddress(), false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String addressNumber2 = extractNumbers(addr, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if ((address.contains(address2) || address2.contains(address)) && (addressNumber.contains(addressNumber2) || addressNumber2.contains(addressNumber))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (isNotEmptyOrBlank(address) && (address.contains(address2) || address2.contains(address)) && (addressNumber.contains(addressNumber2) || addressNumber2.contains(addressNumber))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             return contentBean1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -346,7 +350,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (AddressResult.ContentBean contentBean1 : contentBean) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String address = addressReplaceAll(contentBean1.getAddress()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         String address2 = addressReplaceAll(addr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (address.equals(address2)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (isNotEmptyOrBlank(address) && address.equals(address2)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             return contentBean1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -361,7 +365,7 @@ public class AddressQueryEngine { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static String addressReplaceAll(String address) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return address.replaceAll("上海市", "").replaceAll("松江", "").replaceAll("区", "").replaceAll("-", "").replaceAll("_", "").replaceAll("号", "").replaceAll("/", "").replaceAll(" ", "").replaceAll(",", "").replaceAll("\\.", "").replaceAll(",", "").replaceAll("。", "").replaceAll("\\+", "").replaceAll("\\*", "").replaceAll("弄", "").replaceAll("栋", "").replaceAll("幢", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return address.replaceAll("上海市", "").replaceAll(Constant.getArea(), "").replaceAll("区", "").replaceAll("-", "").replaceAll("_", "").replaceAll("/", "").replaceAll(" ", "").replaceAll(",", "").replaceAll("\\.", "").replaceAll(",", "").replaceAll("。", "").replaceAll("\\+", "").replaceAll("\\*", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 |