|
@@ -187,12 +187,19 @@ public class AreaService {
|
|
|
}
|
|
|
|
|
|
public void putAllDmdzData(String addr, YyskDmdzAddressStandardization item) {
|
|
|
+ if (addr.contains("号")) {
|
|
|
+ addr = addr.substring(0, addr.indexOf("号"));
|
|
|
+ }
|
|
|
+ if (addr.contains("弄")) {
|
|
|
+ addr = addr.substring(0, addr.indexOf("弄"));
|
|
|
+ }
|
|
|
+ addr = addr.replaceAll("(?<=[^\\d])\\d+$", "");
|
|
|
if (StringUtils.hasText(addr)) {
|
|
|
if (!ScheduledTasks.allDmdzData.containsKey(addr)) {
|
|
|
List<YyskDmdzAddressStandardization> datas = new ArrayList<>();
|
|
|
datas.add(item);
|
|
|
ScheduledTasks.allDmdzData.put(addr, datas);
|
|
|
- } else if (ScheduledTasks.allDmdzData.get(addr).size() < 20) {
|
|
|
+ } else if (ScheduledTasks.allDmdzData.get(addr).size() < 100) {
|
|
|
ScheduledTasks.allDmdzData.get(addr).add(item);
|
|
|
}
|
|
|
}
|
|
@@ -353,31 +360,22 @@ public class AreaService {
|
|
|
|
|
|
public List<YyskDmdzAddressStandardization> getAddressPoiOnlyDB(SplitAddress splitAddress) {
|
|
|
// TODO 数据库查询逻辑调整为内存处理的方式
|
|
|
- String addr = splitAddress.getSearchAddr();
|
|
|
+ String addr = splitAddress.getAddr();
|
|
|
+ String addr2 = addr + "";
|
|
|
+ if (addr2.contains("号")) {
|
|
|
+ addr2 = addr2.substring(0, addr2.indexOf("号"));
|
|
|
+ }
|
|
|
+ if (addr2.contains("弄")) {
|
|
|
+ addr2 = addr2.substring(0, addr2.indexOf("弄"));
|
|
|
+ }
|
|
|
+ addr2 = addr2.replaceAll("(?<=[^\\d])\\d+$", "");
|
|
|
List<YyskDmdzAddressStandardization> returnDatas = new ArrayList<>();
|
|
|
- for (String key : ScheduledTasks.allDmdzData.keySet()) {
|
|
|
- if (key != null) {
|
|
|
- if (addr != null && returnDatas.size() < 20) {
|
|
|
- if (key.contains(addr)) {
|
|
|
- returnDatas.addAll(ScheduledTasks.allDmdzData.get(key));
|
|
|
- } else {
|
|
|
- String addr2 = addr + "";
|
|
|
- if (addr2.contains("号")) {
|
|
|
- addr2 = addr2.substring(0, addr2.indexOf("号"));
|
|
|
- }
|
|
|
- if (addr2.contains("弄")) {
|
|
|
- addr2 = addr2.substring(0, addr2.indexOf("弄"));
|
|
|
- }
|
|
|
- if (key.contains(addr2)) {
|
|
|
- returnDatas.addAll(ScheduledTasks.allDmdzData.get(key));
|
|
|
- } else {
|
|
|
- addr2 = addr2.replaceAll("(?<=[^\\d])\\d+$", "");
|
|
|
- if (key.contains(addr2)) {
|
|
|
- returnDatas.addAll(ScheduledTasks.allDmdzData.get(key));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
+ if (ScheduledTasks.allDmdzData.containsKey(addr2)) {
|
|
|
+ returnDatas = ScheduledTasks.allDmdzData.get(addr2);
|
|
|
+ } else {
|
|
|
+ for (String key : ScheduledTasks.allDmdzData.keySet()) {
|
|
|
+ if (key != null && addr != null && (key.contains(addr2) || addr.contains(key))) {
|
|
|
+ returnDatas.addAll(ScheduledTasks.allDmdzData.get(key));
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -390,8 +388,10 @@ public class AreaService {
|
|
|
returnDatas2.add(item);
|
|
|
}
|
|
|
}
|
|
|
+ return returnDatas2;
|
|
|
+ } else {
|
|
|
+ return returnDatas;
|
|
|
}
|
|
|
- return returnDatas2;
|
|
|
}
|
|
|
|
|
|
public List<TAddressCallback> getCallbackDataByTag(Integer tag) {
|