|
@@ -124,7 +124,7 @@ public class ScheduledTasks {
|
|
|
* 如果返回了正确的数据,入到地址库表中,并更新state为2(同时添加到地址库中)
|
|
|
* 否则更新状态为1
|
|
|
*/
|
|
|
- @Scheduled(cron = "0 30 18 * * ?")
|
|
|
+ @Scheduled(cron = "0 30 2 * * ?")
|
|
|
public void dbdataCallBackTask() {
|
|
|
try {
|
|
|
// 根据当前日期生成开始id
|
|
@@ -138,10 +138,10 @@ public class ScheduledTasks {
|
|
|
// 首先查询数据列表
|
|
|
callBackRunStatus = 1;
|
|
|
List<TAddressCallback> tAddressCallbacks = AreaService.getInstance().getCallbackDataByTag();
|
|
|
- infoItem.put("结束时间", System.currentTimeMillis());
|
|
|
+ infoItem.put("用时(秒)", (System.currentTimeMillis() - startTime) / 1000);
|
|
|
infoItem.put("备注", "数据条数" + tAddressCallbacks.size());
|
|
|
List<TAddressCallback> updateCallBackDatas = new ArrayList<>();
|
|
|
-// List<YyskDmdzAddressStandardization> addDmdzDataList = new ArrayList<>();
|
|
|
+ List<YyskDmdzAddressStandardization> addDmdzDataList = new ArrayList<>();
|
|
|
// 然后调用市中心接口
|
|
|
ScheduledTasks.logInfos.add(infoItem);
|
|
|
for (TAddressCallback item : tAddressCallbacks) {
|
|
@@ -156,14 +156,14 @@ public class ScheduledTasks {
|
|
|
if (lmrAddrBean.getRule() != null && Integer.parseInt(lmrAddrBean.getRule()) <= 0) {
|
|
|
item.setStatusTag(-1);
|
|
|
} else {
|
|
|
- AddressResult addressResult = AddressQueryEngine.getInstance().commonSearchByName_nw(addr);
|
|
|
AddressResult.ContentBean contentBean = new AddressResult.ContentBean();
|
|
|
- if (addressResult != null && addressResult.getCode() == AddressResultEnum.DB_SUCCESS && addressResult.getData() != null && addressResult.getData().size() > 0) {
|
|
|
- contentBean = addressResult.getData().get(0);
|
|
|
- } else {
|
|
|
- addressResult = AddressQueryEngine.getInstance().sj_szxSearchByName(addr, 3);
|
|
|
- if (addressResult != null && addressResult.getData() != null && addressResult.getData().size() > 0) {
|
|
|
- contentBean = addressResult.getData().get(0);
|
|
|
+ AddressResult addressResult = AddressQueryEngine.getInstance().sj_szxSearchByName(addr, 3);
|
|
|
+ if (addressResult != null && addressResult.getData() != null && addressResult.getData().size() > 0) {
|
|
|
+ for(AddressResult.ContentBean itemc: addressResult.getData()){
|
|
|
+ if(itemc.getScore().contains("rule_") || Float.parseFloat(itemc.getScore()) > 2.0){
|
|
|
+ contentBean = addressResult.getData().get(0);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (contentBean != null && contentBean.getLon() != null) {
|
|
@@ -188,10 +188,10 @@ public class ScheduledTasks {
|
|
|
contentBean.getAdname() + contentBean.getCommunity() + splitAddress.getAddr());
|
|
|
item.setStatusTag(2);
|
|
|
// 添加数据到地址库和缓存
|
|
|
- /*if (StringUtils.hasText(item.getLat()) && StringUtils.hasText(item.getLon())) {
|
|
|
+ if (StringUtils.hasText(item.getLat()) && StringUtils.hasText(item.getLon())) {
|
|
|
startOid++;
|
|
|
addDmdzDataList.add(TAddressCallbackToYyskDmdzAddressStandardization(item, Long.valueOf(getCurrentDateTimeByPatern("yyyyddMMhhmm") + startOid)));
|
|
|
- }*/
|
|
|
+ }
|
|
|
} else {
|
|
|
item.setStatusTag(1);
|
|
|
}
|
|
@@ -220,9 +220,9 @@ public class ScheduledTasks {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
- /*if (addDmdzDataList.size() > 0) {
|
|
|
+ if (addDmdzDataList.size() > 0) {
|
|
|
yyszAddressRepository.saveAll(addDmdzDataList);
|
|
|
- }*/
|
|
|
+ }
|
|
|
if (updateCallBackDatas.size() > 0) {
|
|
|
infoItem.put("操作", "将治理的数据入库更新callBack表");
|
|
|
long inBaseTime = System.currentTimeMillis();
|
|
@@ -230,7 +230,7 @@ public class ScheduledTasks {
|
|
|
AreaService.getInstance().updateCallbackData(updateCallBackDatas);
|
|
|
updateCallBackDatas.clear();
|
|
|
long outBaseTime = System.currentTimeMillis();
|
|
|
- infoItem.put("结束时间", outBaseTime);
|
|
|
+ infoItem.put("用时(秒)", (outBaseTime - inBaseTime) / 1000);
|
|
|
infoItem.put("备注", "1000条数据入库用时" + (outBaseTime - inBaseTime) / 1000 + "秒!");
|
|
|
ScheduledTasks.logInfos.add(infoItem);
|
|
|
ExcelReaderUtils.writeToExcel(ScheduledTasks.logInfos, "./logInfos_" + System.currentTimeMillis() + ".xlsx");
|
|
@@ -260,7 +260,7 @@ public class ScheduledTasks {
|
|
|
*/
|
|
|
public static YyskDmdzAddressStandardization TAddressCallbackToYyskDmdzAddressStandardization(TAddressCallback tAddressCallback, Long Oid) {
|
|
|
YyskDmdzAddressStandardization yyskDmdzAddressStandardization = new YyskDmdzAddressStandardization();
|
|
|
- yyskDmdzAddressStandardization.setSourceaddress(tAddressCallback.getStandardAddress());
|
|
|
+ yyskDmdzAddressStandardization.setSourceaddress(tAddressCallback.getCankaoAddress());
|
|
|
yyskDmdzAddressStandardization.setAddress(tAddressCallback.getSearchAddress());
|
|
|
yyskDmdzAddressStandardization.setLon(Float.parseFloat(tAddressCallback.getLon()));
|
|
|
yyskDmdzAddressStandardization.setLat(Float.parseFloat(tAddressCallback.getLat()));
|
|
@@ -268,24 +268,31 @@ public class ScheduledTasks {
|
|
|
yyskDmdzAddressStandardization.setCounty(tAddressCallback.getCounty());
|
|
|
yyskDmdzAddressStandardization.setTown(tAddressCallback.getStreetTownName());
|
|
|
yyskDmdzAddressStandardization.setCommunity(tAddressCallback.getCommunity());
|
|
|
- yyskDmdzAddressStandardization.setData_type("zl_v3");
|
|
|
- yyskDmdzAddressStandardization.setType("callBack");
|
|
|
+ yyskDmdzAddressStandardization.setData_type("callBack");
|
|
|
+ yyskDmdzAddressStandardization.setType("zl_v4");
|
|
|
yyskDmdzAddressStandardization.setOid(Oid);
|
|
|
// 把请求到的数据放到缓存中
|
|
|
- if (yyskDmdzAddressStandardization.getAddress() != null && StringUtils.hasText(yyskDmdzAddressStandardization.getAddress())) {
|
|
|
- SplitAddress splitAddress = ShanghaiAddressSplitUtil.splitBestAddress(yyskDmdzAddressStandardization.getAddress());
|
|
|
- putAllDmdzData(splitAddress.getAddr(), yyskDmdzAddressStandardization);
|
|
|
- if (yyskDmdzAddressStandardization.getSourceaddress() != null && StringUtils.hasText(yyskDmdzAddressStandardization.getSourceaddress())) {
|
|
|
- SplitAddress splitAddress2 = ShanghaiAddressSplitUtil.splitBestAddress(yyskDmdzAddressStandardization.getSourceaddress());
|
|
|
- if (!splitAddress.getAddr().equals(splitAddress2.getAddr())) {
|
|
|
+ yyskDmdzAddressStandardizationPutDmdz(yyskDmdzAddressStandardization);
|
|
|
+ return yyskDmdzAddressStandardization;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void yyskDmdzAddressStandardizationPutDmdz(YyskDmdzAddressStandardization yyskDmdzAddressStandardization){
|
|
|
+ if (yyskDmdzAddressStandardization.getSourceaddress() != null && StringUtils.hasText(yyskDmdzAddressStandardization.getSourceaddress())) {
|
|
|
+ SplitAddress splitAddress = ShanghaiAddressSplitUtil.splitBestAddress(yyskDmdzAddressStandardization.getSourceaddress());
|
|
|
+ if (splitAddress.getAddr().length() > 2) {
|
|
|
+ putAllDmdzData(splitAddress.getAddr(), yyskDmdzAddressStandardization);
|
|
|
+ } else {
|
|
|
+ putAllDmdzData(yyskDmdzAddressStandardization.getSourceaddress(), yyskDmdzAddressStandardization);
|
|
|
+ }
|
|
|
+ if (yyskDmdzAddressStandardization.getAddress() != null && StringUtils.hasText(yyskDmdzAddressStandardization.getAddress()) && !yyskDmdzAddressStandardization.getSourceaddress().contains(yyskDmdzAddressStandardization.getAddress())) {
|
|
|
+ SplitAddress splitAddress2 = ShanghaiAddressSplitUtil.splitBestAddress(yyskDmdzAddressStandardization.getAddress());
|
|
|
+ if (splitAddress2.getAddr().length() > 2) {
|
|
|
putAllDmdzData(splitAddress2.getAddr(), yyskDmdzAddressStandardization);
|
|
|
+ } else {
|
|
|
+ putAllDmdzData(yyskDmdzAddressStandardization.getAddress(), yyskDmdzAddressStandardization);
|
|
|
}
|
|
|
}
|
|
|
- } else if (yyskDmdzAddressStandardization.getSourceaddress() != null && StringUtils.hasText(yyskDmdzAddressStandardization.getSourceaddress())) {
|
|
|
- SplitAddress splitAddress = ShanghaiAddressSplitUtil.splitBestAddress(yyskDmdzAddressStandardization.getSourceaddress());
|
|
|
- putAllDmdzData(splitAddress.getAddr(), yyskDmdzAddressStandardization);
|
|
|
}
|
|
|
- return yyskDmdzAddressStandardization;
|
|
|
}
|
|
|
|
|
|
public static void putAllDmdzData(String addr, YyskDmdzAddressStandardization item) {
|