huanghongfa
2021-09-02 177249c76aeea0b4bf8d8816d4994e3b445b45ce
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -1,6 +1,19 @@
package com.panzhihua.service_community.service.impl;
import cn.hutool.core.util.IdcardUtil;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -38,7 +51,6 @@
import com.panzhihua.common.model.vos.screen.ComActPopulationScreenVO;
import com.panzhihua.common.model.vos.screen.ComMngPopulationAgeVO;
import com.panzhihua.common.model.vos.user.*;
import com.panzhihua.common.model.vos.user.ComMngUserTagVO;
import com.panzhihua.common.utlis.AgeUtils;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.Snowflake;
@@ -46,19 +58,9 @@
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import cn.hutool.core.util.IdcardUtil;
import lombok.extern.slf4j.Slf4j;
/**
 * 实有人口Service实现类
@@ -80,6 +82,10 @@
    private ComMngCarDAO comMngCarDAO;
    @Resource
    private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO;
    @Resource
    private ComMngPopulationCommunityTagsDAO comMngPopulationCommunityTagsDAO;
    @Resource
    private ComMngPopulationCommunityTagsService comMngPopulationCommunityTagsService;
    @Resource
    private ComMngPopulationDAO comMngPopulationDAO;
    @Resource
@@ -115,18 +121,18 @@
    @Value("${domain.aesKey:}")
    private String aesKey;
    /**
     * 新增实有人口
     *
     * @param comMngPopulationVO 新增信息
     * @param comMngPopulationVO
     *            新增信息
     * @return 新增结果
     */
    @Override
    public R addPopulation(ComMngPopulationVO comMngPopulationVO) {
        ComMngPopulationDO comMngPopulationDO = new ComMngPopulationDO();
        Integer integer = populationDAO.selectCount(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getCardNo, comMngPopulationVO.getCardNo()));
        Integer integer = populationDAO.selectCount(new QueryWrapper<ComMngPopulationDO>().lambda()
            .eq(ComMngPopulationDO::getCardNo, comMngPopulationVO.getCardNo()));
        if (integer > 0) {
            return R.fail("实有人口已经存在");
        }
@@ -139,11 +145,11 @@
        return R.ok(nub);
    }
    /**
     * 编辑实有人口
     *
     * @param comMngPopulationVO 编辑内容
     * @param comMngPopulationVO
     *            编辑内容
     * @return 编辑结果
     */
    @Override
@@ -164,7 +170,8 @@
    /**
     * 查询实有人口
     *
     * @param comMngPopulationVO 查询条件
     * @param comMngPopulationVO
     *            查询条件
     * @return 实有人口集合
     */
    @Override
@@ -176,7 +183,8 @@
    /**
     * 实有人口详情
     *
     * @param populationId 实有人口id
     * @param populationId
     *            实有人口id
     * @return 实有人口详情
     */
    @Override
@@ -193,7 +201,8 @@
        BeanUtils.copyProperties(comMngPopulationDO, comMngPopulationVO);
        //查询户主关系信息
//        List<ComHouseMemberVo> comMngFamilyInfoVOS = populationDAO.listHouseMermberByUserId(comMngPopulationDO.getHouseId(),comMngPopulationDO.getId());
        // List<ComHouseMemberVo> comMngFamilyInfoVOS =
        // populationDAO.listHouseMermberByUserId(comMngPopulationDO.getHouseId(),comMngPopulationDO.getId());
