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