From 3440dd3406fac18217bf59be0910127bb0d8a848 Mon Sep 17 00:00:00 2001 From: xyh <18782104331@139.com> Date: 星期三, 16 六月 2021 18:18:57 +0800 Subject: [PATCH] 人口,工作大屏 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java | 278 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 253 insertions(+), 25 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java index 5ff7cd5..236d874 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java @@ -1,14 +1,20 @@ package com.panzhihua.service_community.service.impl; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.panzhihua.common.model.dtos.partybuilding.ComPbActivityDTO; import com.panzhihua.common.model.vos.R; -import com.panzhihua.common.model.vos.screen.ComActNeighborCircleScreenVO; +import com.panzhihua.common.model.vos.screen.*; import com.panzhihua.common.utlis.DateUtils; -import com.panzhihua.service_community.dao.ComActNeighborCircleDAO; +import com.panzhihua.common.utlis.StringUtils; +import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.service.ScreenWorkService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @author xyh @@ -17,40 +23,262 @@ @Service public class ScreenWorkServiceImpl implements ScreenWorkService { - private static final Integer neighborSize = 200; + private static final Integer pageSize = 200; @Resource private ComActNeighborCircleDAO comActNeighborCircleDAO; + + @Resource + private ComActMicroWishDAO comActMicroWishDAO; + + @Resource + private ComActActivityDAO actActivityDAO; + + @Resource + private ComActDiscussDAO comActDiscussDAO; + + @Resource + private ComPbDynDAO comPbDynDAO; + + @Resource + private ComActEasyPhotoDAO comActEasyPhotoDAO; + + private final String moth_format_str = "yyyy-MM"; @Override public R statisticNeighborCircle(Long communityId) { ComActNeighborCircleScreenVO comActNeighborCircleScreenVO = new ComActNeighborCircleScreenVO(); - String date = DateUtils.getDateFormatString(new Date(),"yyyy-MM-dd"); - Long currentNeighborCircles = comActNeighborCircleDAO.countCurrentNeighborCircles(communityId,date); - comActNeighborCircleScreenVO.setCurrentNum(currentNeighborCircles == null?0:currentNeighborCircles); - Long totalNum = comActNeighborCircleDAO.countByCommunityId(communityId); - comActNeighborCircleScreenVO.setTotalNum(totalNum == null?0L:totalNum); + String date = DateUtils.getDateFormatString(new Date(),moth_format_str); + Map<String,Long> countMap = comActNeighborCircleDAO.countByCommunityId(communityId,date); + comActNeighborCircleScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); + comActNeighborCircleScreenVO.setTotalNum(countMap.get("totalNum") == null ? 0L : countMap.get("totalNum")); Map<String,Long> sumMap = comActNeighborCircleDAO.sumScreenNum(communityId); - comActNeighborCircleScreenVO.setFabulousNum(sumMap.get("fabulousNum")==null?0L:sumMap.get("fabulousNum")); - comActNeighborCircleScreenVO.setCommentNum(sumMap.get("commentNum")==null?0L:sumMap.get("commentNum")); - comActNeighborCircleScreenVO.setSharedNum(sumMap.get("forwardNum")==null?0L:sumMap.get("forwardNum")); + comActNeighborCircleScreenVO.setFabulousNum(sumMap.get("fabulousNum") == null ? 0L : sumMap.get("fabulousNum")); + comActNeighborCircleScreenVO.setCommentNum(sumMap.get("commentNum") == null ? 0L : sumMap.get("commentNum")); + comActNeighborCircleScreenVO.setSharedNum(sumMap.get("forwardNum") == null ? 0L : sumMap.get("forwardNum")); //查询最近发布的邻里圈 - comActNeighborCircleScreenVO.setNeighborCircles(comActNeighborCircleDAO.screenNeighborCircle(communityId,neighborSize)); + comActNeighborCircleScreenVO.setList(comActNeighborCircleDAO.screenNeighborCircle(communityId,pageSize)); //查询最近发布的邻里圈图片 - List<String> imsg = new ArrayList<>(); - List<String> imgList = comActNeighborCircleDAO.screenNeighborCircleImgs(communityId,neighborSize); - for(String img:imgList){ - String[] imgarr = img.split(","); - if(imgarr.length > 1){ - for(String arr: imgarr){ - imsg.add(arr); - } - }else{ - imsg.add(img); - } - } - comActNeighborCircleScreenVO.setImgs(imsg); + comActNeighborCircleScreenVO.setImgs(convertStringList(comActNeighborCircleDAO.screenNeighborCircleImgs(communityId,pageSize))); return R.ok(comActNeighborCircleScreenVO); } + + @Override + public R wish(Long communityId) { + ComActMicroWishScreenVO wishScreenVO = new ComActMicroWishScreenVO(); + String date = DateUtils.getDateFormatString(new Date(),moth_format_str); + //统计本月新增,累计实现,待实现 + Map<String,Long> countMap = comActMicroWishDAO.countByCommunityId(communityId,date); + wishScreenVO.setCompletedNum(countMap.get("completedNum") == null ? 0L : countMap.get("completedNum")); + wishScreenVO.setWillNum(countMap.get("willNum") == null ? 0L : countMap.get("willNum")); + wishScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); + //微心愿轮播图片 + wishScreenVO.setImgs(convertStringList(comActMicroWishDAO.getAllImgs(communityId,pageSize))); + return R.ok(wishScreenVO); + } + + + + private List<String> convertStringList(List<String> imgList) { + List<String> imgs = new ArrayList<>(); + for(String img:imgList){ + if(StringUtils.isEmpty(img)){ + continue; + } + String[] arrs = img.split(","); + if(arrs.length > 1){ + for(String arr: arrs){ + imgs.add(arr); + } + }else{ + imgs.add(img); + } + } + return imgs; + } + + @Override + public R activity(Long communityId) { + ComActActivityScreenVO comActActivityScreenVO = new ComActActivityScreenVO(); + //统计本月新增、居民活动,志愿者活动 + String date = DateUtils.getDateFormatString(new Date(),moth_format_str); + Map<String,Long> countMap = actActivityDAO.countByCommunityId(communityId,date); + comActActivityScreenVO.setTotalNum(countMap.get("totalNum") == null ? 0L : countMap.get("totalNum")); + comActActivityScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); + comActActivityScreenVO.setCommonNum(countMap.get("commonNum") == null ? 0L : countMap.get("commonNum")); + comActActivityScreenVO.setCommonPeopleNum(countMap.get("commonPeopleNum") == null ? 0L : countMap.get("commonPeopleNum")); + comActActivityScreenVO.setVolunteerNum(countMap.get("volunteerNum") == null ? 0L : countMap.get("volunteerNum")); + comActActivityScreenVO.setVolunteerPeopleNum(countMap.get("volunteerPeopleNum") == null ? 0L : countMap.get("volunteerPeopleNum")); + //最近活动 + comActActivityScreenVO.setList(actActivityDAO.screenActivity(communityId,pageSize)); + return R.ok(comActActivityScreenVO); + } + + @Override + public R discuss(Long communityId) { + ComActDiscussScreenVO discussScreenVO = new ComActDiscussScreenVO(); + //统计本月新增,总共,图文,投票 + String date = DateUtils.getDateFormatString(new Date(),moth_format_str); + Map<String,Long> countMap = comActDiscussDAO.countByCommunityId(communityId,date); + discussScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); + discussScreenVO.setTotalNum(countMap.get("totalNum") == null ? 0L : countMap.get("totalNum")); + discussScreenVO.setImgNum(countMap.get("imgNum") == null ? 0L : countMap.get("imgNum")); + discussScreenVO.setImgPeopleNum(countMap.get("imgPeopleNum") == null ? 0L : countMap.get("imgPeopleNum")); + discussScreenVO.setVoteNum(discussScreenVO.getTotalNum() - discussScreenVO.getImgNum()); + discussScreenVO.setVotePeopleNum(countMap.get("votePeopleNum") == null ? 0L : countMap.get("votePeopleNum")); + discussScreenVO.setList(comActDiscussDAO.screenDiscuss(communityId,pageSize)); + return R.ok(discussScreenVO); + } + + @Override + public R pbWork(Long communityId) { + ComPbWorkScreenVO pbWorkScreenVO = new ComPbWorkScreenVO(); + String date = DateUtils.getDateFormatString(new Date(),moth_format_str); + Map<String,Long> countMap = comPbDynDAO.countByCommunityId(communityId,date); + pbWorkScreenVO.setActivityNum(countMap.get("activityNum") == null ? 0L : countMap.get("activityNum")); + pbWorkScreenVO.setDynNum(countMap.get("dynNum") == null ? 0L : countMap.get("dynNum")); + pbWorkScreenVO.setTotalNum(pbWorkScreenVO.getActivityNum() + pbWorkScreenVO.getDynNum()); + pbWorkScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum")); + //统计近半年数据 + List<PbWorkVO> list = new ArrayList<>(); + for(PbWorkVO workVO: listHalfYear()){ + PbWorkVO result = comPbDynDAO.countByTime(workVO.getStart(),workVO.getEnd(),communityId); + result.setMonth(workVO.getMonth()); + list.add(result); + } + pbWorkScreenVO.setList(list); + return R.ok(pbWorkScreenVO); + } + + + private List<PbWorkVO> listHalfYear() { + List<PbWorkVO> dateList = new ArrayList<>(); + Date now = new Date(); + for(int i= 6;i>=1;i--){ + Date date = DateUtils.getDateM(now,i); + DateTime endDay = DateUtil.endOfMonth(date); + int m = endDay.month();//月份 + int day = DateUtil.dayOfMonth(date); + int half = day/2; + String month = DateUtil.format(date,moth_format_str); + PbWorkVO pbWorkVO = new PbWorkVO(); + pbWorkVO.setMonth(m+"月上旬"); + pbWorkVO.setStart(month+ "-01 00:00:00"); + pbWorkVO.setEnd(month+ "-"+half+" 23:59:58"); + dateList.add(pbWorkVO); + PbWorkVO pbWorkVO2 = new PbWorkVO(); + pbWorkVO2.setMonth(m+"月下旬"); + pbWorkVO2.setStart(month+ "-"+half+" 23:59:58"); + pbWorkVO2.setEnd(DateUtils.getDateFormatString(endDay,"yyyy-MM-dd HH:mm:ss")); + dateList.add(pbWorkVO2); + } + return dateList; + + } + + @Override + public R easyPhoto(Long communityId) { + ComActEasyPhotoScreenVO comActEasyPhotoScreenVO = new ComActEasyPhotoScreenVO(); + Map<String,Long> dealMap = comActEasyPhotoDAO.countDeal(communityId); + comActEasyPhotoScreenVO.setDeal(getList(dealMap)); + Map<String,Long> pubMap = comActEasyPhotoDAO.countPub(communityId); + comActEasyPhotoScreenVO.setPub(getList(pubMap)); + Map<String,Long> approvedMap = comActEasyPhotoDAO.countApproved(communityId); + comActEasyPhotoScreenVO.setApproved(getList(approvedMap)); + + Map<String,Long> countMap = comActEasyPhotoDAO.countByCommunityId(communityId); + comActEasyPhotoScreenVO.setNoneDeal(countMap.get("noneDeal") == null ? 0L : countMap.get("noneDeal")); + comActEasyPhotoScreenVO.setPubPoint(countMap.get("pubPoint") == null ? 0L : countMap.get("pubPoint")); + comActEasyPhotoScreenVO.setDealTime(countMap.get("dealTime") == null ? 0L : countMap.get("dealTime")); + List<EastPhotoVO> list = new ArrayList<>(); + for(PbWorkVO workVO: listHalfYear()){ + String nowDate = DateUtils.getDateFormatString(DateUtil.parseDate(workVO.getStart()),moth_format_str); + EastPhotoVO result = comActEasyPhotoDAO.countByTime(workVO.getStart(),workVO.getEnd(),nowDate,communityId); + result.setMonth(workVO.getMonth()); + list.add(result); + } + comActEasyPhotoScreenVO.setList(list); + return R.ok(comActEasyPhotoScreenVO); + } + + + + + private List<EasyPhotoPointVO> getList(Map<String, Long> dealMap) { + Set<Map.Entry<String,Long>> entrySet = dealMap.entrySet(); + + List<EasyPhotoPointVO> list = new ArrayList<>(); + for(Map.Entry<String,Long> en:entrySet){ + EasyPhotoPointVO easyPhotoPointVO = new EasyPhotoPointVO(); + easyPhotoPointVO.setTypeName(en.getKey()); + easyPhotoPointVO.setPoint(en.getValue().intValue()); + list.add(easyPhotoPointVO); + } + return list; + + } + + @Override + public R workCount(Long communityId) { + ComActWorkScreenVO comActWorkScreenVO = new ComActWorkScreenVO(); + comActWorkScreenVO.setAvgTime("1小时"); + comActWorkScreenVO.setTotalCompletedPoint(70); + comActWorkScreenVO.setEveryDayNum("0.3"); + List<ActWorkCountVO> completetPoint = new ArrayList<>(); + ActWorkCountVO easyPhoto = new ActWorkCountVO(); + easyPhoto.setName("随手拍"); + easyPhoto.setNum(10); + completetPoint.add(easyPhoto); + ActWorkCountVO wish = new ActWorkCountVO(); + wish.setName("微心愿"); + wish.setNum(23); + completetPoint.add(wish); + ActWorkCountVO discuss = new ActWorkCountVO(); + discuss.setName("一起议"); + discuss.setNum(33); + completetPoint.add(discuss); + ActWorkCountVO neighbor = new ActWorkCountVO(); + neighbor.setName("邻里圈"); + neighbor.setNum(43); + completetPoint.add(neighbor); + ActWorkCountVO pbWork = new ActWorkCountVO(); + pbWork.setName("党建工作"); + pbWork.setNum(13); + completetPoint.add(pbWork); + ActWorkCountVO activity = new ActWorkCountVO(); + activity.setName("社区活动"); + activity.setNum(63); + completetPoint.add(activity); + comActWorkScreenVO.setCompletetPoint(completetPoint); + + List<ActWorkCountVO> completetPoint2 = new ArrayList<>(); + ActWorkCountVO easyPhoto2 = new ActWorkCountVO(); + easyPhoto2.setName("随手拍"); + easyPhoto2.setNum(10); + completetPoint2.add(easyPhoto2); + ActWorkCountVO wish2 = new ActWorkCountVO(); + wish2.setName("微心愿"); + wish2.setNum(23); + completetPoint2.add(wish2); + ActWorkCountVO discuss2 = new ActWorkCountVO(); + discuss2.setName("一起议"); + discuss2.setNum(33); + completetPoint2.add(discuss2); + ActWorkCountVO neighbor2 = new ActWorkCountVO(); + neighbor2.setName("邻里圈"); + neighbor2.setNum(43); + completetPoint2.add(neighbor2); + ActWorkCountVO pbWork2 = new ActWorkCountVO(); + pbWork2.setName("党建工作"); + pbWork2.setNum(13); + completetPoint2.add(pbWork2); + ActWorkCountVO activity2 = new ActWorkCountVO(); + activity2.setName("社区活动"); + activity2.setNum(63); + completetPoint2.add(activity2); + comActWorkScreenVO.setNonePoint(completetPoint2); + return R.ok(comActWorkScreenVO); + } + } -- Gitblit v1.7.1