From eef6d2bcdb29348efe4ef17bc45a4c6886b487b1 Mon Sep 17 00:00:00 2001 From: lidongdong <1459917685@qq.com> Date: 星期四, 11 七月 2024 18:16:26 +0800 Subject: [PATCH] 花城 【小程序】统计排行添加是否是问题清单标识5 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java | 256 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 242 insertions(+), 14 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 7bc5d52..b1c6dd4 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 @@ -1,5 +1,6 @@ package com.panzhihua.service_community.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.PageUtil; import cn.hutool.core.collection.CollUtil; @@ -9,9 +10,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.constants.NeighborCircleConstants; +import com.panzhihua.common.model.dtos.ExcelDO; +import com.panzhihua.common.model.dtos.PartyExcelDO; import com.panzhihua.common.model.dtos.neighbor.*; import com.panzhihua.common.model.vos.PageVO; import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo; import com.panzhihua.common.model.vos.neighbor.*; import com.panzhihua.common.model.vos.user.AdministratorsUserVO; import com.panzhihua.common.service.user.UserService; @@ -35,6 +39,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; +import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -1129,12 +1135,61 @@ @Override public R serviceStatic(ServiceStaticDTO serviceStaticDTO) { ServiceStaticsVO serviceStaticsVO = new ServiceStaticsVO(); - if (serviceStaticDTO.getCheckUnitId() != null) { + if (serviceStaticDTO.getCheckUnitId() != null) + { + //单位服务统计 serviceStaticsVO = this.baseMapper.selectStatsCheckUnit(serviceStaticDTO.getCheckUnitId(), serviceStaticDTO.getYear()); - serviceStaticsVO.setServiceDetailStaticsList(this.baseMapper.selectServiceDetailList(serviceStaticDTO.getCheckUnitId(), - serviceStaticDTO.getYear(), serviceStaticDTO.getServiceType())); - } else { + + List<ServiceDetailStaticsVO> serviceDetailStaticsVOList=this.baseMapper.selectServiceDetailList(serviceStaticDTO.getCheckUnitId(), + serviceStaticDTO.getYear(), serviceStaticDTO.getServiceType()); + + + if(serviceStaticDTO.getServiceType()==null || serviceStaticDTO.getServiceType()==1) + { + List<NewFightNeedProblemClaim> list=baseMapper.getNewServiceNum("",serviceStaticDTO.getCheckUnitId()+""); + if(list.size()>0) + { + //设置次数 + int timeNum=serviceStaticsVO.getTimes()+list.size(); + serviceStaticsVO.setTimes(timeNum); + //设置服务时间 + double hours=serviceStaticsVO.getHours(); + + for (NewFightNeedProblemClaim item:list) + { + ServiceDetailStaticsVO newItem=new ServiceDetailStaticsVO(); + + String Ltime=item.getServiceTime(); + if(!StringUtils.isEmpty(Ltime)) + { + double time=(Double.valueOf(Ltime)/3600000); + DecimalFormat df = new DecimalFormat("#.##"); + String formattedNumber = df.format(time); + double result = Double.parseDouble(formattedNumber); + + hours=hours+result; + + newItem.setServiceTime(result); + item.setServiceTime(result+""); + } + newItem.setIsNew("2"); + newItem.setServiceId(Long.valueOf(item.getTaskId())); + newItem.setServiceType(1); + newItem.setServiceAt(item.getCreationTime()); + serviceDetailStaticsVOList.add(newItem); + } + DecimalFormat df = new DecimalFormat("#.##"); + String formattedNumber = df.format(hours); + double result = Double.parseDouble(formattedNumber); + serviceStaticsVO.setHours(result); + } + } + serviceStaticsVO.setServiceDetailStaticsList(serviceDetailStaticsVOList); + } + else + { + //个人服务统计 serviceStaticsVO = this.baseMapper.selectStatsUser(serviceStaticDTO.getPhone(), serviceStaticDTO.getYear()); ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda() .eq(ComPbMemberDO::getPhone, serviceStaticDTO.getPhone()).last("limit 1")); @@ -1142,14 +1197,63 @@ if (comPbMemberDO != null) { checkUnitId = comPbMemberDO.getCheckUnitId(); } - serviceStaticsVO.setServiceDetailStaticsList(this.baseMapper.selectServiceDetailListForPersonal(checkUnitId, serviceStaticDTO.getPhone(), - serviceStaticDTO.getYear(), serviceStaticDTO.getServiceType())); + + + List<ServiceDetailStaticsVO> serviceDetailStaticsVOList=this.baseMapper.selectServiceDetailListForPersonal(checkUnitId, serviceStaticDTO.getPhone(), + serviceStaticDTO.getYear(), serviceStaticDTO.getServiceType()); + + + if(serviceStaticDTO.getServiceType()==null || serviceStaticDTO.getServiceType()==1) + { + //获取新需求服务列表 + List<NewFightNeedProblemClaim> list=baseMapper.getNewServiceNum(serviceStaticDTO.getPhone(),""); + + if(list.size()>0) + { + //设置次数 + int timeNum=serviceStaticsVO.getTimes()+list.size(); + //设置服务时间 + double hours=serviceStaticsVO.getHours(); + serviceStaticsVO.setTimes(timeNum); + for (NewFightNeedProblemClaim item:list) + { + ServiceDetailStaticsVO newItem=new ServiceDetailStaticsVO(); + + String Ltime=item.getServiceTime(); + if(!StringUtils.isEmpty(Ltime)) + { + double time=(Double.valueOf(Ltime)/3600000); + DecimalFormat df = new DecimalFormat("#.##"); + String formattedNumber = df.format(time); + double result = Double.parseDouble(formattedNumber); + + hours=hours+result; + + newItem.setServiceTime(result); + item.setServiceTime(result+""); + } + newItem.setIsNew("2"); + newItem.setServiceId(Long.valueOf(item.getTaskId())); + newItem.setServiceType(1); + newItem.setServiceAt(item.getCreationTime()); + serviceDetailStaticsVOList.add(newItem); + } + + DecimalFormat df = new DecimalFormat("#.##"); + String formattedNumber = df.format(hours); + double result = Double.parseDouble(formattedNumber); + serviceStaticsVO.setHours(result); + } + } + + serviceStaticsVO.setServiceDetailStaticsList(serviceDetailStaticsVOList); } return R.ok(serviceStaticsVO); } @Override - public R institutionalUnitServiceAnalysis(Integer year, Integer type, Integer range, Long communityId,Integer page,Integer size,String belongTo,Long unitId) { + public R institutionalUnitServiceAnalysis(Integer year, Integer type, Integer range, Long communityId, + Integer page,Integer size,String belongTo,Long unitId,String searchContent) { ActivityAnalysisVO activityVO=new ActivityAnalysisVO(); String beginTime=null; String endTime=null; @@ -1210,8 +1314,8 @@ } } //获取党员活动统计数据 - List<PartyMemberAnalysisVO> partyMemberAnalysisVOS = comActNeighborCircleDAO.institutionalPartyMemberServiceAnalysis(beginTime, endTime, belongTo,communityId,unitId); - List<PartyMemberAnalysisVO> partyMemberAnalysisVOS1 = comActNeighborCircleDAO.institutionalPartyMemberActAnalysis(beginTime, endTime, belongTo,communityId,unitId); + List<PartyMemberAnalysisVO> partyMemberAnalysisVOS = comActNeighborCircleDAO.institutionalPartyMemberServiceAnalysis(beginTime, endTime, belongTo,communityId,unitId,searchContent); + List<PartyMemberAnalysisVO> partyMemberAnalysisVOS1 = comActNeighborCircleDAO.institutionalPartyMemberActAnalysis(beginTime, endTime, belongTo,communityId,unitId,searchContent); if (partyMemberAnalysisVOS1.size()>0){ for (PartyMemberAnalysisVO vo : partyMemberAnalysisVOS1) { if (ObjectUtils.isNotEmpty(vo)){ @@ -1229,7 +1333,7 @@ } } } - //统计积分 + //报道单位统计积分 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) { @@ -1240,7 +1344,11 @@ List<NewFightNeedProblemClaim> inventories = newFightNeedProblemClaimMapper.selectList(wrapper); Map<String, Long> collectMap = inventories.stream() .collect(Collectors.groupingBy(NewFightNeedProblemClaim::getTaskId, Collectors.counting())); - long sum = 0L; + long sum = 0l; + if(unitVO.getAwardSum()!=null || unitVO.getAwardSum()!=0l ) + { + sum=unitVO.getAwardSum(); + } //任务id集合 List<String> taskIds = inventories.stream().map(NewFightNeedProblemClaim::getTaskId).distinct().collect(Collectors.toList()); for (String taskId : taskIds) { @@ -1254,12 +1362,35 @@ unitVO.setAwardSum(sum); } + //报道党员统计积分 + for (PartyMemberAnalysisVO memberAnalysisVO : partyMemberAnalysisVOS) { + Long userId = memberAnalysisVO.getMemberId(); + LambdaQueryWrapper<NewFightNeedProblemClaim> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(NewFightNeedProblemClaim::getUserId,userId); + List<NewFightNeedProblemClaim> newFightNeedProblemInventories = newFightNeedProblemClaimMapper.selectList(wrapper); + long sumAward = 0l; + + if(memberAnalysisVO.getPartyCount()!=null || memberAnalysisVO.getPartyCount()!=0l ) + { + sumAward=memberAnalysisVO.getPartyCount(); + } + + for (NewFightNeedProblemClaim inventory : newFightNeedProblemInventories) { + String taskId = inventory.getTaskId(); + NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId); + String award = newFightNeedProblemInventory.getAward(); + sumAward = Long.parseLong(award) + sumAward; + } + memberAnalysisVO.setPartyCount(sumAward); + } + //统计总时长和总次数 Integer unitServiceCount=0; Integer unitServiceTotalTime=0; Integer memberServiceCount=0; Integer memberServiceTotalTome=0; long awardSumCount=0L; + long partySumCount=0L; for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS) { //避免空指针 if (ObjectUtils.isNotEmpty(vo)){ @@ -1289,7 +1420,15 @@ } } } + for (PartyMemberAnalysisVO memberAnalysisVO : partyMemberAnalysisVOS) { + if(ObjectUtils.isNotEmpty(memberAnalysisVO)){ + if(ObjectUtils.isNotEmpty(memberAnalysisVO.getPartyCount())){ + partySumCount += memberAnalysisVO.getPartyCount(); + } + } + } activityVO.setAwardSumCount(awardSumCount); + activityVO.setPartySumCount(partySumCount); activityVO.setUnitServiceTotalCount(unitServiceCount); activityVO.setUnitServiceTotalTime(unitServiceTotalTime); activityVO.setPartyMemberServiceTotalCount(memberServiceCount); @@ -1300,13 +1439,21 @@ //按时长排序 ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTime"); ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTime"); + + ListUtil.reverse(unitActivityAnalysisVOS); + ListUtil.reverse(partyMemberAnalysisVOS); + }else if (type.equals(2)){ //按次数排序 ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTimes"); ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTimes"); + + ListUtil.reverse(unitActivityAnalysisVOS); + ListUtil.reverse(partyMemberAnalysisVOS); }else if(type.equals(3)){ //按积分排序 ListUtil.sortByProperty(unitActivityAnalysisVOS,"awardSum"); + ListUtil.reverse(unitActivityAnalysisVOS); // ListUtil.sortByProperty(unitActivityAnalysisVOS,""); } } @@ -1331,12 +1478,33 @@ } activityVO.setUnitList(unitPage); activityVO.setPartyMemberList(memberPage); + + //党员数据 聚合 + Map<String, Long> map = new HashMap<>(); + partyMemberAnalysisVOS.forEach(vo->{ + String name = vo.getBelongTo(); + Long time = Long.valueOf(vo.getServiceTime()); + if (map.containsKey(name)) { + time += map.get(name); + } + map.put(name, time); + }); + if(CollectionUtil.isNotEmpty(map)){ + List<PbCheckUnitStatisticsVo> list = new ArrayList<>(); + map.keySet().forEach(vo->{ + PbCheckUnitStatisticsVo dto = new PbCheckUnitStatisticsVo(); + dto.setBelongTo(vo); + dto.setServiceTime(map.get(vo)); + list.add(dto); + }); + activityVO.setGroupPartyCount(list); + } return R.ok(activityVO); } @Override - public R export(Integer year,String belongTo,Long communityId, HttpServletResponse response) throws Exception { + public List<ExcelDO> export(Integer year, String belongTo, Long communityId) throws Exception { List<ExcelDO> excelDOList = new ArrayList<>(); String beginTime=null; String endTime=null; @@ -1426,8 +1594,68 @@ excelDO.setAwardSum(vo.getAwardSum()); excelDOList.add(excelDO); } - ExcelUtils.export2Web(response,"双争双评","sheet",ExcelDO.class,excelDOList); - return R.ok(); + return excelDOList; + } + + @Override + public List<PartyExcelDO> partyExcel(Integer year, String belongTo, Long communityId,Long unitId) { + String beginTime=null; + String endTime=null; + if (null != year){ + //设置开始,截止时间 + beginTime=year.toString().concat("-01-01"); + endTime=year.toString().concat("-12-31"); + } + //获取党员活动统计数据 + List<PartyMemberAnalysisVO> partyMemberAnalysisVOS = comActNeighborCircleDAO.institutionalPartyMemberServiceAnalysis(beginTime, endTime, belongTo,communityId,unitId,null); + List<PartyMemberAnalysisVO> partyMemberAnalysisVOS1 = comActNeighborCircleDAO.institutionalPartyMemberActAnalysis(beginTime, endTime, belongTo,communityId,unitId,null); + if (partyMemberAnalysisVOS1.size()>0){ + for (PartyMemberAnalysisVO vo : partyMemberAnalysisVOS1) { + if (ObjectUtils.isNotEmpty(vo)){ + if (ObjectUtils.isNotEmpty(vo.getMemberId())){ + Map<String, Integer> param = memberAlreadyAnalysis(vo.getMemberId(), partyMemberAnalysisVOS); + if (param.get("flag")==1){ + Integer serviceTime = vo.getServiceTime(); + Integer serviceTimes = vo.getServiceTimes(); + partyMemberAnalysisVOS.get(param.get("index")).setServiceTime(partyMemberAnalysisVOS.get(param.get("index")).getServiceTime()+serviceTime); + partyMemberAnalysisVOS.get(param.get("index")).setServiceTimes(partyMemberAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes); + }else{ + partyMemberAnalysisVOS.add(vo); + } + } + } + } + } + + //报道党员统计积分 + for (PartyMemberAnalysisVO memberAnalysisVO : partyMemberAnalysisVOS) { + Long userId = memberAnalysisVO.getMemberId(); + LambdaQueryWrapper<NewFightNeedProblemClaim> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(NewFightNeedProblemClaim::getUserId,userId); + List<NewFightNeedProblemClaim> newFightNeedProblemInventories = newFightNeedProblemClaimMapper.selectList(wrapper); + long sumAward = 0L; + for (NewFightNeedProblemClaim inventory : newFightNeedProblemInventories) { + String taskId = inventory.getTaskId(); + NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId); + String award = newFightNeedProblemInventory.getAward(); + sumAward = Long.parseLong(award) + sumAward; + } + memberAnalysisVO.setPartyCount(sumAward); + } + List<PartyExcelDO> list = new ArrayList<>(); + for (PartyMemberAnalysisVO memberAnalysisVO : partyMemberAnalysisVOS) { + PartyExcelDO partyExcelDO = new PartyExcelDO(); + partyExcelDO.setBelongTo(memberAnalysisVO.getBelongTo()); + partyExcelDO.setOrgName(memberAnalysisVO.getOrgName()); + partyExcelDO.setUnitName(memberAnalysisVO.getUnitName()); + partyExcelDO.setMemberName(memberAnalysisVO.getMemberName()); + partyExcelDO.setBelongCommunity(memberAnalysisVO.getBelongCommunity()); + partyExcelDO.setServiceTimes(memberAnalysisVO.getServiceTimes()); + partyExcelDO.setServiceTime(memberAnalysisVO.getServiceTime()); + partyExcelDO.setPartyCount(memberAnalysisVO.getPartyCount()); + list.add(partyExcelDO); + } + return list; } -- Gitblit v1.7.1