|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenAlarmStatisticsInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenCourtyardStatisticsInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenVolunteerStatisticsInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.EquipmentPointMapDataVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.VolunteerOrgRelationVO; | 
|---|
|  |  |  | 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.service_community.dao.ComMngVolunteerMngDAO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenDpcStatisticsInfo; | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.springframework.beans.BeanUtils; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.panzhihua.common.model.dtos.property.CommonPage; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.R; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.ComActDynVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.ComActFourMemberVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.StatisticsCommVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenActivityLine; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenAlarmStatisticsInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenCommunityStatisticsVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenCourtyardStatisticsInfo; | 
|---|
|  |  |  | 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.BigScreenFiveAssociationsStatisticsInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFmsStatisticsInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFourMemberStatisticsInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHatchStatisticsInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkBaseInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectTypeInfo; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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.BigScreenVolunteerStatisticsInfo; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.EquipmentPointMapDataVO; | 
|---|
|  |  |  | import com.panzhihua.common.model.vos.community.bigscreen.FourMemberOrgRelationVO; | 
|---|
|  |  |  | 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.bigscreen.VolunteerOrgRelationVO; | 
|---|
|  |  |  | 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.ComActActivityDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActCommitteeDao; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActDAO; | 
|---|
|  |  |  | 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.ComActEnterpriseDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActFourMemberDao; | 
|---|
|  |  |  | 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.ComActSocialOrgDao; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActSocialOrgHatchDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActSocialProjectDao; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActSocialWorkerDao; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComActWarehouseDonatesDao; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComFmsServiceDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComMngPopulationDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComMngVolunteerMngDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ComPropertyDao; | 
|---|
|  |  |  | import com.panzhihua.service_community.dao.ConvenientMerchantDAO; | 
|---|
|  |  |  | import com.panzhihua.service_community.model.dos.ComActDO; | 
|---|
|  |  |  | import com.panzhihua.service_community.service.BigScreenStatisticsService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | 
|---|
|  |  |  | private ComFmsServiceDAO comFmsServiceDAO; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ComMngVolunteerMngDAO comMngVolunteerMngDAO; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ComActSocialOrgHatchDAO comActSocialOrgHatchDAO; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ComActDAO comActDAO; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ComActEnterpriseDAO comActEnterpriseDAO; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 大数据分析平台-居民自治 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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<StatisticsCommVO> hatchScheduleCircleData = comActSocialOrgHatchDAO.getHatchScheduleCircleData(comActDO.getStreetId()); | 
|---|
|  |  |  | statisticsInfo.setHatchScheduleCircleData(hatchScheduleCircleData); | 
|---|
|  |  |  | //孵化状态占比柱形数据 | 
|---|
|  |  |  | List<StatisticsCommVO> hatchStatusColumnData = comActSocialOrgHatchDAO.getHatchStatusColumnData(comActDO.getStreetId()); | 
|---|
|  |  |  | statisticsInfo.setHatchStatusColumnData(hatchStatusColumnData); | 
|---|
|  |  |  | //街道组织占比柱形数据 | 
|---|
|  |  |  | List<StatisticsCommVO> 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<StatisticsCommVO> 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<StatisticsCommVO> 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<StatisticsCommVO> 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<StatisticsCommVO> easyPhotoAddPolylineData = comActEasyPhotoDAO.getEasyPhotoAddPolylineDataForDpc(communityId); | 
|---|
|  |  |  | statisticsInfo.setEasyPhotoAddPolylineData(easyPhotoAddPolylineData); | 
|---|
|  |  |  | //随手拍累计折线数据 | 
|---|
|  |  |  | List<StatisticsCommVO> 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(); | 
|---|