package com.panzhihua.service_community.service.impl; import cn.hutool.core.util.IdcardUtil; 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.dtos.property.CommonPage; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.community.bigscreen.*; import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO; import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO; 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.common.model.vos.grid.EventVO; import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO; import com.panzhihua.common.model.vos.property.ComPropertyEquipmentVO; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.model.dos.ComActDO; import com.panzhihua.service_community.service.BigScreenStatisticsService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; import static java.util.Objects.isNull; import static java.util.Objects.nonNull; /** * @title: BigScreenStatisticsServiceImpl * @projectName: 成都呐喊信息技术有限公司-智慧社区项目 * @description: 大屏统计服务实现类 * @author: hans * @date: 2021/12/06 9:56 */ @Service @Slf4j public class BigScreenStatisticsServiceImpl implements BigScreenStatisticsService { private static final Integer pageSize = 100; @Resource private ComActEasyPhotoDAO comActEasyPhotoDAO; @Resource private ComActMicroWishDAO comActMicroWishDAO; @Resource private ComActDiscussDAO comActDiscussDAO; @Resource private ComActNeighborCircleDAO comActNeighborCircleDAO; @Resource private ComPropertyDao comPropertyDao; @Resource private ComActWarehouseDonatesDao comActWarehouseDonatesDao; @Resource private ComMngPopulationDAO comMngPopulationDAO; @Resource private ConvenientMerchantDAO convenientMerchantDAO; @Resource private ComActQuestnaireDAO comActQuestnaireDAO; @Resource private ComActDynDAO comActDynDAO; @Resource private ComActActivityDAO comActActivityDAO; @Resource private ComActCommitteeDao comActCommitteeDao; @Resource private ComActSocialProjectDao comActSocialProjectDao; @Resource private ComActSocialOrgDao comActSocialOrgDao; @Resource private ComActSocialWorkerDao comActSocialWorkerDao; @Resource private ComActFourMemberDao comActFourMemberDao; @Resource private ComFmsServiceDAO comFmsServiceDAO; @Resource private ComMngVolunteerMngDAO comMngVolunteerMngDAO; @Resource private ComActSocialOrgHatchDAO comActSocialOrgHatchDAO; @Resource private ComActDAO comActDAO; @Resource private ComActEnterpriseDAO comActEnterpriseDAO; /** * 大数据分析平台-居民自治 * @param communityId * @return */ @Override public R getResidentAutonomy(Long communityId) { ResidentAutonomyStatisticsVO statisticsVO = comActEasyPhotoDAO.selectResidentAutonomyStatistics(communityId); if (isNull(statisticsVO)) { statisticsVO = new ResidentAutonomyStatisticsVO(); } List easyPhotoHistogram = comActEasyPhotoDAO.selectStatisticsList(communityId); //随手拍总数 Integer easyPhotoTotalCount = 0; //随手拍柱状统计 if (Objects.nonNull(easyPhotoHistogram) && !easyPhotoHistogram.isEmpty()) { easyPhotoTotalCount = easyPhotoHistogram.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum(); } statisticsVO.setEasyPhotoTotalCount(easyPhotoTotalCount); statisticsVO.setEasyPhotoHistogram(easyPhotoHistogram); //待实现&已实现数目及占比 List microWishRealizePercent = comActMicroWishDAO.selectRealizePercent(communityId); statisticsVO.setMicroWishRealizePercent(microWishRealizePercent); //微心愿图片 List microWishImages = comActMicroWishDAO.getPassedAllImages(communityId, 20); statisticsVO.setMicroWishImages(microWishImages); //议事投票类型占比 List discussTypePercent = comActDiscussDAO.selectTypePercent(communityId); statisticsVO.setDiscussTypePercent(discussTypePercent); //议事标题 List discussTitles = comActDiscussDAO.getTitles(1, communityId, pageSize); statisticsVO.setDiscussTitles(discussTitles); //投票标题 List voteTitles = comActDiscussDAO.getTitles(2, communityId, pageSize); statisticsVO.setVoteTitles(voteTitles); //邻里圈图片 List neighborImages = comActNeighborCircleDAO.getAllImages(communityId, 20); statisticsVO.setNeighborImages(neighborImages); //邻里圈文本内容 List neighborContents = comActNeighborCircleDAO.getContents(communityId, pageSize); statisticsVO.setNeighborContents(neighborContents); //报事报修新增折线数据 List repairAddPolylineData = comPropertyDao.getRepairPolylineDate(communityId); statisticsVO.setRepairAddPolylineData(repairAddPolylineData); //报事报修累计折线数据 List repairTotalPolylineData = new ArrayList<>(); repairAddPolylineData.forEach(e -> { StatisticsCommVO temp = comPropertyDao.getRepairTotalPolylineDate(communityId, e.getFiled()); temp.setFiled(e.getFiled()); repairTotalPolylineData.add(temp); }); statisticsVO.setRepairTotalPolylineData(repairTotalPolylineData); //捐赠记录 List warehouseDonateRecords = comActWarehouseDonatesDao.getWarehouseDonateRecords(communityId, pageSize); statisticsVO.setWarehouseDonateRecords(warehouseDonateRecords); //爱心传递 List warehouseLoveTransfer = comActWarehouseDonatesDao.getWarehouseLoveTransfer(communityId, pageSize); statisticsVO.setWarehouseLoveTransfer(warehouseLoveTransfer); //捐赠图片 List warehouseImages = comActWarehouseDonatesDao.getWarehouseImages(communityId, 20); statisticsVO.setWarehouseImages(warehouseImages); //居民活动柱状统计 List residentActHistogram = comActActivityDAO.selectResidentActHistogramData(communityId, false); //居民活动新增数据 List 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 committeePartyPercent = comActCommitteeDao.selectCommitteePartyPercent(communityId); statisticsVO.setCommitteePartyPercent(committeePartyPercent); return R.ok(statisticsVO); } /** * 大数据分析平台-清网治格 * @param communityId * @return */ @Override public R getGridsGovernance(Long communityId) { GridsGovernanceStatisticsVO statisticsVO = comActEasyPhotoDAO.selectGridsGovernance(communityId); if (isNull(statisticsVO)) { statisticsVO = new GridsGovernanceStatisticsVO(); } // 查询网格数据 List gridStatisticsList = comMngPopulationDAO.getEventScreenGridData(communityId); statisticsVO.setGridStatisticsList(gridStatisticsList); // 查询小区列表 List villageStatisticsList = comMngPopulationDAO.getCivilScreenVillageList(communityId); if (!villageStatisticsList.isEmpty()) { villageStatisticsList.forEach(village -> { CivilVillageStatisticsVO villageStatisticsVO = comMngPopulationDAO.getCivilScreenVillageStatistics(village.getVillageId()); if (villageStatisticsVO != null) { village.setPeopleNum(villageStatisticsVO.getPeopleNum()); village.setHouseNum(villageStatisticsVO.getHouseNum()); village.setRegisterNum(villageStatisticsVO.getRegisterNum()); village.setFlowNum(villageStatisticsVO.getFlowNum()); // BeanUtils.copyProperties(villageStatisticsVO,village); } }); } statisticsVO.setVillageStatisticsList(villageStatisticsList); //事件分析新增折线数据 List eventAddPolylineData = comPropertyDao.getEventAddPolylineData(communityId); statisticsVO.setEventAddPolylineData(eventAddPolylineData); //事件分析累计折线数据 List eventTotalPolylineData = new ArrayList<>(); eventAddPolylineData.forEach(e -> { StatisticsCommVO temp = comPropertyDao.getEventTotalPolylineDate(communityId, e.getFiled()); temp.setFiled(e.getFiled()); eventTotalPolylineData.add(temp); }); statisticsVO.setEventTotalPolylineData(eventTotalPolylineData); statisticsVO.generateStatisticsData(); return R.ok(statisticsVO); } /** * 大数据分析平台-社区服务 * @param communityId * @return */ @Override public R getCommunityServiceStatistics(Long communityId) { BigScreenCommunityStatisticsVO statisticsVO = new BigScreenCommunityStatisticsVO(); // 查询网格数据 List gridStatisticsList = comMngPopulationDAO.getEventScreenGridData(communityId); statisticsVO.setGridStatisticsList(gridStatisticsList); // 查询小区列表 List villageStatisticsList = comMngPopulationDAO.getCivilScreenVillageList(communityId); if (!villageStatisticsList.isEmpty()) { villageStatisticsList.forEach(village -> { CivilVillageStatisticsVO villageStatisticsVO = comMngPopulationDAO.getCivilScreenVillageStatistics(village.getVillageId()); if (villageStatisticsVO != null) { village.setPeopleNum(villageStatisticsVO.getPeopleNum()); village.setHouseNum(villageStatisticsVO.getHouseNum()); village.setRegisterNum(villageStatisticsVO.getRegisterNum()); village.setFlowNum(villageStatisticsVO.getFlowNum()); } }); } statisticsVO.setVillageStatisticsList(villageStatisticsList); //商家地图点位数据 List merchantVOList = convenientMerchantDAO.selectMerchantListByCommunity(communityId); statisticsVO.setMerchantMapDataList(merchantVOList); return R.ok(statisticsVO); } /** * 分页获取热度排行商家 * @param pagePopularMerchantDTO * @return */ @Override public R getScreenPopularMerchants(PagePopularMerchantDTO pagePopularMerchantDTO) { Page page = new Page<>(); page.setSize(pagePopularMerchantDTO.getPageSize()); page.setCurrent(pagePopularMerchantDTO.getPageNum()); List popularMerchants = convenientMerchantDAO.getScreenPopularMerchants(page, pagePopularMerchantDTO); return R.ok(popularMerchants); } /** * 首页二级页面-微心愿 * @param communityId * @return */ @Override public R indexMicroWish(Long communityId) { BigScreenMicroWishStatisticsInfo statisticsInfo = comActMicroWishDAO.selectIndexMicroWishBaseData(communityId); //微心愿新增折线数据 Date nowDate = new Date(); List microWishAddPolylineData = comActMicroWishDAO.getMicroWishAddPolylineData(communityId); statisticsInfo.setMicroWishAddPolylineData(microWishAddPolylineData); //微心愿累计折线数据 List microWishTotalPolylineData = new ArrayList<>(); microWishAddPolylineData.forEach(e -> { StatisticsCommVO temp = comActMicroWishDAO.getMicroWishTotalPolylineDate(communityId, e.getFiled()); temp.setFiled(e.getFiled()); microWishTotalPolylineData.add(temp); }); statisticsInfo.setMicroWishTotalPolylineData(microWishTotalPolylineData); return R.ok(statisticsInfo); } /** * 首页二级页面-随手拍 * @param communityId * @return */ @Override public R indexEasyPhoto(Long communityId) { BigScreenEasyPhotoStatisticsInfo statisticsInfo = comActEasyPhotoDAO.selectIndexEasyPhotoBaseData(communityId); //随手拍新增折线数据 Date nowDate = new Date(); List easyPhotoAddPolylineData = comActEasyPhotoDAO.getEasyPhotoAddPolylineData(communityId); statisticsInfo.setEasyPhotoAddPolylineData(easyPhotoAddPolylineData); //随手拍累计折线数据 List easyPhotoTotalPolylineData = new ArrayList<>(); easyPhotoAddPolylineData.forEach(e -> { StatisticsCommVO temp = comActEasyPhotoDAO.getEasyPhotoTotalPolylineDate(communityId, e.getFiled()); temp.setFiled(e.getFiled()); easyPhotoTotalPolylineData.add(temp); }); statisticsInfo.setEasyPhotoTotalPolylineData(easyPhotoTotalPolylineData); return R.ok(statisticsInfo); } /** * 首页二级页面-随手拍展示列表 * @return */ @Override public R indexEasyPhotoList(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActEasyPhotoDAO.indexEasyPhotoList(page, pageBaseDTO)); } /** * 首页二级页面-社区问卷 * @param communityId * @return */ @Override public R indexQuestionnaire(Long communityId) { BigScreenQuestionnaireStatisticsInfo statisticsInfo = comActQuestnaireDAO.getIndexQuestionnaireBaseData(communityId); //社区问卷新增折线数据 List questionnaireAddPolylineData = comActQuestnaireDAO.getQuestionnaireAddPolylineData(communityId); statisticsInfo.setQuestionnaireAddPolylineData(questionnaireAddPolylineData); //社区问卷累计折线数据 List questionnaireTotalPolylineData = new ArrayList<>(); questionnaireAddPolylineData.forEach(e -> { StatisticsCommVO temp = comActQuestnaireDAO.getQuestionnaireTotalPolylineDate(communityId, e.getFiled()); temp.setFiled(e.getFiled()); questionnaireTotalPolylineData.add(temp); }); statisticsInfo.setQuestionnaireTotalPolylineData(questionnaireTotalPolylineData); return R.ok(statisticsInfo); } /** * 首页二级页面-社区动态 * @param communityId * @return */ @Override public R indexDyn(Long communityId) { BigScreenDynStatisticsInfo statisticsInfo = new BigScreenDynStatisticsInfo(); List dynCircleData = comActDynDAO.getIndexDynBaseData(communityId); statisticsInfo.setDynCircleData(dynCircleData); if (!dynCircleData.isEmpty()) { statisticsInfo.setDynNum(dynCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum()); } //社区动态新增折线数据 List dynAddPolylineData = comActDynDAO.getDynAddPolylineData(communityId); statisticsInfo.setDynAddPolylineData(dynAddPolylineData); //社区动态累计折线数据 List dynTotalPolylineData = new ArrayList<>(); dynAddPolylineData.forEach(e -> { StatisticsCommVO temp = comActDynDAO.getDynTotalPolylineDate(communityId, e.getFiled()); temp.setFiled(e.getFiled()); dynTotalPolylineData.add(temp); }); statisticsInfo.setDynTotalPolylineData(dynTotalPolylineData); return R.ok(statisticsInfo); } /** * 首页二级页面-社区动态展示列表 * @param pageBaseDTO * @return */ @Override public R indexDynList(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActDynDAO.indexDynList(page, pageBaseDTO)); } /** * 首页二级页面-邻里圈 * @param communityId * @return */ @Override public R indexNeighbor(Long communityId) { BigScreenNeighborStatisticsInfo statisticsInfo = new BigScreenNeighborStatisticsInfo(); List neighborCircleData = comActNeighborCircleDAO.getIndexNeighborBaseData(communityId); statisticsInfo.setNeighborCircleData(neighborCircleData); if (!neighborCircleData.isEmpty()) { statisticsInfo.setPublishContentNum(neighborCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum()); statisticsInfo.setPublishTopicNum(neighborCircleData.stream().filter(e -> !"无话题".equals(e.getFiled())).collect(Collectors.toList()).size()); } //邻里圈新增折线数据 List neighborAddPolylineData = comActNeighborCircleDAO.getNeighborAddPolylineData(communityId); statisticsInfo.setNeighborAddPolylineData(neighborAddPolylineData); //邻里圈累计折线数据 List neighborTotalPolylineData = new ArrayList<>(); neighborAddPolylineData.forEach(e -> { StatisticsCommVO temp = comActNeighborCircleDAO.getNeighborTotalPolylineDate(communityId, e.getFiled()); temp.setFiled(e.getFiled()); neighborTotalPolylineData.add(temp); }); statisticsInfo.setNeighborTotalPolylineData(neighborTotalPolylineData); return R.ok(statisticsInfo); } /** * 首页二级页面-邻里圈展示列表 * @param pageBaseDTO * @return */ @Override public R indexNeighborList(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActNeighborCircleDAO.indexNeighborList(page, pageBaseDTO)); } /** * 首页二级页面-便民商家 * @param communityId * @return */ @Override public R indexMerchant(Long communityId) { BigScreenMerchantStatisticsInfo statisticsInfo = convenientMerchantDAO.getIndexMerchantBaseData(communityId); //资源类型饼图数据(暂无) // List resourceTypeCircleData; //服务类型饼图数据 List serviceTypeCircleData = convenientMerchantDAO.selectServiceTypeCircleData(communityId); statisticsInfo.setServiceTypeCircleData(serviceTypeCircleData); if (!serviceTypeCircleData.isEmpty()) { //服务类型数 statisticsInfo.setServiceTypeNum(serviceTypeCircleData.size()); } //服务次数(目前暂时使用浏览量)新增折线数据 List serviceTimesAddPolylineData = convenientMerchantDAO.getServiceTimesAddPolylineData(communityId); statisticsInfo.setServiceTimesAddPolylineData(serviceTimesAddPolylineData); //服务次数(目前暂时使用浏览量)累计折线数据 List serviceTimesTotalPolylineData = new ArrayList<>(); serviceTimesAddPolylineData.forEach(e -> { StatisticsCommVO temp = convenientMerchantDAO.getServiceTimesTotalPolylineDate(communityId, e.getFiled()); temp.setFiled(e.getFiled()); serviceTimesTotalPolylineData.add(temp); }); statisticsInfo.setServiceTimesTotalPolylineData(serviceTimesTotalPolylineData); return R.ok(statisticsInfo); } /** * 首页二级页面-商家展示列表 * @param pageBaseDTO * @return */ @Override public R indexMerchantList(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(convenientMerchantDAO.indexMerchantList(page, pageBaseDTO)); } /** * 首页二级页面-微心愿展示列表 * @param pageBaseDTO * @return */ @Override public R indexMicroWishList(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActMicroWishDAO.selectScreenDisplayList(page, pageBaseDTO)); } /** * 首页二级页面-社区问卷展示列表 * @param pageBaseDTO * @return */ @Override public R indexQuestionnaireList(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActQuestnaireDAO.selectQuestionnaireDisplayList(page, pageBaseDTO)); } /** * 首页二级页面-居民活动 * @param communityId * @return */ @Override public R indexResidentAct(Long communityId) { BigScreenResidentActStatisticsInfo statisticsInfo = new BigScreenResidentActStatisticsInfo(); List actCircleData = comActActivityDAO.getIndexResidentActBaseData(communityId, true); statisticsInfo.setActCircleData(actCircleData); if (!actCircleData.isEmpty()) { statisticsInfo.setJoinNum(actCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum()); } List 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 actAddPolylineData = comActActivityDAO.getActAddPolylineData(communityId, true); statisticsInfo.setActAddPolylineData(actAddPolylineData); //居民活动累计折线数据 List 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 = getBigScreenVolunteerActStatisticsInfo(communityId); return R.ok(statisticsInfo); } private BigScreenVolunteerActStatisticsInfo getBigScreenVolunteerActStatisticsInfo(Long communityId) { BigScreenVolunteerActStatisticsInfo statisticsInfo = new BigScreenVolunteerActStatisticsInfo(); List actCircleData = comActActivityDAO.getIndexResidentActBaseData(communityId, false); statisticsInfo.setActCircleData(actCircleData); if (!actCircleData.isEmpty()) { statisticsInfo.setJoinNum(actCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum()); } List 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 actAddPolylineData = comActActivityDAO.getActAddPolylineData(communityId, false); statisticsInfo.setActAddPolylineData(actAddPolylineData); //志愿者活动累计折线数据 List 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 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 gridIncidentList = comMngPopulationDAO.getGridsGovernanceEventList(communityId); List 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 iPage = comMngPopulationDAO.pageEventList(page, pageBaseDTO); List 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(commonPage.getCommunityId()); List typeInfo=comActSocialProjectDao.selectType(null,commonPage.getCommunityId()); if(bigScreenHmkProjectInfo.getCount()>0){ typeInfo.forEach(bigScreenHmkProjectTypeInfo -> { bigScreenHmkProjectTypeInfo.setPercent(bigScreenHmkProjectTypeInfo.getCount()/bigScreenHmkProjectInfo.getCount()); }); } bigScreenHmkProjectInfo.setTypeInfoList(typeInfo); //活动数据 Integer countAll=comActSocialProjectDao.selectActivity(0,commonPage.getCommunityId()); BigScreenHmkProjectTypeInfo jm=new BigScreenHmkProjectTypeInfo(); jm.setName("居民活动"); 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,commonPage.getCommunityId())); if(countAll>0){ zyz.setPercent(zyz.getCount()/countAll); } List activityList=new ArrayList<>(); activityList.add(jm); activityList.add(zyz); bigScreenHmkProjectInfo.setActivityTypeInfoList(activityList); //社会组织数据 BigScreenHmkSocialOrgInfo bigScreenHmkSocialOrgInfo=comActSocialOrgDao.selectInfo(commonPage.getCommunityId()); List typeInfoList= comActSocialOrgDao.selectType(commonPage.getCommunityId()); if(bigScreenHmkSocialOrgInfo.getCount()>0){ typeInfoList.forEach(bigScreenHmkProjectTypeInfo -> { bigScreenHmkProjectTypeInfo.setPercent(bigScreenHmkProjectTypeInfo.getCount()/bigScreenHmkSocialOrgInfo.getCount()); }); } bigScreenHmkSocialOrgInfo.setTypeInfoList(typeInfoList); bigScreenHmkBaseInfo.setBigScreenHmkSocialOrgInfo(bigScreenHmkSocialOrgInfo); //社工数据 BigScreenHmkSocialWorkerInfo bigScreenHmkSocialWorkerInfo=new BigScreenHmkSocialWorkerInfo(); List socialWorkerList=new ArrayList<>(); Integer socialAll=comActSocialWorkerDao.selectType(0,commonPage.getCommunityId()); BigScreenHmkProjectTypeInfo ss=new BigScreenHmkProjectTypeInfo(); ss.setName("30岁以下"); 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,commonPage.getCommunityId())); if(socialAll>0){ wj.setPercent(wj.getCount()/socialAll); } BigScreenHmkProjectTypeInfo ls=new BigScreenHmkProjectTypeInfo(); ls.setName("60岁以上"); ls.setCount(comActSocialWorkerDao.selectType(3,commonPage.getCommunityId())); if(socialAll>0){ ls.setPercent(ls.getCount()/socialAll); } socialWorkerList.add(ss); socialWorkerList.add(wj); socialWorkerList.add(ls); bigScreenHmkSocialWorkerInfo.setSocialWorkerAge(socialWorkerList); List socialWorkerSkill=comActSocialWorkerDao.selectSkillType(commonPage.getCommunityId()); if(socialAll>0){ socialWorkerSkill.forEach(bigScreenHmkProjectTypeInfo -> { bigScreenHmkProjectTypeInfo.setPercent(bigScreenHmkProjectTypeInfo.getCount()/socialAll); }); } bigScreenHmkSocialWorkerInfo.setSocialWorkerSkill(socialWorkerSkill); bigScreenHmkBaseInfo.setBigScreenHmkSocialWorkerInfo(bigScreenHmkSocialWorkerInfo); bigScreenHmkBaseInfo.setBigScreenHmkProjectInfo(bigScreenHmkProjectInfo); return R.ok(bigScreenHmkBaseInfo); } @Override public R partyProjectActivityLine() { List 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)); } /** * 金沙定制页面-党建引领基础数据 * @param communityId * @return */ @Override public R getPartyBuildIngBaseData(Long communityId) { //基础统计数据查询 BigScreenPartyBuildIngStatisticsInfo statisticsInfo = comActDynDAO.getPartyBuildIngBaseData(communityId); statisticsInfo.setAqxTotal(statisticsInfo.getJmxcTotal() + statisticsInfo.getShjdTotal() + statisticsInfo.getXqxcTotal()); statisticsInfo.setZyxHelpTotal(statisticsInfo.getZyxServiceTotal()); statisticsInfo.setZyfwTotal(statisticsInfo.getZyxServiceTotal()); //随手拍治安防控记录列表 List zafkList = comActEasyPhotoDAO.getPartyBuildIngRecord(communityId, pageSize); statisticsInfo.setZafkList(zafkList); //居民宣传记录列表 List JMXCList = comActDynDAO.getPartyBuildIngDynRecord(communityId, pageSize); statisticsInfo.setJmxcList(JMXCList); //商户监督记录列表 //辖区巡查记录列表 List XQXCList = comActDynDAO.getPartyBuildIngPatrolRecord(communityId, pageSize); StringBuilder sb = new StringBuilder(); XQXCList.forEach(e -> { String personName = e.getPersonName(); if (StringUtils.isNotBlank(personName)) { String[] split = personName.split(","); for (int i = 0;i < split.length;i++) { sb.append(split[i].substring(0, 1).concat(split[i].substring(1).replaceAll("\\S", "*"))); if (i != split.length - 1) { sb.append(","); } } e.setPersonName(sb.toString()); sb.delete(0, sb.length()); } }); statisticsInfo.setXqxcList(XQXCList); return R.ok(statisticsInfo); } /** * 党员活动展示列表 * @param pageBaseDTO * @return */ @Override public R pagePartyBuildIngAct(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActDynDAO.pagePartyBuildIngAct(page, pageBaseDTO)); } /** * 议事投票展示列表 * @param pageBaseDTO * @return */ @Override public R pagePartyBuildIngDiscuss(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActDynDAO.pagePartyBuildIngDiscuss(page, pageBaseDTO)); } /** * 金沙定制页面-四长四员 * @param communityId * @return */ @Override public R getFourMemberBaseData(Long communityId) { //基础统计数据查询 BigScreenFourMemberStatisticsInfo statisticsInfo = comActFourMemberDao.getFourMemberBaseData(communityId); //四长四员楼栋组织关系 List members = comActFourMemberDao.getFourMembers(communityId); List relations = new ArrayList<>(); if (!members.isEmpty()) { members.forEach(e -> e.setJurisdictionContent(e.getJurisdictionContent().replaceAll("\\[|\"|]", ""))); Map> collect = members.stream().collect(Collectors.groupingBy(ComActFourMemberVO::getJurisdictionContent)); for (Map.Entry> entry : collect.entrySet()) { FourMemberOrgRelationVO relationVO = new FourMemberOrgRelationVO(); relationVO.setRelation(entry.getKey()); relationVO.setMembers(entry.getValue()); relations.add(relationVO); } } statisticsInfo.setFourMemberOrgList(relations); //新增解决问题数 List jjwtAddPolylineData = comActFourMemberDao.retrieveJJWTAddPolylineData(communityId); statisticsInfo.setJjwtAddPolylineData(jjwtAddPolylineData); //累计解决问题数 List jjwtTotalPolylineData = new ArrayList<>(); jjwtAddPolylineData.forEach(e -> { StatisticsCommVO temp = comActFourMemberDao.retrieveJJWTTotalPolylineData(communityId, e.getFiled()); temp.setFiled(e.getFiled()); jjwtTotalPolylineData.add(temp); }); statisticsInfo.setJjwtTotalPolylineData(jjwtTotalPolylineData); //新增院落议事数 List ylysAddPolylineData = comActFourMemberDao.retrieveYLYSAddPolylineData(communityId); statisticsInfo.setYlysAddPolylineData(ylysAddPolylineData); //累计院落议事数 List ylysTotalPolylineData = new ArrayList<>(); ylysAddPolylineData.forEach(e -> { StatisticsCommVO temp = comActFourMemberDao.retrieveYLYSTotalPolylineData(communityId, e.getFiled()); temp.setFiled(e.getFiled()); ylysTotalPolylineData.add(temp); }); statisticsInfo.setYlysTotalPolylineData(ylysTotalPolylineData); return R.ok(statisticsInfo); } /** * 杨家坪定制页面-五微服务 * @param communityId * @return */ @Override public R getFmsBaseData(Long communityId) { BigScreenFmsStatisticsInfo statisticsInfo = comFmsServiceDAO.getFmsBaseData(communityId); //团队类型占比圆形图 List preTeamTypeCircleData = comFmsServiceDAO.retrieveTeamTypeCircleData(communityId); List teamTypeCircleData = new ArrayList<>(); if (!preTeamTypeCircleData.isEmpty()) { Integer teamCount = preTeamTypeCircleData.size(); Map> collect = preTeamTypeCircleData.stream().collect(Collectors.groupingBy(ComFmsTeamVO::getTeamTypeName)); for (Map.Entry> entry : collect.entrySet()) { StatisticsCommVO temp = new StatisticsCommVO(); int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); temp.setPercent(new BigDecimal(size) .divide(new BigDecimal(teamCount), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); teamTypeCircleData.add(temp); } } statisticsInfo.setTeamTypeCircleData(teamTypeCircleData); //微服务新增折线数据 List serviceAddPolylineData = comFmsServiceDAO.retrieveServiceAddPolylineData(communityId); statisticsInfo.setServiceAddPolylineData(serviceAddPolylineData); //微服务累计折线数据 List serviceTotalPolylineData = new ArrayList<>(); serviceAddPolylineData.forEach(e -> { StatisticsCommVO temp = comFmsServiceDAO.retrieveServiceTotalPolylineData(communityId, e.getFiled()); temp.setFiled(e.getFiled()); serviceTotalPolylineData.add(temp); }); statisticsInfo.setServiceTotalPolylineData(serviceTotalPolylineData); //微调节矛盾类型占比圆形图 List preAdjustCircleData = comFmsServiceDAO.retrieveAdjustCircleData(communityId); List adjustCircleData = new ArrayList<>(); if (!preAdjustCircleData.isEmpty()) { Integer adjustCount = preAdjustCircleData.size(); Map> collect = preAdjustCircleData.stream().collect(Collectors.groupingBy(EventVO::getEventClazz)); for (Map.Entry> entry : collect.entrySet()) { StatisticsCommVO temp = new StatisticsCommVO(); int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); temp.setPercent(new BigDecimal(size) .divide(new BigDecimal(adjustCount), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); adjustCircleData.add(temp); } } statisticsInfo.setAdjustCircleData(adjustCircleData); //新增解决矛盾折线数据 List adjustAddPolylineData = comFmsServiceDAO.retrieveAdjustAddPolylineData(communityId); statisticsInfo.setAdjustAddPolylineData(adjustAddPolylineData); //累计解决矛盾折线数据 List adjustTotalPolylineData = new ArrayList<>(); adjustAddPolylineData.forEach(e -> { StatisticsCommVO temp = comFmsServiceDAO.retrieveAdjustTotalPolylineData(communityId, e.getFiled()); temp.setFiled(e.getFiled()); adjustTotalPolylineData.add(temp); }); statisticsInfo.setAdjustTotalPolylineData(adjustTotalPolylineData); //微防控防控类型占比圆形图 List preControlCircleData = comFmsServiceDAO.retrieveControlCircleData(communityId); List controlCircleData = new ArrayList<>(); if (!preControlCircleData.isEmpty()) { Integer controlCount = preControlCircleData.size(); Map> collect = preControlCircleData.stream().collect(Collectors.groupingBy(EventVO::getEventClazz)); for (Map.Entry> entry : collect.entrySet()) { StatisticsCommVO temp = new StatisticsCommVO(); int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); temp.setPercent(new BigDecimal(size) .divide(new BigDecimal(controlCount), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); controlCircleData.add(temp); } } statisticsInfo.setControlCircleData(controlCircleData); return R.ok(statisticsInfo); } /** * 杨家坪定制页面-微团队展示列表 * @param pageBaseDTO * @return */ @Override public R pageFmsTeam(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comFmsServiceDAO.pageFmsTeam(page, pageBaseDTO)); } /** * 杨家坪定制页面-居家养老基础数据 * @param communityId * @return */ @Override public R getAlarmBaseData(Long communityId) { BigScreenAlarmStatisticsInfo statisticsInfo = comPropertyDao.getAlarmBaseData(communityId); //异常报警新增折线数据 List abnormalAddPolylineData = comPropertyDao.retrieveAbnormalAddPolylineData(communityId); statisticsInfo.setAbnormalAddPolylineData(abnormalAddPolylineData); //异常报警累计折线数据 List abnormalTotalPolylineData = new ArrayList<>(); abnormalAddPolylineData.forEach(e -> { StatisticsCommVO temp = comPropertyDao.retrieveAbnormalTotalPolylineData(communityId, e.getFiled()); temp.setFiled(e.getFiled()); abnormalTotalPolylineData.add(temp); }); statisticsInfo.setAbnormalTotalPolylineData(abnormalTotalPolylineData); //一键求助服务新增折线数据 List serviceAddPolylineData = comPropertyDao.retrieveServiceAddPolylineData(communityId); statisticsInfo.setServiceAddPolylineData(serviceAddPolylineData); //一键求助服务累计折线数据 List serviceTotalPolylineData = new ArrayList<>(); serviceAddPolylineData.forEach(e -> { StatisticsCommVO temp = comPropertyDao.retrieveServiceTotalPolylineData(communityId, e.getFiled()); temp.setFiled(e.getFiled()); serviceTotalPolylineData.add(temp); }); statisticsInfo.setServiceTotalPolylineData(serviceTotalPolylineData); return R.ok(statisticsInfo); } /** * 杨家坪定制页面-报警记录展示列表 * @param pageBaseDTO * @return */ @Override public R pageAlarmRecord(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); Integer param3 = pageBaseDTO.getParam3(); Long communityId = pageBaseDTO.getCommunityId(); IPage abnormalList = null; switch (param3) { case 1: //待处理异常展示列表 abnormalList = comPropertyDao.getAbnormalList(page,2, 0, communityId); break; case 2: //已处理异常展示列表 abnormalList = comPropertyDao.getAbnormalList(page,2, 1, communityId); break; case 3: //待服务展示列表 abnormalList = comPropertyDao.getAbnormalList(page,1, 0, communityId); break; case 4: //已服务展示列表 abnormalList = comPropertyDao.getAbnormalList(page,1, 1, communityId); break; default: break; } return R.ok(abnormalList); } /** * 杨家坪定制页面-报警设备点位图 * @param communityId * @return */ @Override public R getAlarmPointMap(Long communityId) { List list = comPropertyDao.getAlarmPointMapData(communityId); List pointMapDataList = new ArrayList<>(); if (!list.isEmpty()) { Map> collect = list.stream().collect(Collectors.groupingBy(e -> "[" + e.getLatitude() + "," + e.getLongitude() + "]")); for (Map.Entry> entry : collect.entrySet()) { EquipmentPointMapDataVO pointMapDataVO = new EquipmentPointMapDataVO(); List value = entry.getValue(); pointMapDataVO.setPosition(entry.getKey()); List sortedList = value.stream() .sorted(Comparator.comparing(ComPropertyEquipmentVO::getEquipmentStatus)).collect(Collectors.toList()); pointMapDataVO.setEquipments(sortedList); pointMapDataVO.setEquipmentNum(value.size()); boolean isRed = value.stream().anyMatch(e -> e.getEquipmentStatus().equals(1)); boolean isYellow = value.stream().anyMatch(e -> e.getEquipmentStatus().equals(2)); pointMapDataVO.setPointColor(isRed ? 1 : (isYellow ? 2 : 3)); pointMapDataList.add(pointMapDataVO); } } return R.ok(pointMapDataList); } /** * 杨家坪定制页面-志愿服务 * @param communityId * @return */ @Override public R getVolunteerBaseData(Long communityId) { BigScreenVolunteerStatisticsInfo statisticsInfo = comMngVolunteerMngDAO.getVolunteerBaseData(communityId); BigScreenVolunteerActStatisticsInfo info = getBigScreenVolunteerActStatisticsInfo(communityId); BeanUtils.copyProperties(info, statisticsInfo); //志愿者统计-组织人数直方图 statisticsInfo.setVolunteerOrgHistogram(comMngVolunteerMngDAO.retrieveVolunteerOrgHistogram(communityId)); //志愿者服务类型占比圆形图 List preVolunteerServiceTypeCircleData = comMngVolunteerMngDAO.retrieveVolunteerServiceTypeCircleData(communityId); List volunteerServiceTypeCircleData = new ArrayList<>(); if (!preVolunteerServiceTypeCircleData.isEmpty()) { Integer count = preVolunteerServiceTypeCircleData.size(); Map> collect = preVolunteerServiceTypeCircleData.stream().collect(Collectors.groupingBy(ComMngVolunteerMngVO::getServiceTypeName)); for (Map.Entry> entry : collect.entrySet()) { StatisticsCommVO temp = new StatisticsCommVO(); int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); temp.setPercent(new BigDecimal(size) .divide(new BigDecimal(count), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); volunteerServiceTypeCircleData.add(temp); } } statisticsInfo.setVolunteerServiceTypeCircleData(volunteerServiceTypeCircleData); //志愿者年龄段占比圆形图 List volunteerAgeCircleData = comMngVolunteerMngDAO.retrieveVolunteerAgeCircleData(communityId); int sum = volunteerAgeCircleData.stream().mapToInt(StatisticsCommVO::getNum).sum(); volunteerAgeCircleData.forEach(e -> { if (sum != 0) { e.setPercent(new BigDecimal(e.getNum()) .divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); } else { e.setPercent(new BigDecimal(0)); } }); statisticsInfo.setVolunteerAgeCircleData(volunteerAgeCircleData); //志愿者技能占比圆形图 List preVolunteerSkillCircleData = comMngVolunteerMngDAO.retrieveVolunteerSkillCircleData(communityId); List volunteerSkillCircleData = new ArrayList<>(); if (!preVolunteerSkillCircleData.isEmpty()) { Integer count = preVolunteerSkillCircleData.size(); Map> collect = preVolunteerSkillCircleData.stream().collect(Collectors.groupingBy(ComMngVolunteerMngVO::getSkillName)); for (Map.Entry> entry : collect.entrySet()) { StatisticsCommVO temp = new StatisticsCommVO(); int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); temp.setPercent(new BigDecimal(size) .divide(new BigDecimal(count), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); volunteerSkillCircleData.add(temp); } } statisticsInfo.setVolunteerSkillCircleData(volunteerSkillCircleData); //志愿者组织数据 List volunteerOrgRelationList = new ArrayList<>(); List volunteerData = comMngVolunteerMngDAO.selectVolunteerByCommunityId(communityId); if(volunteerData!=null && volunteerData.size()>0) { for (ComMngVolunteerMngVO ent:volunteerData) { if(!StringUtils.isEmpty(ent.getIdCard())) { try { Integer age = IdcardUtil.getAgeByIdCard(ent.getIdCard()); ent.setAge(age); } catch (Exception e) { log.error("身份证号码转换年龄失败,人员id:" + ent.getId()); } } } } if (!volunteerData.isEmpty()) { Map> collect = volunteerData.stream().collect(Collectors.groupingBy(ComMngVolunteerMngVO::getOrgName)); for (Map.Entry> entry : collect.entrySet()) { VolunteerOrgRelationVO relationVO = new VolunteerOrgRelationVO(); relationVO.setOrg(entry.getKey()); relationVO.setOrgPersonNum(entry.getValue().size()); relationVO.setVolunteers(entry.getValue()); volunteerOrgRelationList.add(relationVO); } } statisticsInfo.setVolunteerOrgRelationList(volunteerOrgRelationList); return R.ok(statisticsInfo); } /** * 金沙定制页面-志愿线展示列表 * @param pageBaseDTO * @return */ @Override public R pagePartyBuildIngMicroWish(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActMicroWishDAO.pagePartyBuildIngMicroWish(page, pageBaseDTO)); } /** * 金沙定制页面-四长四员解决问题展示列表 * @param pageBaseDTO * @return */ @Override public R pageFourMemberResolve(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActMicroWishDAO.pageFourMemberResolve(page, pageBaseDTO)); } /** * 金沙定制页面-四长四员院落议事展示列表 * @param pageBaseDTO * @return */ @Override public R pageCourtyardDiscuss(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActDiscussDAO.pageCourtyardDiscuss(page, pageBaseDTO)); } /** * 金沙定制页面-院落议事 * @param communityId * @return */ @Override public R getCourtyardBaseData(Long communityId) { BigScreenCourtyardStatisticsInfo statisticsInfo = comActDiscussDAO.getCourtyardBaseData(communityId); //新增院落议事数 List discussAddPolylineData = comActFourMemberDao.retrieveYLYSAddPolylineData(communityId); statisticsInfo.setDiscussAddPolylineData(discussAddPolylineData); //累计院落议事数 List discussTotalPolylineData = new ArrayList<>(); discussAddPolylineData.forEach(e -> { StatisticsCommVO temp = comActFourMemberDao.retrieveYLYSTotalPolylineData(communityId, e.getFiled()); temp.setFiled(e.getFiled()); discussTotalPolylineData.add(temp); }); statisticsInfo.setDiscussTotalPolylineData(discussTotalPolylineData); return R.ok(statisticsInfo); } /** * 孵化中心-基础数据 * @param communityId * @return */ @Override public R getHatchBaseData(Long communityId) { ComActDO comActDO = comActDAO.selectById(communityId); BigScreenHatchStatisticsInfo statisticsInfo = comActSocialOrgHatchDAO.getHatchBaseData(communityId, comActDO.getStreetId()); //孵化进程占比圆形图数据 List hatchScheduleCircleData = comActSocialOrgHatchDAO.getHatchScheduleCircleData(comActDO.getStreetId()); statisticsInfo.setHatchScheduleCircleData(hatchScheduleCircleData); //孵化状态占比柱形数据 List hatchStatusColumnData = comActSocialOrgHatchDAO.getHatchStatusColumnData(comActDO.getStreetId()); statisticsInfo.setHatchStatusColumnData(hatchStatusColumnData); //街道组织占比柱形数据 List streetOrgColumnData = comActSocialOrgHatchDAO.getStreetOrgColumnData(comActDO.getStreetId()); if (nonNull(streetOrgColumnData) && !streetOrgColumnData.isEmpty()) { streetOrgColumnData.forEach(e -> e.setStatisticsCommVOS(comActSocialOrgHatchDAO.getStreetOrgChildData(e.getFiled()))); } statisticsInfo.setStreetOrgColumnData(streetOrgColumnData); return R.ok(statisticsInfo); } /** * 孵化中心-孵化成果展示列表 * @param pageBaseDTO * @return */ @Override public R pageHatchResult(PageBaseDTO pageBaseDTO) { ComActDO comActDO = comActDAO.selectById(pageBaseDTO.getCommunityId()); Page page = retrievePage(pageBaseDTO); return R.ok(comActSocialOrgDao.pageHatchResult(page, pageBaseDTO, comActDO.getStreetId())); } /** * 孵化中心-孵化进度展示列表 * @param pageBaseDTO * @return */ @Override public R pageHatchSchedule(PageBaseDTO pageBaseDTO) { ComActDO comActDO = comActDAO.selectById(pageBaseDTO.getCommunityId()); Page page = retrievePage(pageBaseDTO); return R.ok(comActSocialOrgDao.pageHatchSchedule(page, pageBaseDTO, comActDO.getStreetId())); } /** * 五社联动基础数据 * @param communityId * @return */ @Override public R getFiveAssociationsBaseData(Long communityId) { ComActDO comActDO = comActDAO.selectById(communityId); BigScreenFiveAssociationsStatisticsInfo statisticsInfo = comActSocialProjectDao.getFiveAssociationsBaseData(communityId, comActDO.getStreetId()); //社区企业服务分类占比圆形图数据 Integer enterpriseNum = statisticsInfo.getEnterpriseNum(); List enterpriseServiceTypeCircleData = comActEnterpriseDAO.getEnterpriseServiceTypeCircleData(communityId); if (nonNull(enterpriseServiceTypeCircleData) && !enterpriseServiceTypeCircleData.isEmpty() && enterpriseNum > 0) { enterpriseServiceTypeCircleData.forEach(e -> { e.setPercent(new BigDecimal(e.getNum()) .divide(new BigDecimal(enterpriseNum), 2, BigDecimal.ROUND_HALF_UP) .multiply(new BigDecimal(100)).setScale(0)); }); } statisticsInfo.setEnterpriseServiceTypeCircleData(enterpriseServiceTypeCircleData); //社区工作者年龄段占比圆形图数据 List socialWorkerAgeStageCircleData = comActEnterpriseDAO.getSocialWorkerAgeStageCircleData(communityId); Integer socialWorkerNum = statisticsInfo.getSocialWorkerNum(); if (nonNull(socialWorkerAgeStageCircleData) && !socialWorkerAgeStageCircleData.isEmpty() && socialWorkerNum > 0) { socialWorkerAgeStageCircleData.forEach(e -> { e.setPercent(new BigDecimal(e.getNum()) .divide(new BigDecimal(socialWorkerNum), 2, BigDecimal.ROUND_HALF_UP) .multiply(new BigDecimal(100)).setScale(0)); }); } statisticsInfo.setSocialWorkerAgeStageCircleData(socialWorkerAgeStageCircleData); //社区工作者服务分类占比圆形图数据 List socialWorkerServiceTypeCircleData = comActEnterpriseDAO.getSocialWorkerServiceTypeCircleData(communityId); if (nonNull(socialWorkerServiceTypeCircleData) && !socialWorkerServiceTypeCircleData.isEmpty() && socialWorkerNum > 0) { socialWorkerServiceTypeCircleData.forEach(e -> { e.setPercent(new BigDecimal(e.getNum()) .divide(new BigDecimal(socialWorkerNum), 2, BigDecimal.ROUND_HALF_UP) .multiply(new BigDecimal(100)).setScale(0)); }); } statisticsInfo.setSocialWorkerServiceTypeCircleData(socialWorkerServiceTypeCircleData); return R.ok(statisticsInfo); } /** * 五社联动项目展示列表 * @param pageBaseDTO * @return */ @Override public R pageSocialProjectList(PageBaseDTO pageBaseDTO) { ComActDO comActDO = comActDAO.selectById(pageBaseDTO.getCommunityId()); Page page = retrievePage(pageBaseDTO); return R.ok(comActSocialProjectDao.pageSocialProjectList(page, pageBaseDTO, comActDO.getStreetId())); } /** * 五社联动社会组织展示列表 * @param pageBaseDTO * @return */ @Override public R pageSocialOrgList(PageBaseDTO pageBaseDTO) { ComActDO comActDO = comActDAO.selectById(pageBaseDTO.getCommunityId()); Page page = retrievePage(pageBaseDTO); return R.ok(comActSocialOrgDao.pageSocialOrgList(page, pageBaseDTO, comActDO.getStreetId())); } /** * 人大代表 * @param communityId * @return */ @Override public R dpcBase(Long communityId) { BigScreenDpcStatisticsInfo statisticsInfo = comActEasyPhotoDAO.selectDpcBaseData(communityId); //随手拍新增折线数据 List easyPhotoAddPolylineData = comActEasyPhotoDAO.getEasyPhotoAddPolylineDataForDpc(communityId); statisticsInfo.setEasyPhotoAddPolylineData(easyPhotoAddPolylineData); //随手拍累计折线数据 List easyPhotoTotalPolylineData = new ArrayList<>(); easyPhotoAddPolylineData.forEach(e -> { StatisticsCommVO temp = comActEasyPhotoDAO.getEasyPhotoTotalPolylineDateForDpc(communityId, e.getFiled()); temp.setFiled(e.getFiled()); easyPhotoTotalPolylineData.add(temp); }); statisticsInfo.setEasyPhotoTotalPolylineData(easyPhotoTotalPolylineData); return R.ok(statisticsInfo); } /** * 人大代表-随手拍展示列表 * @return */ @Override public R dpcEasyPhotoList(PageBaseDTO pageBaseDTO) { Page page = retrievePage(pageBaseDTO); return R.ok(comActEasyPhotoDAO.dpcEasyPhotoList(page, pageBaseDTO)); } private Page retrievePage(PageBaseDTO pageBaseDTO) { Long pageNum = pageBaseDTO.getPageNum(); Long size = pageBaseDTO.getPageSize(); Page page = new Page<>(); if (nonNull(pageNum) && nonNull(size)) { page.setCurrent(pageNum); page.setSize(size); } else { page.setCurrent(1); page.setSize(pageSize); } return page; } public List getPastMonth(){ List 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; } }