//        if (!comMngFamilyInfoVOS.isEmpty()) {
//            comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
//        }
@@ -206,22 +215,34 @@
            comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
        }
        //设置户主关系
        List<ComMngPopulationHouseUserDO> comMngPopulationHouseUserDOS = comMngPopulationHouseUserDAO.selectList((new QueryWrapper<ComMngPopulationHouseUserDO>().lambda().eq(ComMngPopulationHouseUserDO::getPopulId, populationId)));
        List<ComMngPopulationHouseUserDO> comMngPopulationHouseUserDOS =
            comMngPopulationHouseUserDAO.selectList((new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
                .eq(ComMngPopulationHouseUserDO::getPopulId, populationId)));
        if (!comMngPopulationHouseUserDOS.isEmpty()) {
            comMngPopulationVO.setRelation(comMngPopulationHouseUserDOS.get(comMngPopulationHouseUserDOS.size() - 1).getRelation());
            comMngPopulationVO
                .setRelation(comMngPopulationHouseUserDOS.get(comMngPopulationHouseUserDOS.size() - 1).getRelation());
        }
        //设置年龄
        if (StringUtils.isNotEmpty(comMngPopulationVO.getBirthday())) {
            comMngPopulationVO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationVO.getBirthday()));
        }
        // 设置特殊群体标签
        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
            comMngPopulationCommunityTagsDAO.selectOne(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda()
                .eq(ComMngPopulationCommunityTagsDO::getPopulationId, populationId));
        if (null != comMngPopulationCommunityTagsDO) {
            comMngPopulationVO.setLabel(comMngPopulationCommunityTagsDO.getLabel());
        }
        //查询当前用户电子档信息
        if (!StringUtils.isEmpty(comMngPopulationDO.getCardNo())) {
            UserElectronicFileVO electronicFileVO = populationDAO.getSysUserElectronicFile(comMngPopulationDO.getCardNo());
            UserElectronicFileVO electronicFileVO =
                populationDAO.getSysUserElectronicFile(comMngPopulationDO.getCardNo());
            if (electronicFileVO != null) {
                comMngPopulationVO.setUserElectronicFileVO(electronicFileVO);
                //查询家庭成员信息
                List<ComMngFamilyInfoVO> familyInfoVOList = populationDAO.listFamilyByUserId(electronicFileVO.getUserId());
                List<ComMngFamilyInfoVO> familyInfoVOList =
                    populationDAO.listFamilyByUserId(electronicFileVO.getUserId());
                if (!familyInfoVOList.isEmpty()) {
                    comMngPopulationVO.setFamilyInfoVOList(familyInfoVOList);
                }
@@ -245,8 +266,8 @@
        //吸毒信息
        List<ComDrugPopulationVO> comDrugPopulationVOs = new ArrayList<>();
        List<ComDrugPopulationDO> comDrugPopulationDOs = comDrugPopulationDAO.selectList(new QueryWrapper<ComDrugPopulationDO>().
                lambda().eq(ComDrugPopulationDO::getPopulationId, populationId));
        List<ComDrugPopulationDO> comDrugPopulationDOs = comDrugPopulationDAO.selectList(
            new QueryWrapper<ComDrugPopulationDO>().lambda().eq(ComDrugPopulationDO::getPopulationId, populationId));
        if (!comDrugPopulationDOs.isEmpty()) {
            comDrugPopulationDOs.forEach(comDrugPopulationDO -> {
                ComDrugPopulationVO comDrugPopulationVO = new ComDrugPopulationVO();
@@ -258,8 +279,9 @@
        //社区矫正信息
        List<ComCorrectPopulationVO> comCorrectPopulationVOS = new ArrayList<>();
        List<ComCorrectPopulationDO> comCorrectPopulationDOS = comCorrectPopulationDAO.selectList(new QueryWrapper<ComCorrectPopulationDO>().
                lambda().eq(ComCorrectPopulationDO::getPopulationId, populationId));
        List<ComCorrectPopulationDO> comCorrectPopulationDOS =
            comCorrectPopulationDAO.selectList(new QueryWrapper<ComCorrectPopulationDO>().lambda()
                .eq(ComCorrectPopulationDO::getPopulationId, populationId));
        if (!comCorrectPopulationDOS.isEmpty()) {
            comCorrectPopulationDOS.forEach(comCorrectPopulationDO -> {
                ComCorrectPopulationVO comCorrectPopulationVO = new ComCorrectPopulationVO();
@@ -271,8 +293,8 @@
        //精神障碍信息
        List<ComMajorPopulationVO> comMajorPopulationVOS = new ArrayList<>();
        List<ComMajorPopulationDO> comMajorPopulationDOs = comMajorPopulationDAO.selectList(new QueryWrapper<ComMajorPopulationDO>().
                lambda().eq(ComMajorPopulationDO::getPopulationId, populationId));
        List<ComMajorPopulationDO> comMajorPopulationDOs = comMajorPopulationDAO.selectList(
            new QueryWrapper<ComMajorPopulationDO>().lambda().eq(ComMajorPopulationDO::getPopulationId, populationId));
        if (!comMajorPopulationDOs.isEmpty()) {
            comMajorPopulationDOs.forEach(comMajorPopulationDO -> {
                ComMajorPopulationVO comMajorPopulationVO = new ComMajorPopulationVO();
@@ -284,8 +306,8 @@
        //邪教信息
        List<ComCultPopulationVO> comCultPopulationVOS = new ArrayList<>();
        List<ComCultPopulationDO> comCultPopulationDOS = comCultPopulationDAO.selectList(new QueryWrapper<ComCultPopulationDO>().
                lambda().eq(ComCultPopulationDO::getPopulationId, populationId));
        List<ComCultPopulationDO> comCultPopulationDOS = comCultPopulationDAO.selectList(
            new QueryWrapper<ComCultPopulationDO>().lambda().eq(ComCultPopulationDO::getPopulationId, populationId));
        if (!comCultPopulationDOS.isEmpty()) {
            comCultPopulationDOS.forEach(comCultPopulationDO -> {
                ComCultPopulationVO comCultPopulationVO = new ComCultPopulationVO();
@@ -297,8 +319,9 @@
        //刑释信息
        List<ComRehabilitationPopulationVO> comRehabilitationPopulationVOS = new ArrayList<>();
        List<ComRehabilitationPopulationDO> comRehabilitationPopulationDOS = comRehabilitationPopulationDAO.selectList(new QueryWrapper<ComRehabilitationPopulationDO>().
                lambda().eq(ComRehabilitationPopulationDO::getPopulationId, populationId));
        List<ComRehabilitationPopulationDO> comRehabilitationPopulationDOS =
            comRehabilitationPopulationDAO.selectList(new QueryWrapper<ComRehabilitationPopulationDO>().lambda()
                .eq(ComRehabilitationPopulationDO::getPopulationId, populationId));
        if (!comRehabilitationPopulationDOS.isEmpty()) {
            comRehabilitationPopulationDOS.forEach(comRehabilitationPopulationDO -> {
                ComRehabilitationPopulationVO comRehabilitationPopulationVO = new ComRehabilitationPopulationVO();
@@ -310,8 +333,8 @@
        //上访信息
        List<ComKeyPopulationVO> comKeyPopulationVOS = new ArrayList<>();
        List<ComKeyPopulationDO> comKeyPopulationDOS = comKeyPopulationDAO.selectList(new QueryWrapper<ComKeyPopulationDO>().
                lambda().eq(ComKeyPopulationDO::getPopulationId, populationId));
        List<ComKeyPopulationDO> comKeyPopulationDOS = comKeyPopulationDAO.selectList(
            new QueryWrapper<ComKeyPopulationDO>().lambda().eq(ComKeyPopulationDO::getPopulationId, populationId));
        if (!comKeyPopulationDOS.isEmpty()) {
            comKeyPopulationDOS.forEach(comKeyPopulationDO -> {
                ComKeyPopulationVO comKeyPopulationVO = new ComKeyPopulationVO();
@@ -323,8 +346,9 @@
        //退役军人信息
        List<ComVeteransPopulationVO> comVeteransPopulationVOS = new ArrayList<>();
        List<ComVeteransPopulationDO> comVeteransPopulationDOS = comVeteransPopulationDAO.selectList(new QueryWrapper<ComVeteransPopulationDO>().
                lambda().eq(ComVeteransPopulationDO::getPopulationId, populationId));
        List<ComVeteransPopulationDO> comVeteransPopulationDOS =
            comVeteransPopulationDAO.selectList(new QueryWrapper<ComVeteransPopulationDO>().lambda()
                .eq(ComVeteransPopulationDO::getPopulationId, populationId));
        if (!comVeteransPopulationDOS.isEmpty()) {
            comVeteransPopulationDOS.forEach(comVeteransPopulationDO -> {
                ComVeteransPopulationVO comVeteransPopulationVO = new ComVeteransPopulationVO();
@@ -336,8 +360,9 @@
        //残疾人信息
        List<ComDisabilityPopulationVO> comDisabilityPopulationVOS = new ArrayList<>();
        List<ComDisabilityPopulationDO> comDisabilityPopulationDOS = comDisabilityPopulationDAO.selectList(new QueryWrapper<ComDisabilityPopulationDO>().
                lambda().eq(ComDisabilityPopulationDO::getPopulationId, populationId));
        List<ComDisabilityPopulationDO> comDisabilityPopulationDOS =
            comDisabilityPopulationDAO.selectList(new QueryWrapper<ComDisabilityPopulationDO>().lambda()
                .eq(ComDisabilityPopulationDO::getPopulationId, populationId));
        if (!comDisabilityPopulationDOS.isEmpty()) {
            comDisabilityPopulationDOS.forEach(comDisabilityPopulationDO -> {
                ComDisabilityPopulationVO comDisabilityPopulationVO = new ComDisabilityPopulationVO();
@@ -349,8 +374,9 @@
        //低保户信息
        List<ComLowSecurityPopulationVO> comLowSecurityPopulationVOS = new ArrayList<>();
        List<ComLowSecurityPopulationDO> comLowSecurityPopulationDOS = comLowSecurityPopulationDAO.selectList(new QueryWrapper<ComLowSecurityPopulationDO>().
                lambda().eq(ComLowSecurityPopulationDO::getPopulationId, populationId));
        List<ComLowSecurityPopulationDO> comLowSecurityPopulationDOS =
            comLowSecurityPopulationDAO.selectList(new QueryWrapper<ComLowSecurityPopulationDO>().lambda()
                .eq(ComLowSecurityPopulationDO::getPopulationId, populationId));
        if (!comLowSecurityPopulationDOS.isEmpty()) {
            comLowSecurityPopulationDOS.forEach(comLowSecurityPopulationDO -> {
                ComLowSecurityPopulationVO comLowSecurityPopulationVO = new ComLowSecurityPopulationVO();
@@ -365,7 +391,8 @@
    /**
     * 分页查询社区
     *
     * @param comMngPopulationVO 查询参数
     * @param comMngPopulationVO
     *            查询参数
     * @return 分页集合
     */
    @Override
@@ -418,27 +445,32 @@
        }
        if (StringUtils.isNotEmpty(comMngPopulationVO.getAgeStart())) {
            String ageStartTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeStart()))), "yyyy-MM-dd");
            String ageStartTime = DateUtils.getDateFormatString(
                DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeStart()))), "yyyy-MM-dd");
            if (StringUtils.isNotEmpty(ageStartTime)) {
                comMngPopulationVO.setAgeStartTime(ageStartTime);
            }
        }
        if (StringUtils.isNotEmpty(comMngPopulationVO.getAgeEnd())) {
            String ageEndTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeEnd()))), "yyyy-MM-dd");
            String ageEndTime = DateUtils.getDateFormatString(
                DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeEnd()))), "yyyy-MM-dd");
            if (StringUtils.isNotEmpty(ageEndTime)) {
                comMngPopulationVO.setAgeEndTime(ageEndTime);
            }
        }
        if (comMngPopulationVO.getAgeStartTime() !=null && !"".equals(comMngPopulationVO.getAgeStartTime()) && comMngPopulationVO.getAgeEndTime() !=null && !"".equals(comMngPopulationVO.getAgeEndTime())){
        if (comMngPopulationVO.getAgeStartTime() != null && !"".equals(comMngPopulationVO.getAgeStartTime())
            && comMngPopulationVO.getAgeEndTime() != null && !"".equals(comMngPopulationVO.getAgeEndTime())) {
            if (comMngPopulationVO.getAgeStartTime().equals(comMngPopulationVO.getAgeEndTime())) {
                Date endAge = DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd"));
                Date endAge =
                    DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd"));
                String ageStartTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(endAge, -1), "yyyy-MM-dd");
                if (StringUtils.isNotEmpty(ageStartTime)) {
                    comMngPopulationVO.setAgeStartTimeEnd(ageStartTime);
                }
            } else {
                Date endAge = DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd"));
                Date endAge =
                    DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd"));
                String ageStartTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(endAge, -1), "yyyy-MM-dd");
                if (StringUtils.isNotEmpty(ageStartTime)) {
                    comMngPopulationVO.setAgeEndTimeEnd(ageStartTime);
@@ -452,7 +484,8 @@
                    populDO.setAge(AgeUtils.getAgeFromBirthTimes(populDO.getBirthday()));
                    populDO.setRelationName(PopulRelationEnum.getCnDescByName(populDO.getRelation()));
                    populDO.setCultureLevelName(PopulCultureLevelEnum.getCnDescByName(populDO.getCultureLevel()));
                    populDO.setPoliticalOutlookName(PopulPoliticalOutlookEnum.getCnDescByName(populDO.getPoliticalOutlook()));
                    populDO.setPoliticalOutlookName(
                        PopulPoliticalOutlookEnum.getCnDescByName(populDO.getPoliticalOutlook()));
                    populDO.setMarriageName(PopulMarriageEnum.getCnDescByName(populDO.getMarriage()));
                }
            });
@@ -463,7 +496,8 @@
    /**
     * 删除实有人口
     *
     * @param populationId 实有人口id
     * @param populationId
     *            实有人口id
     * @return 删除结果
     */
    @Override
@@ -482,7 +516,8 @@
     */
    @Override
    public R listPopulationAll() {
        List<ComMngPopulationDO> populationDOS = populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda().orderByDesc(ComMngPopulationDO::getCreateAt));
        List<ComMngPopulationDO> populationDOS = populationDAO
            .selectList(new QueryWrapper<ComMngPopulationDO>().lambda().orderByDesc(ComMngPopulationDO::getCreateAt));
        List<ComMngPopulationVO> populationVOS = new ArrayList<>();
        if (!ObjectUtils.isEmpty(populationDOS)) {
            populationDOS.forEach(comActDO -> {
@@ -496,7 +531,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSavePopulation(List<ComMngPopulationServeExcelVO> list, Long communityId){
    public R listSavePopulation(List<ComMngPopulationServeExcelVO> list, Long communityId, Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -505,6 +540,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationMistakeExcelVO> mistakes = new ArrayList<>();
@@ -516,17 +555,20 @@
                log.error("未查询到社区信息");
                return R.fail("未查询到社区信息");
            }
            log.info("开始查询社区信息数据完成");
            log.info("查询社区信息数据完成");
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -541,7 +583,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -559,6 +602,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationServeExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -595,8 +645,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -607,17 +658,19 @@
                    address.append(vo.getHouseNo()).append("号");
                }
                vo.setAddress(address.toString());
                log.info("开始查询小区街路巷是否存在完成");
                log.info("查询小区街路巷是否存在完成");
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -626,14 +679,15 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO =
                            savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
                    populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
                }
                vo.setHouseId(populationHouseDO.getId());
                log.info("开始查询房屋是否存在完成");
                log.info("查询房屋是否存在完成");
                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
                    //空户处理完房屋信息,直接返回
@@ -647,20 +701,14 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updatePopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO = updatePopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                    ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                    BeanUtils.copyProperties(vo,mistake);
                    setMistake(mistake, vo);
                    mistake.setMistake("该实有人口已存在,执行更新,社区id::"+ populationDO.getActId());
                    mistakes.add(mistake);
                }else{
                    //不存在实有人口,则新增
                    populationDO = savePopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = savePopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
                log.info("查询实有人口是否已存在完成");
                log.info("开始查询实有人口房屋居住信息");
                //处理实有人口房屋居住信息
@@ -678,7 +726,56 @@
                        houseUserList.add(populationHouseUserDO);
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    }else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -689,23 +786,33 @@
        if(!houseList.isEmpty()){
            log.info("执行数据库导入房屋");
            comMngPopulationHouseDAO.insertAll(houseList);
            log.info("执行数据库导入房屋完成");
            log.info("数据库导入房屋完成");
        }
        if(!saveList.isEmpty()){
            log.info("执行数据库导入人口");
            this.baseMapper.insertAll(saveList);
            log.info("执行数据库导入人口完成");
            log.info("数据库导入人口完成");
        }
        if(!updateList.isEmpty()){
            log.info("执行数据库更新人口");
            this.baseMapper.updateAll(updateList);
//            this.updateBatchById(updateList);
            log.info("执行数据库更新人口完成");
            log.info("数据库更新人口完成");
        }
        if(!houseUserList.isEmpty()){
            log.info("执行数据库导入人口房屋关系");
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
            log.info("数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
@@ -718,7 +825,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveDrugPopulation(List<ComMngPopulationDrugExcelVO> list, Long communityId) {
    public R listSaveDrugPopulation(List<ComMngPopulationDrugExcelVO> list, Long communityId, Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -727,6 +834,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationDrugMistakeExcelVO> mistakes = new ArrayList<>();
@@ -742,13 +853,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -763,7 +877,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -781,6 +896,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationDrugExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -817,8 +939,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -834,12 +957,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -848,7 +973,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveDrugPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveDrugPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
                            populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -869,11 +995,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateDrugPopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateDrugPopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveDrugPopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveDrugPopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -895,6 +1022,55 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    }else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setDrugMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -923,6 +1099,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -934,7 +1120,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveCorrectPopulation(List<ComMngPopulationCorrectExcelVO> list, Long communityId) {
    public R listSaveCorrectPopulation(List<ComMngPopulationCorrectExcelVO> list, Long communityId, Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -943,6 +1129,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationCorrectMistakeExcelVO> mistakes = new ArrayList<>();
@@ -958,13 +1148,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -979,7 +1172,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -997,6 +1191,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationCorrectExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -1033,8 +1234,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -1050,12 +1252,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -1064,7 +1268,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveCorrectPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveCorrectPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
                            populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -1085,11 +1290,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateCorrectPopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateCorrectPopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveCorrectPopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveCorrectPopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -1111,6 +1317,55 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    }else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setCorrectMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -1139,6 +1394,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -1150,7 +1415,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveMajorPopulation(List<ComMngPopulationMajorExcelVO> list, Long communityId) {
    public R listSaveMajorPopulation(List<ComMngPopulationMajorExcelVO> list, Long communityId, Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -1159,6 +1424,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationMajorMistakeExcelVO> mistakes = new ArrayList<>();
@@ -1174,13 +1443,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -1195,7 +1467,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -1213,6 +1486,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationMajorExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -1249,8 +1529,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -1266,12 +1547,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -1280,7 +1563,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveMajorPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveMajorPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
                            populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -1301,11 +1585,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateMajorPopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateMajorPopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveMajorPopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveMajorPopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -1327,6 +1612,55 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    }else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setMajorMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -1355,6 +1689,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -1366,7 +1710,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveCultPopulation(List<ComMngPopulationCultExcelVO> list, Long communityId) {
    public R listSaveCultPopulation(List<ComMngPopulationCultExcelVO> list, Long communityId, Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -1375,6 +1719,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationCultMistakeExcelVO> mistakes = new ArrayList<>();
@@ -1390,13 +1738,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -1411,7 +1762,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -1429,6 +1781,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationCultExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -1465,8 +1824,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -1482,12 +1842,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -1496,7 +1858,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveCultPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveCultPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
                            populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -1517,11 +1880,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateCultPopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateCultPopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveCultPopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveCultPopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -1543,6 +1907,55 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    } else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setCultMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -1571,6 +1984,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -1582,7 +2005,8 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveRehabilitationPopulation(List<ComMngPopulationRehabilitationExcelVO> list, Long communityId) {
    public R listSaveRehabilitationPopulation(List<ComMngPopulationRehabilitationExcelVO> list, Long communityId,
        Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -1591,6 +2015,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationRehabilitationMistakeExcelVO> mistakes = new ArrayList<>();
@@ -1606,13 +2034,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -1627,7 +2058,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -1645,6 +2077,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationRehabilitationExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -1672,7 +2111,8 @@
                if(!isOnly(villageKey,villageMap)){
                    comMngVillageDO = (ComMngVillageDO)villageMap.get(villageKey);
                }else{
                    ComMngPopulationRehabilitationMistakeExcelVO mistake = new ComMngPopulationRehabilitationMistakeExcelVO();
                    ComMngPopulationRehabilitationMistakeExcelVO mistake =
                        new ComMngPopulationRehabilitationMistakeExcelVO();
                    BeanUtils.copyProperties(vo,mistake);
                    setRehabilitationMistake(mistake, vo);
                    mistake.setMistake("街路巷或小区号不存在,请先在“小区管理”中添加该小区:街路巷:"+ vo.getRoad() +",小区号:" + vo.getDoorNo());
@@ -1681,8 +2121,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -1698,12 +2139,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -1712,7 +2155,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveRehabilitationPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveRehabilitationPopulationHouse(vo, comMngVillageDO, communityId,
                            areaPath, populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -1733,11 +2177,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateRehabilitationPopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateRehabilitationPopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveRehabilitationPopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveRehabilitationPopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -1759,6 +2204,56 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    }else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
                                new ComMngPopulationRehabilitationMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setRehabilitationMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -1787,6 +2282,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -1798,7 +2303,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveKeyPopulation(List<ComMngPopulationKeyExcelVO> list, Long communityId) {
    public R listSaveKeyPopulation(List<ComMngPopulationKeyExcelVO> list, Long communityId, Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -1807,6 +2312,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationKeyMistakeExcelVO> mistakes = new ArrayList<>();
@@ -1822,13 +2331,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -1843,7 +2355,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -1861,6 +2374,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationKeyExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -1897,8 +2417,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -1914,12 +2435,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -1928,7 +2451,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveKeyPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveKeyPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
                            populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -1949,11 +2473,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateKeyPopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateKeyPopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveKeyPopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveKeyPopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -1975,6 +2500,55 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    }else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setKeyMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -2003,6 +2577,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -2014,7 +2598,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveSentencePopulation(List<ComMngPopulationSentenceExcelVO> list, Long communityId) {
    public R listSaveSentencePopulation(List<ComMngPopulationSentenceExcelVO> list, Long communityId, Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -2023,6 +2607,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationSentenceMistakeExcelVO> mistakes = new ArrayList<>();
@@ -2038,13 +2626,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -2059,7 +2650,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -2077,6 +2669,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationSentenceExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -2113,8 +2712,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -2130,12 +2730,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -2144,7 +2746,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveSentencePopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveSentencePopulationHouse(vo, comMngVillageDO, communityId, areaPath,
                            populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -2165,11 +2768,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateSentencePopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateSentencePopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveSentencePopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveSentencePopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -2191,6 +2795,55 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    } else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setSentenceMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -2219,6 +2872,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -2230,7 +2893,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveVeteransPopulation(List<ComMngPopulationVeteransExcelVO> list, Long communityId) {
    public R listSaveVeteransPopulation(List<ComMngPopulationVeteransExcelVO> list, Long communityId, Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -2239,6 +2902,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationVeteransMistakeExcelVO> mistakes = new ArrayList<>();
@@ -2254,13 +2921,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -2275,7 +2945,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -2293,6 +2964,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationVeteransExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -2329,8 +3007,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -2346,12 +3025,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -2360,7 +3041,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveVeteransPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveVeteransPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
                            populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -2381,11 +3063,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateVeteransPopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateVeteransPopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveVeteransPopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveVeteransPopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -2407,6 +3090,55 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    }else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setVeteransMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -2435,6 +3167,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -2446,7 +3188,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveDisabilityPopulation(List<ComMngPopulationDisabilityExcelVO> list, Long communityId) {
    public R listSaveDisabilityPopulation(List<ComMngPopulationDisabilityExcelVO> list, Long communityId, Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -2455,6 +3197,10 @@
        List<ComMngPopulationDO> updateList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationDisabilityMistakeExcelVO> mistakes = new ArrayList<>();
@@ -2470,13 +3216,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -2491,7 +3240,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -2509,6 +3259,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationDisabilityExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -2545,8 +3302,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -2562,12 +3320,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -2576,7 +3336,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveDisabilityPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveDisabilityPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
                            populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -2597,11 +3358,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateDisabilityPopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateDisabilityPopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveDisabilityPopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveDisabilityPopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -2623,6 +3385,55 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    } else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setDisabilityMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -2651,6 +3462,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -2662,7 +3483,8 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R listSaveLowSecurityPopulation(List<ComMngPopulationLowSecurityExcelVO> list, Long communityId) {
    public R listSaveLowSecurityPopulation(List<ComMngPopulationLowSecurityExcelVO> list, Long communityId,
        Long userId) {
        //需要新增的房屋集合
        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
        //需要新增的人口集合
@@ -2675,6 +3497,10 @@
        List<ComDrugPopulationDO> updateDrugList = new ArrayList<>();
        //需要新增的人口与房屋关系集合
        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
        // 需要新增的人口与社区关系集合
        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
        log.info("开始处理导入数据");
        List<ComMngPopulationLowSecurityMistakeExcelVO> mistakes = new ArrayList<>();
@@ -2690,13 +3516,16 @@
            //查询当前社区标签列表
            List<String> labelList = new ArrayList<>();
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
                .selectList(new QueryWrapper<ComMngUserTagDO>().eq("sys_flag", 1).or().eq("community_id", communityId));
            if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName()).collect(Collectors.toList());
                labelList = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
                    .collect(Collectors.toList());
            }
            StringBuilder areaPath = new StringBuilder();
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName())
                .append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
@@ -2711,7 +3540,8 @@
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo()
                    + house.getHouseNo();
                houseMap.put(key,house);
            });
@@ -2729,6 +3559,13 @@
                houseUserMap.put(key,houseUser);
            });
            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
                comMngPopulationCommunityTagsDAO.selectList(null);
            HashMap<String, Object> populationCommunityMap = new HashMap<>();
            populationCommunityLists.forEach(populationCommunity -> {
                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
                populationCommunityMap.put(key, populationCommunity);
            });
            for (ComMngPopulationLowSecurityExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
@@ -2765,8 +3602,9 @@
                    continue;
                }
                StringBuilder address = new StringBuilder();
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName()).append(populationActVO.getDistrictName())
                        .append(populationActVO.getStreetName()).append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
                    .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
                    .append(comMngVillageDO.getAlley()).append(vo.getDoorNo()).append("号");
                if (StringUtils.isNotEmpty(vo.getFloor())) {
                    address.append(vo.getFloor()).append("栋");
                }
@@ -2782,12 +3620,14 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                String houseKey =
                    communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
                                    && house.getFloor().equals(vo.getFloor()) && house.getUnitNo().equals(vo.getUnitNo())
                            if (house.getVillageId().equals(comMngVillageDO.getVillageId())
                                && house.getCommunityId().equals(communityId) && house.getFloor().equals(vo.getFloor())
                                && house.getUnitNo().equals(vo.getUnitNo())
                                    && house.getHouseNo().equals(vo.getHouseNo())){
                                populationHouseDO = house;
                                break;
@@ -2796,7 +3636,8 @@
                    }
                    if(populationHouseDO == null){
                        //房屋信息不存在建立房屋信息
                        populationHouseDO = saveLowSecurityPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        populationHouseDO = saveLowSecurityPopulationHouse(vo, comMngVillageDO, communityId, areaPath,
                            populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                }else{
@@ -2817,11 +3658,12 @@
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updateLowSecurityPopulationDO(vo,populationDO,labelList);
                    ComMngPopulationDO updatePopulationDO =
                        updateLowSecurityPopulationDO(vo, populationDO, communityId, userId);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = saveLowSecurityPopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    populationDO = saveLowSecurityPopulationDO(vo, populationActVO, comMngVillageDO, userId);
                    saveList.add(populationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
@@ -2843,6 +3685,55 @@
                    }
                }
                log.info("开始查询实有人口房屋居住信息完成");
                log.info("开始查询实有人口存在社区信息");
                // 处理实有人口与社区关系以及对应特殊群体标签
                String populationCommunityKey = populationDO.getId() + populationActVO.getCommunityId() + "";
                if (populationDO != null) {
                    ComMngPopulationCommunityTagsDO cpopulationCommunityTagsDO = null;
                    if (isOnly(populationCommunityKey, populationCommunityMap)) {
                        // 实有人口不存在于当前社区
                        cpopulationCommunityTagsDO = new ComMngPopulationCommunityTagsDO();
                        cpopulationCommunityTagsDO.setId(Snowflake.getId());
                        cpopulationCommunityTagsDO.setPopulationId(populationDO.getId());
                        cpopulationCommunityTagsDO.setCommunityId(communityId);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                            .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        populationDO.setLabel(Joiner.on(",").join(userTag));
                        populationDO.setCreateBy(userId);
                        savePopulationCommunityList.add(cpopulationCommunityTagsDO);
                    } else {
                        // 实有人口存在于当前社区,则更新
                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
                                (ComMngPopulationCommunityTagsDO)populationCommunityMap.get(populationCommunityKey);
                        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0])
                                .collect(Collectors.toList());
                        // 如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
                        Iterator<String> iterator = userTag.iterator();
                        while (iterator.hasNext()) {
                            String s = iterator.next();
                            if (!labelList.contains(s))
                                iterator.remove();
                        }
                        comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
                        ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
                        BeanUtils.copyProperties(vo, mistake);
                        setLowSecurityMistake(mistake, vo);
                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
                        mistakes.add(mistake);
                    }
                }
                log.info("查询实有人口存在社区信息完成");
            }
        }catch (Exception e){
            log.info("出现错误,错误原因:" + e.getMessage());
@@ -2871,6 +3762,16 @@
            comMngPopulationHouseUserService.saveBatch(houseUserList);
            log.info("执行数据库导入人口房屋关系完成");
        }
        if (!savePopulationCommunityList.isEmpty()) {
            log.info("执行数据库导入人口社区关系");
            comMngPopulationCommunityTagsService.saveBatch(savePopulationCommunityList);
            log.info("数据库导入人口社区关系完成");
        }
        if (!updatePopulationCommunityList.isEmpty()) {
            log.info("执行数据库更新人口社区关系");
            comMngPopulationCommunityTagsDAO.updateAll(updatePopulationCommunityList);
            log.info("数据库更新人口社区关系完成");
        }
        log.info("执行数据库导入完成");
        if (!mistakes.isEmpty()) {
@@ -2880,48 +3781,55 @@
        return R.ok(mistakes);
    }
    private ComMngPopulationDO updatePopulationDO(ComMngPopulationServeExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updatePopulationDO(ComMngPopulationServeExcelVO vo, ComMngPopulationDO populationDO,
        Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        return populationDO;
    }
    private ComMngPopulationDO updateDrugPopulationDO(ComMngPopulationDrugExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateDrugPopulationDO(ComMngPopulationDrugExcelVO vo, ComMngPopulationDO populationDO,
        Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComDrugPopulationDO comDrugPopulationDO = comDrugPopulationDAO.selectOne(new QueryWrapper<ComDrugPopulationDO>().lambda()
                .eq(ComDrugPopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        ComDrugPopulationDO comDrugPopulationDO = comDrugPopulationDAO.selectOne(new QueryWrapper<ComDrugPopulationDO>()
            .lambda().eq(ComDrugPopulationDO::getPopulationId, populationDO.getId()));
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comDrugPopulationDO != null) {
            BeanUtils.copyProperties(vo, comDrugPopulationDO);
@@ -2939,26 +3847,31 @@
        return populationDO;
    }
    private ComMngPopulationDO updateCorrectPopulationDO(ComMngPopulationCorrectExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateCorrectPopulationDO(ComMngPopulationCorrectExcelVO vo,
        ComMngPopulationDO populationDO, Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComCorrectPopulationDO comCorrectPopulationDO = comCorrectPopulationDAO.selectOne(new QueryWrapper<ComCorrectPopulationDO>().lambda()
        ComCorrectPopulationDO comCorrectPopulationDO =
            comCorrectPopulationDAO.selectOne(new QueryWrapper<ComCorrectPopulationDO>().lambda()
                .eq(ComCorrectPopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comCorrectPopulationDO != null) {
            BeanUtils.copyProperties(vo, comCorrectPopulationDO);
            comCorrectPopulationDO.setCardNo(cardNoAES);
@@ -2975,26 +3888,31 @@
        return populationDO;
    }
    private ComMngPopulationDO updateMajorPopulationDO(ComMngPopulationMajorExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateMajorPopulationDO(ComMngPopulationMajorExcelVO vo, ComMngPopulationDO populationDO,
        Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComMajorPopulationDO comMajorPopulationDO = comMajorPopulationDAO.selectOne(new QueryWrapper<ComMajorPopulationDO>().lambda()
        ComMajorPopulationDO comMajorPopulationDO =
            comMajorPopulationDAO.selectOne(new QueryWrapper<ComMajorPopulationDO>().lambda()
                .eq(ComMajorPopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comMajorPopulationDO != null) {
            BeanUtils.copyProperties(vo, comMajorPopulationDO);
            comMajorPopulationDO.setCardNo(cardNoAES);
@@ -3011,26 +3929,30 @@
        return populationDO;
    }
    private ComMngPopulationDO updateCultPopulationDO(ComMngPopulationCultExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateCultPopulationDO(ComMngPopulationCultExcelVO vo, ComMngPopulationDO populationDO,
        Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComCultPopulationDO comCultPopulationDO = comCultPopulationDAO.selectOne(new QueryWrapper<ComCultPopulationDO>().lambda().
                eq(ComCultPopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        ComCultPopulationDO comCultPopulationDO = comCultPopulationDAO.selectOne(new QueryWrapper<ComCultPopulationDO>()
            .lambda().eq(ComCultPopulationDO::getPopulationId, populationDO.getId()));
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comCultPopulationDO != null) {
            BeanUtils.copyProperties(vo, comCultPopulationDO);
            comCultPopulationDO.setCardNo(cardNoAES);
@@ -3047,26 +3969,31 @@
        return populationDO;
    }
    private ComMngPopulationDO updateRehabilitationPopulationDO(ComMngPopulationRehabilitationExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateRehabilitationPopulationDO(ComMngPopulationRehabilitationExcelVO vo,
        ComMngPopulationDO populationDO, Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComRehabilitationPopulationDO comRehabilitationPopulationDO = comRehabilitationPopulationDAO.selectOne(new QueryWrapper<ComRehabilitationPopulationDO>().lambda().
                eq(ComRehabilitationPopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        ComRehabilitationPopulationDO comRehabilitationPopulationDO =
            comRehabilitationPopulationDAO.selectOne(new QueryWrapper<ComRehabilitationPopulationDO>().lambda()
                .eq(ComRehabilitationPopulationDO::getPopulationId, populationDO.getId()));
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comRehabilitationPopulationDO != null) {
            BeanUtils.copyProperties(vo, comRehabilitationPopulationDO);
            comRehabilitationPopulationDO.setCardNo(cardNoAES);
@@ -3084,26 +4011,30 @@
        return populationDO;
    }
    private ComMngPopulationDO updateKeyPopulationDO(ComMngPopulationKeyExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateKeyPopulationDO(ComMngPopulationKeyExcelVO vo, ComMngPopulationDO populationDO,
        Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComKeyPopulationDO comKeyPopulationDO = comKeyPopulationDAO.selectOne(new QueryWrapper<ComKeyPopulationDO>().lambda().
                eq(ComKeyPopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        ComKeyPopulationDO comKeyPopulationDO = comKeyPopulationDAO.selectOne(new QueryWrapper<ComKeyPopulationDO>()
            .lambda().eq(ComKeyPopulationDO::getPopulationId, populationDO.getId()));
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comKeyPopulationDO != null) {
            BeanUtils.copyProperties(vo, comKeyPopulationDO);
            comKeyPopulationDO.setCardNo(cardNoAES);
@@ -3120,26 +4051,31 @@
        return populationDO;
    }
    private ComMngPopulationDO updateSentencePopulationDO(ComMngPopulationSentenceExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateSentencePopulationDO(ComMngPopulationSentenceExcelVO vo,
        ComMngPopulationDO populationDO, Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComSentencePopulationDO comSentencePopulationDO = comSentencePopulationDAO.selectOne(new QueryWrapper<ComSentencePopulationDO>().lambda().
                eq(ComSentencePopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        ComSentencePopulationDO comSentencePopulationDO =
            comSentencePopulationDAO.selectOne(new QueryWrapper<ComSentencePopulationDO>().lambda()
                .eq(ComSentencePopulationDO::getPopulationId, populationDO.getId()));
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comSentencePopulationDO != null) {
            BeanUtils.copyProperties(vo, comSentencePopulationDO);
            comSentencePopulationDO.setCardNo(cardNoAES);
@@ -3156,26 +4092,31 @@
        return populationDO;
    }
    private ComMngPopulationDO updateVeteransPopulationDO(ComMngPopulationVeteransExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateVeteransPopulationDO(ComMngPopulationVeteransExcelVO vo,
        ComMngPopulationDO populationDO, Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComVeteransPopulationDO comVeteransPopulationDO = comVeteransPopulationDAO.selectOne(new QueryWrapper<ComVeteransPopulationDO>().lambda().
                eq(ComVeteransPopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        ComVeteransPopulationDO comVeteransPopulationDO =
            comVeteransPopulationDAO.selectOne(new QueryWrapper<ComVeteransPopulationDO>().lambda()
                .eq(ComVeteransPopulationDO::getPopulationId, populationDO.getId()));
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comVeteransPopulationDO != null) {
            BeanUtils.copyProperties(vo, comVeteransPopulationDO);
            comVeteransPopulationDO.setCardNo(cardNoAES);
@@ -3191,26 +4132,32 @@
        }
        return populationDO;
    }
    private ComMngPopulationDO updateDisabilityPopulationDO(ComMngPopulationDisabilityExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateDisabilityPopulationDO(ComMngPopulationDisabilityExcelVO vo,
        ComMngPopulationDO populationDO, Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComDisabilityPopulationDO comDisabilityPopulationDO = comDisabilityPopulationDAO.selectOne(new QueryWrapper<ComDisabilityPopulationDO>().lambda().
                eq(ComDisabilityPopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        ComDisabilityPopulationDO comDisabilityPopulationDO =
            comDisabilityPopulationDAO.selectOne(new QueryWrapper<ComDisabilityPopulationDO>().lambda()
                .eq(ComDisabilityPopulationDO::getPopulationId, populationDO.getId()));
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comDisabilityPopulationDO != null) {
            BeanUtils.copyProperties(vo, comDisabilityPopulationDO);
            comDisabilityPopulationDO.setCardNo(cardNoAES);
@@ -3227,26 +4174,31 @@
        return populationDO;
    }
    private ComMngPopulationDO updateLowSecurityPopulationDO(ComMngPopulationLowSecurityExcelVO vo, ComMngPopulationDO populationDO,List<String> labelList){
    private ComMngPopulationDO updateLowSecurityPopulationDO(ComMngPopulationLowSecurityExcelVO vo,
        ComMngPopulationDO populationDO, Long communityId, Long userId) {
        BeanUtils.copyProperties(vo, populationDO);
        ComLowSecurityPopulationDO comLowSecurityPopulationDO = comLowSecurityPopulationDAO.selectOne(new QueryWrapper<ComLowSecurityPopulationDO>().lambda().
                eq(ComLowSecurityPopulationDO::getPopulationId, populationDO.getId()));
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        ComLowSecurityPopulationDO comLowSecurityPopulationDO =
            comLowSecurityPopulationDAO.selectOne(new QueryWrapper<ComLowSecurityPopulationDO>().lambda()
                .eq(ComLowSecurityPopulationDO::getPopulationId, populationDO.getId()));
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
        }catch (Exception e){
            log.error("身份证加密失败");
        }
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setActId(communityId);
        populationDO.setCardNo(cardNoAES);
        populationDO.setUpdateBy(userId);
        if (comLowSecurityPopulationDO != null) {
            BeanUtils.copyProperties(vo, comLowSecurityPopulationDO);
            comLowSecurityPopulationDO.setCardNo(cardNoAES);
@@ -3263,23 +4215,25 @@
        return populationDO;
    }
    private ComMngPopulationDO savePopulationDO(ComMngPopulationServeExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO savePopulationDO(ComMngPopulationServeExcelVO vo, ComPopulationActVO comActDO,
        ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        populationDO.setId(Snowflake.getId());
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3291,6 +4245,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3303,7 +4258,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveDrugPopulationDO(ComMngPopulationDrugExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveDrugPopulationDO(ComMngPopulationDrugExcelVO vo, ComPopulationActVO comActDO,
        ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        ComDrugPopulationDO comDrugPopulationDO = new ComDrugPopulationDO();
@@ -3311,19 +4267,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comDrugPopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3335,6 +4292,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3351,7 +4309,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveCorrectPopulationDO(ComMngPopulationCorrectExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveCorrectPopulationDO(ComMngPopulationCorrectExcelVO vo, ComPopulationActVO comActDO,
        ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        ComCorrectPopulationDO comCorrectPopulationDO = new ComCorrectPopulationDO();
@@ -3359,19 +4318,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comCorrectPopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3383,6 +4343,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3399,7 +4360,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveMajorPopulationDO(ComMngPopulationMajorExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveMajorPopulationDO(ComMngPopulationMajorExcelVO vo, ComPopulationActVO comActDO,
        ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        ComMajorPopulationDO comMajorPopulationDO = new ComMajorPopulationDO();
@@ -3407,19 +4369,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comMajorPopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3431,6 +4394,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3447,7 +4411,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveCultPopulationDO(ComMngPopulationCultExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveCultPopulationDO(ComMngPopulationCultExcelVO vo, ComPopulationActVO comActDO,
        ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        ComCultPopulationDO comCultPopulationDO = new ComCultPopulationDO();
@@ -3455,19 +4420,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comCultPopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3479,6 +4445,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3495,7 +4462,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveRehabilitationPopulationDO(ComMngPopulationRehabilitationExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveRehabilitationPopulationDO(ComMngPopulationRehabilitationExcelVO vo,
        ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        ComRehabilitationPopulationDO comRehabilitationPopulationDO = new ComRehabilitationPopulationDO();
@@ -3503,19 +4471,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comRehabilitationPopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3527,6 +4496,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3543,7 +4513,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveKeyPopulationDO(ComMngPopulationKeyExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveKeyPopulationDO(ComMngPopulationKeyExcelVO vo, ComPopulationActVO comActDO,
        ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        ComKeyPopulationDO comKeyPopulationDO = new ComKeyPopulationDO();
@@ -3551,19 +4522,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comKeyPopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3575,6 +4547,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3591,7 +4564,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveSentencePopulationDO(ComMngPopulationSentenceExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveSentencePopulationDO(ComMngPopulationSentenceExcelVO vo, ComPopulationActVO comActDO,
        ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        ComSentencePopulationDO comSentencePopulationDO = new ComSentencePopulationDO();
@@ -3599,19 +4573,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comSentencePopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3623,6 +4598,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3639,7 +4615,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveVeteransPopulationDO(ComMngPopulationVeteransExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveVeteransPopulationDO(ComMngPopulationVeteransExcelVO vo, ComPopulationActVO comActDO,
        ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        ComVeteransPopulationDO comVeteransPopulationDO = new ComVeteransPopulationDO();
@@ -3647,19 +4624,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comVeteransPopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3671,6 +4649,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3687,7 +4666,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveDisabilityPopulationDO(ComMngPopulationDisabilityExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveDisabilityPopulationDO(ComMngPopulationDisabilityExcelVO vo,
        ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
        ComDisabilityPopulationDO comDisabilityPopulationDO = new ComDisabilityPopulationDO();
@@ -3695,19 +4675,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comDisabilityPopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3719,6 +4700,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3735,7 +4717,8 @@
        return populationDO;
    }
    private ComMngPopulationDO saveLowSecurityPopulationDO(ComMngPopulationLowSecurityExcelVO vo, ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO,List<String> labelList) {
    private ComMngPopulationDO saveLowSecurityPopulationDO(ComMngPopulationLowSecurityExcelVO vo,
        ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO, Long userId) {
        ComMngPopulationDO populationDO = new ComMngPopulationDO();
        ComLowSecurityPopulationDO comLowSecurityPopulationDO = new ComLowSecurityPopulationDO();
        BeanUtils.copyProperties(vo, populationDO);
@@ -3743,19 +4726,20 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comLowSecurityPopulationDO.setPopulationId(populationId);
        List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        Iterator<String> iterator = userTag.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if (!labelList.contains(s))
                iterator.remove();
        }
        // List<String> userTag = vo.getUserTagStr().stream().map(userTagStr ->
        // userTagStr.split("\\(")[0]).collect(Collectors.toList());
        //
        // //如果导入数据标签中有当前社区标签列表中不包含的标签,则删除
        // Iterator<String> iterator = userTag.iterator();
        // while (iterator.hasNext()) {
        // String s = iterator.next();
        // if (!labelList.contains(s))
        // iterator.remove();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
        populationDO.setLabel(Joiner.on(",").join(userTag));
        // populationDO.setLabel(Joiner.on(",").join(userTag));
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
@@ -3767,6 +4751,7 @@
            log.error("身份证加密失败");
        }
        populationDO.setCardNo(cardNoAES);
        populationDO.setCreateBy(userId);
        //新增的时候默认绑定房屋id
//        if ((vo.getIsRent() != null && vo.getIsRent().equals(PopulHouseUseEnum.SELF.getCode())) ||
//                (vo.getIsResidence() != null && vo.getIsResidence().intValue() == 1)) {
@@ -3783,7 +4768,8 @@
        return populationDO;
    }
    private ComMngPopulationHouseDO savePopulationHouse(ComMngPopulationServeExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,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());
@@ -3801,7 +4787,8 @@
        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(vo.getAddress());
        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()));
@@ -3824,7 +4811,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveDrugPopulationHouse(ComMngPopulationDrugExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveDrugPopulationHouse(ComMngPopulationDrugExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -3842,7 +4830,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -3865,7 +4854,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveCorrectPopulationHouse(ComMngPopulationCorrectExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveCorrectPopulationHouse(ComMngPopulationCorrectExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -3883,7 +4873,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -3906,7 +4897,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveMajorPopulationHouse(ComMngPopulationMajorExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveMajorPopulationHouse(ComMngPopulationMajorExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -3924,7 +4916,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -3947,7 +4940,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveCultPopulationHouse(ComMngPopulationCultExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveCultPopulationHouse(ComMngPopulationCultExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -3965,7 +4959,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -3988,7 +4983,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveRehabilitationPopulationHouse(ComMngPopulationRehabilitationExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveRehabilitationPopulationHouse(ComMngPopulationRehabilitationExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -4006,7 +5002,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -4029,7 +5026,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveKeyPopulationHouse(ComMngPopulationKeyExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveKeyPopulationHouse(ComMngPopulationKeyExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -4047,7 +5045,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -4070,7 +5069,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveSentencePopulationHouse(ComMngPopulationSentenceExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveSentencePopulationHouse(ComMngPopulationSentenceExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -4088,7 +5088,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -4111,7 +5112,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveVeteransPopulationHouse(ComMngPopulationVeteransExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveVeteransPopulationHouse(ComMngPopulationVeteransExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -4129,7 +5131,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -4152,7 +5155,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveDisabilityPopulationHouse(ComMngPopulationDisabilityExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveDisabilityPopulationHouse(ComMngPopulationDisabilityExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -4170,7 +5174,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -4193,7 +5198,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseDO saveLowSecurityPopulationHouse(ComMngPopulationLowSecurityExcelVO vo, ComMngVillageDO comMngVillageDO, Long communityId,StringBuilder areaPath, String actName) {
    private ComMngPopulationHouseDO saveLowSecurityPopulationHouse(ComMngPopulationLowSecurityExcelVO vo,
        ComMngVillageDO comMngVillageDO, Long communityId, StringBuilder areaPath, String actName) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
        populationHouseDO.setId(Snowflake.getId());
@@ -4211,7 +5217,8 @@
        populationHouseDO.setUpdateAt(new Date());
//        populationHouseDO.setConstructPurpose(vo.getHousePurpose());
        StringBuilder housePath = new StringBuilder();
        housePath.append(populationHouseDO.getAlley()).append(">").append(actName).append(">").append(comMngVillageDO.getName()).append(">").append(vo.getAddress());
        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()));
@@ -4234,7 +5241,8 @@
        return populationHouseDO;
    }
    private ComMngPopulationHouseUserDO savePopulationHouseUser(ComMngPopulationServeExcelVO vo, ComMngPopulationDO comMngPopulationDO, ComMngPopulationHouseDO comMngPopulationHouseDO) {
    private ComMngPopulationHouseUserDO savePopulationHouseUser(ComMngPopulationServeExcelVO vo,
        ComMngPopulationDO comMngPopulationDO, ComMngPopulationHouseDO comMngPopulationHouseDO) {
        //查询该房屋未建立,执行建立房屋信息
        ComMngPopulationHouseUserDO populationHouseUserDO = new ComMngPopulationHouseUserDO();
        populationHouseUserDO.setId(Snowflake.getId());
@@ -4250,8 +5258,10 @@
    /**
     * 确认导入实有人口(有则更新,无则新建)
     *
     * @param list        用户信息
     * @param communityId 社区id
     * @param list
     *            用户信息
     * @param communityId
     *            社区id
     * @return 导入结果
     */
    @Override
@@ -4259,16 +5269,21 @@
        if (list.size() == 0) {
            return R.fail("数据为空!");
        }
        List<ComMngPopulationDO> comMngPopulationDOS = populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId, communityId));
        List<ComMngPopulationDO> comMngPopulationDOS = populationDAO
            .selectList(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId, communityId));
        //查询该社区所有(实有房屋)小区
//        List<ComMngVillageDO> villageDOList = comActVillageDAO.selectList(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId, communityId));
        // List<ComMngVillageDO> villageDOList = comActVillageDAO.selectList(new
        // QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId, communityId));
        ComActDO comActDO = comActDAO.selectById(communityId);
        ArrayList<ComMngPopulationDO> populationDOList = Lists.newArrayList();
        list.forEach(vo -> {
            ComMngPopulationDO comMngPopulationDO = new ComMngPopulationDO();
            //查询街路巷是否存在
            ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley", vo.getRoad()).eq("house_num", vo.getDoorNo()).eq("community_id", communityId));
//            ComMngVillageDO comMngVillageDO = villageDOList.stream().filter(village -> village.getAlley().equals(vo.getRoad()) && village.getHouseNum().equals(Integer.valueOf(vo.getDoorNo()))).findFirst().orElse(null);
            ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>()
                .eq("alley", vo.getRoad()).eq("house_num", vo.getDoorNo()).eq("community_id", communityId));
            // ComMngVillageDO comMngVillageDO = villageDOList.stream().filter(village ->
            // village.getAlley().equals(vo.getRoad()) &&
            // village.getHouseNum().equals(Integer.valueOf(vo.getDoorNo()))).findFirst().orElse(null);
            BeanUtils.copyProperties(vo, comMngPopulationDO);
            if (comMngVillageDO == null) {
                throw new ServiceException("街道巷:" + vo.getRoad() + "不存在!");
@@ -4276,7 +5291,8 @@
            comMngPopulationDO.setVillageId(comMngVillageDO.getVillageId());
            comMngPopulationDO.setActId(comActDO.getCommunityId());
            comMngPopulationDO.setStreetId(comActDO.getStreetId());
            List<String> userTag = vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
            List<String> userTag =
                vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
            comMngPopulationDO.setLabel(Joiner.on(",").join(userTag));
            comMngPopulationDO.setVillageName(comMngVillageDO.getGroupAt());
            populationDOList.add(comMngPopulationDO);
@@ -4290,7 +5306,8 @@
                    String cardNo = AESUtil.encrypt128(population.getCardNo(), aesKey);
                    population.setCardNo(cardNo);
                    //查询这个用户是否存在
                    ComMngPopulationDO comMngPopulationDO = this.populationDAO.selectOne(new QueryWrapper<ComMngPopulationDO>().lambda()
                    ComMngPopulationDO comMngPopulationDO =
                        this.populationDAO.selectOne(new QueryWrapper<ComMngPopulationDO>().lambda()
                            .eq(ComMngPopulationDO::getCardNo, population.getCardNo()));
                    if (comMngPopulationDO != null) {
                        population.setId(comMngPopulationDO.getId());
@@ -4320,7 +5337,8 @@
    /**
     * 根据id修改实有人口标签
     *
     * @param populationTagDTO 请求参数
     * @param populationTagDTO
     *            请求参数
     * @return 修改结果
     */
    @Override
@@ -4363,12 +5381,14 @@
    /**
     * 根据社区id查询所有实有人口
     *
     * @param communityId 社区id
     * @param communityId
     *            社区id
     * @return 查询结果
     */
    @Override
    public R getPopulationListByCommunityId(Long communityId) {
        List<ComMngPopulationDO> list = populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().eq("act_id", communityId));
        List<ComMngPopulationDO> list =
            populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().eq("act_id", communityId));
        List<ComMngPopulationVO> resultList = new ArrayList<>();
        if (list.size() > 0) {
            list.forEach(populationDO -> {
@@ -4383,7 +5403,8 @@
    /**
     * 根据id集合查询实有人口
     *
     * @param Ids 实有人口id集合
     * @param Ids
     *            实有人口id集合
     * @return 查询结果
     */
    @Override
@@ -4402,7 +5423,8 @@
    @Override
    public R getPopulationListByVillageId(Long villageId) {
        List<ComMngPopulationDO> list = populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().eq("village_id", villageId));
        List<ComMngPopulationDO> list =
            populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().eq("village_id", villageId));
        List<ComMngPopulationVO> resultList = new ArrayList<>();
        if (list.size() > 0) {
            list.forEach(populationDO -> {
@@ -4451,7 +5473,6 @@
            });
        }
        //更新用户的房屋信息
        Long houseId = null;
        List<ComMngPopulationHouseUserDO> populationHouseUserDOList = new ArrayList<>();
@@ -4484,8 +5505,9 @@
                populationDO.setFloor(houseDO.getFloor());
                populationDO.setUnitNo(houseDO.getUnitNo());
                populationDO.setHouseNo(houseDO.getHouseNo());
                ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().lambda()
                        .eq(ComMngVillageDO::getAlley, houseDO.getAlley()).eq(ComMngVillageDO::getHouseNum, houseDO.getHouseNum())
                ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(
                    new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getAlley, houseDO.getAlley())
                        .eq(ComMngVillageDO::getHouseNum, houseDO.getHouseNum())
                        .eq(ComMngVillageDO::getCommunityId, communityId));
                if (comMngVillageDO != null) {
                    populationDO.setVillageId(comMngVillageDO.getVillageId());
@@ -4496,7 +5518,8 @@
            }
        }
//        ComMngPopulationHouseUserDO comMngPopulationHouseUserDO = comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
        // ComMngPopulationHouseUserDO comMngPopulationHouseUserDO = comMngPopulationHouseUserDAO.selectOne(new
        // QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
//                .eq(ComMngPopulationHouseUserDO::getPopulId, vo.getId()));
//        if (comMngPopulationHouseUserDO != null) {
//            comMngPopulationHouseUserDO.setRelation(vo.getRelation());
@@ -4518,15 +5541,16 @@
    @Override
    public R specialInputUser(PageInputUserDTO pageInputUserDTO) {
        IPage<InputUserInfoVO> iPage = populationDAO.specialInputUser(new Page<>(pageInputUserDTO.getPageNum()
                , pageInputUserDTO.getPageSize()), pageInputUserDTO);
        IPage<InputUserInfoVO> iPage = populationDAO.specialInputUser(
            new Page<>(pageInputUserDTO.getPageNum(), pageInputUserDTO.getPageSize()), pageInputUserDTO);
        return R.ok(iPage);
    }
    /**
     * 删除特殊群体人员
     *
     * @param id 特殊群体id
     * @param id
     *            特殊群体id
     * @return 删除结果
     */
    @Override
@@ -4546,8 +5570,8 @@
    @Override
    public R specialInputUserTags(PageInputUserDTO comMngUserTagDTO) {
        IPage<ComMngTagVO> iPage = populationDAO.specialInputUserTags(new Page<>(comMngUserTagDTO.getPageNum()
                , comMngUserTagDTO.getPageSize()), comMngUserTagDTO);
        IPage<ComMngTagVO> iPage = populationDAO.specialInputUserTags(
            new Page<>(comMngUserTagDTO.getPageNum(), comMngUserTagDTO.getPageSize()), comMngUserTagDTO);
        return R.ok(iPage);
    }
@@ -4559,7 +5583,8 @@
            if (null == comMngUserTagDO) {
                return R.fail("该标签不存在");
            }
            ComMngUserTagDO checkCreditCode = comMngUserTagDAO.selectOne(new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName()));
            ComMngUserTagDO checkCreditCode = comMngUserTagDAO.selectOne(
                new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName()));
            if (null != checkCreditCode && comMngUserTagDO.getId() != checkCreditCode.getId()) {
                return R.fail("该标签已存在,标签名称重复");
            }
@@ -4571,7 +5596,8 @@
            }
        } else {
            //新增
            Integer count = comMngUserTagDAO.selectCount(new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName())
            Integer count = comMngUserTagDAO.selectCount(
                new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName())
            .eq(ComMngUserTagDO::getCommunityId, comMngTagVO.getCommunityId()));
            if (count > 0) {
                return R.fail("该标签已存在,标签名称重复");
@@ -4604,7 +5630,8 @@
    /**
     * 查询实有人口电子档信息
     *
     * @param populationId 实有人口id
     * @param populationId
     *            实有人口id
     * @return 实有人口电子档信息
     */
    @Override
@@ -4615,7 +5642,8 @@
        }
        //查询当前用户电子档信息
        if (!StringUtils.isEmpty(comMngPopulationDO.getCardNo())) {
            UserElectronicFileVO electronicFileVO = populationDAO.getSysUserElectronicFile(comMngPopulationDO.getCardNo());
            UserElectronicFileVO electronicFileVO =
                populationDAO.getSysUserElectronicFile(comMngPopulationDO.getCardNo());
            if (electronicFileVO != null) {
                return R.ok(electronicFileVO);
            }
@@ -4636,7 +5664,8 @@
    /**
     * 实有人口统计
     *
     * @param communityId 社区id
     * @param communityId
     *            社区id
     * @return 统计结果
     */
    @Override
@@ -4653,7 +5682,8 @@
        ComMngPopulationDO comMngPopulation = new ComMngPopulationDO();
        if (comMngPopulationDO.getLabel() != null) {
            if (!comMngPopulationDO.getLabel().contains(comMngPopulationTagCardNoDTO.getLabel())) {
                comMngPopulation.setLabel(comMngPopulationTagCardNoDTO.getLabel().concat(",").concat(comMngPopulationDO.getLabel()));
                comMngPopulation.setLabel(
                    comMngPopulationTagCardNoDTO.getLabel().concat(",").concat(comMngPopulationDO.getLabel()));
            }
        } else {
            comMngPopulation.setLabel(comMngPopulationTagCardNoDTO.getLabel());
@@ -4671,10 +5701,7 @@
    public ComMngPopulationDO getPopulationByCardNo(String cardNo) {
        try {
            String aesCardNo = AESUtil.encrypt128(cardNo, aesKey);
            return baseMapper.selectOne(
                    new QueryWrapper<ComMngPopulationDO>()
                            .eq("card_no", aesCardNo)
            );
            return baseMapper.selectOne(new QueryWrapper<ComMngPopulationDO>().eq("card_no", aesCardNo));
        } catch (Exception e) {
            log.error("根据身份证查询业务-加密证件信息出错:{}", e.getCause());
        }
@@ -4684,7 +5711,8 @@
    /**
     * 首页大屏统计接口
     *
     * @param communityId 社区id
     * @param communityId
     *            社区id
     * @return 统计结果
     */
    @Override
@@ -4699,7 +5727,8 @@
        //查询实有人口统计模块
        IndexPopulationStatisticsVO populationStatisticsVO = new IndexPopulationStatisticsVO();
        //查询实有人口性别统计
        List<IndexPopulationSexStatisticsVO> sexPopulationList = comMngPopulationDAO.getScreenIndexByPopulationSex(communityId);
        List<IndexPopulationSexStatisticsVO> sexPopulationList =
            comMngPopulationDAO.getScreenIndexByPopulationSex(communityId);
        populationStatisticsVO.setSexPopulationList(sexPopulationList);
        //查询实有人口年龄统计
        List<IndexPopulationAgeStatisticsVO> agePopulationList = statisticsAge(communityId);
@@ -4707,12 +5736,14 @@
        statisticsVO.setPopulationStatisticsVO(populationStatisticsVO);
        //查询实有人口实时治理信息
        List<IndexEventListStatisticsVO> eventListStatisticsList = comMngPopulationDAO.getScreenIndexByEventList(communityId);
        List<IndexEventListStatisticsVO> eventListStatisticsList =
            comMngPopulationDAO.getScreenIndexByEventList(communityId);
        statisticsVO.setEventListStatisticsList(eventListStatisticsList);
        //查询社区治理动态信息
        IndexDynamicStatisticsVO dynamicStatisticsVO = comMngPopulationDAO.getScreenIndexByDynamic(communityId);
        dynamicStatisticsVO.setCultureActivityTotal(dynamicStatisticsVO.getPbTotal() + dynamicStatisticsVO.getActTotal());
        dynamicStatisticsVO
            .setCultureActivityTotal(dynamicStatisticsVO.getPbTotal() + dynamicStatisticsVO.getActTotal());
        statisticsVO.setDynamicStatisticsVO(dynamicStatisticsVO);
        //查询网格化治理
@@ -4729,7 +5760,8 @@
                    IndexGridStatisticsVO gridStatisticsVO = new IndexGridStatisticsVO();
                    gridStatisticsVO.setEventData(gridData.getGridName());
                    //根据网格id查询网格事件列表
                    IndexGridEventStatisticsVO gridEventList = comMngPopulationDAO.getGridEventByGirdId(gridData.getId());
                    IndexGridEventStatisticsVO gridEventList =
                        comMngPopulationDAO.getGridEventByGirdId(gridData.getId());
                    gridStatisticsVO.setGridEventStatisticsList(gridEventList);
                    gridStatisticsList.add(gridStatisticsVO);
                }
@@ -4754,7 +5786,7 @@
            userTagList.forEach(userTag -> {
                if (userTag != null) {
                    if (userTag.getSysFlag().equals(0)) {
                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName());
                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
                        otherSpecialVO.setSum(otherSpecialVO.getSum() + count);
                    } else {
                        if (StringUtils.isNotEmpty(userTag.getTagName())) {
@@ -4786,7 +5818,7 @@
                            }else{
                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
                                specialStatisticsVO.setTitle(userTag.getTagName());
                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName());
                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
                                specialStatisticsVO.setSum(count);
                                specialStatisticsVOList.add(specialStatisticsVO);
                            }
@@ -4844,7 +5876,8 @@
    /**
     * 事件大屏统计接口
     *
     * @param screenEventDTO 请求参数
     * @param screenEventDTO
     *            请求参数
     * @return 统计结果
     */
    @Override
@@ -4873,9 +5906,7 @@
            //查询事件资源文件
            List<EventResourceDO> eventResourceDOList =
                    eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
                            .eq(EventResourceDO::getClassification, 1)
                            .eq(EventResourceDO::getRefId, newStatisticsVO.getId())
                    );
                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, newStatisticsVO.getId()));
            List<EventResourceVO> picList = new ArrayList<>();
            List<EventResourceVO> audioList = new ArrayList<>();
            List<EventResourceVO> videoList = new ArrayList<>();
@@ -4903,7 +5934,8 @@
            newStatisticsVO.setVideos(videoList);
            //查询事件流转记录
            List<EventTransferRecordVO> transferRecordList = this.baseMapper.getEventScreenEventTransList(newStatisticsVO.getId());
            List<EventTransferRecordVO> transferRecordList =
                this.baseMapper.getEventScreenEventTransList(newStatisticsVO.getId());
            newStatisticsVO.setTransferRecordList(transferRecordList);
        }
        statisticsVO.setNewStatisticsVO(newStatisticsVO);
@@ -4920,7 +5952,8 @@
        List<CivilVillageStatisticsVO> villageStatisticsList = this.baseMapper.getCivilScreenVillageList(communityId);
        if(!villageStatisticsList.isEmpty()){
            villageStatisticsList.forEach(village -> {
                CivilVillageStatisticsVO villageStatisticsVO = this.baseMapper.getCivilScreenVillageStatistics(village.getVillageId());
                CivilVillageStatisticsVO villageStatisticsVO =
                    this.baseMapper.getCivilScreenVillageStatistics(village.getVillageId());
                if(villageStatisticsVO != null){
                    village.setPeopleNum(villageStatisticsVO.getPeopleNum());
                    village.setHouseNum(villageStatisticsVO.getHouseNum());
@@ -4945,7 +5978,8 @@
    /**
     * 民生大屏统计接口
     *
     * @param communityId 社区id
     * @param communityId
     *            社区id
     * @return 统计结果
     */
    @Override
@@ -4965,7 +5999,7 @@
            userTagList.forEach(userTag -> {
                if (userTag != null) {
                    if (userTag.getSysFlag().equals(0)) {
                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName());
                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
                        otherSpecialVO.setSum(otherSpecialVO.getSum() + count);
                    } else {
                        if (StringUtils.isNotEmpty(userTag.getTagName())) {
@@ -4997,7 +6031,7 @@
                            }else{
                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
                                specialStatisticsVO.setTitle(userTag.getTagName());
                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName());
                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
                                specialStatisticsVO.setSum(count);
                                specialStatisticsVOList.add(specialStatisticsVO);
                            }
@@ -5019,12 +6053,17 @@
        //计算环比上月增长率
        BigDecimal rate = BigDecimal.ZERO;
        CivilPopulationStatisticsVO populationStatisticsVO = this.baseMapper.getCivilScreenPopulation(communityId, DateUtils.getFirstDayOfMonth());
        CivilPopulationStatisticsVO populationStatisticsVO =
            this.baseMapper.getCivilScreenPopulation(communityId, DateUtils.getFirstDayOfMonth());
        if (populationStatisticsVO != null) {
            if (populationStatisticsVO.getToMonthSpecialTotal().equals(0)) {
                rate = BigDecimal.valueOf(100);
            } else {
                rate = BigDecimal.valueOf(populationStatisticsVO.getSpecialTotal() - populationStatisticsVO.getToMonthSpecialTotal()).divide(BigDecimal.valueOf(populationStatisticsVO.getToMonthSpecialTotal()), 3, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100));
                rate = BigDecimal
                    .valueOf(populationStatisticsVO.getSpecialTotal() - populationStatisticsVO.getToMonthSpecialTotal())
                    .divide(BigDecimal.valueOf(populationStatisticsVO.getToMonthSpecialTotal()), 3,
                        BigDecimal.ROUND_HALF_UP)
                    .multiply(BigDecimal.valueOf(100));
            }
        }
        civilStatisticsVO.setRate(rate);
@@ -5060,7 +6099,7 @@
            userTagList.forEach(userTag -> {
                if(userTag != null){
                    if(userTag.getSysFlag().equals(0)){
                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName());
                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
                        otherSpecialVO.setSum(otherSpecialVO.getSum() + count);
                    }else{
                        if(StringUtils.isNotEmpty(userTag.getTagName())){
@@ -5092,7 +6131,7 @@
                            }else{
                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
                                specialStatisticsVO.setTitle(userTag.getTagName());
                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName());
                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
                                specialStatisticsVO.setSum(count);
                                specialStatisticsVOList.add(specialStatisticsVO);
                            }
@@ -5119,7 +6158,9 @@
        Map<String, Long> sexMap = populationDAO.countBySex(communityId);
        comActPopulationScreenVO.setWoman(sexMap.get("woman") == null ? 0L : sexMap.get("woman"));
        comActPopulationScreenVO.setManNum(sexMap.get("man") == null ? 0L : sexMap.get("man"));
        int manPoint = (int) (((double) comActPopulationScreenVO.getManNum() / (double) comActPopulationScreenVO.getTotalNum()) * 100);
        int manPoint =
            (int)(((double)comActPopulationScreenVO.getManNum() / (double)comActPopulationScreenVO.getTotalNum())
                * 100);
        comActPopulationScreenVO.setManPoint(manPoint);
        comActPopulationScreenVO.setWomanPoint(100 - manPoint);
@@ -5138,7 +6179,6 @@
        return R.ok(comActPopulationScreenVO);
    }
    private void setCultureGroup(ComActPopulationScreenVO comActPopulationScreenVO, Long communityId) {
        Map<String, Long> cultureMap = populationDAO.countByCulture(communityId);
@@ -5225,7 +6265,8 @@
    /**
     * 获取社区网格
     *
     * @param communityId 社区id
     * @param communityId
     *            社区id
     * @return 网格数据
     */
    @Override
@@ -5236,7 +6277,8 @@
    /**
     * 事件大屏查询事件详情
     *
     * @param eventDetailDTO 请求参数
     * @param eventDetailDTO
     *            请求参数
     * @return 事件详情
     */
    @Override
@@ -5269,9 +6311,7 @@
                //查询事件资源文件
                List<EventResourceDO> eventResourceDOList =
                        eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
                                .eq(EventResourceDO::getClassification, 1)
                                .eq(EventResourceDO::getRefId, statisticsVO.getId())
                        );
                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, statisticsVO.getId()));
                List<EventResourceVO> picList = new ArrayList<>();
                List<EventResourceVO> audioList = new ArrayList<>();
                List<EventResourceVO> videoList = new ArrayList<>();
@@ -5299,17 +6339,21 @@
                statisticsVO.setVideos(videoList);
                //查询事件流转记录
                List<EventTransferRecordVO> transferRecordList = this.baseMapper.getEventScreenEventTransList(eventDetailDTO.getEventId());
                List<EventTransferRecordVO> transferRecordList =
                    this.baseMapper.getEventScreenEventTransList(eventDetailDTO.getEventId());
                if(!transferRecordList.isEmpty()){
                    transferRecordList.forEach(transfer -> {
                        if(transfer.getFromType().equals(EventTransferRecordVO.fromType.wgy)){
                            //查询上级网格信息
                            EventTransferRecordDetailVO transferRecordDetailVO = this.baseMapper.getEventScreenEventTransDetail(transfer.getEventId());
                            transfer.setSuperiorRelationship(transferRecordDetailVO.getStreetName() + "-"
                                    + transferRecordDetailVO.getCommunityName() + "-" + transferRecordDetailVO.getGridName());
                            EventTransferRecordDetailVO transferRecordDetailVO =
                                this.baseMapper.getEventScreenEventTransDetail(transfer.getEventId());
                            transfer.setSuperiorRelationship(
                                transferRecordDetailVO.getStreetName() + "-" + transferRecordDetailVO.getCommunityName()
                                    + "-" + transferRecordDetailVO.getGridName());
                        }else if(transfer.getFromType().equals(EventTransferRecordVO.fromType.sq)){
                            //查询上级社区信息
                            EventTransferRecordDetailVO transferRecordDetailVO = this.baseMapper.getEventScreenEventTransDetailByCommunityId(transfer.getFromId());
                            EventTransferRecordDetailVO transferRecordDetailVO =
                                this.baseMapper.getEventScreenEventTransDetailByCommunityId(transfer.getFromId());
                            transfer.setSuperiorRelationship(transferRecordDetailVO.getStreetName() + "-"
                                    + transferRecordDetailVO.getCommunityName());
                        }
@@ -5324,12 +6368,14 @@
    /**
     * 获取人口数据信息
     *
     * @param populationListDTO 请求参数
     * @param populationListDTO
     *            请求参数
     * @return 人口数据
     */
    @Override
    public R pagePopulationListApp(PagePopulationListDTO populationListDTO){
        IPage<PopulationListVO> pagePopulationList = this.baseMapper.pagePopulationListApp(new Page(populationListDTO.getPageNum(),populationListDTO.getPageSize()),populationListDTO);
        IPage<PopulationListVO> pagePopulationList = this.baseMapper.pagePopulationListApp(
            new Page(populationListDTO.getPageNum(), populationListDTO.getPageSize()), populationListDTO);
        if(!pagePopulationList.getRecords().isEmpty()){
            pagePopulationList.getRecords().forEach(population -> {
                population.setAge(IdcardUtil.getAgeByIdCard(population.getCardNo()));
@@ -5341,7 +6387,8 @@
    /**
     * 根据人口id获取人口详情
     *
     * @param populationId  人口id
     * @param populationId
     *            人口id
     * @return  人口详情
     */
    @Override
@@ -5350,7 +6397,8 @@
        if(detail != null){
            detail.setAge(IdcardUtil.getAgeByIdCard(detail.getCardNo()));
            if(StringUtils.isNotEmpty(detail.getCultureLevel())){
                detail.setCultureLevel(PopulCultureLevelEnum.getCnDescByName(Integer.parseInt(detail.getCultureLevel())));
                detail
                    .setCultureLevel(PopulCultureLevelEnum.getCnDescByName(Integer.parseInt(detail.getCultureLevel())));
            }
            if(StringUtils.isNotEmpty(detail.getMarriage())){
                detail.setMarriage(PopulMarriageEnum.getCnDescByName(Integer.parseInt(detail.getMarriage())));
@@ -5383,7 +6431,9 @@
    /**
     * 综治后台-居民列表
     * @param populationListDTO 请求参数
     *
     * @param populationListDTO
     *            请求参数
     * @return  居民列表
     */
    @Override
@@ -5396,7 +6446,8 @@
            }
        }
        IPage<ComMngPopulationListVO> populationListIPage = this.baseMapper.getGridPopulationAdminList(new Page(populationListDTO.getPageNum(),populationListDTO.getPageSize()),populationListDTO);
        IPage<ComMngPopulationListVO> populationListIPage = this.baseMapper.getGridPopulationAdminList(
            new Page(populationListDTO.getPageNum(), populationListDTO.getPageSize()), populationListDTO);
        if(!populationListIPage.getRecords().isEmpty()){
            populationListIPage.getRecords().forEach(population -> {
                try {
@@ -5406,7 +6457,8 @@
                    log.error("当前人口身份证获取年龄失败,实有人口id:" + population.getId());
                }
                //查询此用户在当前房屋是否是户主
                Integer relation = this.baseMapper.getPopulationRelationByHouseId(population.getHouseId(),population.getId());
                Integer relation =
                    this.baseMapper.getPopulationRelationByHouseId(population.getHouseId(), population.getId());
                if(relation == null || relation != 1){
                    population.setIsRelation(2);
                }else{
@@ -5419,7 +6471,9 @@
    /**
     * 综治后台-删除居民
     * @param ids   居民id集合
     *
     * @param ids
     *            居民id集合
     * @return  删除结果
     */
    @Override
@@ -5440,8 +6494,7 @@
        list.forEach(e->{
            QueryWrapper<ComMngPopulationHouseDO> houseQuery = new QueryWrapper<>();
            houseQuery.lambda().eq(ComMngPopulationHouseDO::getCommunityId,e.getActId())
                    .eq(ComMngPopulationHouseDO::getAlley,e.getRoad())
                    .eq(ComMngPopulationHouseDO::getFloor,e.getFloor())
                .eq(ComMngPopulationHouseDO::getAlley, e.getRoad()).eq(ComMngPopulationHouseDO::getFloor, e.getFloor())
                    .eq(ComMngPopulationHouseDO::getUnitNo,e.getUnitNo())
                    .eq(ComMngPopulationHouseDO::getHouseNo,e.getHouseNo());
            List<ComMngPopulationHouseDO> houseList = comMngPopulationHouseDAO.selectList(houseQuery);
@@ -5458,13 +6511,16 @@
    /**
     * 查询平台人口列表
     * @param populationDTO 请求参数
     *
     * @param populationDTO
     *            请求参数
     * @return  人口列表
     */
    @Override
    public R getBuildingHousePopulationList(PageComMngPopulationDTO populationDTO){
        IPage<EventSpecialPopulationVO> populationVOIPage = this.baseMapper.getBuildingHousePopulationList(new Page(populationDTO.getPageNum(),populationDTO.getPageSize()),populationDTO);
        IPage<EventSpecialPopulationVO> populationVOIPage = this.baseMapper.getBuildingHousePopulationList(
            new Page(populationDTO.getPageNum(), populationDTO.getPageSize()), populationDTO);
        if(!populationVOIPage.getRecords().isEmpty()){
            populationVOIPage.getRecords().forEach(population -> {
                try {
@@ -5480,6 +6536,7 @@
    /**
     * 综治后台-居民标签栏统计
     *
     * @return  居民统计
     */
    @Override
@@ -5489,7 +6546,9 @@
    /**
     * 综治后台-居民导出查询居民数据
     * @param populationExportDTO   请求参数
     *
     * @param populationExportDTO
     *            请求参数
     * @return  导出结果
     */
    @Override
@@ -5497,7 +6556,8 @@
        //结果集
        List<ComMngPopulationExportExcelVO> resultPopulationList = new ArrayList<>();
        //查询人口信息
        List<ComMngPopulationListVO> populationListVOList = this.baseMapper.getGridPopulationAdminLists(populationExportDTO);
        List<ComMngPopulationListVO> populationListVOList =
            this.baseMapper.getGridPopulationAdminLists(populationExportDTO);
        if(!populationListVOList.isEmpty()){
            populationListVOList.forEach(population -> {
                ComMngPopulationExportExcelVO populationExportExcelVO = new ComMngPopulationExportExcelVO();
@@ -5506,7 +6566,8 @@
                    populationExportExcelVO.setSex(PopulSexEnum.getCnDescByName(population.getSex()));
                }
                if(population.getPoliticalOutlook() != null){
                    populationExportExcelVO.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(population.getPoliticalOutlook()));
                    populationExportExcelVO.setPoliticalOutlook(
                        PopulPoliticalOutlookEnum.getCnDescByName(population.getPoliticalOutlook()));
                }
                if(population.getIsHouse() != null){
                    if(!population.getIsHouse().equals(0L)){
@@ -5516,7 +6577,8 @@
                    }
                }
                if(population.getEventStatus() != null){
                    populationExportExcelVO.setEventStatus(EventStatusEnum.getCnDescByName(population.getEventStatus()));
                    populationExportExcelVO
                        .setEventStatus(EventStatusEnum.getCnDescByName(population.getEventStatus()));
                }
                try {
                    Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo());
@@ -5532,7 +6594,9 @@
    /**
     * 综治后台-居民管理小区列表
     * @param name  小区名字
     *
     * @param name
     *            小区名字
     * @return  小区列表
     */
    @Override
@@ -5556,7 +6620,8 @@
    @Override
    public R getVillagePopulationAdmin(PageComMngVillagePopulationDTO villagePopulationDTO){
        return R.ok(this.baseMapper.getVillagePopulationAdmin(new Page(villagePopulationDTO.getPageNum(),villagePopulationDTO.getPageSize()),villagePopulationDTO));
        return R.ok(this.baseMapper.getVillagePopulationAdmin(
            new Page(villagePopulationDTO.getPageNum(), villagePopulationDTO.getPageSize()), villagePopulationDTO));
    }
    private void setMistake(ComMngPopulationMistakeExcelVO mvo, ComMngPopulationServeExcelVO vo){
@@ -5596,7 +6661,7 @@
        mvo.setHouseStatus(PopulHouseStatusEnum.getCnDescByName(vo.getHouseStatus()));
        mvo.setHousePurpose(PopulHousePurposeEnum.getCnDescByName(vo.getHousePurpose()));
        mvo.setControlStatus(PopulHouseControlStatusEnum.getCnDescByName(vo.getControlStatus()));
        mvo.setCultureLevel(PopulCultureLevelEnum.getCnDescByName(vo.getCultureLevel()));
//        mvo.setCultureLevel(PopulCultureLevelEnum.getCnDescByName(vo.getCultureLevel()));
//        mvo.setMarriage(PopulMarriageEnum.getCnDescByName(vo.getMarriage()));
        mvo.setOutOrLocal(PopulOutOrLocalEnum.getCnDescByName(vo.getOutOrLocal()));
        mvo.setIsCorrectGroup(PopulHouseUseEnum.getCnDescByName(vo.getIsCorrectGroup()));
@@ -5612,7 +6677,7 @@
    private void setMajorMistake(ComMngPopulationMajorMistakeExcelVO mvo, ComMngPopulationMajorExcelVO vo){
//        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
        mvo.setCustodyRelation(PopulRelationEnum.getCnDescByName(vo.getCustodyRelation()));
//        mvo.setCustodyRelation(PopulRelationEnum.getCnDescByName(vo.getCustodyRelation()));
//        mvo.setRelation(PopulRelationEnum.getCnDescByName(vo.getRelation()));
        mvo.setHouseStatus(PopulHouseStatusEnum.getCnDescByName(vo.getHouseStatus()));
        mvo.setHousePurpose(PopulHousePurposeEnum.getCnDescByName(vo.getHousePurpose()));
@@ -5642,10 +6707,11 @@
//        mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
    }
    private void setRehabilitationMistake(ComMngPopulationRehabilitationMistakeExcelVO mvo, ComMngPopulationRehabilitationExcelVO vo){
    private void setRehabilitationMistake(ComMngPopulationRehabilitationMistakeExcelVO mvo,
        ComMngPopulationRehabilitationExcelVO vo) {
//        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
        mvo.setPatientRelation(PopulRelationEnum.getCnDescByName(vo.getPatientRelation()));
//        mvo.setPatientRelation(PopulRelationEnum.getCnDescByName(vo.getPatientRelation()));
        mvo.setHouseStatus(PopulHouseStatusEnum.getCnDescByName(vo.getHouseStatus()));
        mvo.setHousePurpose(PopulHousePurposeEnum.getCnDescByName(vo.getHousePurpose()));
        mvo.setControlStatus(PopulHouseControlStatusEnum.getCnDescByName(vo.getControlStatus()));
@@ -5693,7 +6759,7 @@
    }
    private void setVeteransMistake(ComMngPopulationVeteransMistakeExcelVO mvo, ComMngPopulationVeteransExcelVO vo){
        mvo.setRegiterNature(PopulRegiterNatureEnum.getCnDescByName(vo.getRegiterNature()));
//        mvo.setRegiterNature(PopulRegiterNatureEnum.getCnDescByName(vo.getRegiterNature()));
        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
//        mvo.setPatientRelation(PopulRelationEnum.getCnDescByName(vo.getPatientRelation()));
@@ -5711,7 +6777,8 @@
//        mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
    }
    private void setDisabilityMistake(ComMngPopulationDisabilityMistakeExcelVO mvo, ComMngPopulationDisabilityExcelVO vo){
    private void setDisabilityMistake(ComMngPopulationDisabilityMistakeExcelVO mvo,
        ComMngPopulationDisabilityExcelVO vo) {
//        mvo.setRegiterNature(PopulRegiterNatureEnum.getCnDescByName(vo.getRegiterNature()));
//        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
@@ -5730,7 +6797,8 @@
//        mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
    }
    private void setLowSecurityMistake(ComMngPopulationLowSecurityMistakeExcelVO mvo, ComMngPopulationLowSecurityExcelVO vo){
    private void setLowSecurityMistake(ComMngPopulationLowSecurityMistakeExcelVO mvo,
        ComMngPopulationLowSecurityExcelVO vo) {
//        mvo.setRegiterNature(PopulRegiterNatureEnum.getCnDescByName(vo.getRegiterNature()));
//        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
@@ -5751,8 +6819,11 @@
    /**
     * 判重方法
     * @param key   主键
     * @param hashMap   数据集
     *
     * @param key
     *            主键
     * @param hashMap
     *            数据集
     * @return  存在即为false 不存在则为true
     */
    private boolean isOnly(String key,HashMap<String,Object> hashMap){