Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	boman-web-core/src/main/java/com/boman/web/core/mapper/CzrkMapper.java
#	boman-web-core/src/main/resources/mapper/CzrkMapper.xml
shiqian 3 лет назад
Родитель
Сommit
0d9127f2e3

+ 191 - 3
boman-web-core/src/main/java/com/boman/web/core/controller/TestController.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.domain.Czrk;
 import com.boman.domain.CzrkJzdz;
+import com.boman.domain.SysDept;
 import com.boman.domain.VaccineInfoOperation;
 import com.boman.domain.dto.AjaxResult;
 import com.boman.web.core.domain.SysRegion;
@@ -19,11 +20,14 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author shiqian
@@ -89,7 +93,7 @@ public class TestController {
      *
      * @return
      */
-    @PostMapping("/setCzrk")
+    //@PostMapping("/setCzrk")
     public AjaxResult setCzrk() {
         //587731
         for (int i = 0; i < 59; i++) {
@@ -275,4 +279,188 @@ public class TestController {
         }
         return AjaxResult.success("全部完成");
     }
+
+
+    /**
+     * 处理常驻人口数据村信息
+     *
+     * @return
+     */
+    @PostMapping("/setCzrkTown")
+    public AjaxResult setCzrkTown() {
+        for (int i = 0; i < 59; i++) {
+            int startPage = i*10000;
+            int endPage = 10000;
+            List<Czrk> czrks = czrkMapper.selectCzrkListByPage(startPage, endPage);
+            if (czrks.size() > 0){
+                for (Czrk czrk : czrks) {
+                    if (czrk != null){
+                        String nowIn = czrk.getNowIn();
+                        Long deptId = czrk.getDeptId();
+                        //有居住地址
+                        if (StringUtils.isNotBlank(nowIn)){
+                            //提取出村的名称
+                            String village = addressResolution(nowIn);
+                            if (StringUtils.isNotBlank(village)){
+                                //去china_area表中查询对应数据
+                                List<SysRegion> sysRegions = sysRegionMapper.selectSysRegionByNameLike(village);
+                                if (sysRegions.size() == 1){
+                                    SysRegion sysRegion = sysRegions.get(0);
+                                    if (sysRegion != null){
+                                        czrk.setVillage(sysRegion.getName());
+                                        czrk.setVillageId(sysRegion.getAreaId());
+                                    }
+                                }else if (sysRegions.size() > 1){
+                                    for (SysRegion sysRegion : sysRegions) {
+                                        if (sysRegion != null){
+                                            Long pid = sysRegion.getPid();
+                                            Long villageTownsId = czrk.getVillageTownsId();
+                                            if (villageTownsId != null && villageTownsId.equals(pid)){
+                                                //说明是这个镇下面的村
+                                                czrk.setVillage(sysRegion.getName());
+                                                czrk.setVillageId(sysRegion.getAreaId());
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }else {
+                            //没有居住地址看看有没有deptId
+                            if (deptId != null){
+                                //去sys_dept表中找到对应的数据
+                                SysDept sysDept = czrkMapper.selectDeptNameById(deptId);
+                                if (sysDept != null){
+                                    String ancestors = sysDept.getAncestors();
+                                    String[] split = ancestors.split(",");
+                                    if (split.length == 3){
+                                        //说明是组,则找上级村id
+                                        Long parentId = sysDept.getParentId();
+                                        if (parentId != null){
+                                            //获取到村名称
+                                            SysDept sysDeptParent = czrkMapper.selectDeptNameById(parentId);
+                                            if (sysDeptParent != null){
+                                                //村名称
+                                                String deptName = sysDeptParent.getDeptName();
+                                                if (StringUtils.isNotBlank(deptName)){
+                                                    //去china_area表中查询对应数据
+                                                    List<SysRegion> sysRegions = sysRegionMapper.selectSysRegionByNameLike(deptName);
+                                                    if (sysRegions.size() == 1){
+                                                        SysRegion sysRegion = sysRegions.get(0);
+                                                        if (sysRegion != null){
+                                                            czrk.setVillage(sysRegion.getName());
+                                                            czrk.setVillageId(sysRegion.getAreaId());
+                                                        }
+                                                    }else if (sysRegions.size() > 1){
+                                                        for (SysRegion sysRegion : sysRegions) {
+                                                            if (sysRegion != null){
+                                                                Long pid = sysRegion.getPid();
+                                                                Long villageTownsId = czrk.getVillageTownsId();
+                                                                if (villageTownsId != null && villageTownsId.equals(pid)){
+                                                                    //说明是这个镇下面的村
+                                                                    czrk.setVillage(sysRegion.getName());
+                                                                    czrk.setVillageId(sysRegion.getAreaId());
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                    if (split.length == 2){
+                                        //说明是村
+                                         String deptName = sysDept.getDeptName();
+                                            //村名称
+                                            if (StringUtils.isNotBlank(deptName)){
+                                                //去china_area表中查询对应数据
+                                                List<SysRegion> sysRegions = sysRegionMapper.selectSysRegionByNameLike(deptName);
+                                                if (sysRegions.size() == 1){
+                                                    SysRegion sysRegion = sysRegions.get(0);
+                                                    if (sysRegion != null){
+                                                        czrk.setVillage(sysRegion.getName());
+                                                        czrk.setVillageId(sysRegion.getAreaId());
+                                                    }
+                                                }else if (sysRegions.size() > 1){
+                                                    for (SysRegion sysRegion : sysRegions) {
+                                                        if (sysRegion != null){
+                                                            Long pid = sysRegion.getPid();
+                                                            Long villageTownsId = czrk.getVillageTownsId();
+                                                            if (villageTownsId != null && villageTownsId.equals(pid)){
+                                                                //说明是这个镇下面的村
+                                                                czrk.setVillage(sysRegion.getName());
+                                                                czrk.setVillageId(sysRegion.getAreaId());
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+
+
+                                    }
+                                }
+                            }
+                        }
+
+                        //村名称
+                        String village = czrk.getVillage();
+                        Long villageId = czrk.getVillageId();
+                        String idCard = czrk.getIdCard();
+                        if (StringUtils.isNotBlank(village)){
+                            Czrk czrkNew = new Czrk();
+                            czrkNew.setId(czrk.getId());
+                            czrkNew.setVillageId(villageId);
+                            czrkNew.setVillage(village);
+                            czrkMapper.updateCzrk(czrkNew);
+                            System.out.println("更新编号"+czrk.getId()+village);
+                        }
+                        if (StringUtils.isNotBlank(village) && StringUtils.isNotBlank(idCard)){
+                            //更新czrk_jzdz
+                            CzrkJzdz czrkJzdz = new CzrkJzdz();
+                            czrkJzdz.setVillage(village);
+                            czrkJzdz.setVillageId(villageId);
+                            czrkJzdz.setIdCard(idCard);
+                            czrkJzdzMapper.updateByCzrkId(czrkJzdz);
+                        }else {
+                            System.out.println(czrk.getId()+"身份证号码不存在,没有更新czrk_jzdz");
+                        }
+                    }
+                }
+            }
+            System.out.println("更新完成");
+        }
+        return AjaxResult.success();
+    }
+
+    /**
+     * 解析地址
+     * @author lin
+     * @param address
+     * @return
+     */
+    public static String addressResolution(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);*/
+            village=m.group("village");
+             result = village == null ? "" : village.trim();
+        }
+        return result;
+    }
+
+    public static void main(String[] args) {
+
+        String r = "1";
+        String[] split = r.split(",");
+        System.out.println(split.length);
+    }
 }

+ 8 - 0
boman-web-core/src/main/java/com/boman/web/core/mapper/CzrkMapper.java

@@ -1,6 +1,7 @@
 package com.boman.web.core.mapper;
 
 import com.boman.domain.Czrk;
+import com.boman.domain.SysDept;
 import com.boman.domain.VaccineInfoOperation;
 import org.apache.ibatis.annotations.Param;
 import org.checkerframework.checker.units.qual.C;
@@ -111,6 +112,13 @@ public interface CzrkMapper {
     int countHj(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("type") int type, @Param("areaId") Long areaId);
 
     int countAll();
+    //分页查询
+  List<Czrk>  selectCzrkListByPage(@Param("startNum") int startNum, @Param("endNum") int endNum);
+
+
+  //查询部门表数据
+  SysDept selectDeptNameById(@Param("id")Long id);
+
     int countHj1(@Param("deptIdList") List<Long> deptIdList);
     int countCz1(@Param("deptIdList") List<Long> deptIdList);
 

+ 2 - 0
boman-web-core/src/main/java/com/boman/web/core/mapper/SysRegionMapper.java

@@ -28,4 +28,6 @@ public interface SysRegionMapper {
     List<SysRegion> selectSysRegion(SysRegion sysRegion);
 
     List<SysRegion> selectSysRegionByName(@Param("name")String name);
+
+    List<SysRegion> selectSysRegionByNameLike(@Param("name")String name);
 }

+ 27 - 0
boman-web-core/src/main/resources/mapper/CzrkMapper.xml

@@ -60,6 +60,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="nowIn"    column="now_in_jzdz"    />
     </resultMap>
 
+
+    <resultMap type="com.boman.domain.SysDept" id="SysDeptResult">
+        <id     property="id"     column="id"     />
+        <result property="parentId"   column="parent_id"   />
+        <result property="ancestors"  column="ancestors"   />
+        <result property="deptName"   column="dept_name"   />
+        <result property="orderNum"   column="order_num"   />
+        <result property="leader"     column="leader"      />
+        <result property="phone"      column="phone"       />
+        <result property="email"      column="email"       />
+        <result property="status"     column="status"      />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="parentName" column="parent_name" />
+        <result property="num" column="num" />
+        <result property="createBy"   column="create_by"   />
+        <result property="createTime" column="create_time" />
+        <result property="updateBy"   column="update_by"   />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
     <sql id="selectCzrkVo">
         select id, user_name, gender, age, birthday,dept_id, id_card, phone_num, code, house_type, rlr, rl_time, yhzgx
              , work_unit, province_id, province, city_id, city, region_id, region, village_towns_id, village_towns
@@ -842,5 +862,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select count(1) from czrk where is_del = '否';
     </select>
 
+    <select id="selectCzrkListByPage" parameterType="Integer" resultMap="CzrkResult">
+        select * from czrk where village_id = '' and  village_towns_id != '' and dept_id != 1 limit   #{startNum}, #{endNum}
+    </select>
+
 
+    <select id="selectDeptNameById" parameterType="Integer" resultMap="SysDeptResult">
+        select *  from sys_dept where id = #{id}
+    </select>
 </mapper>

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

@@ -22,4 +22,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select area_id,name,pid,sort from china_area where name = #{name}
     </select>
 
+    <select id="selectSysRegionByNameLike" parameterType="string" resultMap="SysRegionResult">
+        select area_id,name,pid from china_area where name like concat('%', #{name}, '%') and pid like '%340882%'
+    </select>
+
 </mapper>