@ -1,7 +1,10 @@ 
			
		
	
		
			
				
					package  com.epmet.service.evaluationindex.extract.dataToIndex.impl ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					import  com.epmet.commons.tools.constant.NumConstant ;  
			
		
	
		
			
				
					import  com.epmet.commons.tools.exception.ExceptionUtils ;  
			
		
	
		
			
				
					import  com.epmet.commons.tools.utils.ConvertUtils ;  
			
		
	
		
			
				
					import  com.epmet.commons.tools.utils.DateUtils ;  
			
		
	
		
			
				
					import  com.epmet.dto.extract.UserGroupIdDTO ;  
			
		
	
		
			
				
					import  com.epmet.dto.indexcollect.result.CpcIndexCommonDTO ;  
			
		
	
		
			
				
					import  com.epmet.entity.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyEntity ;  
			
		
	
		
			
				
					import  com.epmet.service.evaluationindex.extract.dataToIndex.CalCpcIndexService ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -9,8 +12,10 @@ import com.epmet.service.evaluationindex.extract.todata.*; 
			
		
	
		
			
				
					import  com.epmet.service.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyService ;  
			
		
	
		
			
				
					import  com.epmet.service.group.GroupDataService ;  
			
		
	
		
			
				
					import  com.epmet.service.stats.DimCustomerPartymemberService ;  
			
		
	
		
			
				
					import  com.google.common.collect.Lists ;  
			
		
	
		
			
				
					import  lombok.extern.slf4j.Slf4j ;  
			
		
	
		
			
				
					import  org.apache.commons.collections4.CollectionUtils ;  
			
		
	
		
			
				
					import  org.apache.commons.collections4.MapUtils ;  
			
		
	
		
			
				
					import  org.springframework.beans.factory.annotation.Autowired ;  
			
		
	
		
			
				
					import  org.springframework.stereotype.Service ;  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -20,6 +25,8 @@ import java.util.ArrayList; 
			
		
	
		
			
				
					import  java.util.HashMap ;  
			
		
	
		
			
				
					import  java.util.List ;  
			
		
	
		
			
				
					import  java.util.Map ;  
			
		
	
		
			
				
					import  java.util.concurrent.CompletableFuture ;  
			
		
	
		
			
				
					import  java.util.stream.Collectors ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					/ * *  
			
		
	
		
			
				
					 *  党员相关  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -134,6 +141,237 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					        factIndexPartyAblityCpcMonthlyService . delAndSavePartyAblityCpcMonthly ( customerId , monthId , indexPartyAblityCpcList ) ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    @Override  
			
		
	
		
			
				
					    public  void  calCpcPartyAbilityV2 ( String  customerId ,  String  monthId )  {  
			
		
	
		
			
				
					        //1、构造初始值 当前客户下所有的党员
  
			
		
	
		
			
				
					        List < FactIndexPartyAblityCpcMonthlyEntity >  indexPartyAblityCpcList  =  dimCustomerPartymemberService . selectPartyMemberList ( customerId ) ;  
			
		
	
		
			
				
					        if  ( CollectionUtils . isEmpty ( indexPartyAblityCpcList ) )  {  
			
		
	
		
			
				
					            log . info ( "dim_customer_partymember do not any records customerId="  +  customerId ) ;  
			
		
	
		
			
				
					            return ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        //可以先查询出每个党员的 自建群
  
			
		
	
		
			
				
					        Map < String ,  List < String > >  userCreatedGroups  =  queryUserCreatedGroups ( customerId ,  indexPartyAblityCpcList ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        CompletableFuture < Map < String ,  Integer > >  createTopicCountFuture  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					            return  calCreateTopicCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        CompletableFuture < Map < String ,  Integer > >  joinTopicCountFuture  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					            return  calJoinTopicCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        CompletableFuture < Map < String ,  Integer > >  shiftIssueCountFuture  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					            return  calShiftIssueCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        CompletableFuture < Map < String ,  Integer > >  shiftProjectCountFuture  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					            return  calShiftProjectCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        CompletableFuture < Map < String ,  Integer > >  joinThreeMeetsCountFuture  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					            return  calJoinThreeMeetsCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        CompletableFuture < Map < String ,  Integer > >  groupUserCountFuture  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					            return  calgroupUserCount ( customerId ,  monthId ,  indexPartyAblityCpcList ,  userCreatedGroups ) ;  
			
		
	
		
			
				
					        } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        CompletableFuture < Map < String ,  Integer > >  groupActiveUserCountFuture  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					            return  calGroupActiveUserCount ( customerId ,  monthId ,  indexPartyAblityCpcList ,  userCreatedGroups ) ;  
			
		
	
		
			
				
					        } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        CompletableFuture < Map < String ,  Integer > >  groupTopicCountFuture  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					            return  calGroupTopicCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        CompletableFuture < Map < String ,  BigDecimal > >  topicToIssueRatioFuture  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					            return  caltopicToIssueRatio ( customerId ,  monthId ,  indexPartyAblityCpcList ,  userCreatedGroups ) ;  
			
		
	
		
			
				
					        } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        Map < String ,  Integer >  createTopicCountMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  joinTopicCountMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  shiftIssueCountMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  shiftProjectCountMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  joinThreeMeetsCountMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  groupUserCountMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  groupActiveUserCountMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  groupTopicCountMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        Map < String ,  BigDecimal >  topicToIssueRatioMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        try  {  
			
		
	
		
			
				
					            //1、党员提出话题数
  
			
		
	
		
			
				
					            createTopicCountMap  =  createTopicCountFuture . get ( ) ;  
			
		
	
		
			
				
					        }   catch  ( Exception  e )  {  
			
		
	
		
			
				
					            log . error ( "党员相关-党建能力原始指标值【党员提出话题数】计算异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        try {  
			
		
	
		
			
				
					            //2、党员参与话题数(支持、反对、评论、浏览)---目前只统计  党员评论话题次数之和
  
			
		
	
		
			
				
					            joinTopicCountMap  =  joinTopicCountFuture . get ( ) ;  
			
		
	
		
			
				
					        }  catch  ( Exception  e )  {  
			
		
	
		
			
				
					            log . error ( "党员相关-党建能力原始指标值【党员参与话题数】计算异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        try {  
			
		
	
		
			
				
					            //3、党员提出的话题转议题数
  
			
		
	
		
			
				
					            shiftIssueCountMap  =  shiftIssueCountFuture . get ( ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        }  catch  ( Exception  e )  {  
			
		
	
		
			
				
					            log . error ( "党员相关-党建能力原始指标值【党员提出的话题转议题数】计算异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        try {  
			
		
	
		
			
				
					            //4、党员提出的议题转项目数
  
			
		
	
		
			
				
					            shiftProjectCountMap  =  shiftProjectCountFuture . get ( ) ;  
			
		
	
		
			
				
					        }  catch  ( Exception  e )  {  
			
		
	
		
			
				
					            log . error ( "党员相关-党建能力原始指标值【党员提出的议题转项目数】计算异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        try {  
			
		
	
		
			
				
					            //5、参加“三会一课”次数 默认0 :当前用户在本月内活动签到次数 限制活动分类编码100001 三会一课
  
			
		
	
		
			
				
					            joinThreeMeetsCountMap  =  joinThreeMeetsCountFuture . get ( ) ;  
			
		
	
		
			
				
					        }  catch  ( Exception  e )  {  
			
		
	
		
			
				
					            log . error ( "党员相关-党建能力原始指标值【参加“三会一课”次数】计算异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        try {  
			
		
	
		
			
				
					            //6、党员自建群群众人数 :和评价周期无关
  
			
		
	
		
			
				
					            groupUserCountMap  =  groupUserCountFuture . get ( ) ;  
			
		
	
		
			
				
					        }  catch  ( Exception  e )  {  
			
		
	
		
			
				
					            log . error ( "党员相关-党建能力原始指标值【党员自建群群众人数】计算异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        try {  
			
		
	
		
			
				
					            //7、党员自建群活跃群众人数
  
			
		
	
		
			
				
					            groupActiveUserCountMap  =  groupActiveUserCountFuture . get ( ) ;  
			
		
	
		
			
				
					        }  catch  ( Exception  e )  {  
			
		
	
		
			
				
					            log . error ( "党员相关-党建能力原始指标值【党员自建群活跃群众人数】计算异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        try {  
			
		
	
		
			
				
					            //8、党员自建群活跃度——话题数:从话题表中统计党员自建群i的话题总数;对所有自建群话题数累加。
  
			
		
	
		
			
				
					            groupTopicCountMap  =  groupTopicCountFuture . get ( ) ;  
			
		
	
		
			
				
					        }  catch  ( Exception  e )  {  
			
		
	
		
			
				
					            log . error ( "党员相关-党建能力原始指标值【党员自建群活跃度】计算异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        try {  
			
		
	
		
			
				
					            //9、自建群活跃度——议题转项目率
  
			
		
	
		
			
				
					            topicToIssueRatioMap  =  topicToIssueRatioFuture . get ( ) ;  
			
		
	
		
			
				
					        }  catch  ( Exception  e )  {  
			
		
	
		
			
				
					            log . error ( "党员相关-党建能力原始指标值【自建群活跃度】计算异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        List < FactIndexPartyAblityCpcMonthlyEntity >  list  =  new  ArrayList < > ( ) ;  
			
		
	
		
			
				
					        List < List < FactIndexPartyAblityCpcMonthlyEntity > >  partionList  =  Lists . partition ( indexPartyAblityCpcList ,  500 ) ;  
			
		
	
		
			
				
					        List < CompletableFuture < List < FactIndexPartyAblityCpcMonthlyEntity > > >  entityFutures  =  new  ArrayList < > ( ) ;  
			
		
	
		
			
				
					        //2、计算实际值,更新
  
			
		
	
		
			
				
					        for  ( List < FactIndexPartyAblityCpcMonthlyEntity >  partList  :  partionList )  {  
			
		
	
		
			
				
					            String  quarterId  =  DateUtils . getQuarterId ( monthId ) ;  
			
		
	
		
			
				
					            String  yearId  =  DateUtils . getYearId ( monthId ) ;  
			
		
	
		
			
				
					            Map < String ,  Integer >  finalCreateTopicCountMap  =  createTopicCountMap ;  
			
		
	
		
			
				
					            Map < String ,  Integer >  finalJoinTopicCountMap  =  joinTopicCountMap ;  
			
		
	
		
			
				
					            Map < String ,  Integer >  finalShiftIssueCountMap  =  shiftIssueCountMap ;  
			
		
	
		
			
				
					            Map < String ,  Integer >  finalShiftProjectCountMap  =  shiftProjectCountMap ;  
			
		
	
		
			
				
					            Map < String ,  Integer >  finalJoinThreeMeetsCountMap  =  joinThreeMeetsCountMap ;  
			
		
	
		
			
				
					            Map < String ,  Integer >  finalGroupUserCountMap  =  groupUserCountMap ;  
			
		
	
		
			
				
					            Map < String ,  Integer >  finalGroupActiveUserCountMap  =  groupActiveUserCountMap ;  
			
		
	
		
			
				
					            Map < String ,  Integer >  finalGroupTopicCountMap  =  groupTopicCountMap ;  
			
		
	
		
			
				
					            Map < String ,  BigDecimal >  finalTopicToIssueRatioMap  =  topicToIssueRatioMap ;  
			
		
	
		
			
				
					            //目前平阴2100多个党员,200个一组,开一个线程
  
			
		
	
		
			
				
					            CompletableFuture < List < FactIndexPartyAblityCpcMonthlyEntity > >  future  =  CompletableFuture . supplyAsync ( ( )  - >  {  
			
		
	
		
			
				
					                return  constructEntity ( monthId ,  
			
		
	
		
			
				
					                        quarterId ,  
			
		
	
		
			
				
					                        yearId ,  
			
		
	
		
			
				
					                        partList ,  
			
		
	
		
			
				
					                        finalCreateTopicCountMap ,  
			
		
	
		
			
				
					                        finalJoinTopicCountMap ,  
			
		
	
		
			
				
					                        finalShiftIssueCountMap ,  
			
		
	
		
			
				
					                        finalShiftProjectCountMap ,  
			
		
	
		
			
				
					                        finalJoinThreeMeetsCountMap ,  
			
		
	
		
			
				
					                        finalGroupUserCountMap ,  
			
		
	
		
			
				
					                        finalGroupActiveUserCountMap ,  
			
		
	
		
			
				
					                        finalGroupTopicCountMap ,  
			
		
	
		
			
				
					                        finalTopicToIssueRatioMap ) ;  
			
		
	
		
			
				
					            } ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            entityFutures . add ( future ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        for  ( CompletableFuture < List < FactIndexPartyAblityCpcMonthlyEntity > >  entityFuture  :  entityFutures )  {  
			
		
	
		
			
				
					            try  {  
			
		
	
		
			
				
					                List < FactIndexPartyAblityCpcMonthlyEntity >  partList  =  entityFuture . get ( ) ;  
			
		
	
		
			
				
					                list . addAll ( partList ) ;  
			
		
	
		
			
				
					            }  catch  ( InterruptedException  e )  {  
			
		
	
		
			
				
					                log . error ( "党员相关-党建能力原始指标构造异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					            }  catch  ( Exception  e )  {  
			
		
	
		
			
				
					                log . error ( "党员相关-党建能力原始指标构造异常:{}" ,  ExceptionUtils . getErrorStackTrace ( e ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        //3、删除之前统计过的、批插入批量插入
  
			
		
	
		
			
				
					        factIndexPartyAblityCpcMonthlyService . delAndSavePartyAblityCpcMonthly ( customerId ,  monthId ,  list ) ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    private  List < FactIndexPartyAblityCpcMonthlyEntity >  constructEntity ( String  monthId ,  
			
		
	
		
			
				
					                                                                       String  quarterId ,  
			
		
	
		
			
				
					                                                                       String  yearId ,  
			
		
	
		
			
				
					                                                                       List < FactIndexPartyAblityCpcMonthlyEntity >  partList ,  
			
		
	
		
			
				
					                                                                       Map < String ,  Integer >  createTopicCountMap ,  
			
		
	
		
			
				
					                                                                       Map < String ,  Integer >  joinTopicCountMap ,  
			
		
	
		
			
				
					                                                                       Map < String ,  Integer >  shiftIssueCountMap ,  
			
		
	
		
			
				
					                                                                       Map < String ,  Integer >  shiftProjectCountMap ,  
			
		
	
		
			
				
					                                                                       Map < String ,  Integer >  joinThreeMeetsCountMap ,  
			
		
	
		
			
				
					                                                                       Map < String ,  Integer >  groupUserCountMap ,  
			
		
	
		
			
				
					                                                                       Map < String ,  Integer >  groupActiveUserCountMap ,  
			
		
	
		
			
				
					                                                                       Map < String ,  Integer >  groupTopicCountMap ,  
			
		
	
		
			
				
					                                                                       Map < String ,  BigDecimal >  topicToIssueRatioMap )  {  
			
		
	
		
			
				
					        List < FactIndexPartyAblityCpcMonthlyEntity >  resultList  =  new  ArrayList < > ( ) ;  
			
		
	
		
			
				
					        for  ( FactIndexPartyAblityCpcMonthlyEntity  temp  :  partList )  {  
			
		
	
		
			
				
					            FactIndexPartyAblityCpcMonthlyEntity  indexPartyAblityCpcEntity  =  ConvertUtils . sourceToTarget ( temp ,  FactIndexPartyAblityCpcMonthlyEntity . class ) ;  
			
		
	
		
			
				
					            indexPartyAblityCpcEntity . setMonthId ( monthId ) ;  
			
		
	
		
			
				
					            indexPartyAblityCpcEntity . setQuarterId ( quarterId ) ;  
			
		
	
		
			
				
					            indexPartyAblityCpcEntity . setYearId ( yearId ) ;  
			
		
	
		
			
				
					            //1、党员提出话题数
  
			
		
	
		
			
				
					            if  ( MapUtils . isNotEmpty ( createTopicCountMap )  & &  createTopicCountMap . containsKey ( indexPartyAblityCpcEntity . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                indexPartyAblityCpcEntity . setCreateTopicCount ( createTopicCountMap . get ( indexPartyAblityCpcEntity . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //2、党员参与话题数(支持、反对、评论、浏览)---目前只统计  党员评论话题次数之和
  
			
		
	
		
			
				
					            if  ( MapUtils . isNotEmpty ( joinTopicCountMap )  & &  joinTopicCountMap . containsKey ( indexPartyAblityCpcEntity . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                indexPartyAblityCpcEntity . setJoinTopicCount ( joinTopicCountMap . get ( indexPartyAblityCpcEntity . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //3、党员提出的话题转议题数
  
			
		
	
		
			
				
					            if  ( MapUtils . isNotEmpty ( shiftIssueCountMap )  & &  shiftIssueCountMap . containsKey ( indexPartyAblityCpcEntity . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                indexPartyAblityCpcEntity . setShiftIssueCount ( shiftIssueCountMap . get ( indexPartyAblityCpcEntity . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //4、党员提出的议题转项目数
  
			
		
	
		
			
				
					            if  ( MapUtils . isNotEmpty ( shiftProjectCountMap )  & &  shiftProjectCountMap . containsKey ( indexPartyAblityCpcEntity . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                indexPartyAblityCpcEntity . setShiftProjectCount ( shiftProjectCountMap . get ( indexPartyAblityCpcEntity . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //5、参加“三会一课”次数 目前没有此业务,默认0 : 当前用户在本月内活动签到次数 限制活动分类编码100001 三会一课
  
			
		
	
		
			
				
					            if  ( MapUtils . isNotEmpty ( joinThreeMeetsCountMap )  & &  joinThreeMeetsCountMap . containsKey ( indexPartyAblityCpcEntity . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                indexPartyAblityCpcEntity . setJoinThreeMeetsCount ( joinThreeMeetsCountMap . get ( indexPartyAblityCpcEntity . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //6、党员自建群群众人数
  
			
		
	
		
			
				
					            if  ( MapUtils . isNotEmpty ( groupUserCountMap )  & &  groupUserCountMap . containsKey ( indexPartyAblityCpcEntity . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                indexPartyAblityCpcEntity . setGroupUserCount ( groupUserCountMap . get ( indexPartyAblityCpcEntity . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //7、党员自建群活跃群众人数
  
			
		
	
		
			
				
					            if  ( MapUtils . isNotEmpty ( groupActiveUserCountMap )  & &  groupActiveUserCountMap . containsKey ( indexPartyAblityCpcEntity . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                indexPartyAblityCpcEntity . setGroupActiveUserCount ( groupActiveUserCountMap . get ( indexPartyAblityCpcEntity . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //8、党员自建群活跃度——话题数
  
			
		
	
		
			
				
					            if  ( MapUtils . isNotEmpty ( groupTopicCountMap )  & &  groupTopicCountMap . containsKey ( indexPartyAblityCpcEntity . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                indexPartyAblityCpcEntity . setGroupTopicCount ( groupTopicCountMap . get ( indexPartyAblityCpcEntity . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //9、自建群活跃度——议题转项目率
  
			
		
	
		
			
				
					            if  ( MapUtils . isNotEmpty ( topicToIssueRatioMap )  & &  topicToIssueRatioMap . containsKey ( indexPartyAblityCpcEntity . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                indexPartyAblityCpcEntity . setTopicToIssueRatio ( topicToIssueRatioMap . get ( indexPartyAblityCpcEntity . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            resultList . add ( indexPartyAblityCpcEntity ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        return  resultList ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					     
			
		
	
		
			
				
					     
			
		
	
		
			
				
					    / * *  
			
		
	
		
			
				
					     *  @param  customerId  
			
		
	
		
			
				
					     *  @param  partyMemberList  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -144,7 +382,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					     * * /  
			
		
	
		
			
				
					    private  Map < String ,  List < String > >  queryUserCreatedGroups ( String  customerId ,  List < FactIndexPartyAblityCpcMonthlyEntity >  partyMemberList )  {  
			
		
	
		
			
				
					        Map < String ,  List < String > >  map  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        for  ( FactIndexPartyAblityCpcMonthlyEntity  partyMember  :  partyMemberList )  {  
			
		
	
		
			
				
					        / * for  ( FactIndexPartyAblityCpcMonthlyEntity  partyMember  :  partyMemberList )  {  
			
		
	
		
			
				
					            //查询当前党员建了多少个组
  
			
		
	
		
			
				
					            List < String >  groupIdList = factOriginGroupMainDailyService . selectGroupIds ( customerId , partyMember . getUserId ( ) ) ;  
			
		
	
		
			
				
					            if  ( CollectionUtils . isEmpty ( groupIdList ) )  {  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -153,6 +391,17 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					            }  else  {  
			
		
	
		
			
				
					                map . put ( partyMember . getUserId ( ) ,  groupIdList ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					        } * /  
			
		
	
		
			
				
					        //查询出所有的小组,按照组长
  
			
		
	
		
			
				
					        List < UserGroupIdDTO >  list  =  factOriginGroupMainDailyService . selectGroupAndLeader ( customerId ) ;  
			
		
	
		
			
				
					        Map < String ,  List < String > >  userGroupIdMap  =  list . stream ( ) . collect ( Collectors . toMap ( UserGroupIdDTO : : getUserId ,  UserGroupIdDTO : : getGroupIdList ) ) ;  
			
		
	
		
			
				
					        for  ( FactIndexPartyAblityCpcMonthlyEntity  partyMember  :  partyMemberList )  {  
			
		
	
		
			
				
					            if  ( MapUtils . isEmpty ( userGroupIdMap )  | |  ! userGroupIdMap . containsKey ( partyMember . getUserId ( ) ) )  {  
			
		
	
		
			
				
					                map . put ( partyMember . getUserId ( ) ,  new  ArrayList < > ( ) ) ;  
			
		
	
		
			
				
					                continue ;  
			
		
	
		
			
				
					            }  else  {  
			
		
	
		
			
				
					                map . put ( partyMember . getUserId ( ) ,  userGroupIdMap . get ( partyMember . getUserId ( ) ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        return  map ;  
			
		
	
		
			
				
					    }  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -166,11 +415,13 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					     *  @Date  2020 / 9 / 18  10 : 59  
			
		
	
		
			
				
					     * * /  
			
		
	
		
			
				
					    private  Map < String ,  Integer >  calCreateTopicCount ( String  customerId ,  String  monthId )  {  
			
		
	
		
			
				
					        long  startCpc  =  System . currentTimeMillis ( ) ;  
			
		
	
		
			
				
					        List < CpcIndexCommonDTO >  list  =  factOriginTopicMainDailyService . selectPartyCreateTopicCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  resultMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        for  ( CpcIndexCommonDTO  cpcIndexCommonDTO :  list )  {  
			
		
	
		
			
				
					                resultMap . put ( cpcIndexCommonDTO . getUserId ( ) ,  cpcIndexCommonDTO . getIndexValue ( ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        log . warn ( "1、党员相关-党建能力【党员提出话题数】执行完毕======总耗时:{}ms,customerId:{}" ,  System . currentTimeMillis ( )  -  startCpc ,  customerId ) ;  
			
		
	
		
			
				
					        return  resultMap ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -183,11 +434,13 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					     *  @Date  2020 / 9 / 18  13 : 33  
			
		
	
		
			
				
					     * * /  
			
		
	
		
			
				
					    private  Map < String ,  Integer >  calJoinTopicCount ( String  customerId ,  String  monthId )  {  
			
		
	
		
			
				
					        long  startCpc  =  System . currentTimeMillis ( ) ;  
			
		
	
		
			
				
					        List < CpcIndexCommonDTO >  list  =  factOriginTopicLogDailyService . selectJoinTopicCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  resultMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        for  ( CpcIndexCommonDTO  cpcIndexCommonDTO  :  list )  {  
			
		
	
		
			
				
					            resultMap . put ( cpcIndexCommonDTO . getUserId ( ) ,  cpcIndexCommonDTO . getIndexValue ( ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        log . warn ( "2、党员相关-党建能力【党员参与话题数】执行完毕======总耗时:{}ms,customerId:{}" ,  System . currentTimeMillis ( )  -  startCpc ,  customerId ) ;  
			
		
	
		
			
				
					        return  resultMap ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -201,11 +454,13 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					     *  @Date  2020 / 9 / 18  13 : 53  
			
		
	
		
			
				
					     * * /  
			
		
	
		
			
				
					    private  Map < String ,  Integer >  calShiftIssueCount ( String  customerId ,  String  monthId )  {  
			
		
	
		
			
				
					        long  startCpc  =  System . currentTimeMillis ( ) ;  
			
		
	
		
			
				
					        List < CpcIndexCommonDTO >  list  =  issueExtractService . selectShiftIssueCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  resultMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        for  ( CpcIndexCommonDTO  cpcIndexCommonDTO  :  list )  {  
			
		
	
		
			
				
					            resultMap . put ( cpcIndexCommonDTO . getUserId ( ) ,  cpcIndexCommonDTO . getIndexValue ( ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        log . warn ( "3、党员相关-党建能力【党员提出的话题转议题数】执行完毕======总耗时:{}ms,customerId:{}" ,  System . currentTimeMillis ( )  -  startCpc ,  customerId ) ;  
			
		
	
		
			
				
					        return  resultMap ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -218,12 +473,14 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					     *  @Date  2020 / 9 / 18  14 : 10  
			
		
	
		
			
				
					     * * /  
			
		
	
		
			
				
					    private  Map < String ,  Integer >  calShiftProjectCount ( String  customerId ,  String  monthId )  {  
			
		
	
		
			
				
					        long  startCpc  =  System . currentTimeMillis ( ) ;  
			
		
	
		
			
				
					        //查询fact_origin_project_main_daily 表 中议题的议题的状态为 shift_
  
			
		
	
		
			
				
					        List < CpcIndexCommonDTO >  list  =  factOriginProjectMainDailyService . selectShiftProjectCount ( customerId ,  monthId ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  resultMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        for  ( CpcIndexCommonDTO  cpcIndexCommonDTO  :  list )  {  
			
		
	
		
			
				
					            resultMap . put ( cpcIndexCommonDTO . getUserId ( ) ,  cpcIndexCommonDTO . getIndexValue ( ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        log . warn ( "4、党员相关-党建能力【党员提出的议题转项目数】执行完毕======总耗时:{}ms,customerId:{}" ,  System . currentTimeMillis ( )  -  startCpc ,  customerId ) ;  
			
		
	
		
			
				
					        return  resultMap ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -236,12 +493,14 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					     *  @Date  2021 / 5 / 12  13 : 38  
			
		
	
		
			
				
					     * * /  
			
		
	
		
			
				
					    private  Map < String ,  Integer >  calJoinThreeMeetsCount ( String  customerId ,  String  monthId )  {  
			
		
	
		
			
				
					        long  startCpc  =  System . currentTimeMillis ( ) ;  
			
		
	
		
			
				
					        //查询小组活动签到表,计算用户在本月内签到的活动次数
  
			
		
	
		
			
				
					        List < CpcIndexCommonDTO >  list = groupDataService . selectJoinThreeMeetsCount ( customerId , monthId ) ;  
			
		
	
		
			
				
					        Map < String ,  Integer >  resultMap  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        for  ( CpcIndexCommonDTO  cpcIndexCommonDTO  :  list )  {  
			
		
	
		
			
				
					            resultMap . put ( cpcIndexCommonDTO . getUserId ( ) ,  cpcIndexCommonDTO . getIndexValue ( ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        log . warn ( "5、党员相关-党建能力【参加“三会一课”次数】执行完毕======总耗时:{}ms,customerId:{}" ,  System . currentTimeMillis ( )  -  startCpc ,  customerId ) ;  
			
		
	
		
			
				
					        return  resultMap ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -256,6 +515,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					    private  Map < String ,  Integer >  calgroupUserCount ( String  customerId ,  String  monthId ,  
			
		
	
		
			
				
					                                                   List < FactIndexPartyAblityCpcMonthlyEntity >  partyMemberList ,  
			
		
	
		
			
				
					                                                   Map < String ,  List < String > >  userCreatedGroups )  {  
			
		
	
		
			
				
					        long  startCpc  =  System . currentTimeMillis ( ) ;  
			
		
	
		
			
				
					         / * 含义 : 评价周期内 , 党员自建群中群众成员数 。  
			
		
	
		
			
				
					        数据来源 : 用户社群关系表 。  
			
		
	
		
			
				
					        计算方法 : 对党员i的所有j个自建群 , 从用户社群关系表中统计属于每个自建群的群众用户总人数 , 并对j个群众用户总数进行不重复累加 。  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -265,7 +525,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					            //查询当前党员建了多少个组
  
			
		
	
		
			
				
					            List < String >  groupIdList  =  userCreatedGroups . get ( partyMember . getUserId ( ) ) ;  
			
		
	
		
			
				
					            if  ( CollectionUtils . isEmpty ( groupIdList ) )  {  
			
		
	
		
			
				
					                log . info ( "当前党员userId=" + partyMember . getUserId ( ) + "没有创建过小组, 【党员相关-党员自建群群众人数】赋值0" ) ;  
			
		
	
		
			
				
					                // log.info("当前党员userId="+partyMember.getUserId()+ "没有创建过小组, 【党员相关-党员自建群群众人数】赋值0");
  
			
		
	
		
			
				
					                map . put ( partyMember . getUserId ( ) ,  NumConstant . ZERO ) ;  
			
		
	
		
			
				
					                continue ;  
			
		
	
		
			
				
					            }  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -279,6 +539,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					                map . put ( partyMember . getUserId ( ) ,  memberIdList . size ( ) ) ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        log . warn ( "6、党员相关-党建能力【党员自建群群众人数】执行完毕======总耗时:{}ms,customerId:{}" ,  System . currentTimeMillis ( )  -  startCpc ,  customerId ) ;  
			
		
	
		
			
				
					        return  map ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -294,6 +555,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					    private  Map < String ,  Integer >  calGroupActiveUserCount ( String  customerId ,  String  monthId ,  
			
		
	
		
			
				
					                                                         List < FactIndexPartyAblityCpcMonthlyEntity >  partyMemberList ,  
			
		
	
		
			
				
					                                                         Map < String ,  List < String > >  userCreatedGroups )  {  
			
		
	
		
			
				
					        long  startCpc  =  System . currentTimeMillis ( ) ;  
			
		
	
		
			
				
					        / * 含义 : 评价周期内 , 党员自建群中活跃群众成员数 。 所谓活跃群成员 , 即评价周期内参与话题 、 事件评论 、 点赞 、 点踩总次数大于给定阈值的群众用户 。  
			
		
	
		
			
				
					        数据来源 : 话题用户阅读表 、 话题评论用户表态表 、 话题评论表 、 事件点赞点踩表 、 事件评论点赞点踩表 、 事件评论表 、 用户信息表 。  
			
		
	
		
			
				
					        计算方法 :  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -311,7 +573,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					            //1、查询当前党员建了多少个组
  
			
		
	
		
			
				
					            List < String >  groupIdList  =  userCreatedGroups . get ( partyMember . getUserId ( ) ) ;  
			
		
	
		
			
				
					            if  ( CollectionUtils . isEmpty ( groupIdList ) )  {  
			
		
	
		
			
				
					                log . warn ( "当前党员userId=" + partyMember . getUserId ( ) + "没有创建过小组, 【党员相关-党员自建群活跃群众人数】赋值0" ) ;  
			
		
	
		
			
				
					                // log.warn("当前党员userId="+partyMember.getUserId()+ "没有创建过小组, 【党员相关-党员自建群活跃群众人数】赋值0");
  
			
		
	
		
			
				
					                map . put ( partyMember . getUserId ( ) ,  NumConstant . ZERO ) ;  
			
		
	
		
			
				
					                continue ;  
			
		
	
		
			
				
					            }  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -321,23 +583,35 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					                map . put ( partyMember . getUserId ( ) ,  NumConstant . ZERO ) ;  
			
		
	
		
			
				
					                continue ;  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //可以先把本月内评论的用户+本月内表决过的用户 集合查询出来。避免循环查询
  
			
		
	
		
			
				
					            List < String >  commentTopicUserIds = factOriginTopicLogDailyService . queryCommentTopicUserIds ( customerId , monthId ) ;  
			
		
	
		
			
				
					            List < String >  voteUserIds = issueExtractService . queryVoteUserIds ( customerId , monthId ) ;  
			
		
	
		
			
				
					            //3、判断每个成员是否 “活跃”
  
			
		
	
		
			
				
					            for  ( String  memberId  :  memberIdList )  {  
			
		
	
		
			
				
					                //注释2022.03.02
  
			
		
	
		
			
				
					                //1、判断成员在本月内是否评论过
  
			
		
	
		
			
				
					                Integer  topicCommentCount  =  factOriginTopicLogDailyService . selectUserCommentCount ( memberId ,  customerId ,  monthId ) ;  
			
		
	
		
			
				
					                / * Integer  topicCommentCount  =  factOriginTopicLogDailyService . selectUserCommentCount ( memberId ,  customerId ,  monthId ) ;  
			
		
	
		
			
				
					                if  ( topicCommentCount  >  0 )  {  
			
		
	
		
			
				
					                    groupActiveUserCount + + ;  
			
		
	
		
			
				
					                    continue ;  
			
		
	
		
			
				
					                }  
			
		
	
		
			
				
					                } * /  
			
		
	
		
			
				
					                //2、判断成员在本月内是否表决过(支持or反对)议题
  
			
		
	
		
			
				
					                Integer  voteCount  =  issueExtractService . selectCountUserVote ( memberId ,  customerId ,  monthId ) ;  
			
		
	
		
			
				
					                / * Integer  voteCount  =  issueExtractService . selectCountUserVote ( memberId ,  customerId ,  monthId ) ;  
			
		
	
		
			
				
					                if  ( voteCount  >  0 )  {  
			
		
	
		
			
				
					                    groupActiveUserCount + + ;  
			
		
	
		
			
				
					                } * /  
			
		
	
		
			
				
					                if  ( CollectionUtils . isNotEmpty ( commentTopicUserIds )  & &  commentTopicUserIds . contains ( memberId ) )  {  
			
		
	
		
			
				
					                    groupActiveUserCount + + ;  
			
		
	
		
			
				
					                    continue ;  
			
		
	
		
			
				
					                }  
			
		
	
		
			
				
					                if  ( CollectionUtils . isNotEmpty ( voteUserIds )  & &  voteUserIds . contains ( memberId ) )  {  
			
		
	
		
			
				
					                    groupActiveUserCount + + ;  
			
		
	
		
			
				
					                }  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					            //赋值每个党员的 -- 党员自建群活跃群众人数
  
			
		
	
		
			
				
					            map . put ( partyMember . getUserId ( ) ,  groupActiveUserCount ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        log . warn ( "7、党员相关-党建能力【党员自建群活跃群众人数】执行完毕======总耗时:{}ms,customerId:{}" ,  System . currentTimeMillis ( )  -  startCpc ,  customerId ) ;  
			
		
	
		
			
				
					        return  map ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -351,6 +625,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					     *  @Date  2020 / 9 / 18  14 : 31  
			
		
	
		
			
				
					     * * /  
			
		
	
		
			
				
					    private  Map < String ,  Integer >  calGroupTopicCount ( String  customerId ,  String  monthId )  {  
			
		
	
		
			
				
					        long  startCpc  =  System . currentTimeMillis ( ) ;  
			
		
	
		
			
				
					        / * 含义 : 评价周期内 , 党员自建群中话题发布数 。  
			
		
	
		
			
				
					        数据来源 : 话题表 。  
			
		
	
		
			
				
					        计算方法 : 从话题表中统计党员自建群i的话题总数 ; 对所有自建群话题数累加 。  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -360,6 +635,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					        for  ( CpcIndexCommonDTO  dto  :  list )  {  
			
		
	
		
			
				
					            resultMap . put ( dto . getUserId ( ) ,  dto . getIndexValue ( ) ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        log . warn ( "8、党员相关-党建能力【党员自建群活跃度——话题数】执行完毕======总耗时:{}ms,customerId:{}" ,  System . currentTimeMillis ( )  -  startCpc ,  customerId ) ;  
			
		
	
		
			
				
					        return  resultMap ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -374,6 +650,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					                                                         String  monthId ,  
			
		
	
		
			
				
					                                                         List < FactIndexPartyAblityCpcMonthlyEntity >  partyMemberList ,  
			
		
	
		
			
				
					                                                         Map < String ,  List < String > >  userCreatedGroups )  {  
			
		
	
		
			
				
					        long  startCpc  =  System . currentTimeMillis ( ) ;  
			
		
	
		
			
				
					        Map < String ,  BigDecimal >  map  =  new  HashMap < > ( ) ;  
			
		
	
		
			
				
					        for  ( FactIndexPartyAblityCpcMonthlyEntity  partyMember  :  partyMemberList )  {  
			
		
	
		
			
				
					            //如果党员自建群为空,直接赋值0
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -408,6 +685,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { 
			
		
	
		
			
				
					            BigDecimal  topicToIssueRatio  =  new  BigDecimal ( topicToIssueRatioStr ) . multiply ( new  BigDecimal ( NumConstant . ONE_HUNDRED ) ) ;  
			
		
	
		
			
				
					            map . put ( partyMember . getUserId ( ) ,  topicToIssueRatio ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        log . warn ( "9、党员相关-党建能力【自建群活跃度——议题转项目率】执行完毕======总耗时:{}ms,customerId:{}" ,  System . currentTimeMillis ( )  -  startCpc ,  customerId ) ;  
			
		
	
		
			
				
					        return  map ;  
			
		
	
		
			
				
					    }