From 9610d41c8e60965d7f444a6204a1f0b149a77e64 Mon Sep 17 00:00:00 2001
From: xyh <18782104331@139.com>
Date: 星期三, 30 六月 2021 16:45:00 +0800
Subject: [PATCH] 实有人口导入模板增加是否为居住地字段

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java |   71 +++++++++++++++++++++--------------
 1 files changed, 42 insertions(+), 29 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
index e61689a..1d19ba7 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -337,8 +338,19 @@
         areaPath.append(areaAddressVO.getProvince()).append(">").append(areaAddressVO.getCity()).append(">").append(areaAddressVO.getDistrict()).append(">");
         //处理实有人口信息
         for (ComMngPopulationServeExcelVO vo : list) {
-            String address = "";
-            //查询街路巷是否存在
+            if (vo.getDoorNo().contains("号")) {
+                vo.setDoorNo(vo.getDoorNo().replace("号",""));
+            }
+            if(vo.getFloor().contains("栋")){
+                vo.setFloor(vo.getFloor().replace("栋",""));
+            }
+            if(vo.getUnitNo().contains("单元")){
+                vo.setUnitNo(vo.getUnitNo().replace("单元",""));
+            }
+            if(vo.getHouseNo().contains("号")){
+                vo.setHouseNo(vo.getHouseNo().replace("号",""));
+            }
+            //查询小区街路巷是否存在
             ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley", vo.getRoad()).eq("house_num", vo.getDoorNo()).eq("community_id", communityId));
             if (comMngVillageDO == null) {
                 ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
@@ -349,14 +361,12 @@
                 continue;
             }
 
-            if (!comMngVillageDO.getHouseNum().contains("号")) {
-                comMngVillageDO.setHouseNum(comMngVillageDO.getHouseNum() + "号");
-            }
+            StringBuilder address = new StringBuilder();
+            address.append(areaAddressVO.getProvince()).append(areaAddressVO.getCity()).append(areaAddressVO.getDistrict())
+                    .append(streetName).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号").append(vo.getFloor()).append("栋")
+                    .append(vo.getUnitNo()).append("单元").append(vo.getHouseNo()).append("号");
 
-            address = areaAddressVO.getProvince() + areaAddressVO.getCity()
-                    + areaAddressVO.getDistrict() + streetName + comMngVillageDO.getAlley() + comMngVillageDO.getHouseNum()
-                    + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
-            vo.setAddress(address);
+            vo.setAddress(address.toString());
 
             //todo 后期优化改为批量
             //先判断房屋是否存在
@@ -366,7 +376,7 @@
                     .eq(ComMngPopulationHouseDO::getHouseNo, vo.getHouseNo()));
             if (populationHouseDO == null) {
                 //房屋信息不存在建立房屋信息
-                populationHouseDO = savePopulationHouse(vo, comMngVillageDO, communityId, address, areaPath, comActDO.getName());
+                populationHouseDO = savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, comActDO.getName());
                 vo.setHouseId(populationHouseDO.getId());
             }
 
@@ -382,8 +392,9 @@
                 //不存在实有人口,则新增
                 populationDO = savePopulationDO(vo, comActDO, comMngVillageDO);
             } else {
-                //如果存在人口信息,且是自用房,则更新人口默认的房屋信息
-                if (vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) {
+                //如果存在人口信息,且是自用房或是居住地,则更新人口默认的房屋信息
+                if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
+                        (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
                     populationDO = updatePopulationDO(vo, populationDO);
                 }
             }
@@ -418,20 +429,19 @@
     }
 
     private ComMngPopulationDO updatePopulationDO(ComMngPopulationServeExcelVO vo, ComMngPopulationDO populationDO) throws Exception {
-        populationDO.setRoad(vo.getRoad());
-        populationDO.setDoorNo(vo.getDoorNo());
-        populationDO.setFloor(vo.getFloor());
-        populationDO.setUnitNo(vo.getUnitNo());
-        populationDO.setHouseNo(vo.getHouseNo());
-        populationDO.setCardNo(vo.getCardNo());
-        populationDO.setCardNoStr(vo.getCardNo());
-        if(vo.getIsResidence().intValue() == 1){
-            populationDO.setHouseId(vo.getHouseId());
-        }
+        UpdateWrapper<ComMngPopulationDO> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("id",populationDO.getId());
+        ComMngPopulationDO update = new ComMngPopulationDO();
+        update.setRoad(vo.getRoad());
+        update.setDoorNo(vo.getDoorNo());
+        update.setFloor(vo.getFloor());
+        update.setUnitNo(vo.getUnitNo());
+        update.setHouseNo(vo.getHouseNo());
+        update.setHouseId(vo.getHouseId());
         if (StringUtils.isNotEmpty(populationDO.getPhone())) {
-            populationDO.setPhone(populationDO.getPhone());
+            update.setPhone(populationDO.getPhone());
         }
-        this.baseMapper.updateById(populationDO);
+        this.baseMapper.update(update,updateWrapper);
         return populationDO;
     }
 
@@ -445,17 +455,20 @@
         populationDO.setStreetId(comActDO.getStreetId());
         populationDO.setLabel(Joiner.on(",").join(userTag));
         populationDO.setVillageName(comMngVillageDO.getGroupAt());
-        populationDO.setCardNo(vo.getCardNo());
         populationDO.setCardNoStr(vo.getCardNo());
         populationDO.setUpdateAt(new Date());
-        if(vo.getIsResidence().intValue() == 1){
+        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
+                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
             populationDO.setHouseId(vo.getHouseId());
+        }else{
+            populationDO.setHouseId(null);
         }
+
         this.baseMapper.insert(populationDO);
         return populationDO;
     }
 
-    private ComMngPopulationHouseDO savePopulationHouse(ComMngPopulationServeExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId, String address, StringBuilder areaPath, String actName) {
+    private ComMngPopulationHouseDO savePopulationHouse(ComMngPopulationServeExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
         //查询该房屋未建立,执行建立房屋信息
         ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
         populationHouseDO.setId(Snowflake.getId());
@@ -469,11 +482,11 @@
         populationHouseDO.setUnitNo(vo.getUnitNo());
         populationHouseDO.setHouseNo(vo.getHouseNo());
         populationHouseDO.setCode(vo.getHouseNo());
-        populationHouseDO.setAddress(address);
+        populationHouseDO.setAddress(vo.getAddress());
         populationHouseDO.setUpdateAt(new Date());
         populationHouseDO.setConstructPurpose(vo.getBuildPurpose());
         StringBuilder housePath = new StringBuilder();
-        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(address);
+        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
         populationHouseDO.setPath(areaPath.toString() + housePath.toString());
         try {
             populationHouseDO.setConstructArea(new BigDecimal(vo.getBuildArea()));

--
Gitblit v1.7.1