101captain
2021-12-23 5a8a90c095280fbd2106869ecd2bad10e01a57a6
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -9,6 +9,11 @@
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.panzhihua.common.model.vos.community.bigscreen.WestScreenStatics;
import com.panzhihua.common.model.vos.community.screen.civil.*;
import com.panzhihua.common.model.vos.community.bigscreen.*;
import com.panzhihua.common.utlis.*;
import com.panzhihua.service_community.util.WxDataUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
@@ -54,10 +59,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.utlis.AgeUtils;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.*;
@@ -65,6 +66,8 @@
import cn.hutool.core.util.IdcardUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestParam;
import static java.util.Objects.nonNull;
/**
 * 实有人口Service实现类
@@ -130,8 +133,12 @@
    private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
    @Resource
    private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO;
    @Resource
    private ComActReserveMapper comActReserveMapper;
    @Value("${domain.aesKey:}")
    private String aesKey;
    @Resource
    private ComActEasyPhotoDAO comActEasyPhotoDAO;
    /**
     * 新增实有人口
@@ -472,25 +479,27 @@
                        break;
                    case 2:
                        comMngPopulationVO.setRoad(houseDO.getAlley());
                        comMngPopulationVO.setDoorNo(houseDO.getHouseNum());
//                        comMngPopulationVO.setDoorNo(houseDO.getHouseNum());
                        break;
                    case 3:
                        comMngPopulationVO.setRoad(houseDO.getAlley());
                        comMngPopulationVO.setDoorNo(houseDO.getHouseNum());
                        comMngPopulationVO.setFloor(houseDO.getFloor());
//                        comMngPopulationVO.setFloor(houseDO.getFloor());
                        break;
                    case 4:
                        comMngPopulationVO.setRoad(houseDO.getAlley());
                        comMngPopulationVO.setDoorNo(houseDO.getHouseNum());
                        comMngPopulationVO.setFloor(houseDO.getFloor());
                        comMngPopulationVO.setUnitNo(houseDO.getUnitNo());
//                        comMngPopulationVO.setUnitNo(houseDO.getUnitNo());
                        break;
                    case 5:
                        comMngPopulationVO.setRoad(houseDO.getAlley());
                        comMngPopulationVO.setDoorNo(houseDO.getHouseNum());
                        comMngPopulationVO.setFloor(houseDO.getFloor());
                        comMngPopulationVO.setUnitNo(houseDO.getUnitNo());
                        comMngPopulationVO.setHouseNo(houseDO.getHouseNo());
                        if(comMngPopulationVO.getLevelIsAll() == null){
                            comMngPopulationVO.setHouseNo(houseDO.getHouseNo());
                        }
                        break;
                    default:
                        break;
@@ -4885,15 +4894,6 @@
        ComElderAuthElderliesDO comElderAuthElderliesDO =
                comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>().lambda()
                        .eq(ComElderAuthElderliesDO::getPopulationId, populationDO.getId()).eq(ComElderAuthElderliesDO::getCommunityId, 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();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
@@ -4918,19 +4918,6 @@
                    comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.above100);
                }
            }
//            if (!comElderAuthElderliesDO.getIsAlive().equals(1) || !comElderAuthElderliesDO.getIsRegister().equals(1)) {
//                if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
//                    Date nowDate = new Date();
//                    // 获取当前年
//                    int year = DateUtils.getYear(nowDate);
//                    // 获取当前月
//                    int month = DateUtils.getMonth(nowDate) + 1;
//                    ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
//                            .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, communityId).eq(ComEldersAuthStatisticsDO::getYear, year).eq(ComEldersAuthStatisticsDO::getMonth, month));
//                    comEldersAuthStatisticsDO.setSum(comEldersAuthStatisticsDO.getSum() + 1);
//                    comEldersAuthStatisticsMapper.updateById(comEldersAuthStatisticsDO);
//                }
//            }
            comElderAuthElderliesDAO.updateById(comElderAuthElderliesDO);
        } else {
            comElderAuthElderliesDO = new ComElderAuthElderliesDO();
@@ -4951,19 +4938,11 @@
                    comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.above100);
                }
            }
//            if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
//                Date nowDate = new Date();
//                // 获取当前年
//                int year = DateUtils.getYear(nowDate);
//                // 获取当前月
//                int month = DateUtils.getMonth(nowDate) + 1;
//                ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
//                        .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, communityId).eq(ComEldersAuthStatisticsDO::getYear, year).eq(ComEldersAuthStatisticsDO::getMonth, month));
//                comEldersAuthStatisticsDO.setSum(comEldersAuthStatisticsDO.getSum() + 1);
//                comEldersAuthStatisticsMapper.updateById(comEldersAuthStatisticsDO);
//            }
            comElderAuthElderliesDAO.insert(comElderAuthElderliesDO);
        }
        //维护养老认证健在状态
        comPensionAuthPensionerDAO.editPensionIsAlive(populationDO.getId(),vo.getIsAlive());
        return populationDO;
    }
@@ -4974,15 +4953,6 @@
                comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>().lambda()
                        .eq(ComPensionAuthPensionerDO::getPopulationId, populationDO.getId())
                        .eq(ComPensionAuthPensionerDO::getCommunityId, 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();
        // }
        String cardNoAES = populationDO.getCardNo();
        try {
            cardNoAES = AESUtil.encrypt128(vo.getCardNo(), aesKey);
@@ -4997,23 +4967,6 @@
            BeanUtils.copyProperties(vo, comPensionAuthPensionerDO);
            comPensionAuthPensionerDO.setIdCard(cardNoAES);
            comPensionAuthPensionerDO.setAddress(vo.getNowAddress());
//            if (!comPensionAuthPensionerDO.getIsAlive().equals(1) || !comPensionAuthPensionerDO.getIsRegister().equals(1)) {
//                if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
//                    Date nowDate = new Date();
//                    // 获取当前年
//                    int year = (DateUtils.getYear(nowDate));
//                    ComPensionAuthStatisticsDO comPensionAuthStatisticsDO = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
//                            .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, communityId)
//                            .eq(ComPensionAuthStatisticsDO::getYear, year));
//                    if(null == comPensionAuthStatisticsDO){
//                        comPensionAuthStatisticsDO = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
//                                .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, communityId)
//                                .eq(ComPensionAuthStatisticsDO::getYear, year - 1));
//                    }
//                    comPensionAuthStatisticsDO.setSum(comPensionAuthStatisticsDO.getSum() + 1);
//                    comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO);
//                }
//            }
            comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO);
        } else {
            comPensionAuthPensionerDO = new ComPensionAuthPensionerDO();
@@ -5025,17 +4978,9 @@
            comPensionAuthPensionerDO.setIdCard(vo.getCardNo());
            comPensionAuthPensionerDO.setAddress(vo.getNowAddress());
            comPensionAuthPensionerDAO.insert(comPensionAuthPensionerDO);
//            if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
//                Date nowDate = new Date();
//                // 获取当前年
//                int year = (DateUtils.getYear(nowDate));
//                ComPensionAuthStatisticsDO comPensionAuthStatisticsDO = comPensionAuthStatisticsDAO.selectOne(new QueryWrapper<ComPensionAuthStatisticsDO>()
//                        .lambda().eq(ComPensionAuthStatisticsDO::getCommunityId, communityId)
//                        .eq(ComPensionAuthStatisticsDO::getYear, year));
//                comPensionAuthStatisticsDO.setSum(comPensionAuthStatisticsDO.getSum() + 1);
//                comPensionAuthStatisticsDAO.updateById(comPensionAuthStatisticsDO);
//            }
        }
        //维护高龄老人健在状态
        comElderAuthElderliesDAO.editEditIsAlive(populationDO.getId(),vo.getIsAlive());
        return populationDO;
    }
@@ -5061,6 +5006,7 @@
        populationDO.setVillageName(comMngVillageDO.getGroupAt());
        populationDO.setCardNoStr(vo.getCardNo());
        populationDO.setUpdateAt(new Date());
        populationDO.setDeath(vo.getDeath().toString());
        String cardNoAES = populationDO.getCardNo();
        try {
@@ -5601,16 +5547,6 @@
        Long populationId = Snowflake.getId();
        populationDO.setId(populationId);
        comElderAuthElderliesDO.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();
        // }
        populationDO.setVillageId(comMngVillageDO.getVillageId());
        populationDO.setActId(comActDO.getCommunityId());
        populationDO.setStreetId(comActDO.getStreetId());
@@ -5651,17 +5587,6 @@
                comElderAuthElderliesDO.setPersonnelCategory(ComElderAuthElderliesDO.personnelCategory.above100);
            }
        }
//        if (vo.getIsRegister().equals(1) && vo.getIsAlive().equals(1)) {
//            Calendar calendar = Calendar.getInstance();
//            // 获取当前年
//            int year = calendar.get(Calendar.YEAR);
//            // 获取当前月
//            int month = calendar.get(Calendar.MONTH) + 1;
//            ComEldersAuthStatisticsDO comEldersAuthStatisticsDO = comEldersAuthStatisticsMapper.selectOne(new QueryWrapper<ComEldersAuthStatisticsDO>()
//                    .lambda().eq(ComEldersAuthStatisticsDO::getCommunityId, communityId).eq(ComEldersAuthStatisticsDO::getYear, year).eq(ComEldersAuthStatisticsDO::getMonth, month));
//            comEldersAuthStatisticsDO.setSum(comEldersAuthStatisticsDO.getSum() + 1);
//            comEldersAuthStatisticsMapper.updateById(comEldersAuthStatisticsDO);
//        }
        comElderAuthElderliesDAO.insert(comElderAuthElderliesDO);
        return populationDO;
    }
@@ -6396,23 +6321,14 @@
    /**
     * 批量删除实有人口
     *
     * @param Ids
     * @return
     * @param ids 实有人口id集合
     * @return  删除结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R deletePopulations(List<Long> Ids) {
        if (!Ids.isEmpty()) {
            Ids.forEach(id -> {
                // 清除用户房屋居住信息
                comMngPopulationHouseUserDAO.deletePopulationHouseByUserId(id);
            });
        }
        int delete = populationDAO.deleteBatchIds(Ids);
        if (delete > 0) {
            return R.ok();
        }
        return R.fail();
    public R deletePopulations(List<Long> ids, Long communityId) {
        comMngPopulationCommunityTagsDAO.deletePopulationRelation(ids,communityId);
        return R.ok();
    }
    /**
@@ -6494,6 +6410,16 @@
            populationDO.setActId(comActDO.getCommunityId());
            populationDO.setStreetId(comActDO.getStreetId());
        }
        //修改人员标签
        List<ComMngPopulationCommunityTagsDO> communityTagsDOList = comMngPopulationCommunityTagsDAO
                .selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda()
                .eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId)
                .eq(ComMngPopulationCommunityTagsDO::getPopulationId,vo.getId()));
        communityTagsDOList.forEach(communityTags -> {
            communityTags.setLabel(vo.getLabel());
            comMngPopulationCommunityTagsDAO.updateById(communityTags);
        });
        // 查询当前用户所有房屋id
        List<Long> houseIds = comMngPopulationHouseUserDAO.getPopulationHouseIdByUserId(vo.getId());
@@ -6657,6 +6583,19 @@
    public R specialInputUser(PageInputUserDTO pageInputUserDTO) {
        IPage<InputUserInfoVO> iPage = populationDAO.specialInputUser(
            new Page<>(pageInputUserDTO.getPageNum(), pageInputUserDTO.getPageSize()), pageInputUserDTO);
        if(iPage!=null){
            iPage.getRecords().forEach(page -> {
                if(page.getAreaName() == null || StringUtils.isEmpty(page.getAreaName())){
                    StringBuilder sb = new StringBuilder();
                    sb.append(page.getAlley());
                    if(!page.getHouseNum().contains("号")){
                        sb.append(page.getHouseNum() + "号");
                    }
                    page.setAreaName(sb.toString());
                }
            });
        }
        return R.ok(iPage);
    }
@@ -6980,12 +6919,20 @@
            ageStatisticsVO5.setSum(0);
            ageStatisticsVO6.setSum(0);
        } else {
            int count=ageMap.get("age16").intValue()+ageMap.get("age27").intValue()+ageMap.get("age35").intValue()
                    +ageMap.get("age45").intValue()+ageMap.get("age55").intValue()+ageMap.get("age55over").intValue();
            ageStatisticsVO1.setSum(ageMap.get("age16").intValue());
            ageStatisticsVO1.setPercent(ageMap.get("age16").intValue()*100/count);
            ageStatisticsVO2.setSum(ageMap.get("age27").intValue());
            ageStatisticsVO2.setPercent(ageMap.get("age27").intValue()*100/count);
            ageStatisticsVO3.setSum(ageMap.get("age35").intValue());
            ageStatisticsVO3.setPercent(ageMap.get("age35").intValue()*100/count);
            ageStatisticsVO4.setSum(ageMap.get("age45").intValue());
            ageStatisticsVO4.setPercent(ageMap.get("age45").intValue()*100/count);
            ageStatisticsVO5.setSum(ageMap.get("age55").intValue());
            ageStatisticsVO5.setPercent(ageMap.get("age55").intValue()*100/count);
            ageStatisticsVO6.setSum(ageMap.get("age55over").intValue());
            ageStatisticsVO6.setPercent(ageMap.get("age55over").intValue()*100/count);
        }
        agePopulationList.add(ageStatisticsVO1);
@@ -7114,7 +7061,7 @@
        // 查询特殊人群统计
        List<IndexSpecialStatisticsVO> specialStatisticsVOList = new ArrayList<>();
        // 查询特殊人群标签列表
        //查询特殊人群标签列表
        List<ComMngUserTagVO> userTagList = comMngPopulationDAO.getUserTagListByCommunityId(communityId);
        IndexSpecialStatisticsVO otherSpecialVO = new IndexSpecialStatisticsVO();
        otherSpecialVO.setTitle("其他");
@@ -7198,8 +7145,49 @@
        // 查询小区列表
        List<CivilVillageStatisticsVO> villageStatisticsList = this.baseMapper.getCivilScreenVillageList(communityId);
//        villageStatisticsList.forEach(civilVillageStatisticsVO -> {
//            civilVillageStatisticsVO.setUserSum(comMngPopulationDAO.selectCount(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getVillageId,civilVillageStatisticsVO.getVillageId())));
//            List<IndexSpecialStatisticsVO> specialStatisticsVOS = new ArrayList<>();
//            IndexSpecialStatisticsVO otherSpecial = new IndexSpecialStatisticsVO();
//            otherSpecial.setTitle("其他");
//            otherSpecial.setSum(0);
//            // 查询特殊人群标签列表
//            List<ComMngUserTagVO> userTagVOS = comMngPopulationDAO.getUserTagListByCommunityId(communityId);
//
//            userTagVOS.forEach(comMngUserTagVO -> {
//              Integer count=comMngPopulationDAO.selectCountByVillageId(civilVillageStatisticsVO.getVillageId(),comMngUserTagVO.getTagName());
//              IndexSpecialStatisticsVO indexSpecialStatisticsVO=new IndexSpecialStatisticsVO();
//              indexSpecialStatisticsVO.setTitle(comMngUserTagVO.getTagName());
//              indexSpecialStatisticsVO.setSum(count);
//              otherSpecial.setSum(otherSpecial.getSum()+count);
//              specialStatisticsVOS.add(indexSpecialStatisticsVO);
//            });
//            otherSpecial.setSum(civilVillageStatisticsVO.getUserSum()-otherSpecial.getSum());
//            specialStatisticsVOS.add(otherSpecial);
//            civilVillageStatisticsVO.setSpecialStatisticsList(specialStatisticsVOS);
//        });
        civilStatisticsVO.setVillageStatisticsList(villageStatisticsList);
        //查询党建引领数据
        CivilPartyStatisticsVO civilParty = this.baseMapper.getCivilParty(communityId);
        if(civilParty != null){
            civilStatisticsVO.setCivilPartyStatisticsVO(civilParty);
        }
        //查询社区治理数据
        CivilGovernmentStatisticsVO civilGovernment = this.baseMapper.getCivilGovernment(communityId);
        if(civilGovernment != null){
            civilStatisticsVO.setCivilGovernmentStatisticsVO(civilGovernment);
        }
        //查询网格管理数据
        CivilGridStatisticsVO civilGrid = this.baseMapper.getCivilGrid(communityId);
        if(civilGrid != null){
            civilStatisticsVO.setCivilGridStatisticsVO(civilGrid);
        }
        //查询便民服务数据
        CivilConvenienceStatisticsVO civilConvenience = this.baseMapper.getCivilConvenience(communityId);
        if(civilConvenience != null){
            civilStatisticsVO.setCivilConvenienceStatisticsVO(civilConvenience);
        }
        return R.ok(civilStatisticsVO);
    }
@@ -7408,14 +7396,18 @@
    @Override
    public R getScreenEventDetail(BigScreenEventDetailDTO eventDetailDTO) {
        EventNewStatisticsVO statisticsVO = new EventNewStatisticsVO();
        if (eventDetailDTO.getType().equals(7)) {// 随手拍详情
        Integer eventType = eventDetailDTO.getEventType();
        if (eventDetailDTO.getType().equals(7) || (nonNull(eventType) && eventType.equals(2))) {// 随手拍详情
            statisticsVO = this.baseMapper.getEventScreenSSPDateil(eventDetailDTO.getEventId());
            if (statisticsVO != null && StringUtils.isNotEmpty(statisticsVO.getPhotoPathList())) {
                statisticsVO.setDangerLevel("0");
                statisticsVO.setMajor(false);
                statisticsVO.setUrgent(false);
                if (statisticsVO.getEventDealStatus().equals(2)) {
                    statisticsVO.setEventDealStatus(4);
                if (statisticsVO.getEventDealStatus().equals(2)||statisticsVO.getEventDealStatus().equals(1)) {
                    statisticsVO.setEventDealStatus(1);
                }
                else {
                    statisticsVO.setEventDealStatus(2);
                }
                List<EventResourceVO> picList = new ArrayList<>();
                String[] pics = statisticsVO.getPhotoPathList().split(",");
@@ -7535,6 +7527,10 @@
            if (StringUtils.isNotEmpty(detail.getMarriage())) {
                detail.setMarriage(PopulMarriageEnum.getCnDescByName(Integer.parseInt(detail.getMarriage())));
            }
            //查询该人口的标签
            List<ComMngPopulationCommunityTagsVo> communityTagsList = this.baseMapper.getCommunityTagList(populationId);
            String label = LabelUtils.assembleLabel(communityTagsList);
            detail.setLabel(label);
        }
        return R.ok(detail);
    }
@@ -7756,6 +7752,172 @@
    public R getVillagePopulationAdmin(PageComMngVillagePopulationDTO villagePopulationDTO) {
        return R.ok(this.baseMapper.getVillagePopulationAdmin(
            new Page(villagePopulationDTO.getPageNum(), villagePopulationDTO.getPageSize()), villagePopulationDTO));
    }
    @Override
    public R specialInputUserExport(PageInputUserDTO pageInputUserDTO) {
        return R.ok(this.comMngPopulationDAO.specialInputUserExport(pageInputUserDTO));
    }
    @Override
    public R westScreenStatics() {
        WestScreenStatics westScreenStatics=this.comMngPopulationDAO.westScreenStatics();
        WxDataUtil wxDataUtil=new WxDataUtil();
        westScreenStatics.setDayUser(wxDataUtil.getDayUser());
        westScreenStatics.setCountUser(wxDataUtil.getMonthUser());
        return R.ok(westScreenStatics);
    }
    @Override
    public R getComprehensivePopulationStatics(Long streetId){
        EventPopulationStatisticsVO statisticsVo = new EventPopulationStatisticsVO();
        //查询人口数据
        List<EventPopulationBasicsStatisticsVO> basicsList = comMngPopulationDAO.getBasicsList(streetId);
        if(basicsList != null){
            for (EventPopulationBasicsStatisticsVO basics : basicsList) {
                statisticsVo.setPopulationNum(statisticsVo.getPopulationNum() + basics.getPopulationNum());
                statisticsVo.setVillageNum(statisticsVo.getVillageNum() + basics.getVillageNum());
                statisticsVo.setHouseNum(statisticsVo.getHouseNum() + basics.getHouseNum());
            }
            statisticsVo.setBasicsList(basicsList);
        }
        //查询特殊人群数据
        EventPopulationSpecialStatisticsVO populationSpecial = comMngPopulationDAO.getPopulationSpecial(streetId);
        if(populationSpecial != null){
            populationSpecial.setOtherTotal(populationSpecial.getZjTotal() + populationSpecial.getSfTotal()
                    + populationSpecial.getXsTotal() + populationSpecial.getXjTotal()
                    + populationSpecial.getJzTotal() + populationSpecial.getXdTotal());
            populationSpecial.setLnTotal(comMngPopulationDAO.getPopulationAge(streetId,60));
            populationSpecial.setGlTotal(comMngPopulationDAO.getPopulationAge(streetId,80));
            statisticsVo.setSpecialStatisticsVo(populationSpecial);
        }
        return R.ok(statisticsVo);
    }
    @Override
    public R getComprehensiveStreetList(){
        return R.ok(comMngPopulationDAO.getComprehensiveStreetList());
    }
    @Override
    public R indexInfo(Long communityId) {
        IndexInfo indexInfo=new IndexInfo();
        //基础数据
        BaseInfo baseInfo=this.comMngPopulationDAO.baseInfo(communityId);
        indexInfo.setBaseInfo(baseInfo);
        // 查询实有人口统计模块
        IndexPopulationStatisticsVO populationStatisticsVO = new IndexPopulationStatisticsVO();
        // 查询实有人口性别统计
        List<IndexPopulationSexStatisticsVO> sexPopulationList =
                comMngPopulationDAO.getScreenIndexByPopulationSex(communityId);
        populationStatisticsVO.setSexPopulationList(sexPopulationList);
        // 查询实有人口年龄统计
        List<IndexPopulationAgeStatisticsVO> agePopulationList = statisticsAge(communityId);
        populationStatisticsVO.setAgePopulationList(agePopulationList);
        indexInfo.setIndexPopulationStatisticsVO(populationStatisticsVO);
        // 查询特殊人群统计
        List<IndexSpecialStatisticsVO> specialStatisticsVOList = new ArrayList<>();
        // 查询特殊人群标签列表
        List<ComMngUserTagVO> userTagList = comMngPopulationDAO.getUserTagListByCommunityId(communityId);
        IndexSpecialStatisticsVO otherSpecialVO = new IndexSpecialStatisticsVO();
        otherSpecialVO.setTitle("其他");
        otherSpecialVO.setSum(0);
        int countAll=comMngPopulationDAO.getSpecialStatistics(communityId);
        if (!userTagList.isEmpty()) {
            userTagList.forEach(userTag -> {
                if (userTag != null) {
                    if (userTag.getSysFlag().equals(0)) {
                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
                        otherSpecialVO.setSum(otherSpecialVO.getSum() + count);
                        otherSpecialVO.setPercent(otherSpecialVO.getSum()*100/countAll);
                    } else {
                        if (StringUtils.isNotEmpty(userTag.getTagName())) {
                            if (userTag.getTagName().equals("高龄老人")) {
                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
                                specialStatisticsVO.setTitle(userTag.getTagName());
                                specialStatisticsVO.setSum(comMngPopulationDAO.getStatisticsCount(communityId));
                                specialStatisticsVO.setPercent(specialStatisticsVO.getSum()*100/countAll);
                                specialStatisticsVOList.add(specialStatisticsVO);
                            } else {
                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
                                specialStatisticsVO.setTitle(userTag.getTagName());
                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
                                specialStatisticsVO.setSum(count);
                                specialStatisticsVO.setPercent(specialStatisticsVO.getSum()*100/countAll);
                                specialStatisticsVOList.add(specialStatisticsVO);
                            }
                        }
                    }
                }
            });
        }
        specialStatisticsVOList.add(otherSpecialVO);
        indexInfo.setSpecialStatisticsVOList(specialStatisticsVOList);
        // 查询网格化治理
        IndexEventGridStatisticsVO eventGridStatisticsVO = new IndexEventGridStatisticsVO();
        List<IndexGridStatisticsVO> gridStatisticsList = new ArrayList<>();
        // 查询网格化事件数据
        IndexGridEventStatisticsVO gridEventStatistics = comMngPopulationDAO.getGridEventStatisticsList(communityId);
        int count=gridEventStatistics.getEventGGTotal()+gridEventStatistics.getEventBWDTotal()+gridEventStatistics.getEventMDTotal()+gridEventStatistics.getEventTFTotal()+gridEventStatistics.getEventTSTotal()+gridEventStatistics.getEventZATotal();
        gridEventStatistics.setGgPercent(gridEventStatistics.getEventGGTotal()*100/count);
        gridEventStatistics.setBwdPercent(gridEventStatistics.getEventBWDTotal()*100/count);
        gridEventStatistics.setMdPercent(gridEventStatistics.getEventMDTotal()*100/count);
        gridEventStatistics.setTfPercent(gridEventStatistics.getEventTFTotal()*100/count);
        gridEventStatistics.setTsPercent(gridEventStatistics.getEventTSTotal()*100/count);
        gridEventStatistics.setZaPercent(gridEventStatistics.getEventZATotal()*100/count);
        eventGridStatisticsVO.setGridEventStatisticsList(gridEventStatistics);
        // 查询网格数据
        List<EventGridDataVO> gridDataList = comMngPopulationDAO.getGridDataListByCommunityId(communityId);
        if (!gridDataList.isEmpty()) {
            gridDataList.forEach(gridData -> {
                if (gridData != null) {
                    IndexGridStatisticsVO gridStatisticsVO = new IndexGridStatisticsVO();
                    gridStatisticsVO.setEventData(gridData.getGridName());
                    // 根据网格id查询网格事件列表
                    IndexGridEventStatisticsVO gridEventList =
                            comMngPopulationDAO.getGridEventByGirdId(gridData.getId());
                    gridStatisticsVO.setGridEventStatisticsList(gridEventList);
                    gridStatisticsList.add(gridStatisticsVO);
                }
            });
        }
        eventGridStatisticsVO.setGridStatisticsList(gridStatisticsList);
        indexInfo.setEventGridStatisticsVO(eventGridStatisticsVO);
        //首页业务统计
        IndexDynamic indexDynamic=this.populationDAO.indexDynamic(communityId);
        indexInfo.setIndexDynamic(indexDynamic);
        //返攀登记居家隔离数据统计
        IndexReserve indexReserve=new IndexReserve();
        IndexBackReserve indexBackReserve=new IndexBackReserve();
        indexBackReserve.setCount(comActReserveMapper.indexBackReserve(communityId));
        indexBackReserve.setIndexReserveSubList(comActReserveMapper.indexBackReserveSub(communityId));
        indexBackReserve.getIndexReserveSubList().forEach(indexReserveSub -> {
            if(indexReserveSub.getAllCount()!=0){
                indexReserveSub.setPercent(indexReserveSub.getNum()*100/indexReserveSub.getAllCount());
            }
            else {
                indexReserveSub.setPercent(0);
            }
        });
        IndexHomeQuarantine indexHomeQuarantine=new IndexHomeQuarantine();
        indexHomeQuarantine.setCount(comActReserveMapper.indexHomeQuarantine(communityId));
        indexHomeQuarantine.setIndexReserveSubList(comActReserveMapper.IndexHomeQuarantineSub(communityId));
        indexHomeQuarantine.getIndexReserveSubList().forEach(indexReserveSub -> {
            if(indexReserveSub.getAllCount()!=0){
                indexReserveSub.setPercent(indexReserveSub.getNum()*100/indexReserveSub.getAllCount());
            }
            else {
                indexReserveSub.setPercent(0);
            }
        });
        indexReserve.setIndexBackReserve(indexBackReserve);
        indexReserve.setIndexHomeQuarantine(indexHomeQuarantine);
        indexInfo.setIndexReserve(indexReserve);
        BigscreenGridsGovernanceStatisticsVO bigscreenGridsGovernanceStatisticsVO=comActEasyPhotoDAO.selectBigscreenGridsGovern(communityId);
        indexInfo.setBigScreenGridStaticsReturn(setData(bigscreenGridsGovernanceStatisticsVO));
        return R.ok(indexInfo);
    }
    private void setMistake(ComMngPopulationMistakeExcelVO mvo, ComMngPopulationServeExcelVO vo) {
@@ -7998,4 +8160,58 @@
        return ObjectUtils.isEmpty(hashMap.get(key));
    }
    private BigScreenGridStaticsReturn setData(BigscreenGridsGovernanceStatisticsVO bigscreenGridsGovernanceStatisticsVO){
        List<BigScreenGridStaticsReturn> bigScreenGridStaticsReturnList=new ArrayList<>();
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn.setCount(bigscreenGridsGovernanceStatisticsVO.getEventTotal()+bigscreenGridsGovernanceStatisticsVO.getOtherTotal()+bigscreenGridsGovernanceStatisticsVO.getSafety());
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn1=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn1.setTitle("突发事件报告");
        bigScreenGridStaticsReturn1.setNum(bigscreenGridsGovernanceStatisticsVO.getEventTFTotal());
        bigScreenGridStaticsReturn1.setPercent(bigscreenGridsGovernanceStatisticsVO.getEventTFTotal()*100/bigScreenGridStaticsReturn.getCount());
        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn1);
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn2=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn2.setTitle("特殊人群服务");
        bigScreenGridStaticsReturn2.setNum(bigscreenGridsGovernanceStatisticsVO.getEventTSTotal());
        bigScreenGridStaticsReturn2.setPercent(bigscreenGridsGovernanceStatisticsVO.getEventTSTotal()*100/bigScreenGridStaticsReturn.getCount());
        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn2);
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn3=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn3.setTitle("治安防控");
        bigScreenGridStaticsReturn3.setNum(bigscreenGridsGovernanceStatisticsVO.getEventZATotal());
        bigScreenGridStaticsReturn3.setPercent(bigscreenGridsGovernanceStatisticsVO.getEventZATotal()*100/bigScreenGridStaticsReturn.getCount());
        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn3);
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn4=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn4.setTitle("民生服务");
        bigScreenGridStaticsReturn4.setNum(bigscreenGridsGovernanceStatisticsVO.getEventMSTotal());
        bigScreenGridStaticsReturn4.setPercent(bigscreenGridsGovernanceStatisticsVO.getEventMSTotal()*100/bigScreenGridStaticsReturn.getCount());
        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn4);
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn5=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn5.setTitle("矛盾劝解");
        bigScreenGridStaticsReturn5.setNum(bigscreenGridsGovernanceStatisticsVO.getEventMDTotal());
        bigScreenGridStaticsReturn5.setPercent(bigscreenGridsGovernanceStatisticsVO.getEventMDTotal()*100/bigScreenGridStaticsReturn.getCount());
        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn5);
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn6=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn6.setTitle("防灾减灾");
        bigScreenGridStaticsReturn6.setNum(bigscreenGridsGovernanceStatisticsVO.getEventFJTotal());
        bigScreenGridStaticsReturn6.setPercent(bigscreenGridsGovernanceStatisticsVO.getEventFJTotal()*100/bigScreenGridStaticsReturn.getCount());
        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn6);
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn7=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn7.setTitle("政策法规宣传");
        bigScreenGridStaticsReturn7.setNum(bigscreenGridsGovernanceStatisticsVO.getEventFGTotal());
        bigScreenGridStaticsReturn7.setPercent(bigscreenGridsGovernanceStatisticsVO.getEventFGTotal()*100/bigScreenGridStaticsReturn.getCount());
        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn7);
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn8=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn8.setTitle("安全巡查");
        bigScreenGridStaticsReturn8.setNum(bigscreenGridsGovernanceStatisticsVO.getSafety());
        bigScreenGridStaticsReturn8.setPercent(bigscreenGridsGovernanceStatisticsVO.getSafety()*100/bigScreenGridStaticsReturn.getCount());
        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn8);
        BigScreenGridStaticsReturn bigScreenGridStaticsReturn9=new BigScreenGridStaticsReturn();
        bigScreenGridStaticsReturn9.setTitle("其他");
        bigScreenGridStaticsReturn9.setNum(bigscreenGridsGovernanceStatisticsVO.getOtherTotal());
        bigScreenGridStaticsReturn9.setPercent(bigscreenGridsGovernanceStatisticsVO.getOtherTotal()*100/bigScreenGridStaticsReturn.getCount());
        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn9);
        bigScreenGridStaticsReturn.setBigScreenGridStaticsReturnList(bigScreenGridStaticsReturnList);
        return bigScreenGridStaticsReturn;
    }
}