|
|
@@ -19,12 +19,15 @@ import com.xunmei.core.resumption.service.IProtectionService;
|
|
|
import com.xunmei.core.resumption.service.ResumptionService;
|
|
|
import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
|
|
|
import com.xunmei.core.safetyCheck.service.ICoreSafetyTaskService;
|
|
|
+import com.xunmei.core.thread.ThreadPoolConfig;
|
|
|
import com.xunmei.system.api.RemoteRoleService;
|
|
|
import com.xunmei.system.api.RemoteUserService;
|
|
|
import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
|
|
|
import com.xunmei.system.api.model.LoginUser;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.*;
|
|
|
@@ -57,6 +60,9 @@ public class PanelServiceImpl implements PanelService {
|
|
|
private RemoteRoleService roleService;
|
|
|
@Autowired
|
|
|
private IProtectionService protectionService;
|
|
|
+ @Autowired
|
|
|
+ @Qualifier(ThreadPoolConfig.SOC_EXECUTOR)
|
|
|
+ private ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
|
|
|
|
|
@Override
|
|
|
public List<PanelResultVo> selectPage() throws ExecutionException, InterruptedException, TimeoutException {
|
|
|
@@ -71,44 +77,49 @@ public class PanelServiceImpl implements PanelService {
|
|
|
|
|
|
//履职任务
|
|
|
CompletableFuture<List<PanelListVo>> resumptionTaskFuture = CompletableFuture.supplyAsync(() ->
|
|
|
- resumptionService.selectCurUserTaskList(panelListDto)
|
|
|
+ resumptionService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
|
|
|
);
|
|
|
|
|
|
//布撤防
|
|
|
CompletableFuture<List<PanelListVo>> protectionTaskFuture = CompletableFuture.supplyAsync(() ->
|
|
|
- protectionService.selectCurUserTaskList(panelListDto)
|
|
|
+ protectionService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
|
|
|
);
|
|
|
|
|
|
//监控调阅任务
|
|
|
CompletableFuture<List<PanelListVo>> monitorTaskFuture = CompletableFuture.supplyAsync(() ->
|
|
|
- coreMonitoringRetrievalTaskService.selectCurUserTaskList(panelListDto)
|
|
|
+ coreMonitoringRetrievalTaskService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
|
|
|
);
|
|
|
|
|
|
//安全检查任务
|
|
|
CompletableFuture<List<PanelListVo>> safetyTaskFuture = CompletableFuture.supplyAsync(() ->
|
|
|
- safetyTaskService.selectCurUserTaskList(panelListDto)
|
|
|
+ safetyTaskService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
|
|
|
);
|
|
|
|
|
|
|
|
|
//预案演练任务
|
|
|
CompletableFuture<List<PanelListVo>> drillTaskFuture = CompletableFuture.supplyAsync(() ->
|
|
|
- drillTaskService.selectCurUserTaskList(panelListDto)
|
|
|
+ drillTaskService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
|
|
|
+ );
|
|
|
+ //预案演练任务
|
|
|
+ CompletableFuture<List<PanelListVo>> recLitFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ drillTaskService.selectRecList(panelListDto), threadPoolTaskExecutor
|
|
|
);
|
|
|
|
|
|
//教育培训任务
|
|
|
CompletableFuture<List<PanelListVo>> eduTrainingTaskFuture = CompletableFuture.supplyAsync(() ->
|
|
|
- eduTrainingTaskService.selectCurUserTaskList(panelListDto)
|
|
|
+ eduTrainingTaskService.selectCurUserTaskList(panelListDto), threadPoolTaskExecutor
|
|
|
);
|
|
|
+
|
|
|
CompletableFuture<Void> allQueries = CompletableFuture.allOf(
|
|
|
resumptionTaskFuture, protectionTaskFuture, monitorTaskFuture,
|
|
|
- safetyTaskFuture, drillTaskFuture, eduTrainingTaskFuture
|
|
|
+ safetyTaskFuture, drillTaskFuture, eduTrainingTaskFuture, recLitFuture
|
|
|
);
|
|
|
|
|
|
allQueries.get(TIMEOUT, TimeUnit.SECONDS);
|
|
|
|
|
|
List<PanelListVo> resultList = Stream.of(
|
|
|
resumptionTaskFuture.join(), protectionTaskFuture.join(), monitorTaskFuture.join(),
|
|
|
- safetyTaskFuture.join(), drillTaskFuture.join(), eduTrainingTaskFuture.join()
|
|
|
+ safetyTaskFuture.join(), drillTaskFuture.join(), eduTrainingTaskFuture.join(), recLitFuture.join()
|
|
|
)
|
|
|
.flatMap(Collection::stream)
|
|
|
.collect(Collectors.toList());
|
|
|
@@ -132,12 +143,24 @@ public class PanelServiceImpl implements PanelService {
|
|
|
}
|
|
|
|
|
|
private void dealResult(List<PanelListVo> resumptionTaskResult, List<PanelListVo> protectionTaskResult, List<PanelListVo> monitorTaskResult, List<PanelListVo> safetyTaskResult, List<PanelListVo> drillTaskResult, List<PanelListVo> eduTrainingTaskResult) {
|
|
|
- resumptionTaskResult.forEach(item->{item.setType(PanelTypeEnums.RESUMPTION.getCode());});
|
|
|
- protectionTaskResult.forEach(item->{item.setType(PanelTypeEnums.PROTECTION.getCode());});
|
|
|
- monitorTaskResult.forEach(item->{item.setType(PanelTypeEnums.MONITORING_RETRIEVAL.getCode());});
|
|
|
- safetyTaskResult.forEach(item->{item.setType(PanelTypeEnums.SAFETY_CHECK.getCode());});
|
|
|
- drillTaskResult.forEach(item->{item.setType(PanelTypeEnums.DRILL.getCode());});
|
|
|
- eduTrainingTaskResult.forEach(item->{item.setType(PanelTypeEnums.EDU_TRAINING.getCode());});
|
|
|
+ resumptionTaskResult.forEach(item -> {
|
|
|
+ item.setType(PanelTypeEnums.RESUMPTION.getCode());
|
|
|
+ });
|
|
|
+ protectionTaskResult.forEach(item -> {
|
|
|
+ item.setType(PanelTypeEnums.PROTECTION.getCode());
|
|
|
+ });
|
|
|
+ monitorTaskResult.forEach(item -> {
|
|
|
+ item.setType(PanelTypeEnums.MONITORING_RETRIEVAL.getCode());
|
|
|
+ });
|
|
|
+ safetyTaskResult.forEach(item -> {
|
|
|
+ item.setType(PanelTypeEnums.SAFETY_CHECK.getCode());
|
|
|
+ });
|
|
|
+ drillTaskResult.forEach(item -> {
|
|
|
+ item.setType(PanelTypeEnums.DRILL.getCode());
|
|
|
+ });
|
|
|
+ eduTrainingTaskResult.forEach(item -> {
|
|
|
+ item.setType(PanelTypeEnums.EDU_TRAINING.getCode());
|
|
|
+ });
|
|
|
|
|
|
}
|
|
|
}
|