|
@@ -6,12 +6,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.tzld.piaoquan.sde.common.api.CommonRequest;
|
|
import com.tzld.piaoquan.sde.common.api.CommonRequest;
|
|
|
import com.tzld.piaoquan.sde.common.enums.*;
|
|
import com.tzld.piaoquan.sde.common.enums.*;
|
|
|
|
|
+import com.tzld.piaoquan.sde.common.enums.deconstruction.DeconstructionTaskStatusEnum;
|
|
|
import com.tzld.piaoquan.sde.common.exception.HttpServiceException;
|
|
import com.tzld.piaoquan.sde.common.exception.HttpServiceException;
|
|
|
import com.tzld.piaoquan.sde.integration.ContentDeconstructionClient;
|
|
import com.tzld.piaoquan.sde.integration.ContentDeconstructionClient;
|
|
|
import com.tzld.piaoquan.sde.mapper.SdExecutionTaskMapper;
|
|
import com.tzld.piaoquan.sde.mapper.SdExecutionTaskMapper;
|
|
|
import com.tzld.piaoquan.sde.mapper.SdExecutionTaskRawResultMapper;
|
|
import com.tzld.piaoquan.sde.mapper.SdExecutionTaskRawResultMapper;
|
|
|
import com.tzld.piaoquan.sde.mapper.SdExecutionTaskResultItemMapper;
|
|
import com.tzld.piaoquan.sde.mapper.SdExecutionTaskResultItemMapper;
|
|
|
import com.tzld.piaoquan.sde.mapper.SdWorkflowTaskMapper;
|
|
import com.tzld.piaoquan.sde.mapper.SdWorkflowTaskMapper;
|
|
|
|
|
+import com.tzld.piaoquan.sde.model.dto.deconstruction.QueryResponseDataDTO;
|
|
|
import com.tzld.piaoquan.sde.model.entity.SdExecutionTask;
|
|
import com.tzld.piaoquan.sde.model.entity.SdExecutionTask;
|
|
|
import com.tzld.piaoquan.sde.model.entity.SdExecutionTaskRawResult;
|
|
import com.tzld.piaoquan.sde.model.entity.SdExecutionTaskRawResult;
|
|
|
import com.tzld.piaoquan.sde.model.request.ExecutionTaskGetParam;
|
|
import com.tzld.piaoquan.sde.model.request.ExecutionTaskGetParam;
|
|
@@ -145,8 +147,11 @@ public class ExecutionTaskServiceImpl implements ExecutionTaskService {
|
|
|
for (SdExecutionTask sdExecutionTask : list) {
|
|
for (SdExecutionTask sdExecutionTask : list) {
|
|
|
try {
|
|
try {
|
|
|
ExecutionTaskTypeEnum executionTaskTypeEnum = ExecutionTaskTypeEnum.getInstance(sdExecutionTask.getTaskType());
|
|
ExecutionTaskTypeEnum executionTaskTypeEnum = ExecutionTaskTypeEnum.getInstance(sdExecutionTask.getTaskType());
|
|
|
|
|
+ if (Objects.isNull(executionTaskTypeEnum)) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
String jobId = null;
|
|
String jobId = null;
|
|
|
- switch (Objects.requireNonNull(executionTaskTypeEnum)) {
|
|
|
|
|
|
|
+ switch (executionTaskTypeEnum) {
|
|
|
case DECONSTRUCT:
|
|
case DECONSTRUCT:
|
|
|
jobId = contentDeconstructionClient.submitDeconstructionTask(sdExecutionTask);
|
|
jobId = contentDeconstructionClient.submitDeconstructionTask(sdExecutionTask);
|
|
|
break;
|
|
break;
|
|
@@ -209,23 +214,60 @@ public class ExecutionTaskServiceImpl implements ExecutionTaskService {
|
|
|
}
|
|
}
|
|
|
for (SdExecutionTask sdExecutionTask : list) {
|
|
for (SdExecutionTask sdExecutionTask : list) {
|
|
|
try {
|
|
try {
|
|
|
- String rawResult = contentDeconstructionClient.getDeconstructionTaskResult(sdExecutionTask.getExternalJobId());
|
|
|
|
|
- if (Objects.isNull(rawResult) || rawResult.isEmpty()) {
|
|
|
|
|
|
|
+ QueryResponseDataDTO queryResponseDataDTO = contentDeconstructionClient.getDeconstructionTaskResult(sdExecutionTask.getExternalJobId());
|
|
|
|
|
+ DeconstructionTaskStatusEnum deconstructionTaskStatusEnum = DeconstructionTaskStatusEnum.getInstance(queryResponseDataDTO.getStatus());
|
|
|
|
|
+ if (Objects.isNull(deconstructionTaskStatusEnum)) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ ExecutionTaskStatusEnum executionTaskStatusEnum = null;
|
|
|
|
|
+ String rawResult = null;
|
|
|
|
|
+ String errorMsg = null;
|
|
|
|
|
+ switch (deconstructionTaskStatusEnum) {
|
|
|
|
|
+ case PENDING:
|
|
|
|
|
+ log.info("executionTask is pending, id:{}", sdExecutionTask.getId());
|
|
|
|
|
+ break;
|
|
|
|
|
+ case RUNNING:
|
|
|
|
|
+ executionTaskStatusEnum = ExecutionTaskStatusEnum.RUNNING;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case SUCCESS:
|
|
|
|
|
+ executionTaskStatusEnum = ExecutionTaskStatusEnum.SUCCESS;
|
|
|
|
|
+ rawResult = queryResponseDataDTO.getResult();
|
|
|
|
|
+ break;
|
|
|
|
|
+ case FAILED:
|
|
|
|
|
+ executionTaskStatusEnum = ExecutionTaskStatusEnum.FAILED;
|
|
|
|
|
+ errorMsg = queryResponseDataDTO.getReason();
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (Objects.isNull(executionTaskStatusEnum)) {
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
- SdExecutionTaskRawResult sdExecutionTaskRawResult = new SdExecutionTaskRawResult();
|
|
|
|
|
- sdExecutionTaskRawResult.setExecutionTaskId(sdExecutionTask.getId());
|
|
|
|
|
- sdExecutionTaskRawResult.setRawResult(rawResult);
|
|
|
|
|
- int rows = sdExecutionTaskRawResultMapper.insert(sdExecutionTaskRawResult);
|
|
|
|
|
- log.info("executionTask sync success, id:{} rows = {}", sdExecutionTask.getId(), rows);
|
|
|
|
|
- //TODO解析结果
|
|
|
|
|
-// if (rows > 0) {
|
|
|
|
|
-// SdExecutionTaskResultItem sdExecutionTaskResultItem = new SdExecutionTaskResultItem();
|
|
|
|
|
-// sdExecutionTaskResultItem.setExecutionTaskId(sdExecutionTask.getId());
|
|
|
|
|
-// sdExecutionTaskResultItemMapper.insert(sdExecutionTaskResultItem);
|
|
|
|
|
-// }
|
|
|
|
|
|
|
+ SdExecutionTask update = new SdExecutionTask();
|
|
|
|
|
+ update.setId(sdExecutionTask.getId());
|
|
|
|
|
+ update.setTaskStatus(executionTaskStatusEnum.getValue());
|
|
|
|
|
+ if (Objects.nonNull(errorMsg)) {
|
|
|
|
|
+ update.setErrorMsg(errorMsg);
|
|
|
|
|
+ }
|
|
|
|
|
+ int rows = sdExecutionTaskMapper.updateById(update);
|
|
|
|
|
+ if (rows > 0 && Objects.equals(executionTaskStatusEnum, ExecutionTaskStatusEnum.SUCCESS)) {
|
|
|
|
|
+ SdExecutionTaskRawResult sdExecutionTaskRawResult = new SdExecutionTaskRawResult();
|
|
|
|
|
+ sdExecutionTaskRawResult.setExecutionTaskId(sdExecutionTask.getId());
|
|
|
|
|
+ sdExecutionTaskRawResult.setRawResult(rawResult);
|
|
|
|
|
+ int insertRows = sdExecutionTaskRawResultMapper.insert(sdExecutionTaskRawResult);
|
|
|
|
|
+ log.info("executionTask result insertRows success, id:{} rows = {}", sdExecutionTask.getId(), insertRows);
|
|
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("executionTask sync error {}", sdExecutionTask, e);
|
|
log.error("executionTask sync error {}", sdExecutionTask, e);
|
|
|
|
|
+ if (e instanceof HttpServiceException) {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ SdExecutionTask update = new SdExecutionTask();
|
|
|
|
|
+ update.setId(sdExecutionTask.getId());
|
|
|
|
|
+ update.setTaskStatus(ExecutionTaskStatusEnum.FAILED.getValue());
|
|
|
|
|
+ update.setErrorMsg(e.getMessage());
|
|
|
|
|
+ int rows = sdExecutionTaskMapper.updateById(update);
|
|
|
|
|
+ log.error("executionTask failure, id:{} rows = {}", sdExecutionTask.getId(), rows);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
long costMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start);
|
|
long costMs = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start);
|