xyh
2021-06-30 9610d41c8e60965d7f444a6204a1f0b149a77e64
实有人口导入模板增加是否为居住地字段
2个文件已修改
72 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
@@ -382,6 +382,7 @@
                }
            }
        } catch (NumberFormatException e) {
            e.printStackTrace();
            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
            importErrorVO.setErrorPosition("第" + index + "行");
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()));