From 70d2a5d0f9c6951b2d4cac954041ed73582ff7eb Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 09 六月 2025 11:54:00 +0800
Subject: [PATCH] 6.9新增登录失败冻结逻辑

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java |  231 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 181 insertions(+), 50 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 ca3aaf0..6986fd9 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
@@ -1135,7 +1135,7 @@
     @Override
     public R serviceStatic(ServiceStaticDTO serviceStaticDTO) {
         ServiceStaticsVO serviceStaticsVO = new ServiceStaticsVO();
-        if (serviceStaticDTO.getCheckUnitId() != null)
+        if (serviceStaticDTO.getCheckUnitId() != null && serviceStaticDTO.getCheckUnitId()> 0)
         {
             //单位服务统计
             serviceStaticsVO =
@@ -1145,7 +1145,7 @@
                     serviceStaticDTO.getYear(), serviceStaticDTO.getServiceType());
 
 
-           if(serviceStaticDTO.getServiceType()==1  || serviceStaticDTO.getServiceType()==null)
+           if(serviceStaticDTO.getServiceType()==null  || serviceStaticDTO.getServiceType()==1)
            {
                List<NewFightNeedProblemClaim> list=baseMapper.getNewServiceNum("",serviceStaticDTO.getCheckUnitId()+"");
                if(list.size()>0)
@@ -1163,21 +1163,23 @@
                        String Ltime=item.getServiceTime();
                        if(!StringUtils.isEmpty(Ltime))
                        {
-                           double time=(double)(Long.valueOf(Ltime)/3600000);
-                           hours=hours+(time);
-
-                           DecimalFormat df = new DecimalFormat("#.00");
+                           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("#.00");
+                   DecimalFormat df = new DecimalFormat("#.##");
                    String formattedNumber = df.format(hours);
                    double result = Double.parseDouble(formattedNumber);
                    serviceStaticsVO.setHours(result);
@@ -1188,7 +1190,8 @@
         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"));
             Long checkUnitId = null;
@@ -1196,12 +1199,12 @@
                 checkUnitId = comPbMemberDO.getCheckUnitId();
             }
 
+            serviceStaticsVO = this.baseMapper.selectStatsUser(serviceStaticDTO.getPhone(),checkUnitId+"", serviceStaticDTO.getYear());
 
             List<ServiceDetailStaticsVO> serviceDetailStaticsVOList=this.baseMapper.selectServiceDetailListForPersonal(checkUnitId, serviceStaticDTO.getPhone(),
                     serviceStaticDTO.getYear(), serviceStaticDTO.getServiceType());
 
-
-            if(serviceStaticDTO.getServiceType()==1  || serviceStaticDTO.getServiceType()==null)
+            if(serviceStaticDTO.getServiceType()==null  || serviceStaticDTO.getServiceType()==1)
             {
                 //获取新需求服务列表
                 List<NewFightNeedProblemClaim> list=baseMapper.getNewServiceNum(serviceStaticDTO.getPhone(),"");
@@ -1220,22 +1223,24 @@
                         String Ltime=item.getServiceTime();
                         if(!StringUtils.isEmpty(Ltime))
                         {
-                            double time=(double)(Long.valueOf(Ltime)/3600000);
-
-                            hours=hours+(time);
-                            DecimalFormat df = new DecimalFormat("#.00");
+                            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("#.00");
+                    DecimalFormat df = new DecimalFormat("#.##");
                     String formattedNumber = df.format(hours);
                     double result = Double.parseDouble(formattedNumber);
                     serviceStaticsVO.setHours(result);
@@ -1262,9 +1267,12 @@
         activityVO.setPartyMemberCount(comActDAO.selectUnitCount());
         activityVO.setUnitCount(comActDAO.selectMemberCount());
         //获取单位活动统计数据(邻里圈)
-        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS = comActNeighborCircleDAO.institutionalUnitServiceAnalysis(beginTime, endTime, belongTo,communityId);
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS = comActNeighborCircleDAO.institutionalUnitServiceAnalysis(beginTime, endTime, belongTo,communityId,unitId);
         //获取单位活动统计数据(活动)
-        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS1 = comActNeighborCircleDAO.institutionalUnitActivityAnalysis(beginTime, endTime, belongTo,communityId);
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS1 = comActNeighborCircleDAO.institutionalUnitActivityAnalysis(beginTime, endTime, belongTo,communityId,unitId);
+        //获取新双挣双评清单任务
+        List<UnitActivityAnalysisVO> newTaskList=comActNeighborCircleDAO.getNewTaskList(beginTime, endTime, belongTo,communityId);
+
         if (unitActivityAnalysisVOS.size()>0){
             for (UnitActivityAnalysisVO unitActivityAnalysisVO : unitActivityAnalysisVOS){
                 if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO)){
@@ -1279,6 +1287,28 @@
                 }
             }
         }
+
+        if (newTaskList.size()>0){
+            for (UnitActivityAnalysisVO item : newTaskList){
+                if (ObjectUtils.isNotEmpty(item)){
+                    if (ObjectUtils.isNotEmpty(item.getUnitId())){
+                        //设置单位名称
+                        item.setUnitName(comActDAO.selectUnitName(item.getUnitId()));
+                        //统计活动表中的活动信息
+                    }
+                    if (ObjectUtils.isNotEmpty(item.getCommunityId())){
+                        item.setCommunityName(comActDAO.selectById(item.getCommunityId()).getName());
+                    }
+
+                    Double time=(item.getServiceTime()/3600000);
+                    DecimalFormat df = new DecimalFormat("#.##");
+                    String formattedNumber = df.format(time);
+                    Double result = Double.parseDouble(formattedNumber);
+                    item.setServiceTime(result);
+                }
+            }
+        }
+
         //活动表数据处理
         if (unitActivityAnalysisVOS1.size()>0){
             for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS1) {
@@ -1288,7 +1318,7 @@
                         Map<String, Integer> param = alreadyAnalysis(vo.getUnitId(), unitActivityAnalysisVOS);
                         if (param.get("flag")==1){
                             //已有数据,将时长,次数相加
-                            Integer serviceTime = vo.getServiceTime();
+                            Double 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);
@@ -1309,16 +1339,59 @@
                 }
             }
         }
