From 53d8d2329c6ff20b73e5e0e5a5df65cd1c209e05 Mon Sep 17 00:00:00 2001
From: luoxinwu <934743099@qq.com>
Date: 星期一, 25 十二月 2023 09:51:43 +0800
Subject: [PATCH] 双争双评,导出

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java |  139 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 126 insertions(+), 13 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
index d53ca25..7bc5d52 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
@@ -25,6 +25,7 @@
 import com.panzhihua.service_community.service.ComActNeighborCircleBrowseService;
 import com.panzhihua.service_community.service.ComActNeighborCircleService;
 import com.panzhihua.service_community.service.ComActNeighborCircleTopicService;
+import com.panzhihua.service_community.util.ExcelUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
@@ -33,6 +34,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -1228,6 +1230,8 @@
             }
         }
         //统计积分
+        List<NewFightNeedProblemInventory> allList = newFightNeedProblemInventoryMapper.selectAll();
+        Map<Long, String> awardMap = allList.stream().filter(Objects::nonNull).collect(Collectors.toMap(NewFightNeedProblemInventory::getId, NewFightNeedProblemInventory::getAward));
         for (UnitActivityAnalysisVO unitVO : unitActivityAnalysisVOS) {
 
             Long unitId1 = unitVO.getUnitId();
@@ -1240,8 +1244,9 @@
             //任务id集合
             List<String> taskIds = inventories.stream().map(NewFightNeedProblemClaim::getTaskId).distinct().collect(Collectors.toList());
             for (String taskId : taskIds) {
-                NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId);
-                String award = newFightNeedProblemInventory.getAward();
+//                NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId);
+//                String award = newFightNeedProblemInventory.getAward();
+                String award = awardMap.get(Long.parseLong(taskId));
                 Long count = collectMap.get(taskId);
                 long i = Long.parseLong(award) * count;
                 sum = sum + i;
@@ -1254,6 +1259,7 @@
         Integer unitServiceTotalTime=0;
         Integer memberServiceCount=0;
         Integer memberServiceTotalTome=0;
+        long awardSumCount=0L;
         for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS) {
             //避免空指针
             if (ObjectUtils.isNotEmpty(vo)){
@@ -1276,22 +1282,34 @@
                 }
             }
         }
+        for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS) {
+            if(ObjectUtils.isNotEmpty(vo)){
+                if(ObjectUtils.isNotEmpty(vo.getAwardSum())){
+                    awardSumCount += vo.getAwardSum();
+                }
+            }
+        }
+        activityVO.setAwardSumCount(awardSumCount);
         activityVO.setUnitServiceTotalCount(unitServiceCount);
         activityVO.setUnitServiceTotalTime(unitServiceTotalTime);
         activityVO.setPartyMemberServiceTotalCount(memberServiceCount);
         activityVO.setPartyMemberServiceTotalTime(memberServiceTotalTome);
         //处理排序
-//        if (null != type){
-//            if (type.equals(1)){
-//                //按时长排序
-//                ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTime");
-//                ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTime");
-//            }else if (type.equals(2)){
-//                //按次数排序
-//                ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTimes");
-//                ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTimes");
-//            }
-//        }
+        if (null != type){
+            if (type.equals(1)){
+                //按时长排序
+                ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTime");
+                ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTime");
+            }else if (type.equals(2)){
+                //按次数排序
+                ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTimes");
+                ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTimes");
+            }else if(type.equals(3)){
+                //按积分排序
+                ListUtil.sortByProperty(unitActivityAnalysisVOS,"awardSum");
+             //   ListUtil.sortByProperty(unitActivityAnalysisVOS,"");
+            }
+        }
         //处理分页
         PageVO<List<UnitActivityAnalysisVO>> unitPage=new PageVO<>();
         PageVO<List<PartyMemberAnalysisVO>> memberPage=new PageVO<>();
@@ -1317,6 +1335,101 @@
 
     }
 
