Bläddra i källkod

fix 处理常驻人口居住地址数据

tjf 3 år sedan
förälder
incheckning
e4559daec2

+ 110 - 0
boman-web-core/src/main/java/com/boman/web/core/controller/TestController.java

@@ -436,6 +436,98 @@ public class TestController {
         return AjaxResult.success();
         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;
         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;
+    }
+
 }
 }

+ 3 - 0
boman-web-core/src/main/java/com/boman/web/core/mapper/CzrkJzdzMapper.java

@@ -71,4 +71,7 @@ import java.util.List;
     int updateByIdCard(CzrkJzdz czrkJzdz);
     int updateByIdCard(CzrkJzdz czrkJzdz);
 
 
     int updateByCzrkId(CzrkJzdz czrkJzdz);
     int updateByCzrkId(CzrkJzdz czrkJzdz);
+
+    List<CzrkJzdz> selectCzrkJzdzListPage(@Param("startNum") int startNum, @Param("endNum") int endNum);
+
 }
 }

+ 4 - 0
boman-web-core/src/main/resources/mapper/CzrkJzdzMapper.xml

@@ -258,4 +258,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </choose>
         </choose>
         GROUP BY czrk.id
         GROUP BY czrk.id
     </select>
     </select>
+
+    <select id="selectCzrkJzdzListPage" parameterType="Integer" resultMap="CzrkJzdzResult">
+        select * from czrk_jzdz where village_id = '' and  now_in != ''  limit   #{startNum}, #{endNum}
+    </select>
 </mapper>
 </mapper>