|
@@ -436,6 +436,98 @@ public class TestController {
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理常驻人口居住地址的数据
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping("/setCzrkJzdz")
|
|
|
+ public AjaxResult setCzrkJzdz() {
|
|
|
+ for (int i = 0; i < 10; i++) {
|
|
|
+ int startPage = 0;
|
|
|
+ int endPage = 10000;
|
|
|
+ List<CzrkJzdz> czrkJzdzs = czrkJzdzMapper.selectCzrkJzdzListPage(startPage, endPage);
|
|
|
+ if (czrkJzdzs.size() > 0) {
|
|
|
+ for (CzrkJzdz czrkJzdz : czrkJzdzs) {
|
|
|
+ if (czrkJzdz != null) {
|
|
|
+ String nowIn = czrkJzdz.getNowIn();
|
|
|
+ if (StringUtils.isNotBlank(nowIn)) {
|
|
|
+ Map<String, String> stringStringMap = addressResolutionMap(nowIn);
|
|
|
+ if (stringStringMap.size() > 0) {
|
|
|
+ //镇
|
|
|
+ String town = stringStringMap.get("town");
|
|
|
+ if (StringUtils.isNotBlank(town)) {
|
|
|
+ //去查询对应镇的id
|
|
|
+ List<SysRegion> sysRegions = sysRegionMapper.selectSysRegionByNameLike(town);
|
|
|
+ if (sysRegions.size() == 1) {
|
|
|
+ SysRegion sysRegion = sysRegions.get(0);
|
|
|
+ if (sysRegion != null) {
|
|
|
+ String name = sysRegion.getName();
|
|
|
+ Long areaId = sysRegion.getAreaId();
|
|
|
+ czrkJzdz.setTown(name);
|
|
|
+ czrkJzdz.setTownId(areaId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (sysRegions.size() > 1) {
|
|
|
+ for (SysRegion sysRegion : sysRegions) {
|
|
|
+ Long pid = sysRegion.getPid();
|
|
|
+ if ("340882000000".equals(pid.toString())) {
|
|
|
+ String name = sysRegion.getName();
|
|
|
+ Long areaId = sysRegion.getAreaId();
|
|
|
+ czrkJzdz.setTown(name);
|
|
|
+ czrkJzdz.setTownId(areaId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //村
|
|
|
+ String village = stringStringMap.get("village");
|
|
|
+ if (StringUtils.isNotBlank(village)) {
|
|
|
+ village = village.replace("-", "");
|
|
|
+ List<SysRegion> sysRegions = sysRegionMapper.selectSysRegionByNameLike(village);
|
|
|
+ if (sysRegions.size() == 1) {
|
|
|
+ SysRegion sysRegion = sysRegions.get(0);
|
|
|
+ if (sysRegion != null) {
|
|
|
+ String name = sysRegion.getName();
|
|
|
+ Long areaId = sysRegion.getAreaId();
|
|
|
+ czrkJzdz.setVillage(name);
|
|
|
+ czrkJzdz.setVillageId(areaId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (sysRegions.size() > 1) {
|
|
|
+ for (SysRegion sysRegion : sysRegions) {
|
|
|
+ Long pid = sysRegion.getPid();
|
|
|
+ if (czrkJzdz.getTownId().equals(pid)) {
|
|
|
+ String name = sysRegion.getName();
|
|
|
+ Long areaId = sysRegion.getAreaId();
|
|
|
+ czrkJzdz.setVillage(name);
|
|
|
+ czrkJzdz.setVillageId(areaId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(town)) {
|
|
|
+ CzrkJzdz cx = new CzrkJzdz();
|
|
|
+ cx.setCzrkId(czrkJzdz.getCzrkId());
|
|
|
+ cx.setTownId(czrkJzdz.getTownId());
|
|
|
+ cx.setTown(czrkJzdz.getTown());
|
|
|
+ if (czrkJzdz.getVillage() != null) {
|
|
|
+ cx.setVillageId(czrkJzdz.getVillageId());
|
|
|
+ cx.setVillage(czrkJzdz.getVillage());
|
|
|
+ }
|
|
|
+ czrkJzdzMapper.updateByCzrkId(cx);
|
|
|
+ System.out.println("更新" + czrkJzdz.getCzrkId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 解析地址
|
|
|
*
|
|
@@ -463,4 +555,22 @@ public class TestController {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ public static Map<String, String> addressResolutionMap(String address) {
|
|
|
+ String regex = "(?<town>[^区]+区|.+镇|.+乡)?(?<village>.[^村]+村|.+居委会|.+乡)";
|
|
|
+ Matcher m = Pattern.compile(regex).matcher(address);
|
|
|
+ String province = null, city = null, county = null, town = null, village = null;
|
|
|
+ List<Map<String, String>> table = new ArrayList<Map<String, String>>();
|
|
|
+ Map<String, String> row = null;
|
|
|
+ String result = null;
|
|
|
+ while (m.find()) {
|
|
|
+ row = new LinkedHashMap<String, String>();
|
|
|
+ town = m.group("town");
|
|
|
+ row.put("town", town == null ? "" : town.trim());
|
|
|
+ village = m.group("village");
|
|
|
+ row.put("village", village == null ? "" : village.trim());
|
|
|
+ table.add(row);
|
|
|
+ }
|
|
|
+ return row;
|
|
|
+ }
|
|
|
+
|
|
|
}
|