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