|  | @ -2,6 +2,7 @@ package com.epmet.service.impl; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.commons.tools.constant.StrConstant; |  |  | import com.epmet.commons.tools.constant.StrConstant; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.commons.tools.utils.DateUtils; |  |  | import com.epmet.commons.tools.utils.DateUtils; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.epmet.commons.tools.utils.Result; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.constant.OrgTypeConstant; |  |  | import com.epmet.constant.OrgTypeConstant; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.constant.ProjectConstant; |  |  | import com.epmet.constant.ProjectConstant; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.dto.basereport.form.EventInfoFormDTO; |  |  | import com.epmet.dto.basereport.form.EventInfoFormDTO; | 
			
		
	
	
		
		
			
				
					|  | @ -19,6 +20,7 @@ import com.epmet.dto.user.result.MidPatrolDetailResult; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.dto.user.result.MidPatrolRecordResult; |  |  | import com.epmet.dto.user.result.MidPatrolRecordResult; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity; |  |  | import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.entity.stats.CustomerProjectCategoryDictEntity; |  |  | import com.epmet.entity.stats.CustomerProjectCategoryDictEntity; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import com.epmet.feign.OperCrmOpenFeignClient; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.service.DataReportingService; |  |  | import com.epmet.service.DataReportingService; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; |  |  | import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService; | 
			
		
	
		
		
			
				
					|  |  | import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService; |  |  | import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService; | 
			
		
	
	
		
		
			
				
					|  | @ -61,6 +63,8 @@ public class DataReportingServiceImpl implements DataReportingService { | 
			
		
	
		
		
			
				
					|  |  | 	private StatsStaffPatrolService statsStaffPatrolService; |  |  | 	private StatsStaffPatrolService statsStaffPatrolService; | 
			
		
	
		
		
			
				
					|  |  | 	@Resource |  |  | 	@Resource | 
			
		
	
		
		
			
				
					|  |  | 	private CustomerProjectCategoryDictService customerProjectCategoryDictService; |  |  | 	private CustomerProjectCategoryDictService customerProjectCategoryDictService; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	@Resource | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	private OperCrmOpenFeignClient operCrmOpenFeignClient; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | 	/** |  |  | 	/** | 
			
		
	
		
		
			
				
					|  |  | 	 * @Author sun |  |  | 	 * @Author sun | 
			
		
	
	
		
		
			
				
					|  | @ -153,16 +157,24 @@ public class DataReportingServiceImpl implements DataReportingService { | 
			
		
	
		
		
			
				
					|  |  | 		if(CollectionUtils.isEmpty(projectList)) { |  |  | 		if(CollectionUtils.isEmpty(projectList)) { | 
			
		
	
		
		
			
				
					|  |  | 			return Collections.emptyList(); |  |  | 			return Collections.emptyList(); | 
			
		
	
		
		
			
				
					|  |  | 		} |  |  | 		} | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		Map<String, CustomerProjectCategoryDictEntity> epmetCodeMap = new HashMap<>(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		Result<String> parentCustomer =  operCrmOpenFeignClient.getExternalAndParentCustomerId(formDTO.getCustomerId()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		if (StringUtils.isNotBlank(parentCustomer.getData())) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			customerProjectCategoryDictService.getByCategoryCodeMap(parentCustomer.getData()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		} | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		Map<String, CustomerProjectCategoryDictEntity> codeMap = customerProjectCategoryDictService.getByCategoryCodeMap(formDTO.getCustomerId());; | 
			
		
	
		
		
			
				
					|  |  | 		//项目ID不为空时,因为只有一条,可以直接处理
 |  |  | 		//项目ID不为空时,因为只有一条,可以直接处理
 | 
			
		
	
		
		
			
				
					|  |  | 		if (StringUtils.isNotEmpty(formDTO.getProjectId())) { |  |  | 		if (StringUtils.isNotEmpty(formDTO.getProjectId())) { | 
			
		
	
		
		
			
				
					|  |  | 			list = projectList.stream().map(project -> { |  |  | 			list = projectList.stream().map(project -> { | 
			
		
	
		
		
			
				
					
					|  |  | 				EventInfoResultDTO dto = getEventInfoResultDTO(project); |  |  | 				EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 				if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { |  |  | 				if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { | 
			
		
	
		
		
			
				
					|  |  | 					ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(project.getOrgId()); |  |  | 					ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(project.getOrgId()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 					dto.setOrgId(project.getOrgId()); | 
			
		
	
		
		
			
				
					|  |  | 					dto.setOrgCode(agency.getCode()); |  |  | 					dto.setOrgCode(agency.getCode()); | 
			
		
	
		
		
			
				
					|  |  | 					dto.setOrgName(agency.getAgencyName()); |  |  | 					dto.setOrgName(agency.getAgencyName()); | 
			
		
	
		
		
			
				
					|  |  | 				} else { |  |  | 				} else { | 
			
		
	
		
		
			
				
					|  |  | 					ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId()); |  |  | 					ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId()); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 					dto.setOrgId(project.getOrgId()); | 
			
		
	
		
		
			
				
					|  |  | 					dto.setOrgCode(grid.getCode()); |  |  | 					dto.setOrgCode(grid.getCode()); | 
			
		
	
		
		
			
				
					|  |  | 					dto.setOrgName(grid.getGridName()); |  |  | 					dto.setOrgName(grid.getGridName()); | 
			
		
	
		
		
			
				
					|  |  | 				} |  |  | 				} | 
			
		
	
	
		
		
			
				
					|  | @ -173,7 +185,7 @@ public class DataReportingServiceImpl implements DataReportingService { | 
			
		
	
		
		
			
				
					|  |  | 			Map<String, ScreenCustomerAgencyEntity> agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId()); |  |  | 			Map<String, ScreenCustomerAgencyEntity> agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId()); | 
			
		
	
		
		
			
				
					|  |  | 			Map<String, ScreenCustomerGridDTO> gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId()); |  |  | 			Map<String, ScreenCustomerGridDTO> gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId()); | 
			
		
	
		
		
			
				
					|  |  | 			list = projectList.stream().map(project -> { |  |  | 			list = projectList.stream().map(project -> { | 
			
		
	
		
		
			
				
					
					|  |  | 				EventInfoResultDTO dto = getEventInfoResultDTO(project); |  |  | 				EventInfoResultDTO dto = getEventInfoResultDTO(project, epmetCodeMap, codeMap); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 				if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { |  |  | 				if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) { | 
			
		
	
		
		
			
				
					|  |  | 					ScreenCustomerAgencyEntity agency = agencyMap.get(project.getOrgId()); |  |  | 					ScreenCustomerAgencyEntity agency = agencyMap.get(project.getOrgId()); | 
			
		
	
		
		
			
				
					|  |  | 					dto.setOrgCode(agency.getCode()); |  |  | 					dto.setOrgCode(agency.getCode()); | 
			
		
	
	
		
		
			
				
					|  | @ -189,25 +201,29 @@ public class DataReportingServiceImpl implements DataReportingService { | 
			
		
	
		
		
			
				
					|  |  | 		return list.stream().filter(item -> StringUtils.isNotBlank(item.getEventCategory())).collect(Collectors.toList()); |  |  | 		return list.stream().filter(item -> StringUtils.isNotBlank(item.getEventCategory())).collect(Collectors.toList()); | 
			
		
	
		
		
			
				
					|  |  | 	} |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  | 	private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project) { |  |  | 	private EventInfoResultDTO getEventInfoResultDTO(ScreenProjectDataDTO project, Map<String, CustomerProjectCategoryDictEntity> epmetCodeMap, Map<String, CustomerProjectCategoryDictEntity> codeMap) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 		EventInfoResultDTO dto = new EventInfoResultDTO(); |  |  | 		EventInfoResultDTO dto = new EventInfoResultDTO(); | 
			
		
	
		
		
			
				
					|  |  | 		dto.setId(project.getProjectId()); |  |  | 		dto.setId(project.getProjectId()); | 
			
		
	
		
		
			
				
					|  |  | 		dto.setCustomerId(project.getCustomerId()); |  |  | 		dto.setCustomerId(project.getCustomerId()); | 
			
		
	
		
		
			
				
					|  |  | 		dto.setEventName(project.getProjectTitle()); |  |  | 		dto.setEventName(project.getProjectTitle()); | 
			
		
	
		
		
			
				
					|  |  | 		dto.setReporterId(project.getProjectCreator()); |  |  | 		dto.setReporterId(project.getProjectCreator()); | 
			
		
	
		
		
			
				
					|  |  | 		String categoryCode = project.getCategoryCode().split(StrConstant.COMMA)[0]; |  |  | 		String categoryCode = project.getCategoryCode().split(StrConstant.COMMA)[0]; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		String parentCode = null == codeMap.get(categoryCode)?null:codeMap.get(categoryCode).getParentCategoryCode(); | 
			
		
	
		
		
			
				
					|  |  | 		//如果是孔村、榆山、锦水的项目需要关联分类字典表
 |  |  | 		//如果是孔村、榆山、锦水的项目需要关联分类字典表
 | 
			
		
	
		
		
			
				
					|  |  | 		if("2fe0065f70ca0e23ce4c26fca5f1d933".equals(project.getCustomerId()) || |  |  | 		if("2fe0065f70ca0e23ce4c26fca5f1d933".equals(project.getCustomerId()) || | 
			
		
	
		
		
			
				
					|  |  | 				"44876154d10d7cb7affd92000f84f833".equals(project.getCustomerId()) || |  |  | 				"44876154d10d7cb7affd92000f84f833".equals(project.getCustomerId()) || | 
			
		
	
		
		
			
				
					|  |  | 					"46c55cb862d6d5e6d05d2ab61a1cc07e".equals(project.getCustomerId())) { |  |  | 					"46c55cb862d6d5e6d05d2ab61a1cc07e".equals(project.getCustomerId())) { | 
			
		
	
		
		
			
				
					
					|  |  | 			CustomerProjectCategoryDictEntity categoryEntity = customerProjectCategoryDictService.getByCategoryCode(project.getCustomerId(), categoryCode); |  |  | 			CustomerProjectCategoryDictEntity categoryEntity = codeMap.get(categoryCode); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 			if (null != categoryEntity) { |  |  | 			if (null != categoryEntity) { | 
			
		
	
		
		
			
				
					|  |  | 				categoryCode = categoryEntity.getEpmetCategoryCode(); |  |  | 				categoryCode = categoryEntity.getEpmetCategoryCode(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 				parentCode = epmetCodeMap.get(categoryEntity.getEpmetCategoryCode()).getParentCategoryCode(); | 
			
		
	
		
		
			
				
					|  |  | 			} else { |  |  | 			} else { | 
			
		
	
		
		
			
				
					|  |  | 				categoryCode = null; |  |  | 				categoryCode = null; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 				parentCode = null; | 
			
		
	
		
		
			
				
					|  |  | 			} |  |  | 			} | 
			
		
	
		
		
			
				
					|  |  | 		} |  |  | 		} | 
			
		
	
		
		
			
				
					|  |  | 		dto.setEventCategory(categoryCode); |  |  | 		dto.setEventCategory(categoryCode); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		dto.setParentEventCategory(parentCode); | 
			
		
	
		
		
			
				
					|  |  | 		dto.setReportTime(project.getProjectCreateTime()); |  |  | 		dto.setReportTime(project.getProjectCreateTime()); | 
			
		
	
		
		
			
				
					|  |  | 		dto.setHappenDate(DateUtils.parseDate(DateUtils.format(project.getProjectCreateTime()), DateUtils.DATE_PATTERN)); |  |  | 		dto.setHappenDate(DateUtils.parseDate(DateUtils.format(project.getProjectCreateTime()), DateUtils.DATE_PATTERN)); | 
			
		
	
		
		
			
				
					|  |  | 		dto.setHappenPlace(project.getProjectAddress()); |  |  | 		dto.setHappenPlace(project.getProjectAddress()); | 
			
		
	
	
		
		
			
				
					|  | @ -244,7 +260,7 @@ public class DataReportingServiceImpl implements DataReportingService { | 
			
		
	
		
		
			
				
					|  |  | 				dto.setCompleteLevel("07"); |  |  | 				dto.setCompleteLevel("07"); | 
			
		
	
		
		
			
				
					|  |  | 			} |  |  | 			} | 
			
		
	
		
		
			
				
					|  |  | 		} |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  | 
 |  |  | 		dto.setStatus(getProjectStatus(project.getProjectStatusCode())); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 		dto.setCompleteTime(project.getCloseCaseTime()); |  |  | 		dto.setCompleteTime(project.getCloseCaseTime()); | 
			
		
	
		
		
			
				
					|  |  | 		dto.setLat(project.getLatitude()); |  |  | 		dto.setLat(project.getLatitude()); | 
			
		
	
		
		
			
				
					|  |  | 		dto.setLng(project.getLongitude()); |  |  | 		dto.setLng(project.getLongitude()); | 
			
		
	
	
		
		
			
				
					|  | @ -268,6 +284,19 @@ public class DataReportingServiceImpl implements DataReportingService { | 
			
		
	
		
		
			
				
					|  |  | 		} |  |  | 		} | 
			
		
	
		
		
			
				
					|  |  | 	} |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	private String getProjectStatus(String status) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		switch (status) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			case ProjectConstant.PENDING: | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 				return "01"; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			case ProjectConstant.CLOSED: | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 				return "02"; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			case ProjectConstant.CLOSED_CASE: | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 				return "03"; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 			default: | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 				return null; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 		} | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 	} | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     @Override |  |  |     @Override | 
			
		
	
		
		
			
				
					|  |  |     public List<MidPatrolRecordResult> getPatrolRecordList(MidPatrolFormDTO formDTO) { |  |  |     public List<MidPatrolRecordResult> getPatrolRecordList(MidPatrolFormDTO formDTO) { | 
			
		
	
		
		
			
				
					|  |  |         return userService.getPatrolRecordList(formDTO); |  |  |         return userService.getPatrolRecordList(formDTO); | 
			
		
	
	
		
		
			
				
					|  | 
 |