101captain
2022-03-09 9c5b811fb700bc66e66dbf38ed8733e57a4edac6
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java
@@ -14,20 +14,46 @@
import javax.annotation.Resource;
import com.panzhihua.common.model.dtos.property.CommonPage;
import com.panzhihua.common.model.vos.community.bigscreen.*;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.service_community.dao.*;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.PageBaseDTO;
import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
import com.panzhihua.common.model.vos.community.StatisticsCommVO;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenCommunityStatisticsVO;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenDynStatisticsInfo;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenEasyPhotoStatisticsInfo;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenMerchantStatisticsInfo;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenMicroWishStatisticsInfo;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenNeighborStatisticsInfo;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenQuestionnaireStatisticsInfo;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenResidentActStatisticsInfo;
import com.panzhihua.common.model.vos.community.bigscreen.BigScreenVolunteerActStatisticsInfo;
import com.panzhihua.common.model.vos.community.bigscreen.GridsGovernanceStatisticsVO;
import com.panzhihua.common.model.vos.community.bigscreen.ResidentAutonomyStatisticsVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
import com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO;
import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
import com.panzhihua.service_community.dao.ComActActivityDAO;
import com.panzhihua.service_community.dao.ComActCommitteeDao;
import com.panzhihua.service_community.dao.ComActDiscussDAO;
import com.panzhihua.service_community.dao.ComActDynDAO;
import com.panzhihua.service_community.dao.ComActEasyPhotoDAO;
import com.panzhihua.service_community.dao.ComActMicroWishDAO;
import com.panzhihua.service_community.dao.ComActNeighborCircleDAO;
import com.panzhihua.service_community.dao.ComActQuestnaireDAO;
import com.panzhihua.service_community.dao.ComActWarehouseDonatesDao;
import com.panzhihua.service_community.dao.ComMngPopulationDAO;
import com.panzhihua.service_community.dao.ComPropertyDao;
import com.panzhihua.service_community.dao.ConvenientMerchantDAO;
import com.panzhihua.service_community.service.BigScreenStatisticsService;
import lombok.extern.slf4j.Slf4j;
@@ -76,6 +102,12 @@
    private ComActDynDAO comActDynDAO;
    @Resource
    private ComActActivityDAO comActActivityDAO;
    @Resource
    private ComActCommitteeDao comActCommitteeDao;
    @Resource
    private ComActSocialProjectDao comActSocialProjectDao;
    @Resource
@@ -83,6 +115,7 @@
    @Resource
    private ComActSocialWorkerDao comActSocialWorkerDao;
    /**
     * 大数据分析平台-居民自治
@@ -95,20 +128,12 @@
        if (isNull(statisticsVO)) {
            statisticsVO = new ResidentAutonomyStatisticsVO();
        }
        List<ComActEasyPhotoVO> easyPhotoVOList = comActEasyPhotoDAO.selectStatisticsList(communityId);
        List<StatisticsCommVO> easyPhotoHistogram = comActEasyPhotoDAO.selectStatisticsList(communityId);
        //随手拍总数
        Integer easyPhotoTotalCount = 0;
        //随手拍柱状统计
        List<StatisticsCommVO> easyPhotoHistogram = new ArrayList<>();
        if (Objects.nonNull(easyPhotoVOList) && !easyPhotoVOList.isEmpty()) {
            Map<String, List<ComActEasyPhotoVO>> easyPhotoVOMap = easyPhotoVOList.stream().collect(Collectors.groupingBy(ComActEasyPhotoVO::getClassifyName));
            for (Map.Entry<String, List<ComActEasyPhotoVO>> entry : easyPhotoVOMap.entrySet()) {
                StatisticsCommVO commVO = new StatisticsCommVO();
                commVO.setFiled(entry.getKey());
                commVO.setNum(entry.getValue().size());
                easyPhotoHistogram.add(commVO);
            }
            easyPhotoTotalCount = easyPhotoVOList.size();
        if (Objects.nonNull(easyPhotoHistogram) && !easyPhotoHistogram.isEmpty()) {
            easyPhotoTotalCount = easyPhotoHistogram.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum();
        }
        statisticsVO.setEasyPhotoTotalCount(easyPhotoTotalCount);
        statisticsVO.setEasyPhotoHistogram(easyPhotoHistogram);
@@ -117,7 +142,7 @@
        List<StatisticsCommVO> microWishRealizePercent = comActMicroWishDAO.selectRealizePercent(communityId);
        statisticsVO.setMicroWishRealizePercent(microWishRealizePercent);
        //微心愿图片
        List<String> microWishImages = comActMicroWishDAO.getPassedAllImages(communityId, pageSize);
        List<String> microWishImages = comActMicroWishDAO.getPassedAllImages(communityId, 20);
        statisticsVO.setMicroWishImages(microWishImages);
        //议事投票类型占比
@@ -131,40 +156,19 @@
        statisticsVO.setVoteTitles(voteTitles);
        //邻里圈图片
        List<String> neighborImages = comActNeighborCircleDAO.getAllImages(communityId, pageSize);
        List<String> neighborImages = comActNeighborCircleDAO.getAllImages(communityId, 20);
        statisticsVO.setNeighborImages(neighborImages);
        //邻里圈文本内容
        List<String> neighborContents = comActNeighborCircleDAO.getContents(communityId, pageSize);
        statisticsVO.setNeighborContents(neighborContents);
        //报事报修新增折线数据
        Date nowDate = new Date();
        List<StatisticsCommVO> repairAddPolylineData = comPropertyDao.getRepairPolylineDate(communityId);
        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
        for (int i = 1; i <= currentMon; i++) {
            String temp;
            if (i > 9) {
                temp = "" + i;
            } else {
                temp = "0" + i;
            }
            boolean isExist = repairAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
                    e.getFiled().endsWith(temp));
            if (!isExist) {
                StatisticsCommVO other = new StatisticsCommVO();
                other.setFiled(temp);
                other.setNum(0);
                repairAddPolylineData.add(other);
            }
        }
        repairAddPolylineData = repairAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
        statisticsVO.setRepairAddPolylineData(repairAddPolylineData);
        //报事报修累计折线数据
        List<StatisticsCommVO> repairTotalPolylineData = new ArrayList<>();
        String year = new SimpleDateFormat("yyyy").format(nowDate);
        repairAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = comPropertyDao.getRepairTotalPolylineDate(communityId, year + e.getFiled());
            StatisticsCommVO temp = comPropertyDao.getRepairTotalPolylineDate(communityId, e.getFiled());
            temp.setFiled(e.getFiled());
            repairTotalPolylineData.add(temp);
        });
@@ -177,8 +181,23 @@
        List<String> warehouseLoveTransfer = comActWarehouseDonatesDao.getWarehouseLoveTransfer(communityId, pageSize);
        statisticsVO.setWarehouseLoveTransfer(warehouseLoveTransfer);
        //捐赠图片
        List<String> warehouseImages = comActWarehouseDonatesDao.getWarehouseImages(communityId, pageSize);
        List<String> warehouseImages = comActWarehouseDonatesDao.getWarehouseImages(communityId, 20);
        statisticsVO.setWarehouseImages(warehouseImages);
        //居民活动柱状统计
        List<StatisticsCommVO> residentActHistogram = comActActivityDAO.selectResidentActHistogramData(communityId, true);
        //居民活动新增数据
        List<StatisticsCommVO> actAddPolylineData = comActActivityDAO.getActAddPolylineData(communityId, true);
        //居民活动发布总数
        int residentActTotalCount = 0;
        if (!residentActHistogram.isEmpty()) {
            residentActTotalCount = residentActHistogram.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum();
        }
        statisticsVO.setResidentActTotalCount(residentActTotalCount);
        statisticsVO.setResidentActHistogram(actAddPolylineData);
        //业主委员会党员占比
        List<StatisticsCommVO> committeePartyPercent = comActCommitteeDao.selectCommitteePartyPercent(communityId);
        statisticsVO.setCommitteePartyPercent(committeePartyPercent);
        return R.ok(statisticsVO);
    }
@@ -213,37 +232,13 @@
            });
        }
        statisticsVO.setVillageStatisticsList(villageStatisticsList);
        // 查询社区事件列表
        List<EventGridIncidentStatisticsVO> gridIncidentList = comMngPopulationDAO.getGridsGovernanceEventList(communityId);
        statisticsVO.setGridIncidentList(gridIncidentList);
        //事件分析新增折线数据
        Date nowDate = new Date();
        List<StatisticsCommVO> eventAddPolylineData = comPropertyDao.getEventAddPolylineData(communityId);
        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
        for (int i = 1; i <= currentMon; i++) {
            String temp;
            if (i > 9) {
                temp = "" + i;
            } else {
                temp = "0" + i;
            }
            boolean isExist = eventAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
                    e.getFiled().endsWith(temp));
            if (!isExist) {
                StatisticsCommVO other = new StatisticsCommVO();
                other.setFiled(temp);
                other.setNum(0);
                eventAddPolylineData.add(other);
            }
        }
        eventAddPolylineData = eventAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
        statisticsVO.setEventAddPolylineData(eventAddPolylineData);
        //事件分析累计折线数据
        List<StatisticsCommVO> eventTotalPolylineData = new ArrayList<>();
        String year = new SimpleDateFormat("yyyy").format(nowDate);
        eventAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = comPropertyDao.getEventTotalPolylineDate(communityId, year + e.getFiled());
            StatisticsCommVO temp = comPropertyDao.getEventTotalPolylineDate(communityId, e.getFiled());
            temp.setFiled(e.getFiled());
            eventTotalPolylineData.add(temp);
        });
@@ -309,31 +304,11 @@
        //微心愿新增折线数据
        Date nowDate = new Date();
        List<StatisticsCommVO> microWishAddPolylineData = comActMicroWishDAO.getMicroWishAddPolylineData(communityId);
        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
        for (int i = 1; i <= currentMon; i++) {
            String temp;
            if (i > 9) {
                temp = "" + i;
            } else {
                temp = "0" + i;
            }
            boolean isExist = microWishAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
                    e.getFiled().endsWith(temp));
            if (!isExist) {
                StatisticsCommVO other = new StatisticsCommVO();
                other.setFiled(temp);
                other.setNum(0);
                microWishAddPolylineData.add(other);
            }
        }
        microWishAddPolylineData = microWishAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
        statisticsInfo.setMicroWishAddPolylineData(microWishAddPolylineData);
        //微心愿累计折线数据
        List<StatisticsCommVO> microWishTotalPolylineData = new ArrayList<>();
        String year = new SimpleDateFormat("yyyy").format(nowDate);
        microWishAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = comActMicroWishDAO.getMicroWishTotalPolylineDate(communityId, year + e.getFiled());
            StatisticsCommVO temp = comActMicroWishDAO.getMicroWishTotalPolylineDate(communityId, e.getFiled());
            temp.setFiled(e.getFiled());
            microWishTotalPolylineData.add(temp);
        });
@@ -352,31 +327,11 @@
        //随手拍新增折线数据
        Date nowDate = new Date();
        List<StatisticsCommVO> easyPhotoAddPolylineData = comActEasyPhotoDAO.getEasyPhotoAddPolylineData(communityId);
        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
        for (int i = 1; i <= currentMon; i++) {
            String temp;
            if (i > 9) {
                temp = "" + i;
            } else {
                temp = "0" + i;
            }
            boolean isExist = easyPhotoAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
                    e.getFiled().endsWith(temp));
            if (!isExist) {
                StatisticsCommVO other = new StatisticsCommVO();
                other.setFiled(temp);
                other.setNum(0);
                easyPhotoAddPolylineData.add(other);
            }
        }
        easyPhotoAddPolylineData = easyPhotoAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
        statisticsInfo.setEasyPhotoAddPolylineData(easyPhotoAddPolylineData);
        //随手拍累计折线数据
        List<StatisticsCommVO> easyPhotoTotalPolylineData = new ArrayList<>();
        String year = new SimpleDateFormat("yyyy").format(nowDate);
        easyPhotoAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = comActEasyPhotoDAO.getEasyPhotoTotalPolylineDate(communityId, year + e.getFiled());
            StatisticsCommVO temp = comActEasyPhotoDAO.getEasyPhotoTotalPolylineDate(communityId, e.getFiled());
            temp.setFiled(e.getFiled());
            easyPhotoTotalPolylineData.add(temp);
        });
@@ -403,33 +358,12 @@
    public R indexQuestionnaire(Long communityId) {
        BigScreenQuestionnaireStatisticsInfo statisticsInfo = comActQuestnaireDAO.getIndexQuestionnaireBaseData(communityId);
        //社区问卷新增折线数据
        Date nowDate = new Date();
        List<StatisticsCommVO> questionnaireAddPolylineData = comActQuestnaireDAO.getQuestionnaireAddPolylineData(communityId);
        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
        for (int i = 1; i <= currentMon; i++) {
            String temp;
            if (i > 9) {
                temp = "" + i;
            } else {
                temp = "0" + i;
            }
            boolean isExist = questionnaireAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
                    e.getFiled().endsWith(temp));
            if (!isExist) {
                StatisticsCommVO other = new StatisticsCommVO();
                other.setFiled(temp);
                other.setNum(0);
                questionnaireAddPolylineData.add(other);
            }
        }
        questionnaireAddPolylineData = questionnaireAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
        statisticsInfo.setQuestionnaireAddPolylineData(questionnaireAddPolylineData);
        //社区问卷累计折线数据
        List<StatisticsCommVO> questionnaireTotalPolylineData = new ArrayList<>();
        String year = new SimpleDateFormat("yyyy").format(nowDate);
        questionnaireAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = comActQuestnaireDAO.getQuestionnaireTotalPolylineDate(communityId, year + e.getFiled());
            StatisticsCommVO temp = comActQuestnaireDAO.getQuestionnaireTotalPolylineDate(communityId, e.getFiled());
            temp.setFiled(e.getFiled());
            questionnaireTotalPolylineData.add(temp);
        });
@@ -451,33 +385,12 @@
            statisticsInfo.setDynNum(dynCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
        }
        //社区动态新增折线数据
        Date nowDate = new Date();
        List<StatisticsCommVO> dynAddPolylineData = comActDynDAO.getDynAddPolylineData(communityId);
        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
        for (int i = 1; i <= currentMon; i++) {
            String temp;
            if (i > 9) {
                temp = "" + i;
            } else {
                temp = "0" + i;
            }
            boolean isExist = dynAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
                    e.getFiled().endsWith(temp));
            if (!isExist) {
                StatisticsCommVO other = new StatisticsCommVO();
                other.setFiled(temp);
                other.setNum(0);
                dynAddPolylineData.add(other);
            }
        }
        dynAddPolylineData = dynAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
        statisticsInfo.setDynAddPolylineData(dynAddPolylineData);
        //社区动态累计折线数据
        List<StatisticsCommVO> dynTotalPolylineData = new ArrayList<>();
        String year = new SimpleDateFormat("yyyy").format(nowDate);
        dynAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = comActDynDAO.getDynTotalPolylineDate(communityId, year + e.getFiled());
            StatisticsCommVO temp = comActDynDAO.getDynTotalPolylineDate(communityId, e.getFiled());
            temp.setFiled(e.getFiled());
            dynTotalPolylineData.add(temp);
        });
@@ -508,36 +421,15 @@
        statisticsInfo.setNeighborCircleData(neighborCircleData);
        if (!neighborCircleData.isEmpty()) {
            statisticsInfo.setPublishContentNum(neighborCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
            statisticsInfo.setPublishTopicNum(neighborCircleData.size());
            statisticsInfo.setPublishTopicNum(neighborCircleData.stream().filter(e -> !"无话题".equals(e.getFiled())).collect(Collectors.toList()).size());
        }
        //邻里圈新增折线数据
        Date nowDate = new Date();
        List<StatisticsCommVO> neighborAddPolylineData = comActNeighborCircleDAO.getNeighborAddPolylineData(communityId);
        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
        for (int i = 1; i <= currentMon; i++) {
            String temp;
            if (i > 9) {
                temp = "" + i;
            } else {
                temp = "0" + i;
            }
            boolean isExist = neighborAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
                    e.getFiled().endsWith(temp));
            if (!isExist) {
                StatisticsCommVO other = new StatisticsCommVO();
                other.setFiled(temp);
                other.setNum(0);
                neighborAddPolylineData.add(other);
            }
        }
        neighborAddPolylineData = neighborAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
        statisticsInfo.setNeighborAddPolylineData(neighborAddPolylineData);
        //邻里圈累计折线数据
        List<StatisticsCommVO> neighborTotalPolylineData = new ArrayList<>();
        String year = new SimpleDateFormat("yyyy").format(nowDate);
        neighborAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = comActNeighborCircleDAO.getNeighborTotalPolylineDate(communityId, year + e.getFiled());
            StatisticsCommVO temp = comActNeighborCircleDAO.getNeighborTotalPolylineDate(communityId, e.getFiled());
            temp.setFiled(e.getFiled());
            neighborTotalPolylineData.add(temp);
        });
@@ -574,33 +466,12 @@
            statisticsInfo.setServiceTypeNum(serviceTypeCircleData.size());
        }
        //服务次数(目前暂时使用浏览量)新增折线数据
        Date nowDate = new Date();
        List<StatisticsCommVO> serviceTimesAddPolylineData = convenientMerchantDAO.getServiceTimesAddPolylineData(communityId);
        int currentMon = Integer.parseInt(new SimpleDateFormat("MM").format(nowDate));
        for (int i = 1; i <= currentMon; i++) {
            String temp;
            if (i > 9) {
                temp = "" + i;
            } else {
                temp = "0" + i;
            }
            boolean isExist = serviceTimesAddPolylineData.stream().anyMatch(e -> nonNull(e.getFiled()) &&
                    e.getFiled().endsWith(temp));
            if (!isExist) {
                StatisticsCommVO other = new StatisticsCommVO();
                other.setFiled(temp);
                other.setNum(0);
                serviceTimesAddPolylineData.add(other);
            }
        }
        serviceTimesAddPolylineData = serviceTimesAddPolylineData.stream().filter(e -> nonNull(e.getFiled()))
                .sorted(Comparator.comparing(e -> e.getFiled())).collect(Collectors.toList());
        statisticsInfo.setServiceTimesAddPolylineData(serviceTimesAddPolylineData);
        //服务次数(目前暂时使用浏览量)累计折线数据
        List<StatisticsCommVO> serviceTimesTotalPolylineData = new ArrayList<>();
        String year = new SimpleDateFormat("yyyy").format(nowDate);
        serviceTimesAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = convenientMerchantDAO.getServiceTimesTotalPolylineDate(communityId, year + e.getFiled());
            StatisticsCommVO temp = convenientMerchantDAO.getServiceTimesTotalPolylineDate(communityId, e.getFiled());
            temp.setFiled(e.getFiled());
            serviceTimesTotalPolylineData.add(temp);
        });
@@ -641,12 +512,146 @@
        return R.ok(comActQuestnaireDAO.selectQuestionnaireDisplayList(page, pageBaseDTO));
    }
    /**
     * 首页二级页面-居民活动
     * @param communityId
     * @return
     */
    @Override
    public R hmkBaseInfo() {
    public R indexResidentAct(Long communityId) {
        BigScreenResidentActStatisticsInfo statisticsInfo = new BigScreenResidentActStatisticsInfo();
        List<StatisticsCommVO> actCircleData = comActActivityDAO.getIndexResidentActBaseData(communityId, true);
        statisticsInfo.setActCircleData(actCircleData);
        if (!actCircleData.isEmpty()) {
            statisticsInfo.setJoinNum(actCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
        }
        List<StatisticsCommVO> residentActHistogram = comActActivityDAO.selectResidentActHistogramData(communityId, true);
        //居民活动发布总数
        int publishNum = 0;
        if (!residentActHistogram.isEmpty()) {
            publishNum = residentActHistogram.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum();
        }
        statisticsInfo.setPublishNum(publishNum);
        //居民活动新增折线数据
        List<StatisticsCommVO> actAddPolylineData = comActActivityDAO.getActAddPolylineData(communityId, true);
        statisticsInfo.setActAddPolylineData(actAddPolylineData);
        //居民活动累计折线数据
        List<StatisticsCommVO> actTotalPolylineData = new ArrayList<>();
        actAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = comActActivityDAO.getActTotalPolylineData(communityId, true, e.getFiled());
            temp.setFiled(e.getFiled());
            actTotalPolylineData.add(temp);
        });
        statisticsInfo.setActTotalPolylineData(actTotalPolylineData);
        return R.ok(statisticsInfo);
    }
    /**
     * 首页二级页面-居民活动展示列表
     * @param pageBaseDTO
     * @return
     */
    @Override
    public R indexResidentActList(PageBaseDTO pageBaseDTO) {
        Page page = retrievePage(pageBaseDTO);
        return R.ok(comActActivityDAO.indexActList(page, pageBaseDTO, true));
    }
    /**
     * 首页二级页面-志愿者活动
     * @param communityId
     * @return
     */
    @Override
    public R indexVolunteerAct(Long communityId) {
        BigScreenVolunteerActStatisticsInfo statisticsInfo = new BigScreenVolunteerActStatisticsInfo();
        List<StatisticsCommVO> actCircleData = comActActivityDAO.getIndexResidentActBaseData(communityId, false);
        statisticsInfo.setActCircleData(actCircleData);
        if (!actCircleData.isEmpty()) {
            statisticsInfo.setJoinNum(actCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
        }
        List<StatisticsCommVO> volunteerActHistogram = comActActivityDAO.selectResidentActHistogramData(communityId, false);
        //志愿者活动发布总数
        int publishNum = 0;
        if (!volunteerActHistogram.isEmpty()) {
            publishNum = volunteerActHistogram.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum();
        }
        statisticsInfo.setPublishNum(publishNum);
        //志愿者活动新增折线数据
        List<StatisticsCommVO> actAddPolylineData = comActActivityDAO.getActAddPolylineData(communityId, false);
        statisticsInfo.setActAddPolylineData(actAddPolylineData);
        //志愿者活动累计折线数据
        List<StatisticsCommVO> actTotalPolylineData = new ArrayList<>();
        actAddPolylineData.forEach(e -> {
            StatisticsCommVO temp = comActActivityDAO.getActTotalPolylineData(communityId, false, e.getFiled());
            temp.setFiled(e.getFiled());
            actTotalPolylineData.add(temp);
        });
        statisticsInfo.setActTotalPolylineData(actTotalPolylineData);
        return R.ok(statisticsInfo);
    }
    /**
     * 首页二级页面-志愿者活动展示列表
     * @param pageBaseDTO
     * @return
     */
    @Override
    public R indexVolunteerActList(PageBaseDTO pageBaseDTO) {
        Page page = retrievePage(pageBaseDTO);
        return R.ok(comActActivityDAO.indexActList(page, pageBaseDTO, false));
    }
    /**
     * 清网治格-根据事件分类获取近1月的社区事件数据
     * @param type
     * @param communityId
     * @return
     */
    @Override
    public R getEventList(Integer type, Long communityId) {
        // 查询社区事件列表
        List<EventGridIncidentStatisticsVO> gridIncidentList = comMngPopulationDAO.getGridsGovernanceEventList(communityId);
        List<EventGridIncidentStatisticsVO> returnGridIncidentList = new ArrayList<>();
        if (!gridIncidentList.isEmpty()) {
            gridIncidentList.forEach(e -> {
                if (e.getEventType().equals(2)) {
                    String[] lngLatString = e.getLatLng().split(",");
                    e.setLatLng(lngLatString[1] + "," + lngLatString[0]);
                }
            });
            returnGridIncidentList = gridIncidentList.stream().filter(e -> type.equals(e.getType())).collect(Collectors.toList());
        }
        return R.ok(returnGridIncidentList);
    }
    /**
     * 清网治格-社区事件数据分页
     * @param pageBaseDTO
     * @return
     */
    @Override
    public R pageEventList(PageBaseDTO pageBaseDTO) {
        Page page = retrievePage(pageBaseDTO);
        IPage<EventGridIncidentStatisticsVO> iPage = comMngPopulationDAO.pageEventList(page, pageBaseDTO);
        List<EventGridIncidentStatisticsVO> gridIncidentList = iPage.getRecords();
        if (!gridIncidentList.isEmpty()) {
            gridIncidentList.forEach(e -> {
                if (e.getEventType().equals(2)) {
                    String[] lngLatString = e.getLatLng().split(",");
                    e.setLatLng(lngLatString[1] + "," + lngLatString[0]);
                }
            });
        }
        return R.ok(iPage);
    }
    @Override
    public R hmkBaseInfo(CommonPage commonPage) {
        BigScreenHmkBaseInfo bigScreenHmkBaseInfo=comActSocialProjectDao.selectIndexBaseInfo();
        //项目数据
        BigScreenHmkProjectInfo bigScreenHmkProjectInfo=comActSocialProjectDao.selectBaseInfo();
        List<BigScreenHmkProjectTypeInfo> typeInfo=comActSocialProjectDao.selectType();
        BigScreenHmkProjectInfo bigScreenHmkProjectInfo=comActSocialProjectDao.selectBaseInfo(commonPage.getCommunityId());
        List<BigScreenHmkProjectTypeInfo> typeInfo=comActSocialProjectDao.selectType(null,commonPage.getCommunityId());
        if(bigScreenHmkProjectInfo.getCount()>0){
            typeInfo.forEach(bigScreenHmkProjectTypeInfo -> {
                bigScreenHmkProjectTypeInfo.setPercent(bigScreenHmkProjectTypeInfo.getCount()/bigScreenHmkProjectInfo.getCount());
@@ -654,16 +659,16 @@
        }
        bigScreenHmkProjectInfo.setTypeInfoList(typeInfo);
        //活动数据
        Integer countAll=comActSocialProjectDao.selectActivity(0);
        Integer countAll=comActSocialProjectDao.selectActivity(0,commonPage.getCommunityId());
        BigScreenHmkProjectTypeInfo jm=new BigScreenHmkProjectTypeInfo();
        jm.setName("居民活动");
        jm.setCount(comActSocialProjectDao.selectActivity(2));
        jm.setCount(comActSocialProjectDao.selectActivity(2,commonPage.getCommunityId()));
        if(countAll>0){
            jm.setPercent(jm.getCount()/countAll);
        }
        BigScreenHmkProjectTypeInfo zyz=new BigScreenHmkProjectTypeInfo();
        zyz.setName("志愿者活动");
        zyz.setCount(comActSocialProjectDao.selectActivity(1));
        zyz.setCount(comActSocialProjectDao.selectActivity(1,commonPage.getCommunityId()));
        if(countAll>0){
            zyz.setPercent(zyz.getCount()/countAll);
        }
@@ -672,8 +677,8 @@
        activityList.add(zyz);
        bigScreenHmkProjectInfo.setActivityTypeInfoList(activityList);
        //社会组织数据
        BigScreenHmkSocialOrgInfo bigScreenHmkSocialOrgInfo=comActSocialOrgDao.selectInfo();
        List<BigScreenHmkProjectTypeInfo> typeInfoList= comActSocialOrgDao.selectType();
        BigScreenHmkSocialOrgInfo bigScreenHmkSocialOrgInfo=comActSocialOrgDao.selectInfo(commonPage.getCommunityId());
        List<BigScreenHmkProjectTypeInfo> typeInfoList= comActSocialOrgDao.selectType(commonPage.getCommunityId());
        if(bigScreenHmkSocialOrgInfo.getCount()>0){
            typeInfoList.forEach(bigScreenHmkProjectTypeInfo -> {
                bigScreenHmkProjectTypeInfo.setPercent(bigScreenHmkProjectTypeInfo.getCount()/bigScreenHmkSocialOrgInfo.getCount());
@@ -684,22 +689,22 @@
        //社工数据
        BigScreenHmkSocialWorkerInfo bigScreenHmkSocialWorkerInfo=new BigScreenHmkSocialWorkerInfo();
        List<BigScreenHmkProjectTypeInfo> socialWorkerList=new ArrayList<>();
        Integer socialAll=comActSocialWorkerDao.selectType(0);
        Integer socialAll=comActSocialWorkerDao.selectType(0,commonPage.getCommunityId());
        BigScreenHmkProjectTypeInfo ss=new BigScreenHmkProjectTypeInfo();
        ss.setName("30岁以下");
        ss.setCount(comActSocialWorkerDao.selectType(1));
        ss.setCount(comActSocialWorkerDao.selectType(1,commonPage.getCommunityId()));
        if(socialAll>0){
            ss.setPercent(ss.getCount()/socialAll);
        }
        BigScreenHmkProjectTypeInfo wj=new BigScreenHmkProjectTypeInfo();
        wj.setName("30-59岁");
        wj.setCount(comActSocialWorkerDao.selectType(2));
        wj.setCount(comActSocialWorkerDao.selectType(2,commonPage.getCommunityId()));
        if(socialAll>0){
            wj.setPercent(wj.getCount()/socialAll);
        }
        BigScreenHmkProjectTypeInfo ls=new BigScreenHmkProjectTypeInfo();
        ls.setName("60岁以上");
        ls.setCount(comActSocialWorkerDao.selectType(2));
        ls.setCount(comActSocialWorkerDao.selectType(3,commonPage.getCommunityId()));
        if(socialAll>0){
            ls.setPercent(ls.getCount()/socialAll);
        }
@@ -707,7 +712,7 @@
        socialWorkerList.add(wj);
        socialWorkerList.add(ls);
        bigScreenHmkSocialWorkerInfo.setSocialWorkerAge(socialWorkerList);
        List<BigScreenHmkProjectTypeInfo> socialWorkerSkill=comActSocialWorkerDao.selectSkillType();
        List<BigScreenHmkProjectTypeInfo> socialWorkerSkill=comActSocialWorkerDao.selectSkillType(commonPage.getCommunityId());
        if(socialAll>0){
            socialWorkerSkill.forEach(bigScreenHmkProjectTypeInfo -> {
                bigScreenHmkProjectTypeInfo.setPercent(bigScreenHmkProjectTypeInfo.getCount()/socialAll);
@@ -715,8 +720,31 @@
        }
        bigScreenHmkSocialWorkerInfo.setSocialWorkerSkill(socialWorkerSkill);
        bigScreenHmkBaseInfo.setBigScreenHmkSocialWorkerInfo(bigScreenHmkSocialWorkerInfo);
        bigScreenHmkBaseInfo.setBigScreenHmkProjectInfo(bigScreenHmkProjectInfo);
        return R.ok(bigScreenHmkBaseInfo);
    }
    @Override
    public R partyProjectActivityLine() {
        List<BigScreenActivityLine> bigScreenActivityLines=this.getPastMonth();
        bigScreenActivityLines.forEach(bigScreenActivityLine -> {
            BigScreenActivityLine bigScreenActivityLine1=comActSocialProjectDao.selectActivityCountMonth(bigScreenActivityLine.getX(),bigScreenActivityLine.getYear());
            bigScreenActivityLine.setY(bigScreenActivityLine1.getY());
            bigScreenActivityLine.setCountY(bigScreenActivityLine1.getCountY());
            bigScreenActivityLine.setX(bigScreenActivityLine.getYear().substring(2,4)+"-"+bigScreenActivityLine.getX());
        });
        return R.ok(bigScreenActivityLines);
    }
    @Override
    public R projectActivityProject(CommonPage commonPage) {
        return R.ok(comActActivityDAO.selectProjectActivity(new Page(commonPage.getPage(),commonPage.getSize())));
    }
    @Override
    public R projectType(String name) {
        return R.ok(comActSocialProjectDao.selectType(name,null));
    }
    private Page retrievePage(PageBaseDTO pageBaseDTO) {
@@ -732,4 +760,16 @@
        }
        return page;
    }
    public List<BigScreenActivityLine> getPastMonth(){
        List<BigScreenActivityLine> bigScreenActivityLines=new ArrayList<>();
        for(int i=11;i>=0;i--){
            BigScreenActivityLine bigScreenActivityLine=new BigScreenActivityLine();
            String date=DateUtils.getDateFormatString(DateUtils.addMonth(new Date(),-i),"MM");
            String year=DateUtils.getDateFormatString(DateUtils.addMonth(new Date(),-i),"yyyy");
            bigScreenActivityLine.setX(date);
            bigScreenActivityLine.setYear(year);
            bigScreenActivityLines.add(bigScreenActivityLine);
        }
        return bigScreenActivityLines;
    }
}