|
@@ -5,6 +5,7 @@ import com.skyversation.poiaddr.addquery.Constant;
|
|
|
import com.skyversation.poiaddr.bean.AddressResult;
|
|
|
import com.skyversation.poiaddr.config.DbConnection;
|
|
|
import com.skyversation.poiaddr.entity.SjArrDzbzhSjWcbryDzxx;
|
|
|
+import com.skyversation.poiaddr.util.AddressTools;
|
|
|
import com.skyversation.poiaddr.util.SerializationUtils;
|
|
|
import com.skyversation.poiaddr.util.status.AddressLevel;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -21,15 +22,10 @@ import java.util.concurrent.Future;
|
|
|
@Service
|
|
|
public class SjArrDzbzhSjWcbryDzxxServiceImpl {
|
|
|
|
|
|
- public List<SjArrDzbzhSjWcbryDzxx> getAllData(Integer PageSize, Integer PageNumber) {
|
|
|
+ public List<SjArrDzbzhSjWcbryDzxx> getAllData() {
|
|
|
try {
|
|
|
List<SjArrDzbzhSjWcbryDzxx> requestData = new ArrayList<>();
|
|
|
- StringBuilder sql = new StringBuilder();
|
|
|
- sql.append("SELECT * FROM sj_zrr_dzbzh_sj_wcbry_dzxx");
|
|
|
- if (PageSize != null && PageNumber != null) {
|
|
|
- sql.append(" order by id limit ").append(PageSize).append(" offset ").append((PageNumber - 1) * PageSize);
|
|
|
- }
|
|
|
- List<Map<String, Object>> oldDbData = DbConnection.getInstance().runSqlStr(sql.toString());
|
|
|
+ List<Map<String, Object>> oldDbData = DbConnection.getInstance().runSqlStr("SELECT * FROM sj_zrr_dzbzh_sj_wcbry_dzxx");
|
|
|
// 去重
|
|
|
Map<String, Map<String, Object>> newRequestData = new HashMap<>();
|
|
|
for (Map<String, Object> item : oldDbData) {
|
|
@@ -221,28 +217,17 @@ public class SjArrDzbzhSjWcbryDzxxServiceImpl {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private boolean isOtherDistrictThanSongJiang(String address) {
|
|
|
- // 将地址字符串转换为小写,以便进行不区分大小写的比较
|
|
|
- String lowerCaseAddress = address.toLowerCase();
|
|
|
- // 检查地址是否包含 "青浦区" 字样,如果不包含,则可能是其他区
|
|
|
- // 列出上海市的其他区(已补充完整)
|
|
|
- String[] otherDistricts = {"黄浦区", "徐汇区", "长宁区", "静安区", "普陀区", "虹口区", "杨浦区", "闵行区", "宝山区", "嘉定区", "金山区", "青浦区", "奉贤区", "崇明区", "浦东新区"};
|
|
|
- for (String district : otherDistricts) {
|
|
|
- if (lowerCaseAddress.contains(district.toLowerCase())) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- return true;
|
|
|
- }
|
|
|
|
|
|
- public void uploadAllData(int PageSize, int PageNumber) {
|
|
|
- List<SjArrDzbzhSjWcbryDzxx> listData = getAllData(null, null);
|
|
|
+
|
|
|
+ public void uploadAllData() {
|
|
|
+ List<SjArrDzbzhSjWcbryDzxx> listData = getAllData();
|
|
|
if (listData != null && listData.size() > 0) {
|
|
|
SerializationUtils.serialize(runExecutorService(listData), "output/testDataBase_all.ser");
|
|
|
+// updateDatas(runExecutorService(listData));
|
|
|
// PageSize++;
|
|
|
// uploadAllData(PageSize, PageNumber);
|
|
|
// } else {
|
|
|
-// System.out.println("处理完成!");
|
|
|
+ System.out.println("处理完成!");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -291,19 +276,19 @@ public class SjArrDzbzhSjWcbryDzxxServiceImpl {
|
|
|
for (SjArrDzbzhSjWcbryDzxx item : listData) {
|
|
|
futures.add(executorService.submit(() -> {
|
|
|
List<String> addrList = new ArrayList<>();
|
|
|
- if (item.getSkHjdz() != null && !item.getSkHjdz().isEmpty() && isOtherDistrictThanSongJiang(item.getSkHjdz())) {
|
|
|
+ if (item.getSkHjdz() != null && !item.getSkHjdz().isEmpty() && AddressTools.isOtherDistrictThanSongJiang(item.getSkHjdz())) {
|
|
|
// 实口户籍地址
|
|
|
addrList.add("上海市" + Constant.getArea() + "区" + AddressQueryEngine.addressReplaceAll(item.getSkHjdz()));
|
|
|
}
|
|
|
- if (item.getSkJzdz() != null && !item.getSkJzdz().isEmpty() && isOtherDistrictThanSongJiang(item.getSkJzdz())) {
|
|
|
+ if (item.getSkJzdz() != null && !item.getSkJzdz().isEmpty() && AddressTools.isOtherDistrictThanSongJiang(item.getSkJzdz())) {
|
|
|
// 实口居住地址
|
|
|
addrList.add("上海市" + Constant.getArea() + "区" + AddressQueryEngine.addressReplaceAll(item.getSkJzdz()));
|
|
|
}
|
|
|
- if (item.getJcHjdz() != null && !item.getJcHjdz().isEmpty() && isOtherDistrictThanSongJiang(item.getJcHjdz())) {
|
|
|
+ if (item.getJcHjdz() != null && !item.getJcHjdz().isEmpty() && AddressTools.isOtherDistrictThanSongJiang(item.getJcHjdz())) {
|
|
|
// 基层户籍地址
|
|
|
addrList.add("上海市" + Constant.getArea() + "区" + AddressQueryEngine.addressReplaceAll(item.getJcHjdz()));
|
|
|
}
|
|
|
- if (item.getJcJzdz() != null && !item.getJcJzdz().isEmpty() && isOtherDistrictThanSongJiang(item.getJcJzdz())) {
|
|
|
+ if (item.getJcJzdz() != null && !item.getJcJzdz().isEmpty() && AddressTools.isOtherDistrictThanSongJiang(item.getJcJzdz())) {
|
|
|
// 基层居住地址
|
|
|
addrList.add("上海市" + Constant.getArea() + "区" + AddressQueryEngine.addressReplaceAll(item.getJcJzdz()));
|
|
|
}
|
|
@@ -317,7 +302,7 @@ public class SjArrDzbzhSjWcbryDzxxServiceImpl {
|
|
|
try {
|
|
|
for (AddressResult.ContentBean contentBean : addressResult.getData()) {
|
|
|
String resultAddrKey = contentBean.getAddress();
|
|
|
- if (resultAddrKey != null && contentBean.getLon() != null && contentBean.getLat() != null && isOtherDistrictThanSongJiang(resultAddrKey)) {
|
|
|
+ if (resultAddrKey != null && contentBean.getLon() != null && contentBean.getLat() != null && AddressTools.isOtherDistrictThanSongJiang(resultAddrKey)) {
|
|
|
String lng = contentBean.getLon() + "";
|
|
|
String lat = contentBean.getLat() + "";
|
|
|
item.setInTheArea("是");
|