| 
						
						
							
								
							
						
						
					 | 
					@ -11,6 +11,7 @@ import com.epmet.commons.tools.constant.FieldConstant; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.constant.NumConstant; | 
					 | 
					 | 
					import com.epmet.commons.tools.constant.NumConstant; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.constant.StrConstant; | 
					 | 
					 | 
					import com.epmet.commons.tools.constant.StrConstant; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.distributedlock.DistributedLock; | 
					 | 
					 | 
					import com.epmet.commons.tools.distributedlock.DistributedLock; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.epmet.commons.tools.dto.commondto.IcEventComDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; | 
					 | 
					 | 
					import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.enums.AchievementTypeEnum; | 
					 | 
					 | 
					import com.epmet.commons.tools.enums.AchievementTypeEnum; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.enums.EventEnum; | 
					 | 
					 | 
					import com.epmet.commons.tools.enums.EventEnum; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -1659,28 +1660,56 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Override | 
					 | 
					 | 
					    @Override | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    public List<UnResolvedResultDTO> getUnResolvedList(ShiftProjectListFromDTO fromDTO) { | 
					 | 
					 | 
					    public List<UnResolvedResultDTO> getUnResolvedList(ShiftProjectListFromDTO fromDTO) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        List<UnResolvedResultDTO> resultList = new ArrayList<>(); | 
					 | 
					 | 
					        List<UnResolvedResultDTO> resultList = new ArrayList<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        List<UnResolvedResultDTO> allList = new ArrayList<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //1、该网格下已关闭且无需解决的议题
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        List<UnResolvedResultDTO> issueList = baseDao.selectUnResolvedList(fromDTO.getGridId()); | 
					 | 
					 | 
					        List<UnResolvedResultDTO> issueList = baseDao.selectUnResolvedList(fromDTO.getGridId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        if (CollectionUtils.isNotEmpty(issueList)) { | 
					 | 
					 | 
					        if (CollectionUtils.isNotEmpty(issueList)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            resultList.addAll(issueList); | 
					 | 
					 | 
					            allList.addAll(issueList); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //2、来源于议题的项目,结案无需解决的项目
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        List<UnResolvedResultDTO> projectList = govProjectOpenFeignClient.getUnResolvedList(fromDTO).getData(); | 
					 | 
					 | 
					        List<UnResolvedResultDTO> projectList = govProjectOpenFeignClient.getUnResolvedList(fromDTO).getData(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        if (CollectionUtils.isNotEmpty(projectList)) { | 
					 | 
					 | 
					        if (CollectionUtils.isNotEmpty(projectList)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            resultList.addAll(projectList); | 
					 | 
					 | 
					            allList.addAll(projectList); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        if (CollectionUtils.isNotEmpty(resultList)) { | 
					 | 
					 | 
					        if (CollectionUtils.isNotEmpty(allList)) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					            resultList = resultList.stream().sorted(Comparator.comparing(UnResolvedResultDTO::getClosedTime).reversed()).collect(Collectors.toList()); | 
					 | 
					 | 
					            allList = allList.stream().sorted(Comparator.comparing(UnResolvedResultDTO::getClosedTime).reversed()).collect(Collectors.toList()); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            if (fromDTO.getIsPage()) { | 
					 | 
					 | 
					            if (fromDTO.getIsPage()) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                int fromIndex = (fromDTO.getPageNo() - NumConstant.ONE) * fromDTO.getPageSize(); | 
					 | 
					 | 
					                int fromIndex = (fromDTO.getPageNo() - NumConstant.ONE) * fromDTO.getPageSize(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                int toIndex = fromDTO.getPageNo() * fromDTO.getPageSize(); | 
					 | 
					 | 
					                int toIndex = fromDTO.getPageNo() * fromDTO.getPageSize(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                if (fromIndex >= resultList.size()) { | 
					 | 
					 | 
					                if (fromIndex >= allList.size()) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                    return new ArrayList<>(); | 
					 | 
					 | 
					                    return new ArrayList<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                } | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                if (toIndex > resultList.size()) { | 
					 | 
					 | 
					                if (toIndex > allList.size()) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    toIndex = resultList.size(); | 
					 | 
					 | 
					                    toIndex = allList.size(); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                } | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                resultList = resultList.subList(fromIndex, toIndex); | 
					 | 
					 | 
					                resultList = allList.subList(fromIndex, toIndex); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        //重新查询一下所有议题的来源类型, 且来源于事件的议题,赋值icEventInfo
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        List<String> issueIds=resultList.stream().map(i -> i.getIssueId()).collect(Collectors.toList()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        List<IssueEntity> issueEntityList=baseDao.selectBatchIds(issueIds); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if(CollectionUtils.isNotEmpty(issueEntityList)){ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            Map<String, IcEventDTO> eventMap=new HashMap<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            // 来源于事件的
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            List<String> icEventIds = issueEntityList.stream().filter(t -> t.getSourceType().equals("ic_event")).map(i -> i.getSourceId()).collect(Collectors.toList()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            if (!org.springframework.util.CollectionUtils.isEmpty(icEventIds)) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                Result<List<IcEventDTO>> eventInfoRes = govProjectOpenFeignClient.batchSelectById(icEventIds); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                if (eventInfoRes.success() && !org.springframework.util.CollectionUtils.isEmpty(eventInfoRes.getData())) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    eventMap = eventInfoRes.getData().stream().collect(Collectors.toMap(IcEventDTO::getId, o -> o, (o1, o2) -> o1)); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            Map<String,IssueEntity> issueMap=issueEntityList.stream().collect(Collectors.toMap(IssueEntity::getId, o -> o, (o1, o2) -> o1)); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            Map<String, IcEventDTO> finalEventMap = eventMap; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            resultList.forEach(vi -> { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                vi.setIssueSourceType(null != issueMap.get(vi.getIssueId()) ? issueMap.get(vi.getIssueId()).getSourceType() : StrConstant.EPMETY_STR); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                IcEventDTO event = finalEventMap.get(vi.getSourceId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                if (null != event) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    IcEventComDTO eventComDTO = ConvertUtils.sourceToTarget(event, IcEventComDTO.class); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    eventComDTO.setIcEventId(event.getId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    vi.setIcEventInfo(eventComDTO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            }); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return resultList; | 
					 | 
					 | 
					        return resultList; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |