| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -36,29 +36,62 @@ public class ResiEventServiceImpl implements ResiEventService, ResultDataResolve | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private EpmetUserOpenFeignClient epmetUserOpenFeignClient; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @Override | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public List<ResiEventNpcResultDTO> listNpcByGrid(String gridId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    public List<ResiEventNpcResultDTO> listNpcByGrid(String customerId) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        // 查询网格所属的组织信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Result<GridInfoResultDTO> gridInfoResult = govOrgOpenFeignClient.queryGridInfo(gridId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        GridInfoResultDTO gridInfoData = getResultDataOrThrowsException(gridInfoResult, ServiceConstant.GOV_ORG_SERVER, null, null); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String parentAgencyId = gridInfoData.getParentAgencyId(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        String pids = gridInfoData.getPids(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //Result<GridInfoResultDTO> gridInfoResult = govOrgOpenFeignClient.queryGridInfo(customerId);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //GridInfoResultDTO gridInfoData = getResultDataOrThrowsException(gridInfoResult, ServiceConstant.GOV_ORG_SERVER, null, null);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //String parentAgencyId = gridInfoData.getParentAgencyId();
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //String pids = gridInfoData.getPids();
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //查询人大代表列表
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ListUserByBadgeFormDTO npcForm = new ListUserByBadgeFormDTO(gridId, BadgeConstant.BADGE_KEY_NPC); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ListUserByBadgeFormDTO npcForm = new ListUserByBadgeFormDTO(customerId, BadgeConstant.BADGE_KEY_NPC); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Result<List<ListUserByBadgeResultDTO>> npcResult = epmetUserOpenFeignClient.listUsersByBadge(npcForm); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ListUserByBadgeResultDTO> npcData = getResultDataOrThrowsException(npcResult, ServiceConstant.EPMET_USER_SERVER, null, null); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ResiEventNpcResultDTO> npcResultList = npcData.stream() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                .map(npc -> new ResiEventNpcResultDTO(npc.getUserId(), gridId, "人大代表-".concat(npc.getRealName()), npc.getHeadImgUrl(), parentAgencyId, pids)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                .collect(Collectors.toList()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        //批量查询人大代表所在的网格信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<String> npcGridIds = npcData.stream().map(d -> d.getGridId()).collect(Collectors.toList()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        OrgInfoFormDTO form = new OrgInfoFormDTO(OrgInfoConstant.GRID, npcGridIds); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Result<List<OrgInfoResultDTO>> npcGridInfoResult = govOrgOpenFeignClient.selectOrgInfo(form); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<OrgInfoResultDTO> npcGridInfos = getResultDataOrThrowsException(npcGridInfoResult, ServiceConstant.GOV_ORG_SERVER, null, null); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Map<String, OrgInfoResultDTO> npcGridInfoMap = convertNpcGridInfos2Map(npcGridInfos); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        List<ResiEventNpcResultDTO> npcResultList = new ArrayList<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        npcData.stream().forEach(npc -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    OrgInfoResultDTO gridInfo = npcGridInfoMap.get(npc.getGridId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    ResiEventNpcResultDTO resiEventNpcInfo = new ResiEventNpcResultDTO( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            npc.getUserId(), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            npc.getGridId(), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            "人大代表-".concat(npc.getRealName()), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            npc.getRealName(), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            npc.getHeadImgUrl(), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            gridInfo != null ? gridInfo.getAgencyId() : null, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            gridInfo != null ? gridInfo.getPids().concat(":").concat(gridInfo.getAgencyId()) : null); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    npcResultList.add(resiEventNpcInfo); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return npcResultList; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description 此处会调用org上游接口批量获取父级组织信息,由于上游接口排序不可控,因此此处需要使用TreeSet做排序 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description 将网格信息转化为map | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @author wxz | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @date 2021.08.04 14:25 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    private Map<String, OrgInfoResultDTO> convertNpcGridInfos2Map(List<OrgInfoResultDTO> npcGridInfos) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        HashMap<String, OrgInfoResultDTO> result = new HashMap<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        npcGridInfos.stream().forEach(i -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            result.put(i.getOrgId(), i); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return result; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @Description 此处会调用org上游接口批量获取父级组织信息,由于上游接口排序不可控,因此此处需要使用TreeSet做排序 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @author wxz | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * @date 2021.08.03 15:51 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |