|  |  | @ -33,7 +33,6 @@ import java.util.stream.Collectors; | 
			
		
	
		
			
				
					|  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  | @Service | 
			
		
	
		
			
				
					|  |  |  | @Slf4j | 
			
		
	
		
			
				
					|  |  |  | //@DataSource(DataSourceConstant.EVALUATION_INDEX)
 | 
			
		
	
		
			
				
					|  |  |  | public class CalGridIndexServiceImpl implements CalGridIndexService { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
	
		
			
				
					|  |  | @ -56,6 +55,8 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { | 
			
		
	
		
			
				
					|  |  |  |     private FactArticlePublishedGridDailyService articlePublishedGridDailyService; | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private GroupExtractService groupExtractService; | 
			
		
	
		
			
				
					|  |  |  |     @Autowired | 
			
		
	
		
			
				
					|  |  |  |     private FactOriginTopicLogDailyService topicLogService; | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @Description  计算网格指标党建能力 | 
			
		
	
	
		
			
				
					|  |  | @ -88,6 +89,32 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { | 
			
		
	
		
			
				
					|  |  |  |         List<GridProjectCountResultDTO> gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueTotalList, gridProjectTotalList); | 
			
		
	
		
			
				
					|  |  |  |         // 建群党员数
 | 
			
		
	
		
			
				
					|  |  |  |         List<PartyCreateGroupCountResultDTO> partyCreateGroupCountList = groupExtractService.selectPartyCreateGroupCount(customerId, monthId); | 
			
		
	
		
			
				
					|  |  |  |         //结合目前产品,数据来源:话题评论、议题表决
 | 
			
		
	
		
			
				
					|  |  |  |         //网格活跃群众用户数
 | 
			
		
	
		
			
				
					|  |  |  |         Map<String,Integer> gridMassActiveMap = new HashMap<>(16); | 
			
		
	
		
			
				
					|  |  |  |         List<PartyActiveResultDTO> massActiveList = topicLogService.selectPartyActiveTopic(customerId, monthId, NumConstant.ZERO); | 
			
		
	
		
			
				
					|  |  |  |         List<PartyActiveResultDTO> massActiveIssueVote = issueExtractService.selectPartyActiveIssueVote(customerId, monthId, NumConstant.ZERO); | 
			
		
	
		
			
				
					|  |  |  |         massActiveList.addAll(massActiveIssueVote); | 
			
		
	
		
			
				
					|  |  |  |         if (!CollectionUtils.isEmpty(massActiveList)) { | 
			
		
	
		
			
				
					|  |  |  |             Map<String, List<PartyActiveResultDTO>> collectMap = massActiveList.stream().collect(Collectors.groupingBy(PartyActiveResultDTO::getGridId)); | 
			
		
	
		
			
				
					|  |  |  |             collectMap.forEach((gridId, massActive) -> { | 
			
		
	
		
			
				
					|  |  |  |                 List<String> userIds = massActive.stream().map(mass -> mass.getUserId()).distinct().collect(Collectors.toList()); | 
			
		
	
		
			
				
					|  |  |  |                 gridMassActiveMap.put(gridId, userIds.size()); | 
			
		
	
		
			
				
					|  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |         //网格活跃党员用户数
 | 
			
		
	
		
			
				
					|  |  |  |         Map<String,Integer> gridPartyActiveMap = new HashMap<>(16); | 
			
		
	
		
			
				
					|  |  |  |         List<PartyActiveResultDTO> partyActiveList = topicLogService.selectPartyActiveTopic(customerId, monthId, NumConstant.ONE); | 
			
		
	
		
			
				
					|  |  |  |         List<PartyActiveResultDTO> partyActiveIssueVote = issueExtractService.selectPartyActiveIssueVote(customerId, monthId, NumConstant.ONE); | 
			
		
	
		
			
				
					|  |  |  |         partyActiveList.addAll(partyActiveIssueVote); | 
			
		
	
		
			
				
					|  |  |  |         if (!CollectionUtils.isEmpty(partyActiveList)){ | 
			
		
	
		
			
				
					|  |  |  |             Map<String, List<PartyActiveResultDTO>> collectMap = massActiveList.stream().collect(Collectors.groupingBy(PartyActiveResultDTO::getGridId)); | 
			
		
	
		
			
				
					|  |  |  |             collectMap.forEach((gridId, partyActive) -> { | 
			
		
	
		
			
				
					|  |  |  |                 List<String> userIds = partyActive.stream().map(party -> party.getUserId()).distinct().collect(Collectors.toList()); | 
			
		
	
		
			
				
					|  |  |  |                 gridPartyActiveMap.put(gridId, userIds.size()); | 
			
		
	
		
			
				
					|  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         String quarterId = DateUtils.getQuarterId(monthId); | 
			
		
	
		
			
				
					|  |  |  |         String yearId = DateUtils.getYearId(monthId); | 
			
		
	
		
			
				
					|  |  |  |         result.forEach(r -> { | 
			
		
	
	
		
			
				
					|  |  | @ -158,6 +185,22 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { | 
			
		
	
		
			
				
					|  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |                 }); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             // 9. 网格活跃群众用户数
 | 
			
		
	
		
			
				
					|  |  |  |             if (null != gridMassActiveMap){ | 
			
		
	
		
			
				
					|  |  |  |                 gridMassActiveMap.forEach((k,v) -> { | 
			
		
	
		
			
				
					|  |  |  |                     if (r.getGridId().equals(k)){ | 
			
		
	
		
			
				
					|  |  |  |                         r.setActiveUserCount(v); | 
			
		
	
		
			
				
					|  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |                 }); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             // 10. 网格活跃党员用户数
 | 
			
		
	
		
			
				
					|  |  |  |             if (null != gridPartyActiveMap){ | 
			
		
	
		
			
				
					|  |  |  |                 gridPartyActiveMap.forEach((k,v) -> { | 
			
		
	
		
			
				
					|  |  |  |                     if (r.getGridId().equals(k)){ | 
			
		
	
		
			
				
					|  |  |  |                         r.setActivePartyCount(v); | 
			
		
	
		
			
				
					|  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |                 }); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |         delAndInsertPartyAbility(result,customerId,monthId); | 
			
		
	
		
			
				
					|  |  |  |         return true; | 
			
		
	
	
		
			
				
					|  |  | @ -323,7 +366,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @Description  小数四舍五入 | 
			
		
	
		
			
				
					|  |  |  |      * @Description  小数四舍五入【保留六位小数】 | 
			
		
	
		
			
				
					|  |  |  |      * @param d | 
			
		
	
		
			
				
					|  |  |  |      * @author zxc | 
			
		
	
		
			
				
					|  |  |  |      * @date 2020/9/18 2:01 下午 | 
			
		
	
	
		
			
				
					|  |  | 
 |