+
+        if (newTaskList.size()>0){
+            for (UnitActivityAnalysisVO item : newTaskList){
+                if (ObjectUtils.isNotEmpty(item)){
+
+                    if (ObjectUtils.isNotEmpty(item.getUnitId())){
+                        //判断邻里圈统计中是否已有该单位数据
+                        Map<String, Integer> param = alreadyAnalysis(item.getUnitId(), unitActivityAnalysisVOS);
+                        if (param.get("flag")==1){
+                            //已有数据,将时长,次数相加
+                            Double serviceTime = unitActivityAnalysisVOS.get(param.get("index")).getServiceTime()+item.getServiceTime();
+                            Integer serviceTimes = item.getServiceTimes();
+
+                            DecimalFormat df2 = new DecimalFormat("#.##");
+                            String formattedNumber2 = df2.format(serviceTime);
+                            Double result2 = Double.parseDouble(formattedNumber2);
+
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTime(result2);
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTimes(unitActivityAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes);
+                        }else {
+                            //新数据,获取单位,社区名
+                            item.setUnitName(comActDAO.selectUnitName(item.getUnitId()));
+                            if (ObjectUtils.isNotEmpty(item.getCommunityId()))
+                            {
+                                ComActDO actDO=comActDAO.selectById(item.getCommunityId());
+                                if(actDO!=null && !StringUtils.isEmpty(actDO.getName()))
+                                {
+                                    item.setCommunityName(actDO.getName());
+                                }
+                            }
+
+                            unitActivityAnalysisVOS.add(item);
+                        }
+                    }
+
+                }
+            }
+        }
+
+
+
         //获取党员活动统计数据
         List<PartyMemberAnalysisVO> partyMemberAnalysisVOS = comActNeighborCircleDAO.institutionalPartyMemberServiceAnalysis(beginTime, endTime, belongTo,communityId,unitId,searchContent);
         List<PartyMemberAnalysisVO> partyMemberAnalysisVOS1 = comActNeighborCircleDAO.institutionalPartyMemberActAnalysis(beginTime, endTime, belongTo,communityId,unitId,searchContent);
+        //获取新双挣双评清单任务
+        List<PartyMemberAnalysisVO> newPartyMemberList = comActNeighborCircleDAO.getNewPartyMemberTaskList(beginTime, endTime, belongTo,communityId,unitId,searchContent);
         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();
+                            Double 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);
@@ -1329,6 +1402,39 @@
                 }
             }
         }
+
+        if (newPartyMemberList.size()>0){
+            for (PartyMemberAnalysisVO item : newPartyMemberList)
+            {
+                Double time=(item.getServiceTime()/3600000);
+                DecimalFormat df = new DecimalFormat("#.##");
+                String formattedNumber = df.format(time);
+                Double result = Double.parseDouble(formattedNumber);
+                item.setServiceTime(result);
+                if (ObjectUtils.isNotEmpty(item)){
+                    if (ObjectUtils.isNotEmpty(item.getMemberId())){
+                        Map<String, Integer> param = memberAlreadyAnalysis(item.getMemberId(), partyMemberAnalysisVOS);
+                        if (param.get("flag")==1){
+                            Double serviceTime = partyMemberAnalysisVOS.get(param.get("index")).getServiceTime()+item.getServiceTime();
+                            Integer serviceTimes = item.getServiceTimes();
+
+                            DecimalFormat df1 = new DecimalFormat("#.##");
+                            String formattedNumber1 = df1.format(serviceTime);
+                            Double result1 = Double.parseDouble(formattedNumber1);
+
+                            partyMemberAnalysisVOS.get(param.get("index")).setServiceTime(result1);
+                            partyMemberAnalysisVOS.get(param.get("index")).setServiceTimes(partyMemberAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes);
+                        }else{
+
+
+                            partyMemberAnalysisVOS.add(item);
+                        }
+                    }
+                }
+            }
+        }
+
+
         //报道单位统计积分
         List<NewFightNeedProblemInventory> allList = newFightNeedProblemInventoryMapper.selectAll();
         Map<Long, String> awardMap = allList.stream().filter(Objects::nonNull).collect(Collectors.toMap(NewFightNeedProblemInventory::getId, NewFightNeedProblemInventory::getAward));
@@ -1341,7 +1447,7 @@
             Map<String, Long> collectMap = inventories.stream()
                     .collect(Collectors.groupingBy(NewFightNeedProblemClaim::getTaskId, Collectors.counting()));
             long sum = 0l;
-            if(unitVO.getAwardSum()!=null || unitVO.getAwardSum()!=0l )
+            if(unitVO.getAwardSum()!=null)
             {
                 sum=unitVO.getAwardSum();
             }
@@ -1352,49 +1458,65 @@
 //                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;
+                if(!StringUtils.isEmpty(award) )
+                {
+                    long i = Long.parseLong(award) * count;
+                    sum = sum + i;
+                }
             }
             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 )
+        for (PartyMemberAnalysisVO memberAnalysisVO : partyMemberAnalysisVOS)
+        {
+            if(memberAnalysisVO!=null)
             {
-                sumAward=memberAnalysisVO.getPartyCount();
-            }
+                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;
+                if(memberAnalysisVO.getPartyCount()!=null)
+                {
+                    sumAward=memberAnalysisVO.getPartyCount();
+                }
+
+                for (NewFightNeedProblemClaim inventory : newFightNeedProblemInventories) {
+                    String taskId = inventory.getTaskId();
+                    NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId);
+
+                    if(newFightNeedProblemInventory!=null && !StringUtils.isEmpty(newFightNeedProblemInventory.getAward()))
+                    {
+                        String award = newFightNeedProblemInventory.getAward();
+
+                        if(!StringUtils.isEmpty(award) )
+                        {
+                            sumAward = Long.parseLong(award) + sumAward;
+                        }
+                    }
+
+                }
+                memberAnalysisVO.setPartyCount(sumAward);
             }
-            memberAnalysisVO.setPartyCount(sumAward);
         }
 
         //统计总时长和总次数
         Integer unitServiceCount=0;
-        Integer unitServiceTotalTime=0;
+        Double unitServiceTotalTime=0.0;
         Integer memberServiceCount=0;
-        Integer memberServiceTotalTome=0;
+        Double memberServiceTotalTome=0.0;
         long awardSumCount=0L;
         long partySumCount=0L;
         for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS) {
             //避免空指针
             if (ObjectUtils.isNotEmpty(vo)){
                 if (ObjectUtils.isNotEmpty(vo.getServiceTime())){
-                    unitServiceCount+=vo.getServiceTime();
+                    unitServiceTotalTime+=vo.getServiceTime();
                 }
                 if (ObjectUtils.isNotEmpty(vo.getServiceTimes())){
-                    unitServiceTotalTime+=vo.getServiceTimes();
+                    unitServiceCount+=vo.getServiceTimes();
                 }
             }
         }
@@ -1402,10 +1524,10 @@
             //避免空指针
             if (ObjectUtils.isNotEmpty(vo)){
                 if (ObjectUtils.isNotEmpty(vo.getServiceTime())){
-                    memberServiceCount+=vo.getServiceTime();
+                    memberServiceTotalTome+=vo.getServiceTime();
                 }
                 if (ObjectUtils.isNotEmpty(vo.getServiceTimes())){
-                    memberServiceTotalTome+=vo.getServiceTimes();
+                    memberServiceCount+=vo.getServiceTimes();
                 }
             }
         }
@@ -1453,6 +1575,15 @@
              //   ListUtil.sortByProperty(unitActivityAnalysisVOS,"");
             }
         }
+        else
+        {
+            //按时长排序
+            ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTime");
+            ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTime");
+
+            ListUtil.reverse(unitActivityAnalysisVOS);
+            ListUtil.reverse(partyMemberAnalysisVOS);
+        }
         //处理分页
         PageVO<List<UnitActivityAnalysisVO>> unitPage=new PageVO<>();
         PageVO<List<PartyMemberAnalysisVO>> memberPage=new PageVO<>();
@@ -1476,10 +1607,10 @@
         activityVO.setPartyMemberList(memberPage);
 
         //党员数据 聚合
-        Map<String, Long> map = new HashMap<>();
+        Map<String, Double> map = new HashMap<>();
         partyMemberAnalysisVOS.forEach(vo->{
             String name = vo.getBelongTo();
-            Long time = Long.valueOf(vo.getServiceTime());
+            Double time = vo.getServiceTime();
             if (map.containsKey(name)) {
                 time += map.get(name);
             }
@@ -1510,9 +1641,9 @@
             endTime=year.toString().concat("-12-31");
         }
         //获取单位活动统计数据(邻里圈)
-        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS = comActNeighborCircleDAO.institutionalUnitServiceAnalysis(beginTime, endTime, belongTo,communityId);
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS = comActNeighborCircleDAO.institutionalUnitServiceAnalysis(beginTime, endTime, belongTo,communityId,null);
         //获取单位活动统计数据(活动)
-        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS1 = comActNeighborCircleDAO.institutionalUnitActivityAnalysis(beginTime, endTime, belongTo,communityId);
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS1 = comActNeighborCircleDAO.institutionalUnitActivityAnalysis(beginTime, endTime, belongTo,communityId,null);
         if (!unitActivityAnalysisVOS.isEmpty()){
             for (UnitActivityAnalysisVO unitActivityAnalysisVO : unitActivityAnalysisVOS){
                 if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO)){
@@ -1536,7 +1667,7 @@
                         Map<String, Integer> param = alreadyAnalysis(vo.getUnitId(), unitActivityAnalysisVOS);
                         if (param.get("flag")==1){
                             //已有数据,将时长,次数相加
-                            Integer serviceTime = vo.getServiceTime();
+                            Double 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);
@@ -1611,7 +1742,7 @@
                     if (ObjectUtils.isNotEmpty(vo.getMemberId())){
                         Map<String, Integer> param = memberAlreadyAnalysis(vo.getMemberId(), partyMemberAnalysisVOS);
                         if (param.get("flag")==1){
-                            Integer serviceTime = vo.getServiceTime();
+                            Double 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);

--
Gitblit v1.7.1