Browse Source

人员信息统计

LIVE_YE 3 năm trước cách đây
mục cha
commit
0587fd7aad

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

@@ -83,4 +83,7 @@ import java.util.List;
     List<CzrkJzdz> selectCzrkJzdzListByDeptId(@Param("deptIdList")List<Long> deptIdList);
 
     List<CzrkJzdz> selectCzrkJzdzListByRegionId(@Param("regionId")String regionId);
+
+    List<CzrkJzdz> getCzrkJzdzByTime(@Param("todayStartStr")String todayStartStr, @Param("todayEndStr")String todayEndStr,
+                                     @Param("regionId")String regionId, @Param("status")String status);
 }

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

@@ -209,4 +209,6 @@ public interface CzrkMapper {
     List<Czrk> selectCzrkByNotRlCz(Czrk czrk);
 
     List<Czrk> getAllCzrk(Czrk czrk);
+
+    List<Czrk> listByIdCard(@Param("czrkIdCardList")List<String> czrkIdCardList);
 }

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

@@ -178,12 +178,12 @@ public class TaskService {
 
         //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
         for (Czrk czrk : czrkList) {
-            if("Y".equals(czrk.getIsDel())){
+            if(!"1".equals(czrk.getStatus())){
                 hjzrs--;
             }
             //判断是否是在今天操作的人员信息
-            if(s.before(czrk.getCreateTime()) && czrk.getCreateTime().before(e)){
-                if("Y".equals(czrk.getIsDel())){
+            if(s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                if(!"1".equals(czrk.getStatus())){
                     hjjs++;
                 }else{
                     hjxz++;
@@ -218,7 +218,7 @@ public class TaskService {
                 czzrs--;
             }
             //判断是否是在今天操作的人员信息
-            if(s.before(czrkJzdz.getCreateTime()) && czrkJzdz.getCreateTime().before(e)){
+            if(s.before(czrkJzdz.getUpdateTime()) && czrkJzdz.getUpdateTime().before(e)){
                 if("N".equals(czrkJzdz.getStatus())){
                     czjs++;
                 }else{
@@ -300,12 +300,12 @@ public class TaskService {
             //循环所有人判断当前总人数,该村 户籍人口今日新增,该镇 户籍人口今日减少
             for (Czrk czrk : czrkList) {
                 if(StringUtils.isNotEmpty(czrk.getVillageId()) && czrk.getVillageId().equals(areaId)){
-                    if("N".equals(czrk.getIsDel())){
+                    if("1".equals(czrk.getStatus())){
                         hjzrsc++;
                     }
                     //判断是否是在今天操作的人员信息
-                    if(s.before(czrk.getCreateTime()) && czrk.getCreateTime().before(e)){
-                        if("Y".equals(czrk.getIsDel())){
+                    if(s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                        if(!"1".equals(czrk.getStatus())){
                             hjjsc++;
                         }else{
                             hjxzc++;
@@ -337,7 +337,7 @@ public class TaskService {
                         czzrsc++;
                     }
                     //判断是否是在今天操作的人员信息
-                    if(s.before(czrkJzdz.getCreateTime()) && czrkJzdz.getCreateTime().before(e)){
+                    if(s.before(czrkJzdz.getUpdateTime()) && czrkJzdz.getUpdateTime().before(e)){
                         if("N".equals(czrkJzdz.getStatus())){
                             czjsc++;
                         }else{
@@ -430,12 +430,12 @@ public class TaskService {
         //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
         for (Czrk czrk : czrkList) {
             if(StringUtils.isNotEmpty(czrk.getVillageTownsId()) && String.valueOf(czrk.getVillageTownsId()).equals(areaId)){
-                if("N".equals(czrk.getIsDel())){
+                if("1".equals(czrk.getStatus())){
                     hjzrs++;
                 }
                 //判断是否是在今天操作的人员信息
-                if(s.before(czrk.getCreateTime()) && czrk.getCreateTime().before(e)){
-                    if("Y".equals(czrk.getIsDel())){
+                if(s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                    if(!"1".equals(czrk.getStatus())){
                         hjjs++;
                     }else{
                         hjxz++;
@@ -467,7 +467,7 @@ public class TaskService {
                     czzrs++;
                 }
                 //判断是否是在今天操作的人员信息
-                if(s.before(czrkJzdz.getCreateTime()) && czrkJzdz.getCreateTime().before(e)){
+                if(s.before(czrkJzdz.getUpdateTime()) && czrkJzdz.getUpdateTime().before(e)){
                     if("N".equals(czrkJzdz.getStatus())){
                         czjs++;
                     }else{

+ 5 - 0
boman-web-core/src/main/java/com/boman/web/core/service/czrk/CzrkJzdzServiceImpl.java

@@ -185,6 +185,11 @@ public class CzrkJzdzServiceImpl implements ICzrkJzdzService {
         return czrks;
     }
 
+    @Override
+    public List<CzrkJzdz> getCzrkJzdzByTime(String todayStartStr, String todayEndStr, String regionId, String status) {
+        return czrkJzdzMapper.getCzrkJzdzByTime(todayStartStr,todayEndStr,regionId,status);
+    }
+
     /**
      * 根据czrdId查询对应的居住地址
      *

+ 211 - 100
boman-web-core/src/main/java/com/boman/web/core/service/czrk/CzrkServiceImpl.java

@@ -205,11 +205,29 @@ public class CzrkServiceImpl implements ICzrkService {
         czrk.setStartTime(DateUtils.getTodayStartStr());
         czrk.setEndTime(DateUtils.getTodayEndStr());
         startPage();
-        List<Czrk> czrks = czrkMapper.listByXz(czrk);
-        // 居住地址
-        List<CzrkJzdz> czrkJzdzList = getCzrkJzdzs(czrks);
+        czrk.setRegionId("340882000000");
+        List<Czrk> czrks = new ArrayList<>();
+        if(czrk.getQueryType().equals(Czrk.HJ)){
+            czrks = czrkMapper.listByXz(czrk);
+            // 居住地址
+            List<CzrkJzdz> czrkJzdzList = getCzrkJzdzs(czrks);
+            handleList(czrks, Czrk.HJ, czrkJzdzList);
+        }else{
+            String regionId = "340882000000";
+            String status = "Y";
+            //居住信息
+            List<CzrkJzdz> czrkJzdzList = czrkJzdzService.getCzrkJzdzByTime(DateUtils.getTodayStartStr(),DateUtils.getTodayEndStr(),regionId,status);
+
+            if(isNotEmpty(czrkJzdzList)){
+                List<String> czrkIdCardList = map(czrkJzdzList, CzrkJzdz::getIdCard);
+                //户籍信息
+                czrks = czrkMapper.listByIdCard(czrkIdCardList);
+                handleList(czrks, Czrk.CZ, czrkJzdzList);
+            }
+
+        }
+
 
-        handleList(czrks, Czrk.HJ, czrkJzdzList);
         //packAddr(czrks);
         return czrks;
     }
@@ -223,11 +241,30 @@ public class CzrkServiceImpl implements ICzrkService {
         czrk.setStartTime(DateUtils.getTodayStartStr());
         czrk.setEndTime(DateUtils.getTodayEndStr());
         startPage();
-        List<Czrk> czrks = czrkMapper.listByJs(czrk);
-        // 居住地址
-        List<CzrkJzdz> czrkJzdzList = getCzrkJzdzs(czrks);
+        czrk.setRegionId("340882000000");
+        List<Czrk> czrks = new ArrayList<>();
+        if(czrk.getQueryType().equals(Czrk.HJ)){
+            czrks = czrkMapper.listByJs(czrk);
+            // 居住地址
+            List<CzrkJzdz> czrkJzdzList = getCzrkJzdzs(czrks);
+
+            handleList(czrks, Czrk.HJ, czrkJzdzList);
+        }else {
+            String regionId = "340882000000";
+            String status = "N";
+            //居住信息
+            List<CzrkJzdz> czrkJzdzList = czrkJzdzService.getCzrkJzdzByTime(DateUtils.getTodayStartStr(),DateUtils.getTodayEndStr(),regionId,status);
+
+            if(isNotEmpty(czrkJzdzList)){
+                List<String> czrkIdCardList = map(czrkJzdzList, CzrkJzdz::getIdCard);
+                //户籍信息
+                czrks = czrkMapper.listByIdCard(czrkIdCardList);
+                handleList(czrks, Czrk.CZ, czrkJzdzList);
+            }
+        }
+
+
 
-        handleList(czrks, Czrk.HJ, czrkJzdzList);
         //packAddr(czrks);
         return czrks;
     }
@@ -437,13 +474,23 @@ public class CzrkServiceImpl implements ICzrkService {
             return;
         }
 
+        String startTime = DateUtils.getTodayStartStr();
+        String endTime = DateUtils.getTodayEndStr();
+
+        Timestamp s = Timestamp.valueOf(startTime);
+        Timestamp e = Timestamp.valueOf(endTime);
+
         //判断新增的是否是潜山市人口(户籍判断)
         if(!ObjectUtils.isEmpty(czrk) && czrk.getRegionId().equals("340882000000")){
             //总户籍人数
-            jsonObjects.put("hjzrs",(int)jsonObjects.get("hjzrs")+1);
+            jsonObjects.put("hjzrs",(Integer)jsonObjects.get("hjzrs")+1);
             //户籍新增人数
-            jsonObjects.put("hjxz",(int)jsonObjects.get("hjxz")+1);
-
+            jsonObjects.put("hjxz",(Integer)jsonObjects.get("hjxz")+1);
+            if(null != czrk.getUpdateTime() && s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                if((Integer)jsonObjects.get("hjjs")>0){
+                    jsonObjects.put("hjjs",(Integer)jsonObjects.get("hjjs")-1);
+                }
+            }
             //根据人员的乡镇区划编号去部门表里查询dept_id
             List<SysDept> allDepts = remoteDeptService.selectByAreaId(czrk.getVillageTownsId());
             for (SysDept allDept : allDepts) {
@@ -451,11 +498,18 @@ public class CzrkServiceImpl implements ICzrkService {
                 //从redis取出镇数据
                 JSONObject jsonObjectz = redisService.getCacheObject(packRedisKey("town:" + allDept.getId()));
                 //镇总户籍人数
-                jsonObjectz.put("hjzrs",(int)jsonObjectz.get("hjzrs")+1);
+                jsonObjectz.put("hjzrs",(Integer)jsonObjectz.get("hjzrs")+1);
                 //镇户籍新增人数
-                jsonObjectz.put("hjxz",(int)jsonObjectz.get("hjxz")+1);
+                jsonObjectz.put("hjxz",(Integer)jsonObjectz.get("hjxz")+1);
+
+                if(null != czrk.getUpdateTime() && s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                    if((Integer)jsonObjectz.get("hjjs")>0){
+                        jsonObjectz.put("hjjs",(Integer)jsonObjectz.get("hjjs")-1);
+                    }
+                }
+
                 //镇户籍人数占比
-                jsonObjectz.put("hjbfb", NumberUtils.percent((int)jsonObjectz.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                jsonObjectz.put("hjbfb", NumberUtils.percent((Integer)jsonObjectz.get("hjzrs"), (Integer)jsonObjects.get("hjzrs")));
                 setIntoRedis(packRedisKey("town:" + allDept.getId()), jsonObjectz);
 
                 //修改市数据里的乡镇数据
@@ -463,11 +517,18 @@ public class CzrkServiceImpl implements ICzrkService {
                 for (JSONObject stringObjectMap : jsList) {
                     if(allDept.getDeptName().equals(stringObjectMap.get("zhen"))){
                         //镇总户籍人数
-                        stringObjectMap.put("hjzrs",(int)stringObjectMap.get("hjzrs")+1);
+                        stringObjectMap.put("hjzrs",(Integer)stringObjectMap.get("hjzrs")+1);
                         //镇户籍新增人数
-                        stringObjectMap.put("hjxz",(int)stringObjectMap.get("hjxz")+1);
+                        stringObjectMap.put("hjxz",(Integer)stringObjectMap.get("hjxz")+1);
+
+                        if(null != czrk.getUpdateTime() && s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                            if((Integer)stringObjectMap.get("hjjs")>0){
+                                stringObjectMap.put("hjjs",(Integer)stringObjectMap.get("hjjs")-1);
+                            }
+                        }
+
                         //镇户籍人数占比
-                        stringObjectMap.put("hjbfb", NumberUtils.percent((int)stringObjectMap.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                        stringObjectMap.put("hjbfb", NumberUtils.percent((Integer)stringObjectMap.get("hjzrs"), (Integer)jsonObjects.get("hjzrs")));
                     }
                 }
             }
@@ -475,29 +536,39 @@ public class CzrkServiceImpl implements ICzrkService {
 
             //查找村数据
             //根据人员的村区划编号去部门表里查询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;
+            if(StringUtils.isNotEmpty(czrk.getVillageId())){
+                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",(Integer)jsonObjectC.get("hjzrs")+1);
+                    //村户籍新增人数
+                    jsonObjectC.put("hjxz",(Integer)jsonObjectC.get("hjxz")+1);
+
+                    if(null != czrk.getUpdateTime() && s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                        if((Integer)jsonObjectC.get("hjjs")>0){
+                            jsonObjectC.put("hjjs",(Integer)jsonObjectC.get("hjjs")-1);
+                        }
+                    }
+
+                    //村户籍人数占比
+                    jsonObjectC.put("hjbfb", NumberUtils.percent((Integer)jsonObjectC.get("hjzrs"), (Integer)jsonObjects.get("hjzrs")));
+                    setIntoRedis(packRedisKey("village:" + sysDept.getId()), jsonObjectC);
                 }
-                //村总户籍人数
-                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("czzrs",(Integer)jsonObjects.get("czzrs")+1);
                     //常驻新增人数
-                    jsonObjects.put("czxz",(int)jsonObjects.get("czxz")+1);
+                    jsonObjects.put("czxz",(Integer)jsonObjects.get("czxz")+1);
 
                     //根据人员的乡镇区划编号去部门表里查询dept_id
                     List<SysDept> cAllDepts = remoteDeptService.selectByAreaId(czrkJzdz.getTownId());
@@ -506,11 +577,11 @@ public class CzrkServiceImpl implements ICzrkService {
                         //从redis取出镇数据
                         JSONObject cJsonObjectz = redisService.getCacheObject(packRedisKey("town:" + allDept.getId()));
                         //镇总户籍人数
-                        cJsonObjectz.put("czzrs",(int)cJsonObjectz.get("czzrs")+1);
+                        cJsonObjectz.put("czzrs",(Integer)cJsonObjectz.get("czzrs")+1);
                         //镇户籍新增人数
-                        cJsonObjectz.put("czxz",(int)cJsonObjectz.get("czxz")+1);
+                        cJsonObjectz.put("czxz",(Integer)cJsonObjectz.get("czxz")+1);
                         //镇户籍人数占比
-                        cJsonObjectz.put("czbfb", NumberUtils.percent((int)cJsonObjectz.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                        cJsonObjectz.put("czbfb", NumberUtils.percent((Integer)cJsonObjectz.get("czzrs"), (Integer)jsonObjects.get("czzrs")));
                         setIntoRedis(packRedisKey("town:" + allDept.getId()), cJsonObjectz);
 
                         //修改市数据里的乡镇数据
@@ -518,11 +589,11 @@ public class CzrkServiceImpl implements ICzrkService {
                         for (JSONObject stringObjectMap : jsList) {
                             if(allDept.getDeptName().equals(stringObjectMap.get("zhen"))){
                                 //镇总户籍人数
-                                stringObjectMap.put("czzrs",(int)stringObjectMap.get("czzrs")+1);
+                                stringObjectMap.put("czzrs",(Integer)stringObjectMap.get("czzrs")+1);
                                 //镇户籍新增人数
-                                stringObjectMap.put("czxz",(int)stringObjectMap.get("czxz")+1);
+                                stringObjectMap.put("czxz",(Integer)stringObjectMap.get("czxz")+1);
                                 //镇户籍人数占比
-                                stringObjectMap.put("czbfb", NumberUtils.percent((int)stringObjectMap.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                                stringObjectMap.put("czbfb", NumberUtils.percent((Integer)stringObjectMap.get("czzrs"), (Integer)jsonObjects.get("czzrs")));
                             }
                         }
                     }
@@ -530,21 +601,23 @@ public class CzrkServiceImpl implements ICzrkService {
 
                     //查找村数据
                     //根据人员的村区划编号去部门表里查询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;
+                    if(StringUtils.isNotEmpty(czrk.getVillageId())){
+                        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",(Integer)cJsonObjectC.get("czzrs")+1);
+                            //村户籍新增人数
+                            cJsonObjectC.put("czxz",(Integer)cJsonObjectC.get("czxz")+1);
+                            //村户籍人数占比
+                            cJsonObjectC.put("czbfb", NumberUtils.percent((Integer)cJsonObjectC.get("czzrs"), (Integer)jsonObjects.get("czzrs")));
+                            setIntoRedis(packRedisKey("village:" + sysDept.getId()), cJsonObjectC);
                         }
-                        //村总户籍人数
-                        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;
                     }
-                    break;
                 }
             }
         }
@@ -565,12 +638,24 @@ public class CzrkServiceImpl implements ICzrkService {
             return;
         }
 
+        String startTime = DateUtils.getTodayStartStr();
+        String endTime = DateUtils.getTodayEndStr();
+
+        Timestamp s = Timestamp.valueOf(startTime);
+        Timestamp e = Timestamp.valueOf(endTime);
+
         //判断新增的是否是潜山市人口(户籍判断)
         if(!ObjectUtils.isEmpty(czrk) && czrk.getRegionId().equals("340882000000")){
             //总户籍人数
-            jsonObjects.put("hjzrs",(int)jsonObjects.get("hjzrs")+1);
+            jsonObjects.put("hjzrs",(Integer)jsonObjects.get("hjzrs")-1);
             //户籍新增人数
-            jsonObjects.put("hjjs",(int)jsonObjects.get("hjjs")+1);
+            jsonObjects.put("hjjs",(Integer)jsonObjects.get("hjjs")+1);
+
+            if(null != czrk.getUpdateTime() && s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                if((Integer)jsonObjects.get("hjxz")>0){
+                    jsonObjects.put("hjxz",(Integer)jsonObjects.get("hjxz")-1);
+                }
+            }
 
             //根据人员的乡镇区划编号去部门表里查询dept_id
             List<SysDept> allDepts = remoteDeptService.selectByAreaId(czrk.getVillageTownsId());
@@ -579,11 +664,16 @@ public class CzrkServiceImpl implements ICzrkService {
                 //从redis取出镇数据
                 JSONObject jsonObjectz = redisService.getCacheObject(packRedisKey("town:" + allDept.getId()));
                 //镇总户籍人数
-                jsonObjectz.put("hjzrs",(int)jsonObjectz.get("hjzrs")+1);
+                jsonObjectz.put("hjzrs",(Integer)jsonObjectz.get("hjzrs")-1);
                 //镇户籍新增人数
-                jsonObjectz.put("hjjs",(int)jsonObjectz.get("hjjs")+1);
+                jsonObjectz.put("hjjs",(Integer)jsonObjectz.get("hjjs")+1);
+                if(null != czrk.getUpdateTime() && s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                    if((Integer)jsonObjectz.get("hjxz")>0){
+                        jsonObjectz.put("hjxz",(Integer)jsonObjectz.get("hjxz")-1);
+                    }
+                }
                 //镇户籍人数占比
-                jsonObjectz.put("hjbfb", NumberUtils.percent((int)jsonObjectz.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                jsonObjectz.put("hjbfb", NumberUtils.percent((Integer)jsonObjectz.get("hjzrs"), (Integer)jsonObjects.get("hjzrs")));
                 setIntoRedis(packRedisKey("town:" + allDept.getId()), jsonObjectz);
 
                 //修改市数据里的乡镇数据
@@ -591,11 +681,18 @@ public class CzrkServiceImpl implements ICzrkService {
                 for (JSONObject stringObjectMap : jsList) {
                     if(allDept.getDeptName().equals(stringObjectMap.get("zhen"))){
                         //镇总户籍人数
-                        stringObjectMap.put("hjzrs",(int)stringObjectMap.get("hjzrs")+1);
+                        stringObjectMap.put("hjzrs",(Integer)stringObjectMap.get("hjzrs")-1);
                         //镇户籍新增人数
-                        stringObjectMap.put("hjjs",(int)stringObjectMap.get("hjjs")+1);
+                        stringObjectMap.put("hjjs",(Integer)stringObjectMap.get("hjjs")+1);
+
+                        if(null != czrk.getUpdateTime() && s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                            if((Integer)stringObjectMap.get("hjxz")>0){
+                                stringObjectMap.put("hjxz",(Integer)stringObjectMap.get("hjxz")-1);
+                            }
+                        }
+
                         //镇户籍人数占比
-                        stringObjectMap.put("hjbfb", NumberUtils.percent((int)stringObjectMap.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
+                        stringObjectMap.put("hjbfb", NumberUtils.percent((Integer)stringObjectMap.get("hjzrs"), (int)jsonObjects.get("hjzrs")));
                     }
                 }
             }
@@ -603,29 +700,39 @@ public class CzrkServiceImpl implements ICzrkService {
 
             //查找村数据
             //根据人员的村区划编号去部门表里查询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;
+            if(StringUtils.isNotEmpty(czrk.getVillageId())){
+                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",(Integer)jsonObjectC.get("hjzrs")-1);
+                    //村户籍新增人数
+                    jsonObjectC.put("hjjs",(Integer)jsonObjectC.get("hjjs")+1);
+
+                    if(null != czrk.getUpdateTime() && s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)){
+                        if((Integer)jsonObjectC.get("hjxz")>0){
+                            jsonObjectC.put("hjxz",(Integer)jsonObjectC.get("hjxz")-1);
+                        }
+                    }
+
+                    //村户籍人数占比
+                    jsonObjectC.put("hjbfb", NumberUtils.percent((Integer)jsonObjectC.get("hjzrs"), (Integer)jsonObjects.get("hjzrs")));
+                    setIntoRedis(packRedisKey("village:" + sysDept.getId()), jsonObjectC);
                 }
-                //村总户籍人数
-                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("czzrs",(Integer)jsonObjects.get("czzrs")-1);
                     //常驻新增人数
-                    jsonObjects.put("czjs",(int)jsonObjects.get("czjs")+1);
+                    jsonObjects.put("czjs",(Integer)jsonObjects.get("czjs")+1);
 
                     //根据人员的乡镇区划编号去部门表里查询dept_id
                     List<SysDept> cAllDepts = remoteDeptService.selectByAreaId(czrkJzdz.getTownId());
@@ -634,11 +741,11 @@ public class CzrkServiceImpl implements ICzrkService {
                         //从redis取出镇数据
                         JSONObject cJsonObjectz = redisService.getCacheObject(packRedisKey("town:" + allDept.getId()));
                         //镇总户籍人数
-                        cJsonObjectz.put("czzrs",(int)cJsonObjectz.get("czzrs")+1);
+                        cJsonObjectz.put("czzrs",(Integer)cJsonObjectz.get("czzrs")-1);
                         //镇户籍新增人数
-                        cJsonObjectz.put("czjs",(int)cJsonObjectz.get("czjs")+1);
+                        cJsonObjectz.put("czjs",(Integer)cJsonObjectz.get("czjs")+1);
                         //镇户籍人数占比
-                        cJsonObjectz.put("czbfb", NumberUtils.percent((int)cJsonObjectz.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                        cJsonObjectz.put("czbfb", NumberUtils.percent((Integer)cJsonObjectz.get("czzrs"), (Integer)jsonObjects.get("czzrs")));
                         setIntoRedis(packRedisKey("town:" + allDept.getId()), cJsonObjectz);
 
                         //修改市数据里的乡镇数据
@@ -646,11 +753,11 @@ public class CzrkServiceImpl implements ICzrkService {
                         for (JSONObject stringObjectMap : jsList) {
                             if(allDept.getDeptName().equals(stringObjectMap.get("zhen"))){
                                 //镇总户籍人数
-                                stringObjectMap.put("czzrs",(int)stringObjectMap.get("czzrs")+1);
+                                stringObjectMap.put("czzrs",(Integer)stringObjectMap.get("czzrs")-1);
                                 //镇户籍新增人数
-                                stringObjectMap.put("czjs",(int)stringObjectMap.get("czjs")+1);
+                                stringObjectMap.put("czjs",(Integer)stringObjectMap.get("czjs")+1);
                                 //镇户籍人数占比
-                                stringObjectMap.put("czbfb", NumberUtils.percent((int)stringObjectMap.get("czzrs"), (int)jsonObjects.get("czzrs")));
+                                stringObjectMap.put("czbfb", NumberUtils.percent((Integer)stringObjectMap.get("czzrs"), (Integer)jsonObjects.get("czzrs")));
                             }
                         }
                     }
@@ -658,21 +765,24 @@ public class CzrkServiceImpl implements ICzrkService {
 
                     //查找村数据
                     //根据人员的村区划编号去部门表里查询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;
+                    if(StringUtils.isNotEmpty(czrk.getVillageId())){
+                        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",(Integer)cJsonObjectC.get("czzrs")-1);
+                            //村户籍新增人数
+                            cJsonObjectC.put("czjs",(Integer)cJsonObjectC.get("czjs")+1);
+                            //村户籍人数占比
+                            cJsonObjectC.put("czbfb", NumberUtils.percent((Integer)cJsonObjectC.get("czzrs"), (Integer)jsonObjects.get("czzrs")));
+                            setIntoRedis(packRedisKey("village:" + sysDept.getId()), cJsonObjectC);
                         }
-                        //村总户籍人数
-                        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;
                     }
-                    break;
+
                 }
             }
         }
@@ -894,7 +1004,7 @@ public class CzrkServiceImpl implements ICzrkService {
             czrkQianchu.setConfirmInfoUser("");
             czrkQianchu.setChangNikeUser("");
             czrkQianchu.setConfirmInfoUserTime(null);
-            czrkQianchu.setStatus("1");
+            czrkQianchu.setStatus(status);
             czrkMapper.updateCzrk(czrkQianchu);
 
             //迁出;
@@ -1104,6 +1214,7 @@ public class CzrkServiceImpl implements ICzrkService {
         czrk.setIsRl("是");
         czrk.setDeptId(sysUser.getDeptId());
         czrk.setRlTime(DateUtils.getNowDate());
+        czrk.setStatus("1");
         int count = czrkMapper.updateCzrk(czrk);
         if (count <= 0) return AjaxResult.error();
         czrkJzdzService.deleteByCzrkId(czrk.getId());
@@ -1374,12 +1485,12 @@ public class CzrkServiceImpl implements ICzrkService {
 
                 //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
                 for (Czrk czrk : czrkList) {
-                    if ("Y".equals(czrk.getIsDel())) {
+                    if (!"1".equals(czrk.getStatus())) {
                         hjzrs--;
                     }
                     //判断是否是在今天操作的人员信息
-                    if (s.before(czrk.getCreateTime()) && czrk.getCreateTime().before(e)) {
-                        if ("Y".equals(czrk.getIsDel())) {
+                    if (s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)) {
+                        if (!"1".equals(czrk.getStatus())) {
                             hjjs++;
                         } else {
                             hjxz++;
@@ -1414,7 +1525,7 @@ public class CzrkServiceImpl implements ICzrkService {
                         czzrs--;
                     }
                     //判断是否是在今天操作的人员信息
-                    if (s.before(czrkJzdz.getCreateTime()) && czrkJzdz.getCreateTime().before(e)) {
+                    if (s.before(czrkJzdz.getUpdateTime()) && czrkJzdz.getUpdateTime().before(e)) {
                         if ("N".equals(czrkJzdz.getStatus())) {
                             czjs++;
                         } else {
@@ -1597,12 +1708,12 @@ public class CzrkServiceImpl implements ICzrkService {
         //循环所有人判断当前总人数,该镇 户籍人口今日新增,该镇 户籍人口今日减少
         for (Czrk czrk : czrkList) {
             if (StringUtils.isNotEmpty(czrk.getVillageTownsId()) && String.valueOf(czrk.getVillageTownsId()).equals(areaId)) {
-                if ("N".equals(czrk.getIsDel())) {
+                if ("1".equals(czrk.getStatus())) {
                     hjzrs++;
                 }
                 //判断是否是在今天操作的人员信息
-                if (s.before(czrk.getCreateTime()) && czrk.getCreateTime().before(e)) {
-                    if ("Y".equals(czrk.getIsDel())) {
+                if (s.before(czrk.getUpdateTime()) && czrk.getUpdateTime().before(e)) {
+                    if (!"1".equals(czrk.getStatus())) {
                         hjjs++;
                     } else {
                         hjxz++;
@@ -1634,7 +1745,7 @@ public class CzrkServiceImpl implements ICzrkService {
                     czzrs++;
                 }
                 //判断是否是在今天操作的人员信息
-                if (s.before(czrkJzdz.getCreateTime()) && czrkJzdz.getCreateTime().before(e)) {
+                if (s.before(czrkJzdz.getUpdateTime()) && czrkJzdz.getUpdateTime().before(e)) {
                     if ("N".equals(czrkJzdz.getStatus())) {
                         czjs++;
                     } else {

+ 2 - 0
boman-web-core/src/main/java/com/boman/web/core/service/czrk/ICzrkJzdzService.java

@@ -93,4 +93,6 @@ public interface ICzrkJzdzService {
      * @return
      */
     List<Czrk> listByCzrkJzdz(Czrk czrk);
+
+    List<CzrkJzdz> getCzrkJzdzByTime(String todayStartStr, String todayEndStr, String regionId, String status);
 }

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

@@ -313,8 +313,51 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </if>
     </select>
     <select id="selectCzrkJzdzListByRegionId" resultMap="CzrkJzdzResult">
-        select id, dept_id, region_id, region, town_id, town, village_id, village, create_time, status
+        SELECT
+            MAX(ANY_VALUE(id)) as id,
+            ANY_VALUE(dept_id) as dept_id,
+            ANY_VALUE(region_id) as region_id,
+            ANY_VALUE(region) as region,
+            ANY_VALUE(town_id) as town_id,
+            ANY_VALUE(town) as town,
+            ANY_VALUE(village_id) as village_id,
+            ANY_VALUE(village) as village,
+            ANY_VALUE(create_time) as create_time,
+            MAX(ANY_VALUE(update_time)) as update_time,
+            ANY_VALUE(STATUS) as STATUS
+        FROM
+            czrk_jzdz
+        where region_id = #{regionId}
+        GROUP BY id_card
+
+
+    </select>
+    <select id="getCzrkJzdzByTime" resultMap="CzrkJzdzResult">
+        select
+            ANY_VALUE(id) as id,
+            ANY_VALUE(czrk_id) as czrk_id,
+            ANY_VALUE(id_card) as id_card,
+            ANY_VALUE(user_name) as user_name,
+            ANY_VALUE(sort) as sort,
+            ANY_VALUE(dept_id) as dept_id,
+            ANY_VALUE(province_id) as province_id,
+            ANY_VALUE(province) as province,
+            ANY_VALUE(city_id) as city_id,
+            ANY_VALUE(city) as city,
+            ANY_VALUE(region_id) as region_id,
+            ANY_VALUE(region) as region,
+            ANY_VALUE(town_id) as town_id,
+            ANY_VALUE(town) as town,
+            ANY_VALUE(village_id) as village_id,
+            ANY_VALUE(village) as village,
+            ANY_VALUE(now_in) as now_in,
+            ANY_VALUE(create_by) as create_by,
+            ANY_VALUE(create_time) as create_time,
+            ANY_VALUE(update_by) as update_by,
+            ANY_VALUE(update_time) as update_time,
+            ANY_VALUE(status) as status
         from czrk_jzdz
-        where region_id = #{regionId};
+        where 1=1 and status = #{status} and create_time &gt;= #{todayStartStr} and create_time &lt;= #{todayEndStr} and region_id = #{regionId}
+        group by id_card
     </select>
 </mapper>

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

@@ -268,7 +268,7 @@
         select vi.id, vi.create_time, vi.update_time, vi.is_del, vi.update_by, vi.user_name, vi.phone_num, vi.id_card
         , vi.gender, vi.province, vi.city, vi.region, vi.now_in, vi.house_type, vi.update_by, vi.code
         from czrk vi
-        where vi.is_del = 'N' and vi.create_time &gt;= #{startTime} and vi.create_time &lt;= #{endTime}
+        where vi.status = '1' and vi.update_time &gt;= #{startTime} and vi.update_time &lt;= #{endTime}
         <if test="userName != null  and userName != ''">
             and (vi.user_name like concat( #{userName}, '%') or vi.id_card like concat( #{userName}, '%'))
         </if>
@@ -280,6 +280,7 @@
         <if test="houseType != null  and houseType != ''">and vi.house_type = #{houseType}</if>
         <if test="province != null  and province != ''">and vi.province = #{province}</if>
         <if test="city != null  and city != ''">and vi.city = #{city}</if>
+        <if test="regionId != null  and regionId != ''">and vi.region_id = #{regionId}</if>
         <if test="region != null  and region != ''">and vi.region = #{region}</if>
         <if test="gender != null  and gender != ''">and vi.gender = #{gender}</if>
         <if test="idCard != null  and idCard != ''">and vi.id_card like concat(#{idCard}, '%')</if>
@@ -331,7 +332,7 @@
         select vi.id, vi.create_time, vi.update_time, vi.is_del, vi.update_by, vi.user_name, vi.phone_num, vi.id_card
         , vi.gender, vi.province, vi.city, vi.region, vi.now_in, vi.house_type, vi.update_by, vi.code
         from czrk vi
-        where vi.is_del = 'Y' and vi.update_time &gt;= #{startTime} and vi.update_time &lt;= #{endTime}
+        where vi.status in ('2','3','4') and vi.update_time &gt;= #{startTime} and vi.update_time &lt;= #{endTime}
         <if test="userName != null  and userName != ''">
             and (vi.user_name like concat(#{userName}, '%') or vi.id_card like concat(#{userName}, '%'))
         </if>
@@ -343,6 +344,7 @@
         <if test="houseType != null  and houseType != ''">and vi.house_type = #{houseType}</if>
         <if test="province != null  and province != ''">and vi.province = #{province}</if>
         <if test="city != null  and city != ''">and vi.city = #{city}</if>
+        <if test="regionId != null  and regionId != ''">and vi.region_id = #{regionId}</if>
         <if test="region != null  and region != ''">and vi.region = #{region}</if>
         <if test="userName != null  and userName != ''">and vi.user_name like concat(#{userName}, '%')</if>
         <if test="gender != null  and gender != ''">and vi.gender = #{gender}</if>
@@ -1072,7 +1074,8 @@
         set status = #{status},
             chang_user = #{changUser},
             chang_nike_user = #{changNikeUser},
-            chang_user_time = sysdate()
+            chang_user_time = sysdate(),
+            update_time = sysdate()
         where  id = #{id};
     </update>
 
@@ -1126,7 +1129,7 @@
     </select>
     <select id="getAllCzrkRegionId" resultMap="CzrkResult">
         select id, dept_id, region_id, region, village_towns_id, village_towns
-                 , village_id, village, create_time, is_del from czrk
+                 , village_id, village, create_time, update_time, is_del,status from czrk
         where region_id = #{regionId};
     </select>
     <select id="getAllCzrk" resultMap="CzrkResult">
@@ -1241,7 +1244,7 @@
             c.is_del = 'N'
             and c.is_rl = '否'
             and c.is_confirm = 'N'
-            and c.status = '1'
+            and c.status in ('1','2')
             <if test="userName != null  and userName != ''">
                 and c.user_name like concat(#{userName}, '%')
             </if>
@@ -1255,7 +1258,7 @@
             <if test="villageTownsId != null  and villageTownsId != ''">and c.village_towns_id = #{villageTownsId}</if>
             <if test="villageId != null  and villageId != ''">and c.village_id = #{villageId}</if>
         </where>
-        order by c.create_time DESC
+        order by c.update_time DESC
     </select>
 
     <select id="selectCzrkByNotRlCz" resultMap="CzrkResult">
@@ -1269,7 +1272,7 @@
             c.is_del = 'N'
             and c.is_rl = '否'
             and c.is_confirm = 'N'
-            and c.status = '1'
+            and c.status in ('1','2')
             <if test="userName != null  and userName != ''">
                 and c.user_name like concat(#{userName}, '%')
             </if>
@@ -1288,6 +1291,15 @@
             <if test="villageTownsIdXjd != null and villageTownsIdXjd != ''">and z.town_id = #{villageTownsIdXjd}</if>
             <if test="villageIdXjd != null and villageIdXjd != ''">and z.village_id = #{villageIdXjd}</if>
         </where>
-        order by c.create_time DESC
+        order by c.update_time DESC
+    </select>
+    <select id="listByIdCard" resultMap="CzrkResult">
+        select vi.id, vi.create_time, vi.update_time, vi.is_del, vi.update_by, vi.user_name, vi.phone_num, vi.id_card
+             , vi.gender, vi.province, vi.city, vi.region, vi.now_in, vi.house_type, vi.update_by, vi.code
+        from czrk vi
+        where vi.id_card in
+        <foreach item="idCard" collection="czrkIdCardList" open="(" separator="," close=")">
+            #{idCard}
+        </foreach>
     </select>
 </mapper>