|
@@ -4,6 +4,7 @@ import com.skyversation.poiaddr.addquery.AddressQueryEngine;
|
|
import com.skyversation.poiaddr.bean.AddressResult;
|
|
import com.skyversation.poiaddr.bean.AddressResult;
|
|
import com.skyversation.poiaddr.config.DbConnection;
|
|
import com.skyversation.poiaddr.config.DbConnection;
|
|
import com.skyversation.poiaddr.entity.YyskAddressStandardization;
|
|
import com.skyversation.poiaddr.entity.YyskAddressStandardization;
|
|
|
|
+import com.skyversation.poiaddr.util.AddressTools;
|
|
import com.skyversation.poiaddr.util.ExcelReaderUtils;
|
|
import com.skyversation.poiaddr.util.ExcelReaderUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -61,7 +62,7 @@ public class YyskAddressStandardizationServiceImpl {
|
|
for (Map<String, Object> item : dbData) {
|
|
for (Map<String, Object> item : dbData) {
|
|
YyskAddressStandardization YyskAddressStandardization = new YyskAddressStandardization();
|
|
YyskAddressStandardization YyskAddressStandardization = new YyskAddressStandardization();
|
|
if (item.get("address") != null) {
|
|
if (item.get("address") != null) {
|
|
- YyskAddressStandardization.setAddress(item.getOrDefault("address", "").toString().trim());
|
|
|
|
|
|
+ YyskAddressStandardization.setAddress(item.getOrDefault("address", "").toString());
|
|
}
|
|
}
|
|
requestData.add(YyskAddressStandardization);
|
|
requestData.add(YyskAddressStandardization);
|
|
}
|
|
}
|
|
@@ -127,7 +128,7 @@ public class YyskAddressStandardizationServiceImpl {
|
|
if (entity.getUpdateTime() == null) {
|
|
if (entity.getUpdateTime() == null) {
|
|
preparedStatement.setNull(10, Types.DATE);
|
|
preparedStatement.setNull(10, Types.DATE);
|
|
} else {
|
|
} else {
|
|
- preparedStatement.setDate(10, new java.sql.Date(entity.getUpdateTime().getTime()));
|
|
|
|
|
|
+ preparedStatement.setLong(10, entity.getUpdateTime().getTime());
|
|
}
|
|
}
|
|
preparedStatement.setString(11, entity.getAddress());
|
|
preparedStatement.setString(11, entity.getAddress());
|
|
// 将当前的 SQL 语句添加到批量操作中
|
|
// 将当前的 SQL 语句添加到批量操作中
|
|
@@ -144,6 +145,38 @@ public class YyskAddressStandardizationServiceImpl {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ // 批量修改地址表
|
|
|
|
+ public void updateDatas2(List<YyskAddressStandardization> sjArrDzbzhSjWcbryDzxxList, String tableName) {
|
|
|
|
+ String sqls = "update " + tableName + " set standard_address = ? ,match_level = ? where address = ?";
|
|
|
|
+ try (PreparedStatement preparedStatement = DbConnection.getInstance().connection.prepareStatement(sqls)) {
|
|
|
|
+ for (YyskAddressStandardization entity : sjArrDzbzhSjWcbryDzxxList) {
|
|
|
|
+ if (entity.getAddress() != null) {
|
|
|
|
+ if (entity.getStandardAddress() == null) {
|
|
|
|
+ preparedStatement.setNull(1, Types.VARCHAR);
|
|
|
|
+ } else {
|
|
|
|
+ preparedStatement.setString(1, entity.getStandardAddress());
|
|
|
|
+ }
|
|
|
|
+ if (entity.getMatchLevel() == null) {
|
|
|
|
+ preparedStatement.setNull(2, Types.VARCHAR);
|
|
|
|
+ } else {
|
|
|
|
+ preparedStatement.setString(2, entity.getMatchLevel());
|
|
|
|
+ }
|
|
|
|
+ preparedStatement.setString(3, entity.getAddress());
|
|
|
|
+ // 将当前的 SQL 语句添加到批量操作中
|
|
|
|
+ preparedStatement.addBatch();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 执行批量操作
|
|
|
|
+ int[] updateCounts = preparedStatement.executeBatch();
|
|
|
|
+ System.out.println("总条数:" + sjArrDzbzhSjWcbryDzxxList.size() + ";更新的记录数: " + updateCounts.length);
|
|
|
|
+ } catch (SQLException throwables) {
|
|
|
|
+ System.err.println("------updateError--------------------------------------" + sqls + "更新异常!");
|
|
|
|
+ throwables.printStackTrace();
|
|
|
|
+ System.err.println("更新异常" + throwables);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 首先要得到一个Page<T>对象,然后判断是否还有别的数据,有的话接着请求并返回新的Page<T>对象并迭代处理数据
|
|
* 首先要得到一个Page<T>对象,然后判断是否还有别的数据,有的话接着请求并返回新的Page<T>对象并迭代处理数据
|
|
* init [0:批量处理;1:初始化]
|
|
* init [0:批量处理;1:初始化]
|
|
@@ -204,32 +237,36 @@ public class YyskAddressStandardizationServiceImpl {
|
|
String resultAddrKey = contentBean.getAddress();
|
|
String resultAddrKey = contentBean.getAddress();
|
|
// && AddressTools.isOtherDistrictThanShangHai(resultAddrKey)
|
|
// && AddressTools.isOtherDistrictThanShangHai(resultAddrKey)
|
|
if (resultAddrKey != null && contentBean.getLon() != null && contentBean.getLat() != null) {
|
|
if (resultAddrKey != null && contentBean.getLon() != null && contentBean.getLat() != null) {
|
|
- String lng = contentBean.getLon() + "";
|
|
|
|
- String lat = contentBean.getLat() + "";
|
|
|
|
|
|
+ resultAddrKey = AddressTools.getInstance().deleteStr(contentBean.getAddress()) ;
|
|
if (contentBean.getAdname() != null && !contentBean.getAdname().isEmpty()) {
|
|
if (contentBean.getAdname() != null && !contentBean.getAdname().isEmpty()) {
|
|
item.setStreetTown(contentBean.getAdname());
|
|
item.setStreetTown(contentBean.getAdname());
|
|
- } else if (contentBean.getTownJson().getString("name") != null) {
|
|
|
|
|
|
+ } else if (contentBean.getTownJson() != null && contentBean.getTownJson().getString("name") != null) {
|
|
item.setStreetTown(contentBean.getTownJson().getString("name"));
|
|
item.setStreetTown(contentBean.getTownJson().getString("name"));
|
|
} else {
|
|
} else {
|
|
item.setStreetTown("");
|
|
item.setStreetTown("");
|
|
}
|
|
}
|
|
|
|
+ item.setMarket(AddressTools.isOtherDistrictThanShangHai(resultAddrKey));
|
|
if (contentBean.getCityname() != null && !contentBean.getCityname().isEmpty()) {
|
|
if (contentBean.getCityname() != null && !contentBean.getCityname().isEmpty()) {
|
|
- item.setMarket(contentBean.getCityname());
|
|
|
|
|
|
+ item.setDistinguish(contentBean.getCityname());
|
|
} else if (contentBean.getAdJson().getString("name") != null) {
|
|
} else if (contentBean.getAdJson().getString("name") != null) {
|
|
- item.setMarket(contentBean.getAdJson().getString("name"));
|
|
|
|
|
|
+ item.setDistinguish(contentBean.getAdJson().getString("name"));
|
|
} else {
|
|
} else {
|
|
- item.setMarket("");
|
|
|
|
|
|
+ item.setDistinguish("");
|
|
|
|
+ }
|
|
|
|
+ if (contentBean.getLocation() != null && !contentBean.getLocation().trim().isEmpty()) {
|
|
|
|
+ String[] latLonStr = contentBean.getLocation().split(",");
|
|
|
|
+ item.setLat(latLonStr[0]);
|
|
|
|
+ item.setLon(latLonStr[1]);
|
|
}
|
|
}
|
|
- item.setLat(lat);
|
|
|
|
- item.setLon(lng);
|
|
|
|
item.setReturnAddress(resultAddrKey);
|
|
item.setReturnAddress(resultAddrKey);
|
|
item.setMatchLevel(contentBean.getScore());
|
|
item.setMatchLevel(contentBean.getScore());
|
|
String oldAddress = contentBean.getSearchAddress().replaceAll(item.getMarket(), "").replaceAll(item.getDistinguish(), "").replaceAll(item.getStreetTown(), "");
|
|
String oldAddress = contentBean.getSearchAddress().replaceAll(item.getMarket(), "").replaceAll(item.getDistinguish(), "").replaceAll(item.getStreetTown(), "");
|
|
if (contentBean.getCjJson() != null && contentBean.getCjJson().containsKey("所属居委")) {
|
|
if (contentBean.getCjJson() != null && contentBean.getCjJson().containsKey("所属居委")) {
|
|
item.setResidentialCommittee(contentBean.getCjJson().getString("所属居委"));
|
|
item.setResidentialCommittee(contentBean.getCjJson().getString("所属居委"));
|
|
- oldAddress = contentBean.getCjJson().getString("所属居委") + oldAddress;
|
|
|
|
|
|
+ } else {
|
|
|
|
+ item.setResidentialCommittee("");
|
|
}
|
|
}
|
|
- item.setStandardAddress(item.getMarket() + item.getDistinguish() + item.getStreetTown() + oldAddress);
|
|
|
|
|
|
+ item.setStandardAddress(item.getMarket() + item.getDistinguish() + item.getStreetTown() + AddressTools.parseAddressCJ(oldAddress)[4]);
|
|
break;
|
|
break;
|
|
} else {
|
|
} else {
|
|
item.setMatchLevel("异常");
|
|
item.setMatchLevel("异常");
|
|
@@ -238,6 +275,7 @@ public class YyskAddressStandardizationServiceImpl {
|
|
}
|
|
}
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
item.setMatchLevel("异常");
|
|
item.setMatchLevel("异常");
|
|
|
|
+ e.printStackTrace();
|
|
System.err.println("查询结果处理异常:" + e);
|
|
System.err.println("查询结果处理异常:" + e);
|
|
}
|
|
}
|
|
}
|
|
}
|