| | |
| | | |
| | | 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; |
| | |
| | | private ComActDynDAO comActDynDAO; |
| | | |
| | | @Resource |
| | | private ComActActivityDAO comActActivityDAO; |
| | | |
| | | @Resource |
| | | private ComActCommitteeDao comActCommitteeDao; |
| | | |
| | | @Resource |
| | | private ComActSocialProjectDao comActSocialProjectDao; |
| | | |
| | | @Resource |
| | |
| | | |
| | | @Resource |
| | | private ComActSocialWorkerDao comActSocialWorkerDao; |
| | | |
| | | |
| | | /** |
| | | * 大数据分析平台-居民自治 |
| | |
| | | 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); |
| | |
| | | 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); |
| | | |
| | | //议事投票类型占比 |
| | |
| | | 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); |
| | | }); |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | }); |
| | | } |
| | | 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); |
| | | }); |
| | |
| | | //微心愿新增折线数据 |
| | | 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); |
| | | }); |
| | |
| | | //随手拍新增折线数据 |
| | | 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); |
| | | }); |
| | |
| | | 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); |
| | | }); |
| | |
| | | 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); |
| | | }); |
| | |
| | | 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); |
| | | }); |
| | |
| | | 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); |
| | | }); |
| | |
| | | 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()); |
| | |
| | | } |
| | | 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); |
| | | } |
| | |
| | | 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()); |
| | |
| | | //社工数据 |
| | | 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); |
| | | } |
| | |
| | | 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); |
| | |
| | | } |
| | | 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) { |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |