| 
						
						
						
					 | 
				
				 | 
				
					@ -1,5 +1,6 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					package com.epmet.service.impl; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.constant.NumConstant; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.constant.StrConstant; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.utils.DateUtils; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import com.epmet.commons.tools.utils.Result; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -40,6 +41,9 @@ import javax.annotation.Resource; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.*; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import java.util.stream.Collectors; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import static java.util.stream.Collectors.collectingAndThen; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import static java.util.stream.Collectors.toCollection; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * @dscription 省网格化平台数据上报--数据查询 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * @author sun | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -141,24 +145,29 @@ public class DataReportingServiceImpl implements DataReportingService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Map<String, CustomerProjectCategoryDictEntity> epmetCodeMap = new HashMap<>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Result<String> parentCustomer =  operCrmOpenFeignClient.getExternalAndParentCustomerId(formDTO.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (StringUtils.isNotBlank(parentCustomer.getData())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								epmetCodeMap = customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Map<String, CustomerProjectCategoryDictEntity> codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId());; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							//项目ID不为空时,因为只有一条,可以直接处理
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Map<String, CustomerProjectCategoryDictEntity> finalEpmetCodeMap = epmetCodeMap; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (CollectionUtils.isNotEmpty(formDTO.getProjectId())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								list = projectList.stream().map(project -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(project.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										dto.setOrgId(project.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if (null != agency) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											dto.setOrgCode(agency.getCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											dto.setOrgName(agency.getAgencyName()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										dto.setOrgId(project.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if (null != grid) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											dto.setOrgCode(grid.getCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											dto.setOrgName(grid.getGridName()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									return dto; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								}).collect(Collectors.toList()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} else { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -166,22 +175,26 @@ public class DataReportingServiceImpl implements DataReportingService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								Map<String, ScreenCustomerAgencyEntity> agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								Map<String, ScreenCustomerGridDTO> gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								list = projectList.stream().map(project -> { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									EventInfoResultDTO dto = getEventInfoResultDTO(project, finalEpmetCodeMap, codeMap); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										ScreenCustomerAgencyEntity agency = agencyMap.get(project.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										dto.setOrgId(project.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if (null != agency) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											dto.setOrgCode(agency.getCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											dto.setOrgName(agency.getAgencyName()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										ScreenCustomerGridDTO grid = gridMap.get(project.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										dto.setOrgId(project.getOrgId()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if (null != grid) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											dto.setOrgCode(grid.getCode()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											dto.setOrgName(grid.getGridName()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									return dto; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								}).collect(Collectors.toList()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return list.stream().filter(item -> StringUtils.isNotBlank(item.getEventCategory())).collect(Collectors.toList()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							return list.stream().collect(collectingAndThen(toCollection(() -> new TreeSet<>(Comparator.comparing(EventInfoResultDTO::getId))), ArrayList::new)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project, Map<String, CustomerProjectCategoryDictEntity> epmetCodeMap, Map<String, CustomerProjectCategoryDictEntity> codeMap) { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -198,8 +211,22 @@ public class DataReportingServiceImpl implements DataReportingService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										"46c55cb862d6d5e6d05d2ab61a1cc07e".equals(project.getCustomerId())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								CustomerProjectCategoryDictEntity categoryEntity = codeMap.get(categoryCode); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if (null != categoryEntity) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									categoryCode = categoryEntity.getEpmetCategoryCode(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									parentCode = null == epmetCodeMap.get(categoryCode)?null:epmetCodeMap.get(categoryCode).getParentCategoryCode(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									String code = categoryEntity.getEpmetCategoryCode(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if (StringUtils.isBlank(code)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										//没有对应平阴的分类code,那么一级分类和二级分类都为空
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										categoryCode = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										parentCode = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										//如果是对应一级分类,则二级分类为空。如果对应平阴二级分类,则取对应的一级分类
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										CustomerProjectCategoryDictEntity epmetCode = epmetCodeMap.get(code); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if (NumConstant.ONE == epmetCode.getLevel()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											categoryCode = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											parentCode = code; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											categoryCode = code; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											parentCode = epmetCode.getParentCategoryCode(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									categoryCode = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									parentCode = null; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -218,6 +245,7 @@ public class DataReportingServiceImpl implements DataReportingService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if (OrgTypeConstant.AGENCY.equals(project.getFinishOrgType())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									//如果是孔村的项目办结层级需要降一级
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if("2fe0065f70ca0e23ce4c26fca5f1d933".equals(project.getCustomerId())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if (StringUtils.isNotBlank(project.getFinishOrgLevel())) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											switch (project.getFinishOrgLevel()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												case OrgTypeConstant.DISTRICT: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
													dto.setCompleteLevel("3"); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -229,6 +257,7 @@ public class DataReportingServiceImpl implements DataReportingService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												default: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
													break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										dto.setCompleteLevel(getCompleteLevel(project.getFinishOrgLevel())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -237,7 +266,9 @@ public class DataReportingServiceImpl implements DataReportingService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									String[] orgIds = project.getOrgIdPath().split(StrConstant.COLON); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									int size = orgIds.length; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(orgIds[size - 1]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if (null != agency) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										dto.setCompleteLevel(getCompleteLevel(agency.getLevel())); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									//办结组织是网格时,办结层级为网格
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									dto.setCompleteLevel("5"); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |