浏览代码

导出修改和统计功能

LIVE_YE 3 年之前
父节点
当前提交
4007f32f35

+ 8 - 0
boman-api/boman-api-system/src/main/java/com/boman/system/api/RemoteDeptService.java

@@ -43,5 +43,13 @@ public interface RemoteDeptService {
      */
      */
     @GetMapping("/dept/selectByDeptName/{deptName}")
     @GetMapping("/dept/selectByDeptName/{deptName}")
     List<SysDept> selectByDeptName(@PathVariable("deptName") String deptName);
     List<SysDept> selectByDeptName(@PathVariable("deptName") String deptName);
+
+    /**
+     * 根据区划id去找部门id(只适用于村级以上的部门查询)
+     * @param areaId
+     * @return
+     */
+    @GetMapping("/dept/selectByAreaId/{areaId}")
+    List<SysDept> selectByAreaId(@PathVariable("areaId") String areaId);
 }
 }
 
 

+ 1 - 1
boman-api/boman-domain/src/main/java/com/boman/domain/Czrk.java

@@ -51,7 +51,7 @@ public class Czrk extends BaseEntity{
     /**
     /**
      * 年龄
      * 年龄
      */
      */
-    //@Excel(name = "年龄")
+    @Excel(name = "年龄")
     private Integer age;
     private Integer age;
 
 
     /**
     /**

+ 11 - 0
boman-modules/boman-system/src/main/java/com/boman/system/controller/SysDeptController.java

@@ -90,6 +90,17 @@ public class SysDeptController extends BaseController
         return deptService.listChildrenDepts(deptId);
         return deptService.listChildrenDepts(deptId);
     }
     }
 
 
+
+    /**
+     * 根据区划id去找部门id(只适用于村级以上的部门查询)
+     * @param areaId
+     * @return
+     */
+    @GetMapping("/selectByAreaId/{areaId}")
+    public List<SysDept> selectByAreaId(@PathVariable("areaId") String areaId) {
+        return deptService.selectByAreaId(areaId);
+    }
+
     /**
     /**
      * 功能描述: 根据deptId查找子类,不递归
      * 功能描述: 根据deptId查找子类,不递归
      *
      *

+ 2 - 0
boman-modules/boman-system/src/main/java/com/boman/system/mapper/SysDeptMapper.java

@@ -144,4 +144,6 @@ public interface SysDeptMapper
      * @return com.boman.domain.SysDept
      * @return com.boman.domain.SysDept
      */
      */
     SysDept getParentById(Long parentId);
     SysDept getParentById(Long parentId);
+
+    List<SysDept> selectByAreaId(String areaId);
 }
 }

+ 2 - 0
boman-modules/boman-system/src/main/java/com/boman/system/service/ISysDeptService.java

@@ -151,4 +151,6 @@ public interface ISysDeptService
     SysDept getParentById(Long parentId);
     SysDept getParentById(Long parentId);
 
 
     List<SysDept> listTowns(Long deptId);
     List<SysDept> listTowns(Long deptId);
+
+    List<SysDept> selectByAreaId(String areaId);
 }
 }

+ 5 - 0
boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysDeptServiceImpl.java

@@ -587,4 +587,9 @@ public class SysDeptServiceImpl implements ISysDeptService {
 
 
         return townsDepts;
         return townsDepts;
     }
     }
+
+    @Override
+    public List<SysDept> selectByAreaId(String areaId) {
+        return deptMapper.selectByAreaId(areaId);
+    }
 }
 }

+ 4 - 0
boman-modules/boman-system/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -195,5 +195,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<include refid="selectDeptVo"/>
 		<include refid="selectDeptVo"/>
 		where d.id = #{parentId}
 		where d.id = #{parentId}
 	</select>
 	</select>
+    <select id="selectByAreaId" resultMap="SysDeptResult">
+		<include refid="selectDeptVo"/>
+		where d.area_id = #{areaId}
+	</select>
 
 
 </mapper> 
 </mapper> 

+ 11 - 0
boman-web-core/src/main/java/com/boman/web/core/controller/TaskController.java

@@ -7,6 +7,9 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 
 
@@ -16,6 +19,8 @@ import javax.annotation.Resource;
  */
  */
 @Configuration      //1.主要用于标记配置类,兼备Component的效果。
 @Configuration      //1.主要用于标记配置类,兼备Component的效果。
 @EnableScheduling   // 2.开启定时任务
 @EnableScheduling   // 2.开启定时任务
+@RestController
+@RequestMapping("/task")
 public class TaskController {
 public class TaskController {
     @Resource
     @Resource
     private TaskService taskService;
     private TaskService taskService;
@@ -28,4 +33,10 @@ public class TaskController {
         taskService.configureTasks();
         taskService.configureTasks();
         System.out.println(DateUtils.getNowDate() +"定时任务结束");
         System.out.println(DateUtils.getNowDate() +"定时任务结束");
     }
     }
+
+    @GetMapping("/execute")
+    private void execute() {
+        taskService.execute();
+    }
+
 }
 }

+ 618 - 7
boman-web-core/src/main/java/com/boman/web/core/service/TaskService.java

@@ -1,26 +1,43 @@
 package com.boman.web.core.service;
 package com.boman.web.core.service;
 
 
 
 
-
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
 import com.boman.common.core.utils.DateUtils;
 import com.boman.common.core.utils.DateUtils;
-import com.boman.common.core.utils.SecurityUtils;
+import com.boman.common.core.utils.StringUtils;
+import com.boman.common.core.utils.number.NumberUtils;
+import com.boman.common.core.utils.obj.ObjectUtils;
+import com.boman.common.redis.service.RedisService;
+import com.boman.common.security.service.TokenService;
+import com.boman.domain.Czrk;
+import com.boman.domain.CzrkJzdz;
+import com.boman.domain.SysDept;
 import com.boman.domain.SysUser;
 import com.boman.domain.SysUser;
-import com.boman.domain.dto.AjaxResult;
 import com.boman.domain.dto.FormDataDto;
 import com.boman.domain.dto.FormDataDto;
+import com.boman.system.api.RemoteDeptService;
 import com.boman.system.api.RemoteUserService;
 import com.boman.system.api.RemoteUserService;
+import com.boman.web.core.mapper.CzrkMapper;
+import com.boman.web.core.mapper.GridInfoMapper;
 import com.boman.web.core.service.common.ICommonService;
 import com.boman.web.core.service.common.ICommonService;
-import com.boman.web.core.utils.AuthUtils;
+import com.boman.web.core.service.czrk.CzrkServiceImpl;
+import com.boman.web.core.service.czrk.ICzrkJzdzService;
+import com.boman.web.core.service.ip.IpTimesService;
+import org.apache.commons.lang3.BooleanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
-import springfox.documentation.spring.web.json.Json;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 
+import static com.boman.common.core.utils.obj.ObjectUtils.isEmpty;
+import static com.boman.common.core.utils.obj.ObjectUtils.map;
+import static com.boman.common.redis.RedisKey.STS_CZRK_;
 import static com.boman.domain.constant.AttendanceConst.*;
 import static com.boman.domain.constant.AttendanceConst.*;
-import static com.boman.domain.constant.AttendanceConst.ATTENDANCE_DEPT_ID;
 
 
 
 
 /**
 /**
@@ -29,6 +46,26 @@ import static com.boman.domain.constant.AttendanceConst.ATTENDANCE_DEPT_ID;
  */
  */
 @Component
 @Component
 public class TaskService {
 public class TaskService {
+
+    @Autowired
+    private CzrkMapper czrkMapper;
+    @Resource
+    private RemoteDeptService remoteDeptService;
+    @Resource
+    private RedisService redisService;
+    @Resource
+    private ICzrkJzdzService czrkJzdzService;
+
+    @Resource
+    private GridInfoMapper gridInfoMapper;
+    @Resource
+    private IpTimesService ipTimesService;
+    @Resource
+    private CzrkServiceImpl czrkServiceImpl;
+
+    @Autowired
+    private TokenService tokenService;
+
     @Resource
     @Resource
     private TableServiceCmdService tableServiceCmdService;
     private TableServiceCmdService tableServiceCmdService;
 
 
@@ -83,4 +120,578 @@ public class TaskService {
             }
             }
         }
         }
     }
     }
+
+    /***
+     * 定时执行首页数据任务(每天凌晨1点执行)
+     * (cron = "0 0 1 * * ?")
+     */
+    @Scheduled(cron = "0 0 1 * * ?")
+    public void execute() {
+        //将每个deptId(潜山市,乡镇,村)的首页都存入redis
+        JSONObject results = new JSONObject(16);
+        JSONObject resultz = new JSONObject(16);
+        JSONObject resultc = new JSONObject(16);
+        String startTime = DateUtils.getTodayStartStr();
+        String endTime = DateUtils.getTodayEndStr();
+
+        Timestamp s = Timestamp.valueOf(startTime);
+        Timestamp e = Timestamp.valueOf(endTime);
+        //潜山市
+        List<SysDept> allDepts = remoteDeptService.listChildrenDepts(1L);
+        results.put("dqdw", "潜山市");
+        //所有乡镇集合
+        List<SysDept> townsDepts = new ArrayList<>(16);
+
+        for (SysDept allDept : allDepts) {
+            if (isEmpty(allDept.getParentId())){
+                continue;
+            }
+            if (allDept.getParentId() == (1L)) {
+                townsDepts.add(allDept);
+            }
+        }
+        results.put("zhen", townsDepts.size()); // 镇的数量
+
+        //所有村集合
+        List<SysDept> cunDepts = new ArrayList<>(16);
+        for (SysDept townsDept : townsDepts) {
+            for (SysDept allDept : allDepts) {
+                if (isEmpty(allDept.getParentId())) continue;
+                if (townsDept.getId().equals(allDept.getParentId())) {
+                    cunDepts.add(allDept);
+                }
+            }
+        }
+        results.put("cun", isEmpty(cunDepts) ? 0 : cunDepts.size());
+        //查找潜山市户籍人口总数
+        List<Czrk> czrkList = czrkMapper.getAllCzrkRegionId("340882000000");
+        if(czrkList==null){
+            czrkList = new ArrayList<>();
+        }
+        //潜山市户籍人口总数
+        int hjzrs = czrkList.size();
+
+        //潜山市 户籍人口今日新增
+        int hjxz = 0;
+        //潜山市 户籍人口今日减少
+        int hjjs = 0;
+
+        //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
+        for (Czrk czrk : czrkList) {
+            if("Y".equals(czrk.getIsDel())){
+                hjzrs--;
+            }
+            //判断是否是在今天操作的人员信息
+            if(s.before(czrk.getCreateTime()) && czrk.getCreateTime().before(e)){
+                if("Y".equals(czrk.getIsDel())){
+                    hjjs++;
+                }else{
+                    hjxz++;
+                }
+            }
+        }
+        //潜山市总人数
+        results.put("hjzrs", hjzrs);
+        //潜山市新增
+        results.put("hjxz", hjxz);
+        //潜山市减少
+        results.put("hjjs", hjjs);
+
+        results.put("hjbfb", NumberUtils.percent(hjzrs, hjzrs));
+
+        //查找潜山市常驻人口信息
+        List<CzrkJzdz> czrkJzdzList = czrkJzdzService.selectCzrkJzdzListByRegionId("340882000000");
+        if(czrkJzdzList==null){
+            czrkJzdzList = new ArrayList<>();
+        }
+        //潜山市居住人口总数
+        int czzrs = czrkJzdzList.size();
+
+        //潜山市居住人口今日新增
+        int czxz = 0;
+        //潜山市居住人口今日减少
+        int czjs = 0;
+
+        //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
+        for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+            if("N".equals(czrkJzdz.getStatus())){
+                czzrs--;
+            }
+            //判断是否是在今天操作的人员信息
+            if(s.before(czrkJzdz.getCreateTime()) && czrkJzdz.getCreateTime().before(e)){
+                if("N".equals(czrkJzdz.getStatus())){
+                    czjs++;
+                }else{
+                    czxz++;
+                }
+            }
+        }
+        //潜山市总人数
+        results.put("czzrs", czzrs);
+        //潜山市新增
+        results.put("czxz", czxz);
+        //潜山市减少
+        results.put("czjs", czjs);
+        results.put("czbfb", NumberUtils.percent(czzrs, czzrs));
+
+
+        /*List<Long> deptIdList = null;
+        int zrs = czrkMapper.countAll(); // 总人数
+        int hjzrs = czrkMapper.countHj1(deptIdList); // 该镇户籍人口总数
+        //潜山市总人数
+        results.put("hjzrs", hjzrs);
+        int hjxz = czrkMapper.countByHjXz1(startTime, endTime, deptIdList); // 该镇 户籍人口今日新增
+        //潜山市新增
+        results.put("hjxz", hjxz);
+        int hjjs = czrkMapper.countByHjJs1(startTime, endTime, deptIdList); // 该镇 户籍人口今日减少
+        results.put("hjjs", hjjs);
+        results.put("hjbfb", NumberUtils.percent(hjzrs, zrs));*/
+
+        /*int czzrs = czrkMapper.countCz1(deptIdList);  // 该镇常住人口总数
+        results.put("czzrs", czzrs);
+        int czxz = czrkMapper.countByCzXz1(startTime, endTime, deptIdList); // 该镇 常住人口今日新增
+        int czjs = czrkMapper.countByCzJs1(startTime, endTime, deptIdList); // 该镇 常住人口今日减少
+        results.put("czxz", czxz);
+        results.put("czjs", czjs);
+        results.put("czbfb", NumberUtils.percent(czzrs, zrs));*/
+
+        // 以各个镇为单位单独处理 townsDepts
+        ArrayList<JSONObject> towsDataList = new ArrayList<>(20);
+
+        //czrkList  czrkJzdzList
+        for (SysDept townsDept : townsDepts) {
+            JSONObject townsResult = new JSONObject(16);
+            townSts(townsResult, townsDept, czrkList, czrkJzdzList,hjzrs, czzrs);
+            towsDataList.add(townsResult);
+        }
+
+        results.put("townDatas", towsDataList);
+//                redisService.setCacheObject(packRedisKey(deptId + ""), result, 1L, TimeUnit.DAYS);
+        setIntoRedis(packRedisKey(1L + ""), results);
+        //QIANSHANSHI = result;
+
+
+        //镇数据存入redis
+        for (SysDept townsDept : townsDepts) {
+            townSts(resultz, townsDept, czrkList, czrkJzdzList,hjzrs, czzrs);
+//                redisService.setCacheObject(packRedisKey("town:" + deptId), result, 1L, TimeUnit.DAYS);
+            setIntoRedis(packRedisKey("town:" + townsDept.getId()), resultz);
+        }
+
+        //村数据存入redis
+        for (SysDept cunDept : cunDepts) {
+            Long deptId = cunDept.getId();
+            String deptName = cunDept.getDeptName();
+            String areaId = cunDept.getAreaId();
+            resultc.put("dqdw", deptName);
+
+            //查找村的数据
+            if(czrkList==null){
+                czrkList = new ArrayList<>();
+            }
+            //该村户籍人口总数
+            int hjzrsc = 0;
+
+            //该村 户籍人口今日新增
+            int hjxzc = 0;
+            //该村 户籍人口今日减少
+            int hjjsc = 0;
+
+            //循环所有人判断当前总人数,该村 户籍人口今日新增,该镇 户籍人口今日减少
+            for (Czrk czrk : czrkList) {
+                if(StringUtils.isNotEmpty(czrk.getVillageId()) && czrk.getVillageId().equals(areaId)){
+                    if("N".equals(czrk.getIsDel())){
+                        hjzrsc++;
+                    }
+                    //判断是否是在今天操作的人员信息
+                    if(s.before(czrk.getCreateTime()) && czrk.getCreateTime().before(e)){
+                        if("Y".equals(czrk.getIsDel())){
+                            hjjsc++;
+                        }else{
+                            hjxzc++;
+                        }
+                    }
+                }
+            }
+            resultc.put("hjzrs", hjzrsc);
+            resultc.put("hjxz", hjxzc);
+            resultc.put("hjjs", hjjsc);
+            resultc.put("hjbfb", NumberUtils.percent(hjzrs, czzrs));
+
+
+            if(czrkJzdzList==null){
+                czrkJzdzList = new ArrayList<>();
+            }
+            //该镇户籍人口总数
+            int czzrsc = 0;
+
+            //该镇 户籍人口今日新增
+            int czxzc = 0;
+            //该镇 户籍人口今日减少
+            int czjsc = 0;
+
+            //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
+            for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+                if(StringUtils.isNotEmpty(czrkJzdz.getVillageId()) && czrkJzdz.getVillage().equals(areaId)){
+                    if("Y".equals(czrkJzdz.getStatus())){
+                        czzrsc++;
+                    }
+                    //判断是否是在今天操作的人员信息
+                    if(s.before(czrkJzdz.getCreateTime()) && czrkJzdz.getCreateTime().before(e)){
+                        if("N".equals(czrkJzdz.getStatus())){
+                            czjsc++;
+                        }else{
+                            czxzc++;
+                        }
+                    }
+                }
+
+            }
+            resultc.put("czzrs", czzrsc);
+            resultc.put("czxz", czxzc);
+            resultc.put("czjs", czjsc);
+            resultc.put("czbfb", NumberUtils.percent(czzrs, czzrs));
+
+
+
+            /*List<SysDept> depts = remoteDeptService.listChildrenDepts(deptId);
+            resultc.put("dqdw", deptName);
+            List<Long> cdeptIdList = map(depts, SysDept::getId);
+            int zrsc = czrkMapper.countAll(); // 总人数
+            int hjzrsc = czrkMapper.countHj1(cdeptIdList); // 该镇户籍人口总数
+            resultc.put("hjzrs", hjzrsc);
+            int hjxzc = czrkMapper.countByHjXz1(startTime, endTime, cdeptIdList); // 该镇 户籍人口今日新增
+            resultc.put("hjxz", hjxzc);
+            int hjjsc = czrkMapper.countByHjJs1(startTime, endTime, cdeptIdList); // 该镇 户籍人口今日减少
+            resultc.put("hjjs", hjjsc);
+            resultc.put("hjbfb", NumberUtils.percent(hjzrs, zrs));
+
+            int czzrsc = czrkMapper.countCz1(cdeptIdList);  // 该镇常住人口总数
+            resultc.put("czzrs", czzrsc);
+            int czxzc = czrkMapper.countByCzXz1(startTime, endTime, cdeptIdList); // 该镇 常住人口今日新增
+            int czjsc = czrkMapper.countByCzJs1(startTime, endTime, cdeptIdList); // 该镇 常住人口今日减少
+            resultc.put("czxz", czxzc);
+            resultc.put("czjs", czjsc);
+            resultc.put("czbfb", NumberUtils.percent(czzrsc, zrsc));*/
+            setIntoRedis(packRedisKey("village:" + deptId), resultc);
+        }
+
+
+        System.out.println("定时任务");
+    }
+
+    private void townSts(JSONObject result, SysDept sysDept, List<Czrk> czrkList, List<CzrkJzdz> czrkJzdzList ,int shjzrs, int sczzrs) {
+        String startTime = DateUtils.getTodayStartStr();
+        String endTime = DateUtils.getTodayEndStr();
+        Timestamp s = Timestamp.valueOf(startTime);
+        Timestamp e = Timestamp.valueOf(endTime);
+        Long deptId = sysDept.getId();
+        String deptName = sysDept.getDeptName();
+        String areaId = sysDept.getAreaId();
+        // 乡镇以下的所有部门
+        List<SysDept> depts = remoteDeptService.listChildrenDepts(deptId);
+        List<SysDept> cunDepts = new ArrayList<>(16);
+        for (SysDept dept : depts) {
+            if (isEmpty(dept.getParentId())) continue;
+            if (deptId.equals(dept.getParentId())) {
+                cunDepts.add(dept);
+            }
+        }
+        result.put("cun", isEmpty(cunDepts) ? 0 : cunDepts.size());
+
+        List<SysDept> zuDept = new ArrayList<>(16);
+        for (SysDept cunDept : cunDepts) {
+            for (SysDept dept : depts) {
+                if (cunDept.getId().equals(dept.getParentId())) {
+                    zuDept.add(dept);
+                }
+            }
+        }
+
+        result.put("zu", isEmpty(zuDept) ? 0 : zuDept.size());
+
+        /** **/
+        /*int zrs = 0; // 总人数
+        if (BooleanUtils.isTrue(percent)) {
+            zrs = czrkMapper.countAll();
+        }*/
+
+        if(czrkList==null){
+            czrkList = new ArrayList<>();
+        }
+        //该镇户籍人口总数
+        int hjzrs = 0;
+
+        //该镇 户籍人口今日新增
+        int hjxz = 0;
+        //该镇 户籍人口今日减少
+        int hjjs = 0;
+
+        //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
+        for (Czrk czrk : czrkList) {
+            if(StringUtils.isNotEmpty(czrk.getVillageTownsId()) && String.valueOf(czrk.getVillageTownsId()).equals(areaId)){
+                if("N".equals(czrk.getIsDel())){
+                    hjzrs++;
+                }
+                //判断是否是在今天操作的人员信息
+                if(s.before(czrk.getCreateTime()) && czrk.getCreateTime().before(e)){
+                    if("Y".equals(czrk.getIsDel())){
+                        hjjs++;
+                    }else{
+                        hjxz++;
+                    }
+                }
+            }
+        }
+        result.put("hjzrs", hjzrs);
+        result.put("hjxz", hjxz);
+        result.put("hjjs", hjjs);
+        result.put("hjbfb", NumberUtils.percent(hjzrs, shjzrs));
+
+
+        if(czrkJzdzList==null){
+            czrkJzdzList = new ArrayList<>();
+        }
+        //该镇户籍人口总数
+        int czzrs = 0;
+
+        //该镇 户籍人口今日新增
+        int czxz = 0;
+        //该镇 户籍人口今日减少
+        int czjs = 0;
+
+        //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
+        for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+            if(StringUtils.isNotEmpty(czrkJzdz.getTownId()) && czrkJzdz.getTownId().equals(areaId)){
+                if("Y".equals(czrkJzdz.getStatus())){
+                    czzrs++;
+                }
+                //判断是否是在今天操作的人员信息
+                if(s.before(czrkJzdz.getCreateTime()) && czrkJzdz.getCreateTime().before(e)){
+                    if("N".equals(czrkJzdz.getStatus())){
+                        czjs++;
+                    }else{
+                        czxz++;
+                    }
+                }
+            }
+
+        }
+        result.put("czzrs", czzrs);
+        result.put("czxz", czxz);
+        result.put("czjs", czjs);
+        result.put("czbfb", NumberUtils.percent(czzrs, sczzrs));
+
+        /*int czzrs = czrkMapper.countCz1(deptIdList);  // 该镇常住人口总数
+        result.put("czzrs", czzrs);
+        int czxz = czrkMapper.countByCzXz1(startTime, endTime, deptIdList); // 该镇 常住人口今日新增
+        int czjs = czrkMapper.countByCzJs1(startTime, endTime, deptIdList); // 该镇 常住人口今日减少
+        result.put("czxz", czxz);
+        result.put("czjs", czjs);
+        result.put("czbfb", NumberUtils.percent(czzrs, zrs));*/
+
+        result.put("zhen", deptName);
+        /** **/
+
+
+        // 常住人口信息
+//        int type = 4; // 乡镇
+//        int czzrs = czrkMapper.countCzrk(type, areaId); // 常住人口
+//        result.put("czzrs", czzrs);
+//
+//        int zrs = 0;
+//        // 常住人口占总人口的百分比
+//        if (BooleanUtils.isTrue(percent)) {
+//             // 查全部
+//            zrs = czrkMapper.countCzrk(type, areaId);
+//            String czbfb = NumberUtils.percent(czzrs, zrs);
+//            result.put("czbfb", czbfb);
+//        }
+//
+////        type = 4;
+//        int czxz = czrkMapper.countByCzXz(startTime, endTime, type, areaId);
+//        int czjs = czrkMapper.countByCzJs(startTime, endTime, type, areaId);
+//        result.put("czxz", czxz);
+//        result.put("czjs", czjs);
+//
+//        result.put("zhen", deptName);
+//
+//        // 户籍人口信息
+//        int hjxz = czrkMapper.countByHjXz(startTime, endTime, type, areaId); // 新增
+//        int hjjs = czrkMapper.countByHjJs(startTime, endTime, type, areaId);// 减少
+//        result.put("hjxz", hjxz);
+//        result.put("hjjs", hjjs);
+//
+//        // 户籍总人数
+//        int hjzrs = czrkMapper.countHj(startTime, endTime, type, areaId);
+////                int hjzrs= isEmpty(hjzrsList) ? 0 : hjzrsList.size();
+//        result.put("hjzrs", hjzrs);
+//        String hjbfb = NumberUtils.percent(hjzrs, zrs);
+//        result.put("hjbfb", hjbfb);
+    }
+
+    /*private void townSts(JSONObject result, SysDept sysDept, boolean percent) {
+        String startTime = DateUtils.getTodayStartStr();
+        String endTime = DateUtils.getTodayEndStr();
+        Timestamp s = Timestamp.valueOf(startTime);
+        Timestamp e = Timestamp.valueOf(endTime);
+
+
+        // 乡镇以下的所有部门
+        List<SysDept> depts = remoteDeptService.listChildrenDepts(deptId);
+        List<SysDept> cunDepts = new ArrayList<>(16);
+        for (SysDept dept : depts) {
+            if (isEmpty(dept.getParentId())) continue;
+            if (deptId.equals(dept.getParentId())) {
+                cunDepts.add(dept);
+            }
+        }
+        result.put("cun", isEmpty(cunDepts) ? 0 : cunDepts.size());
+
+        List<SysDept> zuDept = new ArrayList<>(16);
+        for (SysDept cunDept : cunDepts) {
+            for (SysDept dept : depts) {
+                if (cunDept.getId().equals(dept.getParentId())) {
+                    zuDept.add(dept);
+                }
+            }
+        }
+
+        result.put("zu", isEmpty(zuDept) ? 0 : zuDept.size());
+
+        *//** **//*
+        int zrs = 0; // 总人数
+        if (BooleanUtils.isTrue(percent)) {
+            zrs = czrkMapper.countAll();
+        }
+
+        List<Long> deptIdList = map(depts, SysDept::getAreaId);
+        //查询当前乡镇下的户籍总人数
+        List<Czrk> czrkList = czrkMapper.selectCzrkListByDeptId(deptIdList);
+        if(czrkList==null){
+            czrkList = new ArrayList<>();
+        }
+        //该镇户籍人口总数
+        int hjzrs = czrkList.size();
+
+        //该镇 户籍人口今日新增
+        int hjxz = 0;
+        //该镇 户籍人口今日减少
+        int hjjs = 0;
+
+        //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
+        for (Czrk czrk : czrkList) {
+            if("Y".equals(czrk.getIsDel())){
+                hjzrs--;
+            }
+            //判断是否是在今天操作的人员信息
+            if(s.before(czrk.getCreateTime()) && czrk.getCreateTime().before(e)){
+                if("Y".equals(czrk.getIsDel())){
+                    hjjs++;
+                }else{
+                    hjxz++;
+                }
+            }
+        }
+        result.put("hjzrs", czrkList.size());
+        result.put("hjxz", hjxz);
+        result.put("hjjs", hjjs);
+        result.put("hjbfb", NumberUtils.percent(hjzrs, zrs));
+
+        *//*List<Long> deptIdList = map(depts, SysDept::getId);
+        int hjzrs = czrkMapper.countHj1(deptIdList); // 该镇户籍人口总数
+        result.put("hjzrs", hjzrs);
+        int hjxz = czrkMapper.countByHjXz1(startTime, endTime, deptIdList); // 该镇 户籍人口今日新增
+        result.put("hjxz", hjxz);
+        int hjjs = czrkMapper.countByHjJs1(startTime, endTime, deptIdList); // 该镇 户籍人口今日减少
+        result.put("hjjs", hjjs);
+        result.put("hjbfb", NumberUtils.percent(hjzrs, zrs));*//*
+
+
+        List<CzrkJzdz> czrkJzdzList = czrkJzdzService.selectCzrkJzdzListByDeptId(deptIdList);
+        if(czrkJzdzList==null){
+            czrkJzdzList = new ArrayList<>();
+        }
+        //该镇户籍人口总数
+        int czzrs = czrkJzdzList.size();
+
+        //该镇 户籍人口今日新增
+        int czxz = 0;
+        //该镇 户籍人口今日减少
+        int czjs = 0;
+
+        //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
+        for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+            if("Y".equals(czrkJzdz.getStatus())){
+                czzrs--;
+            }
+            //判断是否是在今天操作的人员信息
+            if(s.before(czrkJzdz.getCreateTime()) && czrkJzdz.getCreateTime().before(e)){
+                if("Y".equals(czrkJzdz.getStatus())){
+                    czjs++;
+                }else{
+                    czxz++;
+                }
+            }
+        }
+        result.put("czzrs", czzrs);
+        result.put("czxz", czxz);
+        result.put("czjs", czjs);
+        result.put("czbfb", NumberUtils.percent(czzrs, zrs));
+
+        *//*int czzrs = czrkMapper.countCz1(deptIdList);  // 该镇常住人口总数
+        result.put("czzrs", czzrs);
+        int czxz = czrkMapper.countByCzXz1(startTime, endTime, deptIdList); // 该镇 常住人口今日新增
+        int czjs = czrkMapper.countByCzJs1(startTime, endTime, deptIdList); // 该镇 常住人口今日减少
+        result.put("czxz", czxz);
+        result.put("czjs", czjs);
+        result.put("czbfb", NumberUtils.percent(czzrs, zrs));*//*
+
+        result.put("zhen", deptName);
+        *//** **//*
+
+
+        // 常住人口信息
+//        int type = 4; // 乡镇
+//        int czzrs = czrkMapper.countCzrk(type, areaId); // 常住人口
+//        result.put("czzrs", czzrs);
+//
+//        int zrs = 0;
+//        // 常住人口占总人口的百分比
+//        if (BooleanUtils.isTrue(percent)) {
+//             // 查全部
+//            zrs = czrkMapper.countCzrk(type, areaId);
+//            String czbfb = NumberUtils.percent(czzrs, zrs);
+//            result.put("czbfb", czbfb);
+//        }
+//
+////        type = 4;
+//        int czxz = czrkMapper.countByCzXz(startTime, endTime, type, areaId);
+//        int czjs = czrkMapper.countByCzJs(startTime, endTime, type, areaId);
+//        result.put("czxz", czxz);
+//        result.put("czjs", czjs);
+//
+//        result.put("zhen", deptName);
+//
+//        // 户籍人口信息
+//        int hjxz = czrkMapper.countByHjXz(startTime, endTime, type, areaId); // 新增
+//        int hjjs = czrkMapper.countByHjJs(startTime, endTime, type, areaId);// 减少
+//        result.put("hjxz", hjxz);
+//        result.put("hjjs", hjjs);
+//
+//        // 户籍总人数
+//        int hjzrs = czrkMapper.countHj(startTime, endTime, type, areaId);
+////                int hjzrs= isEmpty(hjzrsList) ? 0 : hjzrsList.size();
+//        result.put("hjzrs", hjzrs);
+//        String hjbfb = NumberUtils.percent(hjzrs, zrs);
+//        result.put("hjbfb", hjbfb);
+    }*/
+
+    private void setIntoRedis(String key, Object result) {
+        redisService.setCacheObject(key, result, 1L, TimeUnit.DAYS);
+    }
+
+    private String packRedisKey(String deptId) {
+        return STS_CZRK_ + deptId + ":" + DateUtils.getDate();
+    }
 }
 }

+ 277 - 13
boman-web-core/src/main/java/com/boman/web/core/service/czrk/CzrkServiceImpl.java

@@ -422,24 +422,264 @@ public class CzrkServiceImpl implements ICzrkService {
         }
         }
 
 
         //人员信息新增成功
         //人员信息新增成功
-        /*if(childCount > 0){
-            //同步修改redis缓存数据
-            //修改潜山市总数居
-            //从redis取出潜山市数据
-            JSONObject jsonObject = redisService.getCacheObject(packRedisKey("1"));
-            //将JSONObject转为map
-            Map<String,Object> parMap =  JSONObject.parseObject(jsonObject.toJSONString(), new TypeReference<Map<String, Object>>(){});
-            //判断新增的是否是潜山市人口
-            if(czrk.getRegionId().equals("340882000000")){
+        if(childCount > 0){
+            addExtracted(czrk, czrkJzdzList);
+        }
+        return childCount > 0 ? AjaxResult.success() : AjaxResult.error();
+    }
 
 
+    private void addExtracted(Czrk czrk, List<CzrkJzdz> czrkJzdzList) {
+        //同步修改redis缓存数据
+        //修改潜山市总数居
+        //从redis取出潜山市数据
+        JSONObject jsonObjects = redisService.getCacheObject(packRedisKey("1"));
+        if (isEmpty(jsonObjects)) {
+            return;
+        }
+
+        //判断新增的是否是潜山市人口(户籍判断)
+        if(!ObjectUtils.isEmpty(czrk) && czrk.getRegionId().equals("340882000000")){
+            //总户籍人数
+            jsonObjects.put("hjzrs",(int)jsonObjects.get("hjzrs")+1);
+            //户籍新增人数
+            jsonObjects.put("hjxz",(int)jsonObjects.get("hjxz")+1);
+
+            //根据人员的乡镇区划编号去部门表里查询dept_id
+            List<SysDept> allDepts = remoteDeptService.selectByAreaId(czrk.getVillageTownsId());
+            for (SysDept allDept : allDepts) {
+                //修改镇数据
+                //从redis取出镇数据
+                JSONObject jsonObjectz = redisService.getCacheObject(packRedisKey("town:" + allDept.getId()));
+                //镇总户籍人数
+                jsonObjectz.put("hjzrs",(int)jsonObjectz.get("hjzrs")+1);
+                //镇户籍新增人数
+                jsonObjectz.put("hjxz",(int)jsonObjectz.get("hjxz")+1);
+                //镇户籍人数占比
+                jsonObjectz.put("hjbfb", NumberUtils.percent((int)jsonObjectz.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                setIntoRedis(packRedisKey("town:" + allDept.getId()), jsonObjectz);
+
+                //修改市数据里的乡镇数据
+                List<JSONObject> jsList = (List<JSONObject>)jsonObjects.get("townDatas");
+                for (JSONObject stringObjectMap : jsList) {
+                    if(allDept.getDeptName().equals(stringObjectMap.get("zhen"))){
+                        //镇总户籍人数
+                        stringObjectMap.put("hjzrs",(int)stringObjectMap.get("hjzrs")+1);
+                        //镇户籍新增人数
+                        stringObjectMap.put("hjxz",(int)stringObjectMap.get("hjxz")+1);
+                        //镇户籍人数占比
+                        stringObjectMap.put("hjbfb", NumberUtils.percent((int)stringObjectMap.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                    }
+                }
+            }
+            //setIntoRedis(packRedisKey(1L + ""), jsonObjects);
+
+            //查找村数据
+            //根据人员的村区划编号去部门表里查询dept_id
+            List<SysDept> allDeptC = remoteDeptService.selectByAreaId(czrk.getVillagerGroupId());
+            for (SysDept sysDept : allDeptC) {
+                JSONObject jsonObjectC = redisService.getCacheObject(packRedisKey("village:" + sysDept.getId()));
+                if (isEmpty(jsonObjectC)) {
+                    continue;
+                }
+                //村总户籍人数
+                jsonObjectC.put("hjzrs",(int)jsonObjectC.get("hjzrs")+1);
+                //村户籍新增人数
+                jsonObjectC.put("hjxz",(int)jsonObjectC.get("hjxz")+1);
+                //村户籍人数占比
+                jsonObjectC.put("hjbfb", NumberUtils.percent((int)jsonObjectC.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                setIntoRedis(packRedisKey("village:" + sysDept.getId()), jsonObjectC);
+            }
+        }
+
+        if(czrkJzdzList.size()>0){
+            for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+                if(czrkJzdz.getRegionId().equals("340882000000")){
+                    //总常驻人数
+                    jsonObjects.put("czzrs",(int)jsonObjects.get("czzrs")+1);
+                    //常驻新增人数
+                    jsonObjects.put("czxz",(int)jsonObjects.get("czxz")+1);
+
+                    //根据人员的乡镇区划编号去部门表里查询dept_id
+                    List<SysDept> cAllDepts = remoteDeptService.selectByAreaId(czrkJzdz.getTownId());
+                    for (SysDept allDept : cAllDepts) {
+                        //修改镇数据
+                        //从redis取出镇数据
+                        JSONObject cJsonObjectz = redisService.getCacheObject(packRedisKey("town:" + allDept.getId()));
+                        //镇总户籍人数
+                        cJsonObjectz.put("czzrs",(int)cJsonObjectz.get("czzrs")+1);
+                        //镇户籍新增人数
+                        cJsonObjectz.put("czxz",(int)cJsonObjectz.get("czxz")+1);
+                        //镇户籍人数占比
+                        cJsonObjectz.put("czbfb", NumberUtils.percent((int)cJsonObjectz.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                        setIntoRedis(packRedisKey("town:" + allDept.getId()), cJsonObjectz);
+
+                        //修改市数据里的乡镇数据
+                        List<JSONObject> jsList = (List<JSONObject>)jsonObjects.get("townDatas");
+                        for (JSONObject stringObjectMap : jsList) {
+                            if(allDept.getDeptName().equals(stringObjectMap.get("zhen"))){
+                                //镇总户籍人数
+                                stringObjectMap.put("czzrs",(int)stringObjectMap.get("czzrs")+1);
+                                //镇户籍新增人数
+                                stringObjectMap.put("czxz",(int)stringObjectMap.get("czxz")+1);
+                                //镇户籍人数占比
+                                stringObjectMap.put("czbfb", NumberUtils.percent((int)stringObjectMap.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                            }
+                        }
+                    }
 
 
-            }else{
 
 
+                    //查找村数据
+                    //根据人员的村区划编号去部门表里查询dept_id
+                    List<SysDept> cAllDeptC = remoteDeptService.selectByAreaId(czrkJzdz.getVillageId());
+                    for (SysDept sysDept : cAllDeptC) {
+                        JSONObject cJsonObjectC = redisService.getCacheObject(packRedisKey("village:" + sysDept.getId()));
+                        if (isEmpty(cJsonObjectC)) {
+                            continue;
+                        }
+                        //村总户籍人数
+                        cJsonObjectC.put("czzrs",(int)cJsonObjectC.get("czzrs")+1);
+                        //村户籍新增人数
+                        cJsonObjectC.put("czxz",(int)cJsonObjectC.get("czxz")+1);
+                        //村户籍人数占比
+                        cJsonObjectC.put("czbfb", NumberUtils.percent((int)cJsonObjectC.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                        setIntoRedis(packRedisKey("village:" + sysDept.getId()), cJsonObjectC);
+                    }
+                    break;
+                }
             }
             }
+        }
 
 
-        }*/
+        //将潜山市数据存入redis
+        setIntoRedis(packRedisKey(1L + ""), jsonObjects);
+
+    }
+
+
+
+    private void reduceExtracted(Czrk czrk, List<CzrkJzdz> czrkJzdzList) {
+        //同步修改redis缓存数据
+        //修改潜山市总数居
+        //从redis取出潜山市数据
+        JSONObject jsonObjects = redisService.getCacheObject(packRedisKey("1"));
+        if (isEmpty(jsonObjects)) {
+            return;
+        }
+
+        //判断新增的是否是潜山市人口(户籍判断)
+        if(!ObjectUtils.isEmpty(czrk) && czrk.getRegionId().equals("340882000000")){
+            //总户籍人数
+            jsonObjects.put("hjzrs",(int)jsonObjects.get("hjzrs")+1);
+            //户籍新增人数
+            jsonObjects.put("hjjs",(int)jsonObjects.get("hjjs")+1);
+
+            //根据人员的乡镇区划编号去部门表里查询dept_id
+            List<SysDept> allDepts = remoteDeptService.selectByAreaId(czrk.getVillageTownsId());
+            for (SysDept allDept : allDepts) {
+                //修改镇数据
+                //从redis取出镇数据
+                JSONObject jsonObjectz = redisService.getCacheObject(packRedisKey("town:" + allDept.getId()));
+                //镇总户籍人数
+                jsonObjectz.put("hjzrs",(int)jsonObjectz.get("hjzrs")+1);
+                //镇户籍新增人数
+                jsonObjectz.put("hjjs",(int)jsonObjectz.get("hjjs")+1);
+                //镇户籍人数占比
+                jsonObjectz.put("hjbfb", NumberUtils.percent((int)jsonObjectz.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                setIntoRedis(packRedisKey("town:" + allDept.getId()), jsonObjectz);
+
+                //修改市数据里的乡镇数据
+                List<JSONObject> jsList = (List<JSONObject>)jsonObjects.get("townDatas");
+                for (JSONObject stringObjectMap : jsList) {
+                    if(allDept.getDeptName().equals(stringObjectMap.get("zhen"))){
+                        //镇总户籍人数
+                        stringObjectMap.put("hjzrs",(int)stringObjectMap.get("hjzrs")+1);
+                        //镇户籍新增人数
+                        stringObjectMap.put("hjjs",(int)stringObjectMap.get("hjjs")+1);
+                        //镇户籍人数占比
+                        stringObjectMap.put("hjbfb", NumberUtils.percent((int)stringObjectMap.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                    }
+                }
+            }
+            //setIntoRedis(packRedisKey(1L + ""), jsonObjects);
+
+            //查找村数据
+            //根据人员的村区划编号去部门表里查询dept_id
+            List<SysDept> allDeptC = remoteDeptService.selectByAreaId(czrk.getVillageId());
+            for (SysDept sysDept : allDeptC) {
+                JSONObject jsonObjectC = redisService.getCacheObject(packRedisKey("village:" + sysDept.getId()));
+                if (isEmpty(jsonObjectC)) {
+                    continue;
+                }
+                //村总户籍人数
+                jsonObjectC.put("hjzrs",(int)jsonObjectC.get("hjzrs")+1);
+                //村户籍新增人数
+                jsonObjectC.put("hjjs",(int)jsonObjectC.get("hjjs")+1);
+                //村户籍人数占比
+                jsonObjectC.put("hjbfb", NumberUtils.percent((int)jsonObjectC.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                setIntoRedis(packRedisKey("village:" + sysDept.getId()), jsonObjectC);
+            }
+        }
+
+        if(czrkJzdzList.size()>0){
+            for (CzrkJzdz czrkJzdz : czrkJzdzList) {
+                if(czrkJzdz.getRegionId().equals("340882000000")){
+                    //总常驻人数
+                    jsonObjects.put("czzrs",(int)jsonObjects.get("czzrs")+1);
+                    //常驻新增人数
+                    jsonObjects.put("czjs",(int)jsonObjects.get("czjs")+1);
+
+                    //根据人员的乡镇区划编号去部门表里查询dept_id
+                    List<SysDept> cAllDepts = remoteDeptService.selectByAreaId(czrkJzdz.getTownId());
+                    for (SysDept allDept : cAllDepts) {
+                        //修改镇数据
+                        //从redis取出镇数据
+                        JSONObject cJsonObjectz = redisService.getCacheObject(packRedisKey("town:" + allDept.getId()));
+                        //镇总户籍人数
+                        cJsonObjectz.put("czzrs",(int)cJsonObjectz.get("czzrs")+1);
+                        //镇户籍新增人数
+                        cJsonObjectz.put("czjs",(int)cJsonObjectz.get("czjs")+1);
+                        //镇户籍人数占比
+                        cJsonObjectz.put("czbfb", NumberUtils.percent((int)cJsonObjectz.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                        setIntoRedis(packRedisKey("town:" + allDept.getId()), cJsonObjectz);
+
+                        //修改市数据里的乡镇数据
+                        List<JSONObject> jsList = (List<JSONObject>)jsonObjects.get("townDatas");
+                        for (JSONObject stringObjectMap : jsList) {
+                            if(allDept.getDeptName().equals(stringObjectMap.get("zhen"))){
+                                //镇总户籍人数
+                                stringObjectMap.put("czzrs",(int)stringObjectMap.get("czzrs")+1);
+                                //镇户籍新增人数
+                                stringObjectMap.put("czjs",(int)stringObjectMap.get("czjs")+1);
+                                //镇户籍人数占比
+                                stringObjectMap.put("czbfb", NumberUtils.percent((int)stringObjectMap.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                            }
+                        }
+                    }
+
+
+                    //查找村数据
+                    //根据人员的村区划编号去部门表里查询dept_id
+                    List<SysDept> cAllDeptC = remoteDeptService.selectByAreaId(czrkJzdz.getVillageId());
+                    for (SysDept sysDept : cAllDeptC) {
+                        JSONObject cJsonObjectC = redisService.getCacheObject(packRedisKey("village:" + sysDept.getId()));
+                        if (isEmpty(cJsonObjectC)) {
+                            continue;
+                        }
+                        //村总户籍人数
+                        cJsonObjectC.put("czzrs",(int)cJsonObjectC.get("czzrs")+1);
+                        //村户籍新增人数
+                        cJsonObjectC.put("czjs",(int)cJsonObjectC.get("czjs")+1);
+                        //村户籍人数占比
+                        cJsonObjectC.put("czbfb", NumberUtils.percent((int)cJsonObjectC.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                        setIntoRedis(packRedisKey("village:" + sysDept.getId()), cJsonObjectC);
+                    }
+                    break;
+                }
+            }
+        }
+
+        //将潜山市数据存入redis
+        setIntoRedis(packRedisKey(1L + ""), jsonObjects);
 
 
-        return childCount > 0 ? AjaxResult.success() : AjaxResult.error();
     }
     }
 
 
     /**
     /**
@@ -656,6 +896,9 @@ public class CzrkServiceImpl implements ICzrkService {
             czrkQianchu.setConfirmInfoUserTime(null);
             czrkQianchu.setConfirmInfoUserTime(null);
             czrkQianchu.setStatus("1");
             czrkQianchu.setStatus("1");
             czrkMapper.updateCzrk(czrkQianchu);
             czrkMapper.updateCzrk(czrkQianchu);
+
+            //迁出;
+            reduceExtracted(czrkQianchu, new ArrayList<CzrkJzdz>());
             return AjaxResult.success();
             return AjaxResult.success();
         }
         }
         //接下来则放入其他状态中
         //接下来则放入其他状态中
@@ -664,6 +907,16 @@ public class CzrkServiceImpl implements ICzrkService {
         czrk.setChangUserTime(DateUtils.getNowDate());
         czrk.setChangUserTime(DateUtils.getNowDate());
         czrk.setChangNikeUser(sysUser.getNickName());
         czrk.setChangNikeUser(sysUser.getNickName());
         czrkMapper.changeCzrk(czrk);
         czrkMapper.changeCzrk(czrk);
+
+        //变更redis数据(正常(1)是新增,迁出(2)、失踪(3)、死亡(4)是减少)
+        if(StringUtils.isNotBlank(status)){
+            if("1".equals(status)){
+                addExtracted(czrkQianchu, new ArrayList<CzrkJzdz>());
+            }else{
+                reduceExtracted(czrkQianchu, new ArrayList<CzrkJzdz>());
+            }
+        }
+
         return AjaxResult.success();
         return AjaxResult.success();
 
 
     }
     }
@@ -863,6 +1116,11 @@ public class CzrkServiceImpl implements ICzrkService {
             czrkJzdz.setCreateBy(username);
             czrkJzdz.setCreateBy(username);
             childCount += czrkJzdzService.insertCzrkJzdz(czrkJzdz);
             childCount += czrkJzdzService.insertCzrkJzdz(czrkJzdz);
         }
         }
+
+        if(czrkJzdzList.size()>0){
+            addExtracted(czrk, czrkJzdzList);
+        }
+
         return childCount == czrkJzdzList.size() ? AjaxResult.success() : AjaxResult.error();
         return childCount == czrkJzdzList.size() ? AjaxResult.success() : AjaxResult.error();
     }
     }
 
 
@@ -936,7 +1194,7 @@ public class CzrkServiceImpl implements ICzrkService {
         // 市领导
         // 市领导
         List<String> roleKeySets = map(sysUser.getRoles(), SysRole::getRoleKey);
         List<String> roleKeySets = map(sysUser.getRoles(), SysRole::getRoleKey);
         if (roleKeySets.contains("city") || roleKeySets.contains("admin") || roleKeySets.contains("yanshi")) {
         if (roleKeySets.contains("city") || roleKeySets.contains("admin") || roleKeySets.contains("yanshi")) {
-            JSONObject jsonObject = redisService.getCacheObject(packRedisKey("single:" + deptId));
+            JSONObject jsonObject = redisService.getCacheObject(packRedisKey(deptId+""));
             if (isNotEmpty(jsonObject)) {
             if (isNotEmpty(jsonObject)) {
                 QIANSHANSHI_SINGEL = jsonObject;
                 QIANSHANSHI_SINGEL = jsonObject;
                 return jsonObject;
                 return jsonObject;
@@ -1035,6 +1293,12 @@ public class CzrkServiceImpl implements ICzrkService {
             //townSts(result, deptId, sysUser.getDept().getDeptName(), true);
             //townSts(result, deptId, sysUser.getDept().getDeptName(), true);
 //            redisService.setCacheObject(packRedisKey("town:" + deptId), result, 1L, TimeUnit.DAYS);
 //            redisService.setCacheObject(packRedisKey("town:" + deptId), result, 1L, TimeUnit.DAYS);
             //setIntoRedis(packRedisKey("town:" + deptId), result);
             //setIntoRedis(packRedisKey("town:" + deptId), result);
+        }else if (roleKeySets.contains("village")) {
+            JSONObject jsonObject = redisService.getCacheObject(packRedisKey("village:" + deptId));
+            if (isNotEmpty(jsonObject)) {
+                CUN = jsonObject;
+                return jsonObject;
+            }
         }
         }
 
 
         //System.out.println("我最后出去了");
         //System.out.println("我最后出去了");

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

@@ -1131,11 +1131,11 @@
     </select>
     </select>
     <select id="getAllCzrk" resultMap="CzrkResult">
     <select id="getAllCzrk" resultMap="CzrkResult">
         select  c.user_name, STUFF(c.id_card,7,8,'********') as id_card,  c.province, c.city, c.region,
         select  c.user_name, STUFF(c.id_card,7,8,'********') as id_card,  c.province, c.city, c.region,
-        c.village_towns, c.village, c.villager_group,c.now_in,c.key_industries,
+        c.village_towns, c.village, c.villager_group,replace(c.now_in,'/','') as now_in,,c.key_industries,
         c.user_name, c.gender,c.phone_num, c.code, c.house_type, c.yhzgx,
         c.user_name, c.gender,c.phone_num, c.code, c.house_type, c.yhzgx,
         cj.province as provinceXjd,cj.city as cityXjd,
         cj.province as provinceXjd,cj.city as cityXjd,
         cj.region as regionXjd,cj.town as villageTownsXjd,
         cj.region as regionXjd,cj.town as villageTownsXjd,
-        cj.village as villageXjd,cj.now_in as nowXjd
+        cj.village as villageXjd,replace(cj.now_in,'/','') as nowXjd
         from czrk c left join czrk_jzdz cj on c.id =cj.czrk_id
         from czrk c left join czrk_jzdz cj on c.id =cj.czrk_id
         <where>
         <where>
             <!-- 已认领 -->
             <!-- 已认领 -->