huanghongfa
2021-08-01 db87970fd8240eafcc84330e728bc1776570b2a9
优化实有人口导入
1个文件已添加
2个文件已修改
76 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPopulationActVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDAO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPopulationActVO.java
New file
@@ -0,0 +1,25 @@
package com.panzhihua.common.model.vos.community;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("通过社区id查询社区信息返回参数")
public class ComPopulationActVO {
    @ApiModelProperty(value = "社区id")
    private Long communityId;
    @ApiModelProperty(value = "社区名称")
    private String name;
    @ApiModelProperty(value = "省份名称")
    private String provinceName;
    @ApiModelProperty(value = "城市名称")
    private String cityName;
    @ApiModelProperty(value = "区域名称")
    private String districtName;
    @ApiModelProperty(value = "街道id")
    private Long streetId;
    @ApiModelProperty(value = "街道名称")
    private String streetName;
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDAO.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.PageComActDTO;
import com.panzhihua.common.model.vos.community.ComActVO;
import com.panzhihua.common.model.vos.community.ComPopulationActVO;
import com.panzhihua.common.model.vos.grid.EventGridCommunityAdminVO;
import com.panzhihua.service_community.model.dos.ComActDO;
import org.apache.ibatis.annotations.Mapper;
@@ -82,4 +83,12 @@
    @Select("select community_id,`name` from com_act where state = 0")
    List<EventGridCommunityAdminVO> getCommunityLists();
    @Select("select ca.`name`,cmsap.province_name,cmsac.city_name,cmsad.district_name,ca.street_id,ca.community_id,cs.`name` as streetName from com_act as ca \n" +
            "left join com_mng_struct_area_province as cmsap on cmsap.province_adcode = ca.province_code\n" +
            "left join com_mng_struct_area_city as cmsac on cmsac.city_adcode = ca.city_code\n" +
            "left join com_mng_struct_area_district as cmsad on cmsad.district_adcode = ca.area_code\n" +
            "left join com_street as cs on cs.street_id = ca.street_id\n" +
            "where ca.community_id = #{communityId}")
    ComPopulationActVO getPopulationActById(@Param("communityId")Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -365,20 +365,26 @@
    public R listSavePopulation(List<ComMngPopulationServeExcelVO> list, Long communityId) throws Exception {
        List<ComMngPopulationMistakeExcelVO> mistakes = new ArrayList<>();
//        List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
        //查询该社区
        ComActDO comActDO = comActDAO.selectById(communityId);
        //查询该社区的省市区地址
        AreaAddressVO areaAddressVO = populationDAO.getAreaAddress(comActDO.getProvinceCode(), comActDO.getCityCode(), comActDO.getAreaCode());
        //查询社区上街道信息
        String streetName = "";
        if (comActDO.getStreetId() != null) {
            ComStreetDO streetDO = comStreetDAO.selectById(comActDO.getStreetId());
            if (streetDO != null) {
                streetName = streetDO.getName();
            }
        //查询社区信息
        ComPopulationActVO populationActVO = comActDAO.getPopulationActById(communityId);
        if(populationActVO == null){
            log.error("未查询到社区信息");
            return R.fail("未查询到社区信息");
        }
        //查询该社区
//        ComActDO comActDO = comActDAO.selectById(communityId);
        //查询该社区的省市区地址
//        AreaAddressVO areaAddressVO = populationDAO.getAreaAddress(comActDO.getProvinceCode(), comActDO.getCityCode(), comActDO.getAreaCode());
        //查询社区上街道信息
        String streetName = populationActVO.getStreetName();
//        if (comActDO.getStreetId() != null) {
//            ComStreetDO streetDO = comStreetDAO.selectById(comActDO.getStreetId());
//            if (streetDO != null) {
//                streetName = streetDO.getName();
//            }
//        }
        StringBuilder areaPath = new StringBuilder();
        areaPath.append(areaAddressVO.getProvince()).append(">").append(areaAddressVO.getCity()).append(">").append(areaAddressVO.getDistrict()).append(">");
        areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
        //处理实有人口信息
        for (ComMngPopulationServeExcelVO vo : list) {
            if (vo.getDoorNo().contains("号")) {
@@ -410,7 +416,7 @@
            }
            StringBuilder address = new StringBuilder();
            address.append(areaAddressVO.getProvince()).append(areaAddressVO.getCity()).append(areaAddressVO.getDistrict())
            address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                    .append(streetName).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号").append(vo.getFloor()).append("栋")
                    .append(vo.getUnitNo()).append("单元").append(vo.getHouseNo()).append("号");
@@ -424,7 +430,7 @@
                    .eq(ComMngPopulationHouseDO::getHouseNo, vo.getHouseNo()));
            if (populationHouseDO == null) {
                //房屋信息不存在建立房屋信息
                populationHouseDO = savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, comActDO.getName());
                populationHouseDO = savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                vo.setHouseId(populationHouseDO.getId());
            }
@@ -440,14 +446,14 @@
            if (populationDOList.isEmpty()) {
                //不存在实有人口,则新增
                populationDO = savePopulationDO(vo, comActDO, comMngVillageDO);
                populationDO = savePopulationDO(vo, populationActVO, comMngVillageDO);
//                ComMngPopulationHouseUserDO comMngPopulationHouseUserDO = savePopulationHouseUser(vo, populationDO, populationHouseDO);
            } else {
                //如果存在人口信息,且是自用房,则更新人口默认的房屋信息
//                if (vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) {
//                    populationDO = updatePopulationDO(vo, populationDO);
//                }
                populationDO = updatePopulationDO(vo, comActDO, populationDOList.get(0));
                populationDO = updatePopulationDO(vo, populationActVO, populationDOList.get(0));
            }
            //处理实有人口房屋居住信息
@@ -480,7 +486,7 @@
        return R.ok();
    }
    private ComMngPopulationDO updatePopulationDO(ComMngPopulationServeExcelVO vo, ComActDO comActDO, ComMngPopulationDO populationDO) throws Exception {
    private ComMngPopulationDO updatePopulationDO(ComMngPopulationServeExcelVO vo, ComPopulationActVO comActDO, ComMngPopulationDO populationDO) throws Exception {
        UpdateWrapper<ComMngPopulationDO> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id",populationDO.getId());
        ComMngPopulationDO update = new ComMngPopulationDO();
@@ -515,7 +521,7 @@
        return populationDO;
    }
    private ComMngPopulationDO savePopulationDO(ComMngPopulationServeExcelVO vo, ComActDO comActDO, ComMngVillageDO comMngVillageDO) {
    private ComMngPopulationDO savePopulationDO(ComMngPopulationServeExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        populationDO.setId(Snowflake.getId());