|
@@ -21,7 +21,6 @@ import com.css.simulation.resource.scheduler.infra.fs.minio.MinioUtil;
|
|
import com.css.simulation.resource.scheduler.infra.threadpool.ThreadPool;
|
|
import com.css.simulation.resource.scheduler.infra.threadpool.ThreadPool;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
-import com.sun.istack.internal.NotNull;
|
|
|
|
import io.minio.MinioClient;
|
|
import io.minio.MinioClient;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -34,6 +33,7 @@ import java.nio.file.attribute.PosixFilePermission;
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.concurrent.Future;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -52,7 +52,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
private final Map<String, SceneEvaluationComputeParam> sceneEvaluationComputeParamMap;
|
|
private final Map<String, SceneEvaluationComputeParam> sceneEvaluationComputeParamMap;
|
|
|
|
|
|
public SceneEvaluationComputeRunnable(String linuxTempPath, String bucketName,
|
|
public SceneEvaluationComputeRunnable(String linuxTempPath, String bucketName,
|
|
- @NotNull Map<String, SceneEvaluationComputeParam> sceneEvaluationComputeParamMap) {
|
|
|
|
|
|
+ Map<String, SceneEvaluationComputeParam> sceneEvaluationComputeParamMap) {
|
|
this.linuxTempPath = linuxTempPath;
|
|
this.linuxTempPath = linuxTempPath;
|
|
this.bucketName = bucketName;
|
|
this.bucketName = bucketName;
|
|
this.sceneEvaluationComputeParamMap = sceneEvaluationComputeParamMap;
|
|
this.sceneEvaluationComputeParamMap = sceneEvaluationComputeParamMap;
|
|
@@ -82,13 +82,14 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(null);
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(null);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_1);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_1);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ SceneComputerRateDTO numsKeysSceneResult = null;
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_RUNNING);
|
|
|
|
|
|
String ruleId = sceneEvaluationComputeParam.getSceneEvaluationRuleId();
|
|
String ruleId = sceneEvaluationComputeParam.getSceneEvaluationRuleId();
|
|
log.info("开始执行线程:" + sceneEvaluationComputeParam);
|
|
log.info("开始执行线程:" + sceneEvaluationComputeParam);
|
|
// String bucketName = sceneEvaluationComputeParam.getBucketName();
|
|
// String bucketName = sceneEvaluationComputeParam.getBucketName();
|
|
// 如果是计算覆盖率,要先看覆盖率前置条件有没有跑完任务
|
|
// 如果是计算覆盖率,要先看覆盖率前置条件有没有跑完任务
|
|
- SceneComputerRateDTO numsKeysSceneResult = null;
|
|
|
|
|
|
+
|
|
if (DictConstants.COVERAGE.equals(sceneEvaluationComputeParam.getComputeType())
|
|
if (DictConstants.COVERAGE.equals(sceneEvaluationComputeParam.getComputeType())
|
|
|| DictConstants.COVERAGE_PREFIX.equals(sceneEvaluationComputeParam.getComputeType())) {
|
|
|| DictConstants.COVERAGE_PREFIX.equals(sceneEvaluationComputeParam.getComputeType())) {
|
|
numsKeysSceneResult = sceneComputerRateMapper.loadSceneComputerRate(DictConstants.COVERAGE_PREFIX);
|
|
numsKeysSceneResult = sceneComputerRateMapper.loadSceneComputerRate(DictConstants.COVERAGE_PREFIX);
|
|
@@ -106,7 +107,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("场景评价规则已删除");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("场景评价规则已删除");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_TERMINATING);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
log.info("场景评价规则为:" + sceneEvaluationRulePO);
|
|
log.info("场景评价规则为:" + sceneEvaluationRulePO);
|
|
@@ -124,7 +125,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("场景评价脚本不存在");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("场景评价脚本不存在");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_TERMINATING);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
String pyMainPath = scriptsPath + "/" + sceneEvaluationRulePO.getRuleId();
|
|
String pyMainPath = scriptsPath + "/" + sceneEvaluationRulePO.getRuleId();
|
|
@@ -148,7 +149,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("下载场景评价脚本失败");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("下载场景评价脚本失败");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_TERMINATING);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -157,6 +158,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
String sceneComputerPathFather = evaluationDirectoryOfUser + "sceneComputer/" + sceneEvaluationComputeParam.getTaskId();
|
|
String sceneComputerPathFather = evaluationDirectoryOfUser + "sceneComputer/" + sceneEvaluationComputeParam.getTaskId();
|
|
|
|
|
|
List<String> sceneIdList = new ArrayList<>();
|
|
List<String> sceneIdList = new ArrayList<>();
|
|
|
|
+ List<Future<?>> futureList = new ArrayList<>();
|
|
for (SceneEvaluationComputeSubParam sceneEvaluationComputeSubParam : sceneEvaluationComputeParam.getSceneEvaluationComputeSubParam()) {
|
|
for (SceneEvaluationComputeSubParam sceneEvaluationComputeSubParam : sceneEvaluationComputeParam.getSceneEvaluationComputeSubParam()) {
|
|
sceneIdList.add(sceneEvaluationComputeSubParam.getSceneId());
|
|
sceneIdList.add(sceneEvaluationComputeSubParam.getSceneId());
|
|
if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COMPLEXITY)) {
|
|
if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COMPLEXITY)) {
|
|
@@ -170,7 +172,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
log.info("创建复杂度文件夹:" + scenePath);
|
|
log.info("创建复杂度文件夹:" + scenePath);
|
|
FileUtil.createDirectory(scenePath);
|
|
FileUtil.createDirectory(scenePath);
|
|
}
|
|
}
|
|
- ThreadPool.sceneDownloadPool.execute(() -> {
|
|
|
|
|
|
+ Future<?> future = ThreadPool.sceneDownloadPool.submit(() -> {
|
|
try {
|
|
try {
|
|
// 计算复杂度,根据场景 id 获取场景信息,下载 osc odr
|
|
// 计算复杂度,根据场景 id 获取场景信息,下载 osc odr
|
|
String scenarioOsc = sceneEvaluationComputeSubParam.getSceneXOSCPath();
|
|
String scenarioOsc = sceneEvaluationComputeSubParam.getSceneXOSCPath();
|
|
@@ -187,6 +189,8 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
FileUtil.deleteFolder(scenePathFather); // 删除临时文件
|
|
FileUtil.deleteFolder(scenePathFather); // 删除临时文件
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
+
|
|
|
|
+ futureList.add(future);
|
|
} else if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.RISK)) {
|
|
} else if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.RISK)) {
|
|
if (StringUtil.isEmpty(sceneEvaluationComputeSubParam.getEvaluationPath())) {
|
|
if (StringUtil.isEmpty(sceneEvaluationComputeSubParam.getEvaluationPath())) {
|
|
continue;
|
|
continue;
|
|
@@ -197,7 +201,8 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
log.info("创建危险度文件夹:" + scenePath);
|
|
log.info("创建危险度文件夹:" + scenePath);
|
|
FileUtil.createDirectory(scenePath);
|
|
FileUtil.createDirectory(scenePath);
|
|
}
|
|
}
|
|
- ThreadPool.sceneDownloadPool.execute(() -> {
|
|
|
|
|
|
+
|
|
|
|
+ Future<?> future = ThreadPool.sceneDownloadPool.submit(() -> {
|
|
try {
|
|
try {
|
|
// 计算危险度 从 minio path 下载 csv (ego 和 sensors)
|
|
// 计算危险度 从 minio path 下载 csv (ego 和 sensors)
|
|
MinioUtil.downloadToFile(minioClient, bucketName, sceneEvaluationComputeSubParam.getEvaluationPath() + "/Ego.csv", scenePath + "/Ego.csv");
|
|
MinioUtil.downloadToFile(minioClient, bucketName, sceneEvaluationComputeSubParam.getEvaluationPath() + "/Ego.csv", scenePath + "/Ego.csv");
|
|
@@ -207,6 +212,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
FileUtil.deleteFolder(riskPathFather); // 删除临时文件
|
|
FileUtil.deleteFolder(riskPathFather); // 删除临时文件
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
+ futureList.add(future);
|
|
} else if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.EXPOSURE_RATE)
|
|
} else if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.EXPOSURE_RATE)
|
|
|| StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COVERAGE)
|
|
|| StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COVERAGE)
|
|
|| StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COVERAGE_PREFIX)) {
|
|
|| StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COVERAGE_PREFIX)) {
|
|
@@ -229,21 +235,32 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
}
|
|
}
|
|
paramFilesStrSet.add(dirPrefix);
|
|
paramFilesStrSet.add(dirPrefix);
|
|
// 开线程去下载
|
|
// 开线程去下载
|
|
- ThreadPool.sceneDownloadPool.execute(() -> {
|
|
|
|
|
|
+ Future<?> future = ThreadPool.sceneDownloadPool.submit(() -> {
|
|
try {
|
|
try {
|
|
MinioUtil.downloadDirFiles(minioClient, bucketName, dirPrefix, sceneComputerPathFather);
|
|
MinioUtil.downloadDirFiles(minioClient, bucketName, dirPrefix, sceneComputerPathFather);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
log.error("文件目录下载失败,{}", dirPrefix);
|
|
log.error("文件目录下载失败,{}", dirPrefix);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
+ futureList.add(future);
|
|
} else {
|
|
} else {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("获取评价类型错误");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("获取评价类型错误");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_TERMINATING);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ log.info("file download future size={}", futureList.size());
|
|
|
|
+ for (Future<?> future : futureList) {
|
|
|
|
+ log.info("wait files download");
|
|
|
|
+ try {
|
|
|
|
+ future.get(); // 阻塞等待任务完成
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.error("download file future error", e);
|
|
|
|
+ }
|
|
|
|
+ log.info("files download end");
|
|
|
|
+ }
|
|
String sceneEvaluationCommand;
|
|
String sceneEvaluationCommand;
|
|
if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COMPLEXITY)) {
|
|
if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COMPLEXITY)) {
|
|
sceneEvaluationCommand = pyMainPath + " " + scenePathFather + " complexity";
|
|
sceneEvaluationCommand = pyMainPath + " " + scenePathFather + " complexity";
|
|
@@ -297,7 +314,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("执行场景评价命令失败");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("执行场景评价命令失败");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_TERMINATING);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -314,7 +331,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("获取场景评价结果失败");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("获取场景评价结果失败");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_TERMINATING);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
sceneEvaluationResult = sb.toString();
|
|
sceneEvaluationResult = sb.toString();
|
|
@@ -335,7 +352,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("获取评价类型错误");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("获取评价类型错误");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_TERMINATING);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
FileInputStream fileInputStream = new FileInputStream(readPath + sceneEvaluationComputeSubParam.getSceneId() + "/scenario_evaluation.json");
|
|
FileInputStream fileInputStream = new FileInputStream(readPath + sceneEvaluationComputeSubParam.getSceneId() + "/scenario_evaluation.json");
|
|
@@ -421,7 +438,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_3);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("获取评价类型错误");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("获取评价类型错误");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_TERMINATING);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
FileInputStream fileInputStream = new FileInputStream(readPath);
|
|
FileInputStream fileInputStream = new FileInputStream(readPath);
|
|
@@ -441,7 +458,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
// 如果是覆盖率前置条件,需要修改覆盖率前置条件
|
|
// 如果是覆盖率前置条件,需要修改覆盖率前置条件
|
|
if (numsKeysSceneResult != null && DictConstants.COVERAGE_PREFIX.equals(sceneEvaluationComputeParam.getComputeType())) {
|
|
if (numsKeysSceneResult != null && DictConstants.COVERAGE_PREFIX.equals(sceneEvaluationComputeParam.getComputeType())) {
|
|
sceneComputerRateMapper.updateResultByIdAndType(numsKeysSceneResult.getComputerRateId(), numsKeysSceneResult.getComputerType(), replace);
|
|
sceneComputerRateMapper.updateResultByIdAndType(numsKeysSceneResult.getComputerRateId(), numsKeysSceneResult.getComputerType(), replace);
|
|
- }else {
|
|
|
|
|
|
+ } else {
|
|
// 保存结果
|
|
// 保存结果
|
|
SceneComputerRateDTO sceneComputerRatePO = getSceneComputerRatePO(sceneEvaluationComputeParam, replace, ruleId, sceneIdList);
|
|
SceneComputerRateDTO sceneComputerRatePO = getSceneComputerRatePO(sceneEvaluationComputeParam, replace, ruleId, sceneIdList);
|
|
sceneComputerRateMapper.saveSceneComputerRate(sceneComputerRatePO);
|
|
sceneComputerRateMapper.saveSceneComputerRate(sceneComputerRatePO);
|
|
@@ -454,7 +471,7 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEndEvaluationTime(TimeUtil.getNowForMysql());
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_2);
|
|
sceneEvaluationStatusPO.setEvaluationStatus(DictConstants.SCENE_EVALUATION_STATUS_2);
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("");
|
|
sceneEvaluationStatusPO.setEvaluationErrorMsg("");
|
|
- updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO);
|
|
|
|
|
|
+ updateStatus(sceneEvaluationComputeParam, sceneEvaluationStatusMapper, sceneEvaluationStatusPO, numsKeysSceneResult, DictConstants.PROJECT_COMPLETED);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
// 删除临时文件
|
|
// 删除临时文件
|
|
@@ -493,10 +510,14 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneComputerRatePO.setAlgorithmId(sceneEvaluationComputeParam.getAlgorithmId());
|
|
sceneComputerRatePO.setAlgorithmId(sceneEvaluationComputeParam.getAlgorithmId());
|
|
sceneComputerRatePO.setVehicleId(sceneEvaluationComputeParam.getVehicleId());
|
|
sceneComputerRatePO.setVehicleId(sceneEvaluationComputeParam.getVehicleId());
|
|
sceneComputerRatePO.setCreateTime(TimeUtil.getNowForMysql());
|
|
sceneComputerRatePO.setCreateTime(TimeUtil.getNowForMysql());
|
|
|
|
+ sceneComputerRatePO.setIsDeleted("0");
|
|
return sceneComputerRatePO;
|
|
return sceneComputerRatePO;
|
|
}
|
|
}
|
|
|
|
|
|
- private void updateStatus(SceneEvaluationComputeParam sceneEvaluationComputeParam, SceneEvaluationStatusMapper sceneEvaluationStatusMapper, SceneEvaluationStatusPO sceneEvaluationStatusPO) {
|
|
|
|
|
|
+ private void updateStatus(SceneEvaluationComputeParam sceneEvaluationComputeParam,
|
|
|
|
+ SceneEvaluationStatusMapper sceneEvaluationStatusMapper,
|
|
|
|
+ SceneEvaluationStatusPO sceneEvaluationStatusPO,
|
|
|
|
+ SceneComputerRateDTO numsKeysSceneResult, String processStatus) {
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COMPLEXITY)) {
|
|
if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COMPLEXITY)) {
|
|
if (DictConstants.SCENE_IMPORT_EVALUATION_TYPE.equals(sceneEvaluationComputeParam.getType())) {
|
|
if (DictConstants.SCENE_IMPORT_EVALUATION_TYPE.equals(sceneEvaluationComputeParam.getType())) {
|
|
@@ -550,6 +571,11 @@ public class SceneEvaluationComputeRunnable implements Runnable {
|
|
sceneEvaluationStatusMapper.updateManualProjectEvaluationStatus(sceneEvaluationStatusPO.getId(), evaluationJsonObj.toString());
|
|
sceneEvaluationStatusMapper.updateManualProjectEvaluationStatus(sceneEvaluationStatusPO.getId(), evaluationJsonObj.toString());
|
|
}
|
|
}
|
|
} else if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COVERAGE_PREFIX)) {
|
|
} else if (StringUtils.equals(sceneEvaluationComputeParam.getComputeType(), DictConstants.COVERAGE_PREFIX)) {
|
|
|
|
+
|
|
|
|
+ if (numsKeysSceneResult != null) {
|
|
|
|
+ SceneComputerRateMapper sceneComputerRateMapper = ApplicationContextAwareImpl.getApplicationContext().getBean(SceneComputerRateMapper.class);
|
|
|
|
+ sceneComputerRateMapper.updateProcessStatusByIdAndType(numsKeysSceneResult.getComputerRateId(), numsKeysSceneResult.getComputerType(), processStatus);
|
|
|
|
+ }
|
|
SimulationManualProjectMapper simulationManualProjectMapper = ApplicationContextAwareImpl.getApplicationContext().getBean(SimulationManualProjectMapper.class);
|
|
SimulationManualProjectMapper simulationManualProjectMapper = ApplicationContextAwareImpl.getApplicationContext().getBean(SimulationManualProjectMapper.class);
|
|
ProjectEntity projectEntity = simulationManualProjectMapper.selectById(sceneEvaluationComputeParam.getTaskId());
|
|
ProjectEntity projectEntity = simulationManualProjectMapper.selectById(sceneEvaluationComputeParam.getTaskId());
|
|
if (StringUtil.isNotEmpty(projectEntity.getEvaluationJsonMsg())) {
|
|
if (StringUtil.isNotEmpty(projectEntity.getEvaluationJsonMsg())) {
|