public List<ComponentDataDTO> getComponentMinAndMaxData(String tableName, List<AnchorAndComponentDO> anchorAndComponentDOList, LocalDateTime startLocalDateTime, LocalDateTime endLocalDateTime) { List<ComponentDataDTO> componentDataDTOList = new ArrayList<>(); ConcurrentHashMap<String,List<ComponentDataDTO>> componentDataDTOMap = new ConcurrentHashMap<>(); if(anchorAndComponentDOList!=null && !anchorAndComponentDOList.isEmpty()){ //多线程调用 List<CompletableFuture<Boolean>> completableFutureList = anchorAndComponentDOList.stream().map((AnchorAndComponentDO anchorComponent)-> CompletableFuture.supplyAsync(()->{ try{ //调用处理 List<ComponentDataDTO> componentMinAndMaxDataList = componentMapper.getComponentMinAndMaxData(tableName, anchorComponent, startLocalDateTime, endLocalDateTime); componentDataDTOMap.put(anchorComponent.getAnchorId()+":"+anchorComponent.getComponentId(),componentMinAndMaxDataList); }catch (Exception e){ //记录备注Map logger.error("监测点:"+anchorComponent.getAnchorId()+",监测项:"+anchorComponent.getComponentId()+",获取数据报错:"+e+"-"+e.getMessage()); return false; } return true; })).collect(Collectors.toList()); List<Boolean> collect = completableFutureList.stream().map(CompletableFuture::join).collect(Collectors.toList()); if(!collect.contains(false)){ componentDataDTOMap.forEach((k, v) -> componentDataDTOList.addAll(v)); } } return componentDataDTOList; }