From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 09 六月 2025 11:54:00 +0800 Subject: [PATCH] 6.9新增登录失败冻结逻辑 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java | 327 +++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 249 insertions(+), 78 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java index c2a1199..03d420c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java @@ -1,90 +1,38 @@ package com.panzhihua.service_community.service.impl; -import static java.util.Objects.isNull; -import static java.util.Objects.nonNull; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; - -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.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 org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - +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.ComActDynVO; -import com.panzhihua.common.model.vos.community.ComActFourMemberVO; -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.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.BigScreenFmsStatisticsInfo; -import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFourMemberStatisticsInfo; -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.BigScreenHmkSocialOrgInfo; -import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkSocialWorkerInfo; -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.BigScreenPartyBuildIngStatisticsInfo; -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.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.*; +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.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.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.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.ComPropertyDao; -import com.panzhihua.service_community.dao.ConvenientMerchantDAO; +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 @@ -149,6 +97,12 @@ private ComFmsServiceDAO comFmsServiceDAO; @Resource private ComMngVolunteerMngDAO comMngVolunteerMngDAO; + @Resource + private ComActSocialOrgHatchDAO comActSocialOrgHatchDAO; + @Resource + private ComActDAO comActDAO; + @Resource + private ComActEnterpriseDAO comActEnterpriseDAO; /** * 大数据分析平台-居民自治 @@ -218,7 +172,7 @@ statisticsVO.setWarehouseImages(warehouseImages); //居民活动柱状统计 - List<StatisticsCommVO> residentActHistogram = comActActivityDAO.selectResidentActHistogramData(communityId, true); + List<StatisticsCommVO> residentActHistogram = comActActivityDAO.selectResidentActHistogramData(communityId, false); //居民活动新增数据 List<StatisticsCommVO> actAddPolylineData = comActActivityDAO.getActAddPolylineData(communityId, true); //居民活动发布总数 @@ -882,6 +836,17 @@ jjwtTotalPolylineData.add(temp); }); statisticsInfo.setJjwtTotalPolylineData(jjwtTotalPolylineData); + //新增院落议事数 + List<StatisticsCommVO> ylysAddPolylineData = comActFourMemberDao.retrieveYLYSAddPolylineData(communityId); + statisticsInfo.setYlysAddPolylineData(ylysAddPolylineData); + //累计院落议事数 + List<StatisticsCommVO> 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); } @@ -904,7 +869,8 @@ int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); - temp.setPercent(new BigDecimal(size/teamCount).setScale(2)); + temp.setPercent(new BigDecimal(size) + .divide(new BigDecimal(teamCount), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); teamTypeCircleData.add(temp); } } @@ -931,7 +897,8 @@ int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); - temp.setPercent(new BigDecimal(size/adjustCount).setScale(2)); + temp.setPercent(new BigDecimal(size) + .divide(new BigDecimal(adjustCount), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); adjustCircleData.add(temp); } } @@ -958,7 +925,8 @@ int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); - temp.setPercent(new BigDecimal(size/controlCount).setScale(2)); + temp.setPercent(new BigDecimal(size) + .divide(new BigDecimal(controlCount), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); controlCircleData.add(temp); } } @@ -1095,7 +1063,8 @@ int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); - temp.setPercent(new BigDecimal(size/count).setScale(2)); + temp.setPercent(new BigDecimal(size) + .divide(new BigDecimal(count), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); volunteerServiceTypeCircleData.add(temp); } } @@ -1105,7 +1074,8 @@ int sum = volunteerAgeCircleData.stream().mapToInt(StatisticsCommVO::getNum).sum(); volunteerAgeCircleData.forEach(e -> { if (sum != 0) { - e.setPercent(new BigDecimal(e.getNum()/sum).setScale(2)); + 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)); } @@ -1122,7 +1092,8 @@ int size = entry.getValue().size(); temp.setFiled(entry.getKey()); temp.setNum(size); - temp.setPercent(new BigDecimal(size/count).setScale(2)); + temp.setPercent(new BigDecimal(size) + .divide(new BigDecimal(count), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0)); volunteerSkillCircleData.add(temp); } } @@ -1130,6 +1101,25 @@ //志愿者组织数据 List<VolunteerOrgRelationVO> volunteerOrgRelationList = new ArrayList<>(); List<ComMngVolunteerMngVO> 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<String, List<ComMngVolunteerMngVO>> collect = volunteerData.stream().collect(Collectors.groupingBy(ComMngVolunteerMngVO::getOrgName)); for (Map.Entry<String, List<ComMngVolunteerMngVO>> entry : collect.entrySet()) { @@ -1166,6 +1156,187 @@ 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<StatisticsCommVO> discussAddPolylineData = comActFourMemberDao.retrieveYLYSAddPolylineData(communityId); + statisticsInfo.setDiscussAddPolylineData(discussAddPolylineData); + //累计院落议事数 + List<StatisticsCommVO> 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<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(); -- Gitblit v1.7.1