|  |  | @ -61,7 +61,7 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             //网格内的党员集合
 | 
			
		
	
		
			
				
					|  |  |  |             List<String> partyMemberUserIds = dimCustomerPartymemberService.getPartyMemberUserIds(customerId, gridId); | 
			
		
	
		
			
				
					|  |  |  |             List<String> partyMemberUserIds = dimCustomerPartymemberService.getPartyMemberUserIds(customerId, "grid",gridId); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             //3、党员发布话题:
 | 
			
		
	
	
		
			
				
					|  |  | @ -71,12 +71,12 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService | 
			
		
	
		
			
				
					|  |  |  |                 entity.setTopicRatio(BigDecimal.ZERO); | 
			
		
	
		
			
				
					|  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |                 //当前网格内所有话题总数
 | 
			
		
	
		
			
				
					|  |  |  |                 int gridTopicTotal = getGridTopicTotal(customerId, gridId); | 
			
		
	
		
			
				
					|  |  |  |                 int gridTopicTotal = getGridOrCommunityTopicTotal(customerId, gridId,null); | 
			
		
	
		
			
				
					|  |  |  |                 entity.setTopicRatio(gridTopicTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getTopicTotal() / gridTopicTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             //当前网格内所有议题总数
 | 
			
		
	
		
			
				
					|  |  |  |             int gridIssueTotal = getGridIssueTotal(customerId, gridId); | 
			
		
	
		
			
				
					|  |  |  |             int gridIssueTotal = getGridOrCommunityIssueTotal(customerId, gridId,null); | 
			
		
	
		
			
				
					|  |  |  |             if (gridIssueTotal != NumConstant.ZERO) { | 
			
		
	
		
			
				
					|  |  |  |                 //5、党员发布议题
 | 
			
		
	
		
			
				
					|  |  |  |                 entity.setPublishIssueTotal(getParyPublishIssueTotal(customerId, partyMemberUserIds)); | 
			
		
	
	
		
			
				
					|  |  | @ -87,36 +87,103 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService | 
			
		
	
		
			
				
					|  |  |  |                 entity.setPublishIssueRatio(gridIssueTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getPublishIssueTotal() / gridIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                 //7、议题转项目数
 | 
			
		
	
		
			
				
					|  |  |  |                 entity.setShiftProjectTotal(getGridShiftProjectTotal(customerId, gridId)); | 
			
		
	
		
			
				
					|  |  |  |                 entity.setShiftProjectTotal(getGridOrCommunityShiftProjectTotal(customerId, gridId,null)); | 
			
		
	
		
			
				
					|  |  |  |                 //8、议题转项目占比 : 占网格内议题总数的比率
 | 
			
		
	
		
			
				
					|  |  |  |                 entity.setShiftProjectRatio(entity.getShiftProjectTotal() == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getShiftProjectTotal() / gridIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             // 9、已解决项目
 | 
			
		
	
		
			
				
					|  |  |  |             entity.setResolvedProjectTotal(getGridClosedProjectTotal(customerId,gridId,"resolved")); | 
			
		
	
		
			
				
					|  |  |  |             entity.setResolvedProjectTotal(getGridOrCommunityClosedProjectTotal(customerId,gridId,null,"resolved")); | 
			
		
	
		
			
				
					|  |  |  |             if(entity.getResolvedProjectTotal()==NumConstant.ZERO){ | 
			
		
	
		
			
				
					|  |  |  |                 entity.setResolvedProjectRatio(BigDecimal.ZERO); | 
			
		
	
		
			
				
					|  |  |  |             }else{ | 
			
		
	
		
			
				
					|  |  |  |                 // 10、占总结项目
 | 
			
		
	
		
			
				
					|  |  |  |                 int closedProjectTotal=getGridClosedProjectTotal(customerId,gridId,null); | 
			
		
	
		
			
				
					|  |  |  |                 int closedProjectTotal=getGridOrCommunityClosedProjectTotal(customerId,gridId,null,null); | 
			
		
	
		
			
				
					|  |  |  |                 entity.setResolvedProjectRatio(closedProjectTotal==NumConstant.ZERO?BigDecimal.ZERO:new BigDecimal(entity.getResolvedProjectTotal()/closedProjectTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |         screenPioneerDataService.delAndSavePioneerData(customerId, "grid", dateId, IndexCalConstant.DELETE_SIZE, gridList); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public void extractCommunityPioneerData(String customerId, String dateId) { | 
			
		
	
		
			
				
					|  |  |  |         //查询客户下所有的社区,初始数据值为0
 | 
			
		
	
		
			
				
					|  |  |  |         List<ScreenPioneerDataEntity> communityList = screenPioneerDataService.initPioneerDataList(customerId, "agency", "community"); | 
			
		
	
		
			
				
					|  |  |  |         if (CollectionUtils.isEmpty(communityList)) { | 
			
		
	
		
			
				
					|  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |         communityList.forEach(entity -> { | 
			
		
	
		
			
				
					|  |  |  |             entity.setDataEndTime(dateId); | 
			
		
	
		
			
				
					|  |  |  |             String communityId = entity.getOrgId(); | 
			
		
	
		
			
				
					|  |  |  |             //1、党员参与议事 todo
 | 
			
		
	
		
			
				
					|  |  |  |             entity.setIssueTotal(NumConstant.ZERO); | 
			
		
	
		
			
				
					|  |  |  |             //2、党员参与议事占比 todo
 | 
			
		
	
		
			
				
					|  |  |  |             entity.setIssueRatio(BigDecimal.ZERO); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             //社区内的党员集合
 | 
			
		
	
		
			
				
					|  |  |  |             List<String> partyMemberUserIds = dimCustomerPartymemberService.getPartyMemberUserIds(customerId, "community",communityId); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             //3、党员发布话题:
 | 
			
		
	
		
			
				
					|  |  |  |             entity.setTopicTotal(getTopicTotal(customerId, partyMemberUserIds)); | 
			
		
	
		
			
				
					|  |  |  |             //4、党员发布话题占比: 网格内注册党员发布的话题总数占  网格内话题总数的 比率
 | 
			
		
	
		
			
				
					|  |  |  |             if (entity.getTopicTotal() == NumConstant.ZERO) { | 
			
		
	
		
			
				
					|  |  |  |                 entity.setTopicRatio(BigDecimal.ZERO); | 
			
		
	
		
			
				
					|  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |                 //当前社区内所有话题总数
 | 
			
		
	
		
			
				
					|  |  |  |                 int communityTopicTotal = getGridOrCommunityTopicTotal(customerId, null,communityId); | 
			
		
	
		
			
				
					|  |  |  |                 entity.setTopicRatio(communityTopicTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getTopicTotal() / communityTopicTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             //当前社区内所有议题总数
 | 
			
		
	
		
			
				
					|  |  |  |             int communityIssueTotal = getGridOrCommunityIssueTotal(customerId, null,communityId); | 
			
		
	
		
			
				
					|  |  |  |             if (communityIssueTotal != NumConstant.ZERO) { | 
			
		
	
		
			
				
					|  |  |  |                 //5、党员发布议题
 | 
			
		
	
		
			
				
					|  |  |  |                 entity.setPublishIssueTotal(getParyPublishIssueTotal(customerId, partyMemberUserIds)); | 
			
		
	
		
			
				
					|  |  |  |                 //6、党员发布议题占比 :  占社区内所有议题的比率
 | 
			
		
	
		
			
				
					|  |  |  |                 if (entity.getPublishIssueTotal() == NumConstant.ZERO) { | 
			
		
	
		
			
				
					|  |  |  |                     entity.setPublishIssueRatio(BigDecimal.ZERO); | 
			
		
	
		
			
				
					|  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |                 entity.setPublishIssueRatio(communityIssueTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getPublishIssueTotal() / communityIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                 //7、议题转项目数
 | 
			
		
	
		
			
				
					|  |  |  |                 entity.setShiftProjectTotal(getGridOrCommunityShiftProjectTotal(customerId,null, communityId)); | 
			
		
	
		
			
				
					|  |  |  |                 //8、议题转项目占比 : 占网格内议题总数的比率
 | 
			
		
	
		
			
				
					|  |  |  |                 entity.setShiftProjectRatio(entity.getShiftProjectTotal() == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getShiftProjectTotal() / communityIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             // 9、已解决项目
 | 
			
		
	
		
			
				
					|  |  |  |             entity.setResolvedProjectTotal(getGridOrCommunityClosedProjectTotal(customerId,null,communityId,"resolved")); | 
			
		
	
		
			
				
					|  |  |  |             if(entity.getResolvedProjectTotal()==NumConstant.ZERO){ | 
			
		
	
		
			
				
					|  |  |  |                 entity.setResolvedProjectRatio(BigDecimal.ZERO); | 
			
		
	
		
			
				
					|  |  |  |             }else{ | 
			
		
	
		
			
				
					|  |  |  |                 // 10、占总结项目
 | 
			
		
	
		
			
				
					|  |  |  |                 int closedProjectTotal=getGridOrCommunityClosedProjectTotal(customerId,null,communityId,null); | 
			
		
	
		
			
				
					|  |  |  |                 entity.setResolvedProjectRatio(closedProjectTotal==NumConstant.ZERO?BigDecimal.ZERO:new BigDecimal(entity.getResolvedProjectTotal()/closedProjectTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |         screenPioneerDataService.delAndSavePioneerData(customerId, "agency", dateId, IndexCalConstant.DELETE_SIZE, communityList); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public void extractexceptCommunityPioneerData(String customerId, String dateId) { | 
			
		
	
		
			
				
					|  |  |  |         //todo
 | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @return java.lang.Integer | 
			
		
	
		
			
				
					|  |  |  |      * @param customerId | 
			
		
	
		
			
				
					|  |  |  |      * @param gridId | 
			
		
	
		
			
				
					|  |  |  |      * @param communityId | 
			
		
	
		
			
				
					|  |  |  |      * @param closedStatus 结案状态:已解决 resolved,未解决 unresolved | 
			
		
	
		
			
				
					|  |  |  |      * @author yinzuomei | 
			
		
	
		
			
				
					|  |  |  |      * @description 网格内已解决项目 | 
			
		
	
		
			
				
					|  |  |  |      * @Date 2020/9/23 16:24 | 
			
		
	
		
			
				
					|  |  |  |      **/ | 
			
		
	
		
			
				
					|  |  |  |     private Integer getGridClosedProjectTotal(String customerId, String gridId,String closedStatus) { | 
			
		
	
		
			
				
					|  |  |  |         return factOriginProjectMainDailyService.getGridClosedProjectTotal(customerId,gridId,closedStatus); | 
			
		
	
		
			
				
					|  |  |  |     private Integer getGridOrCommunityClosedProjectTotal(String customerId, String gridId,String communityId,String closedStatus) { | 
			
		
	
		
			
				
					|  |  |  |         return factOriginProjectMainDailyService.getGridOrCommunityClosedProjectTotal(customerId,gridId,communityId,closedStatus); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
	
		
			
				
					|  |  | @ -135,18 +202,6 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService | 
			
		
	
		
			
				
					|  |  |  |         return factOriginTopicMainDailyService.calPublishedByPartyTopicCount(customerId, partyMemberUserIds); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @param customerId | 
			
		
	
		
			
				
					|  |  |  |      * @param gridId | 
			
		
	
		
			
				
					|  |  |  |      * @return int | 
			
		
	
		
			
				
					|  |  |  |      * @author yinzuomei | 
			
		
	
		
			
				
					|  |  |  |      * @description 当前网格内,发布的话题总数 | 
			
		
	
		
			
				
					|  |  |  |      * @Date 2020/9/23 14:18 | 
			
		
	
		
			
				
					|  |  |  |      **/ | 
			
		
	
		
			
				
					|  |  |  |     private int getGridTopicTotal(String customerId, String gridId) { | 
			
		
	
		
			
				
					|  |  |  |         return factOriginTopicMainDailyService.calGridTopicTotalByGrid(customerId, gridId); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @param customerId | 
			
		
	
		
			
				
					|  |  |  |      * @param partyMemberUserIds | 
			
		
	
	
		
			
				
					|  |  | @ -165,50 +220,55 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @param customerId | 
			
		
	
		
			
				
					|  |  |  |      * @param gridId | 
			
		
	
		
			
				
					|  |  |  |      * @return int | 
			
		
	
		
			
				
					|  |  |  |      * @return java.lang.Integer | 
			
		
	
		
			
				
					|  |  |  |      * @author yinzuomei | 
			
		
	
		
			
				
					|  |  |  |      * @description 当前网格内所有议题总数 | 
			
		
	
		
			
				
					|  |  |  |      * @Date 2020/9/23 15:21 | 
			
		
	
		
			
				
					|  |  |  |      * @description 网格内议题转项目数 | 
			
		
	
		
			
				
					|  |  |  |      * @Date 2020/9/23 15:38 | 
			
		
	
		
			
				
					|  |  |  |      **/ | 
			
		
	
		
			
				
					|  |  |  |     private int getGridIssueTotal(String customerId, String gridId) { | 
			
		
	
		
			
				
					|  |  |  |         return factOriginIssueMainDailyService.getGridIssueTotalByGrid(customerId, gridId); | 
			
		
	
		
			
				
					|  |  |  |     private Integer getGridOrCommunityShiftProjectTotal(String customerId, String gridId, String communityId) { | 
			
		
	
		
			
				
					|  |  |  |         return factOriginIssueMainDailyService.getGridOrCommunityShiftProjectTotal(customerId, gridId, communityId); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @return int | 
			
		
	
		
			
				
					|  |  |  |      * @param customerId | 
			
		
	
		
			
				
					|  |  |  |      * @param gridId | 
			
		
	
		
			
				
					|  |  |  |      * @return java.lang.Integer | 
			
		
	
		
			
				
					|  |  |  |      * @param communityId | 
			
		
	
		
			
				
					|  |  |  |      * @author yinzuomei | 
			
		
	
		
			
				
					|  |  |  |      * @description 网格内议题转项目数 | 
			
		
	
		
			
				
					|  |  |  |      * @Date 2020/9/23 15:38 | 
			
		
	
		
			
				
					|  |  |  |      * @description | 
			
		
	
		
			
				
					|  |  |  |      * @Date 2020/9/24 10:44 | 
			
		
	
		
			
				
					|  |  |  |      **/ | 
			
		
	
		
			
				
					|  |  |  |     private Integer getGridShiftProjectTotal(String customerId, String gridId) { | 
			
		
	
		
			
				
					|  |  |  |         return factOriginIssueMainDailyService.getShiftProjectTotalByGrid(customerId, gridId); | 
			
		
	
		
			
				
					|  |  |  |     private int getGridOrCommunityIssueTotal(String customerId, String gridId,String communityId) { | 
			
		
	
		
			
				
					|  |  |  |         return factOriginIssueMainDailyService.getGridOrCommunityIssueTotal(customerId, gridId,communityId); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public void extractCommunityPioneerData(String customerId, String dateId) { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |      * @param customerId | 
			
		
	
		
			
				
					|  |  |  |      * @param communityId | 
			
		
	
		
			
				
					|  |  |  |      * @return int | 
			
		
	
		
			
				
					|  |  |  |      * @author yinzuomei | 
			
		
	
		
			
				
					|  |  |  |      * @description 当前社区内所有话题总数 | 
			
		
	
		
			
				
					|  |  |  |      * @Date 2020/9/24 10:32 | 
			
		
	
		
			
				
					|  |  |  |      **/ | 
			
		
	
		
			
				
					|  |  |  |     private int getGridOrCommunityTopicTotal(String customerId, String gridId, String communityId) { | 
			
		
	
		
			
				
					|  |  |  |         return factOriginTopicMainDailyService.calGridOrCommunityTopicTotal(customerId, gridId, communityId); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     /*@Override | 
			
		
	
		
			
				
					|  |  |  |     public void extractStreetPioneerData(String customerId, String dateId) { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public void extractDistrictPioneerData(String customerId, String dateId) { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public void extractCityPioneerData(String customerId, String dateId) { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public void extractProvincePioneerData(String customerId, String dateId) { | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |     }*/ | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
	
		
			
				
					|  |  | 
 |