| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -182,14 +182,18 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public void disPoseParty(List<CustomerAgencyInfoResultDTO> agencyIdList, Boolean isGrid, String customerId, String monthId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ScreenPartyLinkMassesDataFormDTO> result = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        // 判断当前级别agency是否为空
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (!CollectionUtils.isEmpty(agencyIdList)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // 获取agencyIds
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<String> orgIds = agencyIdList.stream().map(m -> m.getAgencyId()).collect(Collectors.toList()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (isGrid == true){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                agencyIdList.forEach(agency -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    // 计算社区级别的下级(实际就是网格)
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    GridPartyGuideDTO gridPartyGuideDTO = communityLevelSubGrid(customerId, monthId, agency); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    orgIds.addAll(gridPartyGuideDTO.getOrgIds()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    result.addAll(gridPartyGuideDTO.getResult()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                // 根据agencyId分组,计算各个社区的
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                Map<String, List<ScreenPartyLinkMassesDataFormDTO>> groupByAgency = result.stream().collect(Collectors.groupingBy(ScreenPartyLinkMassesDataFormDTO::getParentId)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                groupByAgency.forEach((agencyId,gridList) -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    ScreenPartyLinkMassesDataFormDTO form = new ScreenPartyLinkMassesDataFormDTO(); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -225,6 +229,7 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    // 不为空 存在直属网格
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (!CollectionUtils.isEmpty(disGridIds)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        List<ScreenPartyLinkMassesDataFormDTO> gridResult = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        // 查询党员创建组,组内成员数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        List<ScreenPartyLinkMassesDataFormDTO> partyLinkMassesDataList = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        List<OrgNameResultDTO> orgNameList = agencyService.selectOrgNameGrid(partyLinkMassesDataList.stream().map(m -> m.getOrgId()).collect(Collectors.toList())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        if (!CollectionUtils.isEmpty(partyLinkMassesDataList)){ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -240,6 +245,7 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        delAndInsertLink(gridResult,customerId,monthId,disGridIds); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    // 查询直属网格的信息 + 下级机关的信息 = agency的机关信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    List<ScreenPartyLinkMassesDataFormDTO> screenPartyLinkMassesDataGrid = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    List<ScreenPartyLinkMassesDataFormDTO> screenPartyLinkMassesDataList = linkMassesDataService.selectPartyLinkMassesInfo(customerId, monthId, agencyId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    screenPartyLinkMassesDataList.addAll(screenPartyLinkMassesDataGrid); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -263,6 +269,12 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description  处理【参与人数,组织次数】 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * eg:假设 组织A:A1     组织的直属网格:A1-G1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * 统计 A1的参与人数、组织次数应为 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * 组织次数:以A1的名义组织活动次数  + 以A1-G1的名义组织活动次数 = A1组织活动总次数 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * 参与人数:以A1的名义组织活动参与人数和  + 以A1-G1的名义组织活动参与人数和 = A1组织活动参与人数总数 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param agencyIdList | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param isGrid | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param customerId | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -272,7 +284,9 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public void disPoseOrganize(List<CustomerAgencyInfoResultDTO> agencyIdList, Boolean isGrid, String customerId, String monthId){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (!CollectionUtils.isEmpty(agencyIdList)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // 包括 gridId 和 agencyId
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<String> orgIds = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // orgIdsAgency  客户下某个级别的所有agencyId
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<String> orgIdsAgency = agencyIdList.stream().map(m -> m.getAgencyId()).collect(Collectors.toList()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            orgIds.addAll(orgIdsAgency); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            orgIdsAgency.forEach(orgId -> { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -284,8 +298,11 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (isGrid == false){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                orgIds.addAll(directGridIds.stream().map(m -> m.getGridId()).collect(Collectors.toList())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // 查询客户下所有机关,网格下的参与人数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<JoinUserCountResultDTO> joinUserCountList = actUserRelationService.selectJoinUserCount(customerId, monthId, null); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // 查询机关界别的组织次数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataByAgencyList = actInfoService.selectActInfo(customerId, monthId, ScreenConstant.AGENCY, orgIds); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // 查询客户下所有网格和所有机关
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<ScreenPartyBranchDataFormDTO> screenPartyBranchData = agencyService.selectAllAgencyIdToOrganize(customerId, monthId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataListAgencyAll = gridService.selectAllGridIdToOrganize(customerId, monthId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            screenPartyBranchDataListAgencyAll.addAll(screenPartyBranchData); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -297,10 +314,10 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            // 查询所有机关、网格组织次数
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataList = actInfoService.selectActInfo(customerId, monthId, null, orgIds); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (isGrid == true){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                agencyIdList.forEach(agency -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    finalResult.forEach(fl -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        screenPartyBranchDataList.forEach(sp -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            if (fl.getOrgId().equals(sp.getOrgId())){ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -325,6 +342,7 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                if (fl.getOrgId().equals(agencyId)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                    fl.setOrganizeCount(actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                    fl.setJoinUserCount(actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getJoinUserCount))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                    // 如果存在本级名义的, 下级机关 + 本级
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                    screenPartyBranchDataByAgencyList.forEach(organize -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                        if (organize.getOrgId().equals(agencyId)){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                            fl.setOrganizeCount(calAdd(organize.getOrganizeCount(),actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount)))); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -378,6 +396,7 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            if (form.getOrgId().equals(agencyId)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                form.setJoinUserCount(screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getJoinUserCount))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                form.setOrganizeCount(screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                // 如果存在本级名义的, 下级机关 + 本级
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                screenPartyBranchDataByParentList.forEach(organize -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                    if (organize.getOrgId().equals(agencyId)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                        form.setOrganizeCount(calAdd(organize.getOrganizeCount(), screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount)))); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -398,6 +417,13 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description  加法运算 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param a | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param b | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @author zxc | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @date 2020/9/28 3:17 下午 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public Integer calAdd(Integer a, Integer b){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if (null != a && null != b){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return a + b; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -474,7 +500,7 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description  【组织次数,参与人数】添加 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param result | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param customerId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param monthId | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -490,6 +516,14 @@ public class PartyGuideServiceImpl implements PartyGuideService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description  【组织次数,参与人数】旧纪录删除 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param customerId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param monthId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Param orgIds | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @author zxc | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @date 2020/9/28 3:18 下午 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Transactional(rollbackFor = Exception.class) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public void delOrganize(String customerId, String monthId, List<String> orgIds){ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Integer delNum; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |