|  |  | @ -244,8 +244,8 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr | 
			
		
	
		
			
				
					|  |  |  |         //项目分类数据 todo 暂时查询所有
 | 
			
		
	
		
			
				
					|  |  |  |         List<ProjectCategoryDTO> projectCategoryData = projectService.getProjectCategoryData(param.getCustomerId(), null); | 
			
		
	
		
			
				
					|  |  |  |         //key projectId:categoryCode Set
 | 
			
		
	
		
			
				
					|  |  |  |         Map<String, Set<String>> projectCategoryMap = projectCategoryData.stream() | 
			
		
	
		
			
				
					|  |  |  |                 .collect(Collectors.groupingBy(ProjectCategoryDTO::getProjectId, Collectors.mapping(ProjectCategoryDTO::getCategoryCode, Collectors.toSet()))); | 
			
		
	
		
			
				
					|  |  |  |         Map<String, List<String>> projectCategoryMap = projectCategoryData.stream() | 
			
		
	
		
			
				
					|  |  |  |                 .collect(Collectors.groupingBy(ProjectCategoryDTO::getProjectId, Collectors.mapping(ProjectCategoryDTO::getCategoryCode, Collectors.toList()))); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         //2.获取项目的所有节点耗时数据
 | 
			
		
	
		
			
				
					|  |  |  |         List<FactOriginProjectOrgPeriodDailyEntity> projectPeriodList = factOriginProjectMainDailyService.getProjectPeriod(param); | 
			
		
	
	
		
			
				
					|  |  | @ -271,9 +271,7 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr | 
			
		
	
		
			
				
					|  |  |  |                 Integer handleCount = handleCountMap.getOrDefault(period.getProjectId(), 0); | 
			
		
	
		
			
				
					|  |  |  |                 handleCountMap.put(period.getProjectId(), ++handleCount); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             if ("82ac5292612538eaf5c598005b7910ba".equals(period.getProjectId())) { | 
			
		
	
		
			
				
					|  |  |  |                 System.out.println("项目结案时间" + closeProjectDateMap.get(period.getProjectId())); | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             //筛选出 项目的结案时间 未结案的为当前时间(结案只有一条记录)
 | 
			
		
	
		
			
				
					|  |  |  |             if (period.getHandledDate() != null) { | 
			
		
	
		
			
				
					|  |  |  |                 if (period.getHandledDate().getTime() - period.getInformedDate().getTime() > overtimeConfig * 1000 * 60 * 60 * 24) { | 
			
		
	
	
		
			
				
					|  |  | @ -292,7 +290,9 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr | 
			
		
	
		
			
				
					|  |  |  |         List<ScreenDifficultyImgDataEntity> imgDataEntities = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |         for (FactOriginProjectMainDailyEntity project : difficultyBaseList) { | 
			
		
	
		
			
				
					|  |  |  |             if (agencyMap.get(project.getAgencyId()) == null || bizProjectInfoMap.get(project.getId()) == null) { | 
			
		
	
		
			
				
					|  |  |  |                 log.error("未获取到相关的项目信息或者项目的所属组织信息"); | 
			
		
	
		
			
				
					|  |  |  |                 log.warn("未获取到相关的项目信息或者项目的所属组织信息"); | 
			
		
	
		
			
				
					|  |  |  |                 System.out.println(agencyMap.get(project.getAgencyId())); | 
			
		
	
		
			
				
					|  |  |  |                 System.out.println(bizProjectInfoMap.get(project.getId())); | 
			
		
	
		
			
				
					|  |  |  |                 continue; | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             //判断是否符合难点堵点条件
 | 
			
		
	
	
		
			
				
					|  |  | @ -350,18 +350,29 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr | 
			
		
	
		
			
				
					|  |  |  |         return true; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     private void setCategoryInfo(ScreenDifficultyDataEntity diffEntity, String projectId, List<IssueProjectCategoryDictEntity> categoryList, Map<String, Set<String>> projectCategoryMap) { | 
			
		
	
		
			
				
					|  |  |  |         Set<String> categorySet = projectCategoryMap.get(projectId); | 
			
		
	
		
			
				
					|  |  |  |     private void setCategoryInfo(ScreenDifficultyDataEntity diffEntity, String projectId, List<IssueProjectCategoryDictEntity> categoryList, Map<String, List<String>> projectCategoryMap) { | 
			
		
	
		
			
				
					|  |  |  |         List<String> categorySet = projectCategoryMap.get(projectId); | 
			
		
	
		
			
				
					|  |  |  |         if (CollectionUtils.isEmpty(categorySet)) { | 
			
		
	
		
			
				
					|  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |         projectCategoryMap.forEach((k, v) -> { | 
			
		
	
		
			
				
					|  |  |  |             StringBuilder code = new StringBuilder(); | 
			
		
	
		
			
				
					|  |  |  |             StringBuilder name = new StringBuilder(); | 
			
		
	
		
			
				
					|  |  |  |             v.forEach(categoryCode -> { | 
			
		
	
		
			
				
					|  |  |  |                 List<IssueProjectCategoryDictEntity> childCategory = new ArrayList<>(); | 
			
		
	
		
			
				
					|  |  |  |             v.forEach(categoryCode -> getParentNode(childCategory, categoryList, categoryCode)); | 
			
		
	
		
			
				
					|  |  |  |             String categoryCodes = childCategory.stream().map(IssueProjectCategoryDictEntity::getCategoryCode).sorted(Comparator.reverseOrder()).collect(Collectors.joining(StrConstant.COMMA)); | 
			
		
	
		
			
				
					|  |  |  |             String categoryNames = childCategory.stream().map(IssueProjectCategoryDictEntity::getCategoryName).sorted(Comparator.reverseOrder()).collect(Collectors.joining(StrConstant.COMMA)); | 
			
		
	
		
			
				
					|  |  |  |             diffEntity.setEventCategoryCode(categoryCodes); | 
			
		
	
		
			
				
					|  |  |  |             diffEntity.setEventCategoryName(categoryNames); | 
			
		
	
		
			
				
					|  |  |  |                 getParentNode(childCategory, categoryList, categoryCode); | 
			
		
	
		
			
				
					|  |  |  |                 String categoryCodes = childCategory.stream().map(IssueProjectCategoryDictEntity::getCategoryCode).collect(Collectors.joining(StrConstant.HYPHEN)); | 
			
		
	
		
			
				
					|  |  |  |                 String categoryNames = childCategory.stream().map(IssueProjectCategoryDictEntity::getCategoryName).collect(Collectors.joining(StrConstant.HYPHEN)); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                 code.append(categoryCodes).append(StrConstant.COMMA_ZH); | 
			
		
	
		
			
				
					|  |  |  |                 name.append(categoryNames).append(StrConstant.COMMA_ZH); | 
			
		
	
		
			
				
					|  |  |  |             }); | 
			
		
	
		
			
				
					|  |  |  |             code.deleteCharAt(code.length()-1); | 
			
		
	
		
			
				
					|  |  |  |             name.deleteCharAt(name.length()-1); | 
			
		
	
		
			
				
					|  |  |  |             diffEntity.setEventCategoryCode(code.toString()); | 
			
		
	
		
			
				
					|  |  |  |             diffEntity.setEventCategoryName(name.toString()); | 
			
		
	
		
			
				
					|  |  |  |             log.info("code:{}",code.toString()); | 
			
		
	
		
			
				
					|  |  |  |             log.info("name:{}",name.toString()); | 
			
		
	
		
			
				
					|  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
	
		
			
				
					|  |  | @ -398,7 +409,6 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr | 
			
		
	
		
			
				
					|  |  |  |             GridInfoDTO gridInfoDTO = gridMap.get(project.getGridId()); | 
			
		
	
		
			
				
					|  |  |  |             diff.setOrgName(gridInfoDTO.getGridName()); | 
			
		
	
		
			
				
					|  |  |  |             String agencyAndGridName = agencyInfoDTO.getAgencyName().concat(StrConstant.HYPHEN.concat(diff.getOrgName())); | 
			
		
	
		
			
				
					|  |  |  |             //todo 市北区的  allParentname 为什么为空
 | 
			
		
	
		
			
				
					|  |  |  |             //if (!project.getPid().equals(NumConstant.ZERO_STR)){
 | 
			
		
	
		
			
				
					|  |  |  |             if (StringUtils.isNotBlank(agencyInfoDTO.getAllParentName())) { | 
			
		
	
		
			
				
					|  |  |  |                 diff.setEventSource(agencyInfoDTO.getAllParentName().concat(StrConstant.HYPHEN).concat(agencyAndGridName)); | 
			
		
	
	
		
			
				
					|  |  | @ -410,9 +420,7 @@ public class ScreenGrassrootsGovernDataAbsorptionServiceImpl implements ScreenGr | 
			
		
	
		
			
				
					|  |  |  |         diff.setEventId(project.getId()); | 
			
		
	
		
			
				
					|  |  |  |         String projectStatus = project.getProjectStatus(); | 
			
		
	
		
			
				
					|  |  |  |         diff.setEventStatusCode(projectStatus); | 
			
		
	
		
			
				
					|  |  |  |         if ("82ac5292612538eaf5c598005b7910ba".equals(project.getId())) { | 
			
		
	
		
			
				
					|  |  |  |             System.out.println(JSON.toJSONString(projectDTO)); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         if (ProjectConstant.PENDING.equals(projectStatus)) { | 
			
		
	
		
			
				
					|  |  |  |             diff.setEventStatusDesc("处理中"); | 
			
		
	
		
			
				
					|  |  |  |             //项目耗时 当前时间-项目创建时间
 | 
			
		
	
	
		
			
				
					|  |  | 
 |