101captain
2022-02-22 c83cf9d2d82a0a29a15e38f4566eb470b9a3517b
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java
@@ -14,40 +14,22 @@
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.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.community.ComActDynVO;
import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
import com.panzhihua.common.model.vos.community.ComActQuestnaireVO;
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.GridsGovernanceStatisticsVO;
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.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.common.model.vos.neighbor.ComActNeighborCircleAdminVO;
import com.panzhihua.service_community.dao.ComActDynDAO;
import com.panzhihua.service_community.dao.ComActQuestnaireDAO;
import com.panzhihua.service_community.dao.ComMngPopulationDAO;
import com.panzhihua.service_community.dao.ConvenientMerchantDAO;
import org.springframework.stereotype.Service;
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.ResidentAutonomyStatisticsVO;
import com.panzhihua.service_community.dao.ComActDiscussDAO;
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.ComActWarehouseDonatesDao;
import com.panzhihua.service_community.dao.ComPropertyDao;
import com.panzhihua.service_community.service.BigScreenStatisticsService;
import lombok.extern.slf4j.Slf4j;
@@ -94,6 +76,18 @@
    @Resource
    private ComActDynDAO comActDynDAO;
    @Resource
    private ComActSocialProjectDao comActSocialProjectDao;
    @Resource
    private ComActSocialOrgDao comActSocialOrgDao;
    @Resource
    private ComActSocialWorkerDao comActSocialWorkerDao;
    @Resource
    private ComActActivityDAO comActActivityDAO;
    /**
     * 大数据分析平台-居民自治
@@ -349,9 +343,6 @@
            microWishTotalPolylineData.add(temp);
        });
        statisticsInfo.setMicroWishTotalPolylineData(microWishTotalPolylineData);
        //微心愿展示列表
        List<ComActMicroWishVO> microWishDisplayList = comActMicroWishDAO.selectScreenDisplayList(communityId, pageSize);
        statisticsInfo.setMicroWishDisplayList(microWishDisplayList);
        return R.ok(statisticsInfo);
    }
@@ -400,14 +391,12 @@
    /**
     * 首页二级页面-随手拍展示列表
     * @param communityId
     * @param classifyId
     * @return
     */
    @Override
    public R indexEasyPhotoList(Long communityId, Long classifyId) {
        List<ComActEasyPhotoVO> easyPhotoVOList = comActEasyPhotoDAO.indexEasyPhotoList(communityId, classifyId, pageSize);
        return R.ok(easyPhotoVOList);
    public R indexEasyPhotoList(PageBaseDTO pageBaseDTO) {
        Page page = retrievePage(pageBaseDTO);
        return R.ok(comActEasyPhotoDAO.indexEasyPhotoList(page, pageBaseDTO));
    }
    /**
@@ -450,9 +439,6 @@
            questionnaireTotalPolylineData.add(temp);
        });
        statisticsInfo.setQuestionnaireTotalPolylineData(questionnaireTotalPolylineData);
        //展示列表
        List<ComActQuestnaireVO> displayList = comActQuestnaireDAO.selectQuestionnaireDisplayList(communityId, pageSize);
        statisticsInfo.setQuestionnaireDisplayList(displayList);
        return R.ok(statisticsInfo);
    }
@@ -506,14 +492,13 @@
    /**
     * 首页二级页面-社区动态展示列表
     * @param communityId
     * @param type
     * @param pageBaseDTO
     * @return
     */
    @Override
    public R indexDynList(Long communityId, Long type) {
        List<ComActDynVO> dynList = comActDynDAO.indexDynList(communityId, type, pageSize);
        return R.ok(dynList);
    public R indexDynList(PageBaseDTO pageBaseDTO) {
        Page page = retrievePage(pageBaseDTO);
        return R.ok(comActDynDAO.indexDynList(page, pageBaseDTO));
    }
    /**
@@ -567,14 +552,13 @@
    /**
     * 首页二级页面-邻里圈展示列表
     * @param communityId
     * @param topicId
     * @param pageBaseDTO
     * @return
     */
    @Override
    public R indexNeighborList(Long communityId, Long topicId) {
        List<ComActNeighborCircleAdminVO> neighborList = comActNeighborCircleDAO.indexNeighborList(communityId, topicId, pageSize);
        return R.ok(neighborList);
    public R indexNeighborList(PageBaseDTO pageBaseDTO) {
        Page page = retrievePage(pageBaseDTO);
        return R.ok(comActNeighborCircleDAO.indexNeighborList(page, pageBaseDTO));
    }
    /**
@@ -631,13 +615,161 @@
    /**
     * 首页二级页面-商家展示列表
     * @param communityId
     * @param categoryId
     * @param pageBaseDTO
     * @return
     */
    @Override
    public R indexMerchantList(Long communityId, Long categoryId) {
        List<ConvenientMerchantVO> merchantList = convenientMerchantDAO.indexMerchantList(communityId, categoryId, pageSize);
        return R.ok(merchantList);
    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));
    }
    @Override
    public R hmkBaseInfo(CommonPage commonPage) {
        BigScreenHmkBaseInfo bigScreenHmkBaseInfo=comActSocialProjectDao.selectIndexBaseInfo();
        //项目数据
        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,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<BigScreenHmkProjectTypeInfo> activityList=new ArrayList<>();
        activityList.add(jm);
        activityList.add(zyz);
        bigScreenHmkProjectInfo.setActivityTypeInfoList(activityList);
        //社会组织数据
        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());
            });
        }
        bigScreenHmkSocialOrgInfo.setTypeInfoList(typeInfoList);
        bigScreenHmkBaseInfo.setBigScreenHmkSocialOrgInfo(bigScreenHmkSocialOrgInfo);
        //社工数据
        BigScreenHmkSocialWorkerInfo bigScreenHmkSocialWorkerInfo=new BigScreenHmkSocialWorkerInfo();
        List<BigScreenHmkProjectTypeInfo> 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<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) {
        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<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;
    }
}