|
|
@ -26,11 +26,12 @@ import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.CompletableFuture; |
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
import java.util.function.Function; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
import static com.kms.yg.cz.enmu.MonitorSourceEnum.MS_HDM_RSVR; |
|
|
|
|
|
|
|
@Service |
|
|
|
@Slf4j |
|
|
|
public class MonitorService { |
|
|
@ -78,19 +79,17 @@ public class MonitorService { |
|
|
|
|
|
|
|
private Map<MonitorSourceEnum, List<Map<String, Object>>> queryData(List<MonitorSourceEnum> sourceEnums, MonitorQueDto queDto) { |
|
|
|
Map<MonitorSourceEnum, CompletableFuture<List<Object>>> futureMap = sourceEnums.stream() |
|
|
|
.collect(Collectors.toMap(Function.identity(), item -> CompletableFuture.supplyAsync(() -> queryDataList(item, queDto))) |
|
|
|
); |
|
|
|
.collect(Collectors.toMap(Function.identity(), item -> CompletableFuture.supplyAsync(() -> queryDataList(item, queDto)))); |
|
|
|
try { |
|
|
|
CompletableFuture.allOf(futureMap.values().toArray(new CompletableFuture[0])).get(1, TimeUnit.MINUTES); |
|
|
|
CompletableFuture.allOf(futureMap.values().toArray(new CompletableFuture[0])).join(); |
|
|
|
return futureMap.entrySet().stream() |
|
|
|
.collect(Collectors.toMap(Map.Entry::getKey, item -> { |
|
|
|
CompletableFuture<List<Object>> future = item.getValue(); |
|
|
|
return future.getNow(Collections.emptyList()) |
|
|
|
return future.join() |
|
|
|
.stream() |
|
|
|
.map(BeanCopyUtils::copyToMap) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
})); |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
log.error("查询数据异常", e); |
|
|
|
return Collections.emptyMap(); |
|
|
@ -98,7 +97,7 @@ public class MonitorService { |
|
|
|
} |
|
|
|
|
|
|
|
public CurrentWaterMonitorDto watter(MonitorQueDto sp) { |
|
|
|
CompletableFuture<MsHdmRsvr> currentWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVR, sp)); |
|
|
|
CompletableFuture<MsHdmRsvr> currentWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MS_HDM_RSVR, sp)); |
|
|
|
CompletableFuture<MsHdmRsvrav> avWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVRAV, sp)); |
|
|
|
CompletableFuture<MsHdmRsvrevs> mxWatterFuture = CompletableFuture.supplyAsync(() -> queryDataOne(MonitorSourceEnum.MS_HDM_RSVREVS, sp)); |
|
|
|
CompletableFuture<List<MsHdmObp>> currentFlowFuture = CompletableFuture.supplyAsync(() -> queryDataList(MonitorSourceEnum.MS_HDM_OBP, sp)); |
|
|
@ -200,6 +199,7 @@ public class MonitorService { |
|
|
|
IPage<Object> page = source.getMockData(queDto); |
|
|
|
return (IPage<T>) page; |
|
|
|
} |
|
|
|
log.debug("请求接口:{}", dataSyncUrl + path); |
|
|
|
String json = dataCenterRestTemplateUtils.doPostRequest(dataSyncUrl + path, queDto); |
|
|
|
resultWrapper.setResultJson(json); |
|
|
|
return (IPage<T>) source.getRecords().apply(resultWrapper); |
|
|
|