|  |  | @ -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; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | 
 |