+    @Override
+    public R export(Integer year,String belongTo,Long communityId, HttpServletResponse response) throws Exception {
+        List<ExcelDO> excelDOList = new ArrayList<>();
+        String beginTime=null;
+        String endTime=null;
+        if (null != year){
+            //设置开始,截止时间
+            beginTime=year.toString().concat("-01-01");
+            endTime=year.toString().concat("-12-31");
+        }
+        //获取单位活动统计数据(邻里圈)
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS = comActNeighborCircleDAO.institutionalUnitServiceAnalysis(beginTime, endTime, belongTo,communityId);
+        //获取单位活动统计数据(活动)
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS1 = comActNeighborCircleDAO.institutionalUnitActivityAnalysis(beginTime, endTime, belongTo,communityId);
+        if (!unitActivityAnalysisVOS.isEmpty()){
+            for (UnitActivityAnalysisVO unitActivityAnalysisVO : unitActivityAnalysisVOS){
+                if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO)){
+                    if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO.getUnitId())){
+                        //设置单位名称
+                        unitActivityAnalysisVO.setUnitName(comActDAO.selectUnitName(unitActivityAnalysisVO.getUnitId()));
+                        //统计活动表中的活动信息
+                    }
+                    if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO.getCommunityId())){
+                        unitActivityAnalysisVO.setCommunityName(comActDAO.selectById(unitActivityAnalysisVO.getCommunityId()).getName());
+                    }
+                }
+            }
+        }
+        //活动表数据处理
+        if (!unitActivityAnalysisVOS1.isEmpty()){
+            for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS1) {
+                if(ObjectUtils.isNotEmpty(vo)){
+                    if (ObjectUtils.isNotEmpty(vo.getUnitId())){
+                        //判断邻里圈统计中是否已有该单位数据
+                        Map<String, Integer> param = alreadyAnalysis(vo.getUnitId(), unitActivityAnalysisVOS);
+                        if (param.get("flag")==1){
+                            //已有数据,将时长,次数相加
+                            Integer serviceTime = vo.getServiceTime();
+                            Integer serviceTimes = vo.getServiceTimes();
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTime(unitActivityAnalysisVOS.get(param.get("index")).getServiceTime()+serviceTime);
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTimes(unitActivityAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes);
+                        }else {
+                            //新数据,获取单位,社区名
+                            vo.setUnitName(comActDAO.selectUnitName(vo.getUnitId()));
+                            if (ObjectUtils.isNotEmpty(vo.getCommunityId()))
+                            {
+                                ComActDO actDO=comActDAO.selectById(vo.getCommunityId());
+                                if(actDO!=null && !StringUtils.isEmpty(actDO.getName()))
+                                {
+                                    vo.setCommunityName(actDO.getName());
+                                }
+                            }
+                            unitActivityAnalysisVOS.add(vo);
+                        }
+                    }
+                }
+            }
+        }
+        List<NewFightNeedProblemInventory> allList = newFightNeedProblemInventoryMapper.selectAll();
+        Map<Long, String> awardMap = allList.stream().filter(Objects::nonNull).collect(Collectors.toMap(NewFightNeedProblemInventory::getId, NewFightNeedProblemInventory::getAward));
+        for (UnitActivityAnalysisVO unitVO : unitActivityAnalysisVOS) {
+
+            Long unitId1 = unitVO.getUnitId();
+            LambdaQueryWrapper<NewFightNeedProblemClaim> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(NewFightNeedProblemClaim::getUnitId,String.valueOf(unitId1));
+            List<NewFightNeedProblemClaim> inventories = newFightNeedProblemClaimMapper.selectList(wrapper);
+            Map<String, Long> collectMap = inventories.stream()
+                    .collect(Collectors.groupingBy(NewFightNeedProblemClaim::getTaskId, Collectors.counting()));
+            long sum = 0L;
+            //任务id集合
+            List<String> taskIds = inventories.stream().map(NewFightNeedProblemClaim::getTaskId).distinct().collect(Collectors.toList());
+            for (String taskId : taskIds) {
+//                NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId);
+//                String award = newFightNeedProblemInventory.getAward();
+                String award = awardMap.get(Long.parseLong(taskId));
+                Long count = collectMap.get(taskId);
+                long i = Long.parseLong(award) * count;
+                sum = sum + i;
+            }
+            unitVO.setAwardSum(sum);
+        }
+        for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS) {
+            ExcelDO excelDO = new ExcelDO();
+            excelDO.setBelongTo(vo.getBelongTo());
+            excelDO.setOrgName(vo.getOrgName());
+            excelDO.setUnitName(vo.getUnitName());
+            excelDO.setCommunityName(vo.getCommunityName());
+            excelDO.setServiceTime(vo.getServiceTime());
+            excelDO.setAwardSum(vo.getAwardSum());
+            excelDOList.add(excelDO);
+        }
+        ExcelUtils.export2Web(response,"双争双评","sheet",ExcelDO.class,excelDOList);
+        return R.ok();
+    }
+
 
     @Override
     public R serviceStaticBackstage(ServiceStaticBackstageDTO serviceStaticDTO) {

--
Gitblit v1.7.1