|
@@ -133,7 +133,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
if (add > 0) {
|
|
if (add > 0) {
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, ResponseBodyVO.Response.SUCCESS.getMessage(), po.getId());
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, ResponseBodyVO.Response.SUCCESS.getMessage(), po.getId());
|
|
}
|
|
}
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "添加失败");
|
|
|
|
|
|
+ return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "添加失败。");
|
|
} else {
|
|
} else {
|
|
// 取工作状态,仅未开始的才可以修改信息
|
|
// 取工作状态,仅未开始的才可以修改信息
|
|
SimulationManualProjectPO simulationManualProjectPo = simulationProjectMapper.selectProjectById(param);
|
|
SimulationManualProjectPO simulationManualProjectPo = simulationProjectMapper.selectProjectById(param);
|
|
@@ -260,60 +260,49 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
* 2. 手动项目:终止项目 20 -> 40
|
|
* 2. 手动项目:终止项目 20 -> 40
|
|
* 3. 手动项目:重新运行项目 40 -> 20
|
|
* 3. 手动项目:重新运行项目 40 -> 20
|
|
*/
|
|
*/
|
|
- @SneakyThrows
|
|
|
|
@Override
|
|
@Override
|
|
public ResponseBodyVO<String> updateProjectNowRunState(SimulationManualProjectParam param) {
|
|
public ResponseBodyVO<String> updateProjectNowRunState(SimulationManualProjectParam param) {
|
|
-
|
|
|
|
- // 1 查询项目详细信息
|
|
|
|
- SimulationManualProjectPO po = projectUtil.getProjectInfo(param);
|
|
|
|
- if (DictConstants.PROJECT_TERMINATED.equals(param.getNowRunState())) { // 2 项目终止信息直接推送
|
|
|
|
- projectStopToKafka(po);
|
|
|
|
- simulationProjectMapper.updateProjectNowRunState(param);
|
|
|
|
- } else {
|
|
|
|
- // 校验项目的信息是否可用
|
|
|
|
- projectUtil.checkProject(po.getAlgorithm(), po.getVehicle(), po.getScene());
|
|
|
|
-
|
|
|
|
- if (DictConstants.PROJECT_COMPLETED.equals(po.getNowRunState())) { //3 已经完成的项目再次运行
|
|
|
|
- //1 查询项目详情信息并保存,固定项目最原始的运行数据
|
|
|
|
- final ProjectDetailsVO projectDetailsVO = selectProjectDetailsByIdBeforeRunning(SimulationManualProjectParam.builder().id(po.getId()).projectType(DictConstants.PROJECT_TYPE_MANUAL).build()).getInfo();
|
|
|
|
- projectDetailsVO.setAlgorithmScoreList(new ArrayList<>());
|
|
|
|
- projectDetailsVO.setNowRunState(DictConstants.PROJECT_RUNNING);
|
|
|
|
- po.setDetails(JsonUtil.beanToJson(projectDetailsVO));
|
|
|
|
- //2 初始化数据
|
|
|
|
- po.setNowRunState(param.getNowRunState());
|
|
|
|
- po.setEvaluationLevel("");
|
|
|
|
- po.setStartTime(new Date());
|
|
|
|
- po.setFinishTime(null);
|
|
|
|
- po.createPo(AuthUtil.getCurrentUserId());
|
|
|
|
- createProjectId(po);
|
|
|
|
- //3 保存
|
|
|
|
- simulationProjectMapper.add(po);
|
|
|
|
- //4 Kafka推送消息
|
|
|
|
- projectRunToKafka(po);
|
|
|
|
- } else { //4 创建新的项目或者重新运行被终止的项目
|
|
|
|
- // 查询项目详情信息并保存
|
|
|
|
- String projectId = param.getId();
|
|
|
|
- ProjectDetailsVO info = selectProjectDetailsByIdBeforeRunning(SimulationManualProjectParam.builder().id(projectId).projectType(DictConstants.PROJECT_TYPE_MANUAL).build()).getInfo();
|
|
|
|
- String infoJson = JsonUtil.beanToJson(info);
|
|
|
|
- log.info("项目 " + projectId + " 的详情信息为:" + infoJson);
|
|
|
|
- // 保存项目详情信息
|
|
|
|
- simulationProjectMapper.updateDetailsById(projectId, infoJson);
|
|
|
|
- if (DictConstants.PROJECT_RUNNING.equals(param.getNowRunState())) {
|
|
|
|
- if (DictConstants.PROJECT_TERMINATED.equals(info.getNowRunState())) {
|
|
|
|
- // 如果是重新运行的项目,修改项目ID
|
|
|
|
- SimulationManualProjectPO simulationManualProjectPO = new SimulationManualProjectPO();
|
|
|
|
- simulationManualProjectPO.setId(projectId);
|
|
|
|
- final String newId = StringUtil.getRandomUUID();
|
|
|
|
- simulationManualProjectPO.setNewId(newId);
|
|
|
|
- po.setId(newId);
|
|
|
|
- param.setId(newId);
|
|
|
|
- simulationProjectMapper.updateIdById(simulationManualProjectPO); //此处注意事务
|
|
|
|
- }
|
|
|
|
- param.setStartTime(new Date());
|
|
|
|
- simulationProjectMapper.updateProjectNowRunState(param);
|
|
|
|
- projectRunToKafka(po);
|
|
|
|
|
|
+ // 1 查询项目详细信息,即使是新创建的任务也是保存了信息后再执行
|
|
|
|
+ SimulationManualProjectPO projectPO = projectUtil.getProjectInfo(param);
|
|
|
|
+ final String oldState = projectPO.getNowRunState();
|
|
|
|
+ final String newState = param.getNowRunState();
|
|
|
|
+ final String projectId = param.getId();
|
|
|
|
+ if (DictConstants.PROJECT_RUNNING.equals(newState)) {// 2 项目终止信息直接推送
|
|
|
|
+ //1 校验项目的信息是否可用
|
|
|
|
+ projectUtil.checkProject(projectPO.getAlgorithm(), projectPO.getVehicle(), projectPO.getScene());
|
|
|
|
+ //2 查询项目详情信息,固定项目最原始的运行数据
|
|
|
|
+ ProjectDetailsVO projectDetailsVO = selectProjectDetailsByIdBeforeRunning(SimulationManualProjectParam.builder().id(projectId).projectType(DictConstants.PROJECT_TYPE_MANUAL).build()).getInfo();
|
|
|
|
+ projectDetailsVO.setAlgorithmScoreList(new ArrayList<>());
|
|
|
|
+ projectDetailsVO.setNowRunState(DictConstants.PROJECT_RUNNING);
|
|
|
|
+ String infoJson = JsonUtil.beanToJson(projectDetailsVO);
|
|
|
|
+ log.info("项目 " + projectId + " 的详情信息为:" + infoJson);
|
|
|
|
+ projectPO.setDetails(infoJson);
|
|
|
|
+ if (DictConstants.PROJECT_COMPLETED.equals(oldState)) { // 已经完成的项目再次运行
|
|
|
|
+ //1 初始化数据
|
|
|
|
+ projectPO.setNowRunState(DictConstants.PROJECT_RUNNING);
|
|
|
|
+ projectPO.setEvaluationLevel("");
|
|
|
|
+ projectPO.setStartTime(new Date());
|
|
|
|
+ projectPO.setFinishTime(null);
|
|
|
|
+ projectPO.createPo(AuthUtil.getCurrentUserId());
|
|
|
|
+ createProjectId(projectPO);
|
|
|
|
+ //2 保存
|
|
|
|
+ simulationProjectMapper.add(projectPO);
|
|
|
|
+ } else { // 创建新的项目或者重新运行被终止的项目
|
|
|
|
+ if (DictConstants.PROJECT_TERMINATED.equals(oldState)) { //重新运行被终止的项目需要修改新的ID
|
|
|
|
+ // 如果是重新运行的项目,修改项目ID
|
|
|
|
+ SimulationManualProjectPO simulationManualProjectPO = new SimulationManualProjectPO();
|
|
|
|
+ simulationManualProjectPO.setId(projectId);
|
|
|
|
+ final String newId = StringUtil.getRandomUUID();
|
|
|
|
+ simulationManualProjectPO.setNewId(newId);
|
|
|
|
+ projectPO.setId(newId);
|
|
|
|
+ param.setId(newId);
|
|
|
|
+ simulationProjectMapper.updateIdById(simulationManualProjectPO); //此处注意事务
|
|
}
|
|
}
|
|
|
|
+ simulationProjectMapper.updateDetailsById(projectId, infoJson);
|
|
}
|
|
}
|
|
|
|
+ param.setStartTime(new Date());
|
|
|
|
+ simulationProjectMapper.updateProjectNowRunState(param);
|
|
|
|
+ projectRunToKafka(projectPO); // 项目终止信息直接推送
|
|
}
|
|
}
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
|
|
}
|
|
}
|
|
@@ -567,7 +556,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
ProjectDetailsVO projectDetailsVO = new ProjectDetailsVO();
|
|
ProjectDetailsVO projectDetailsVO = new ProjectDetailsVO();
|
|
|
|
|
|
// 封装要使用到的数据
|
|
// 封装要使用到的数据
|
|
- SimulationManualProjectPO poParam = new SimulationManualProjectPO();
|
|
|
|
|
|
+ SimulationManualProjectPO projectPO = new SimulationManualProjectPO();
|
|
|
|
|
|
if (DictConstants.PROJECT_TYPE_MANUAL.equals(param.getProjectType())) { // 手动运行任务
|
|
if (DictConstants.PROJECT_TYPE_MANUAL.equals(param.getProjectType())) { // 手动运行任务
|
|
// 项目基本信息
|
|
// 项目基本信息
|
|
@@ -575,30 +564,30 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
if (po == null) {
|
|
if (po == null) {
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
|
|
}
|
|
}
|
|
- poParam = po;
|
|
|
|
|
|
+ projectPO = po;
|
|
} else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(param.getProjectType())) {
|
|
} else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(param.getProjectType())) {
|
|
SimulationManualProjectVO po = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
|
|
SimulationManualProjectVO po = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
|
|
if (po == null) {
|
|
if (po == null) {
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
|
|
}
|
|
}
|
|
- BeanUtils.copyProperties(po, poParam);
|
|
|
|
|
|
+ BeanUtils.copyProperties(po, projectPO);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// 获取场景包信息
|
|
// 获取场景包信息
|
|
- ScenePackagePO scenePackagePO = simulationProjectMapper.selectScenePackageInfoById(poParam.getScene());
|
|
|
|
|
|
+ ScenePackagePO scenePackagePO = simulationProjectMapper.selectScenePackageInfoById(projectPO.getScene());
|
|
|
|
|
|
projectDetailsVO.setPackageName(scenePackagePO.getPackageName());
|
|
projectDetailsVO.setPackageName(scenePackagePO.getPackageName());
|
|
|
|
|
|
// 算法配置
|
|
// 算法配置
|
|
- AlgorithmPO algorithmBaseInfoVo = getAlgorithmInfo(poParam);
|
|
|
|
|
|
+ AlgorithmPO algorithmBaseInfoVo = getAlgorithmInfo(projectPO);
|
|
// 获取测试得分列表
|
|
// 获取测试得分列表
|
|
List<AlgorithmScoreVO> firstTargetScore = getFirstTargetScore(param.getId());
|
|
List<AlgorithmScoreVO> firstTargetScore = getFirstTargetScore(param.getId());
|
|
projectDetailsVO.setAlgorithmScoreList(firstTargetScore);
|
|
projectDetailsVO.setAlgorithmScoreList(firstTargetScore);
|
|
|
|
|
|
// 车辆配置
|
|
// 车辆配置
|
|
VehiclePO vehicleBaseInfoVo = null;
|
|
VehiclePO vehicleBaseInfoVo = null;
|
|
- String vehicleConfigId = poParam.getVehicle();
|
|
|
|
|
|
+ String vehicleConfigId = projectPO.getVehicle();
|
|
|
|
|
|
ConfigPO configPO = new ConfigPO();
|
|
ConfigPO configPO = new ConfigPO();
|
|
configPO.setId(vehicleConfigId);
|
|
configPO.setId(vehicleConfigId);
|
|
@@ -677,44 +666,14 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-// // 任务信息
|
|
|
|
-// ProjectTaskParam projectTaskParam = new ProjectTaskParam();
|
|
|
|
-// projectTaskParam.setPId(poParam.getId());
|
|
|
|
-// List<ProjectRunResultRatioNumVo> projectRunResultRatioNumVos = null;
|
|
|
|
-//
|
|
|
|
-// // 任务运行状态统计
|
|
|
|
-// List<ProjectRunStateNumVo> projectRunStateNumVos = null;
|
|
|
|
-//
|
|
|
|
-// // 任务运行结果统计
|
|
|
|
-// List<ProjectRunResultRatioNumVo> resultScoreList = null;
|
|
|
|
-
|
|
|
|
-// Integer size = simulationProjectTaskMapper.selectProjectTaskNumByProjectId(projectTaskParam);
|
|
|
|
-// if (size > 0) {
|
|
|
|
-// projectRunStateNumVos = simulationProjectTaskMapper.selectRunStateCount(poParam.getId());
|
|
|
|
-// taskRunState(projectRunStateNumVos, size);
|
|
|
|
-//
|
|
|
|
-// projectRunResultRatioNumVos = simulationProjectTaskMapper.selectRunResultCount(poParam.getId());
|
|
|
|
-// taskResultState(projectRunResultRatioNumVos, size);
|
|
|
|
-//
|
|
|
|
-// resultScoreList = simulationProjectTaskMapper.selectScoreCount(poParam.getId());
|
|
|
|
-//
|
|
|
|
-// // 未完成得分为”“的改为0
|
|
|
|
-// if (!isEmpty(resultScoreList) && resultScoreList.size() == 1 && isEmpty(resultScoreList.get(0).getResultName())) {
|
|
|
|
-// ProjectRunResultRatioNumVo projectRunResultRatioNumVo = resultScoreList.get(0);
|
|
|
|
-// projectRunResultRatioNumVo.setResultName("0");
|
|
|
|
-// }
|
|
|
|
-// taskScore(resultScoreList, size);
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
- projectDetailsVO.setProjectId(poParam.getProjectId());
|
|
|
|
- projectDetailsVO.setProjectName(poParam.getProjectName());
|
|
|
|
- projectDetailsVO.setProjectDescribe(poParam.getProjectDescribe());
|
|
|
|
- projectDetailsVO.setStartTime(getRqStr(poParam.getStartTime(), 1));
|
|
|
|
- projectDetailsVO.setFinishTime(getRqStr(poParam.getFinishTime(), 1));
|
|
|
|
- projectDetailsVO.setNowRunState(poParam.getNowRunState());
|
|
|
|
- projectDetailsVO.setNowRunStateName(getDictName(DictConstants.PROJECT_RUN_STATE, poParam.getNowRunState()));
|
|
|
|
- projectDetailsVO.setEvaluationLevel(getDictName(DictConstants.EVALUATION_LEVEL, poParam.getEvaluationLevel()));
|
|
|
|
|
|
+ projectDetailsVO.setProjectId(projectPO.getProjectId());
|
|
|
|
+ projectDetailsVO.setProjectName(projectPO.getProjectName());
|
|
|
|
+ projectDetailsVO.setProjectDescribe(projectPO.getProjectDescribe());
|
|
|
|
+ projectDetailsVO.setStartTime(getRqStr(projectPO.getStartTime(), 1));
|
|
|
|
+ projectDetailsVO.setFinishTime(getRqStr(projectPO.getFinishTime(), 1));
|
|
|
|
+ projectDetailsVO.setNowRunState(projectPO.getNowRunState());
|
|
|
|
+ projectDetailsVO.setNowRunStateName(getDictName(DictConstants.PROJECT_RUN_STATE, projectPO.getNowRunState()));
|
|
|
|
+ projectDetailsVO.setEvaluationLevel(getDictName(DictConstants.EVALUATION_LEVEL, projectPO.getEvaluationLevel()));
|
|
if (algorithmBaseInfoVo != null) {
|
|
if (algorithmBaseInfoVo != null) {
|
|
projectDetailsVO.setAlgorithmName(algorithmBaseInfoVo.getAlgorithmName());
|
|
projectDetailsVO.setAlgorithmName(algorithmBaseInfoVo.getAlgorithmName());
|
|
projectDetailsVO.setAlgorithmDescribe(algorithmBaseInfoVo.getDescription());
|
|
projectDetailsVO.setAlgorithmDescribe(algorithmBaseInfoVo.getDescription());
|
|
@@ -734,9 +693,9 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
// projectDetailsVO.setResultList(projectRunResultRatioNumVos);
|
|
// projectDetailsVO.setResultList(projectRunResultRatioNumVos);
|
|
// projectDetailsVO.setResultScoreList(resultScoreList);
|
|
// projectDetailsVO.setResultScoreList(resultScoreList);
|
|
|
|
|
|
- projectDetailsVO.setParallelism(poParam.getParallelism());
|
|
|
|
- projectDetailsVO.setMaxSimulationTime(poParam.getMaxSimulationTime());
|
|
|
|
- String isChoiceGpu = poParam.getIsChoiceGpu();
|
|
|
|
|
|
+ projectDetailsVO.setParallelism(projectPO.getParallelism());
|
|
|
|
+ projectDetailsVO.setMaxSimulationTime(projectPO.getMaxSimulationTime());
|
|
|
|
+ String isChoiceGpu = projectPO.getIsChoiceGpu();
|
|
String g = "";
|
|
String g = "";
|
|
if ("0".equals(isChoiceGpu)) {
|
|
if ("0".equals(isChoiceGpu)) {
|
|
g = "是";
|
|
g = "是";
|
|
@@ -885,28 +844,28 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
public ResponseBodyVO<ProjectReportVO> selectProjectReportByIdForScheduler(SimulationManualProjectParam param) {
|
|
public ResponseBodyVO<ProjectReportVO> selectProjectReportByIdForScheduler(SimulationManualProjectParam param) {
|
|
String projectType = param.getProjectType();
|
|
String projectType = param.getProjectType();
|
|
// 封装要使用到的数据
|
|
// 封装要使用到的数据
|
|
- SimulationManualProjectPO poParam = new SimulationManualProjectPO();
|
|
|
|
|
|
+ SimulationManualProjectPO projectPO = new SimulationManualProjectPO();
|
|
|
|
|
|
if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
|
|
if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
|
|
// 项目基本信息
|
|
// 项目基本信息
|
|
- poParam = simulationProjectMapper.selectProjectBaseById(param);
|
|
|
|
|
|
+ projectPO = simulationProjectMapper.selectProjectBaseById(param);
|
|
} else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
|
|
} else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
|
|
SimulationManualProjectVO po = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
|
|
SimulationManualProjectVO po = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
|
|
- BeanUtils.copyProperties(po, poParam);
|
|
|
|
|
|
+ BeanUtils.copyProperties(po, projectPO);
|
|
}
|
|
}
|
|
|
|
|
|
// 算法配置
|
|
// 算法配置
|
|
- AlgorithmPO algorithmBaseInfoVo = getAlgorithmInfo(poParam);
|
|
|
|
|
|
+ AlgorithmPO algorithmBaseInfoVo = getAlgorithmInfo(projectPO);
|
|
ProjectReportVO projectReportVO = new ProjectReportVO();
|
|
ProjectReportVO projectReportVO = new ProjectReportVO();
|
|
- projectReportVO.setProjectId(poParam.getProjectId());
|
|
|
|
- projectReportVO.setProjectName(poParam.getProjectName());
|
|
|
|
|
|
+ projectReportVO.setProjectId(projectPO.getProjectId());
|
|
|
|
+ projectReportVO.setProjectName(projectPO.getProjectName());
|
|
projectReportVO.setAlgorithmName(algorithmBaseInfoVo.getAlgorithmName());
|
|
projectReportVO.setAlgorithmName(algorithmBaseInfoVo.getAlgorithmName());
|
|
projectReportVO.setAlgorithmDescribe(algorithmBaseInfoVo.getDescription());
|
|
projectReportVO.setAlgorithmDescribe(algorithmBaseInfoVo.getDescription());
|
|
|
|
|
|
// 添加开始时间
|
|
// 添加开始时间
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
- if (poParam.getStartTime() != null) {
|
|
|
|
- projectReportVO.setStartTime(dateFormat.format(poParam.getStartTime()));
|
|
|
|
|
|
+ if (projectPO.getStartTime() != null) {
|
|
|
|
+ projectReportVO.setStartTime(dateFormat.format(projectPO.getStartTime()));
|
|
}
|
|
}
|
|
|
|
|
|
String sceneNames;
|
|
String sceneNames;
|
|
@@ -920,7 +879,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
|
|
|
// 获取得分表一级指标信息
|
|
// 获取得分表一级指标信息
|
|
SimulationMptFirstTargetScorePO par = new SimulationMptFirstTargetScorePO();
|
|
SimulationMptFirstTargetScorePO par = new SimulationMptFirstTargetScorePO();
|
|
- par.setPId(poParam.getId());
|
|
|
|
|
|
+ par.setPId(projectPO.getId());
|
|
List<SimulationMptFirstTargetScorePO> pos = simulationMptFirstTargetScoreMapper.selectFirstTargetByPid(par);
|
|
List<SimulationMptFirstTargetScorePO> pos = simulationMptFirstTargetScoreMapper.selectFirstTargetByPid(par);
|
|
|
|
|
|
List<AlgorithmScoreVO> algorithmScoreVOList = new ArrayList<>();
|
|
List<AlgorithmScoreVO> algorithmScoreVOList = new ArrayList<>();
|
|
@@ -944,7 +903,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
Double score = firstTargetScorePo.getScore();
|
|
Double score = firstTargetScorePo.getScore();
|
|
totalScore += BigDecimal.valueOf(score).multiply(BigDecimal.valueOf(weightDouble).divide(BigDecimal.valueOf(100))).doubleValue();
|
|
totalScore += BigDecimal.valueOf(score).multiply(BigDecimal.valueOf(weightDouble).divide(BigDecimal.valueOf(100))).doubleValue();
|
|
// 获取得分不为 0 的场景数量
|
|
// 获取得分不为 0 的场景数量
|
|
- Integer scoreNum = getSetScoreNum(firstTargetScorePo.getSublistId(), poParam.getId());
|
|
|
|
|
|
+ Integer scoreNum = getSetScoreNum(firstTargetScorePo.getSublistId(), projectPO.getId());
|
|
totalSceneScoreNum += scoreNum;
|
|
totalSceneScoreNum += scoreNum;
|
|
|
|
|
|
totalScoreRatio += Double.valueOf(scoreNum) / Double.valueOf(sceneNum) * 100;
|
|
totalScoreRatio += Double.valueOf(scoreNum) / Double.valueOf(sceneNum) * 100;
|
|
@@ -977,7 +936,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
algorithmScoreVOList.add(algorithmScoreVo);
|
|
algorithmScoreVOList.add(algorithmScoreVo);
|
|
projectReportVO.setScoreRatio(saveTwoDecimalPlaces(totalScoreRatio));
|
|
projectReportVO.setScoreRatio(saveTwoDecimalPlaces(totalScoreRatio));
|
|
projectReportVO.setAlgorithmScore(saveTwoDecimalPlaces(totalScore));
|
|
projectReportVO.setAlgorithmScore(saveTwoDecimalPlaces(totalScore));
|
|
- evaluationLevelReport = poParam.getEvaluationLevel();
|
|
|
|
|
|
+ evaluationLevelReport = projectPO.getEvaluationLevel();
|
|
if (DictConstants.EVALUATION_LEVEL_G.equals(evaluationLevelReport)) {
|
|
if (DictConstants.EVALUATION_LEVEL_G.equals(evaluationLevelReport)) {
|
|
projectReportVO.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_G_DESCRIPTION);
|
|
projectReportVO.setEvaluationLevel(DictConstants.EVALUATION_LEVEL_G_DESCRIPTION);
|
|
projectReportVO.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_G_DESCRIPTION);
|
|
projectReportVO.setEvaluationGrade(DictConstants.EVALUATION_LEVEL_G_DESCRIPTION);
|
|
@@ -996,12 +955,12 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
projectReportVO.setAlgorithmEvaluation(algorithmBaseInfoVo.getAlgorithmName() + "经测试获得" + projectReportVO.getEvaluationLevel() + "级评价," + "(" + sceneNames + ")得分率达到了" + projectReportVO.getScoreRatio() + "%。");
|
|
projectReportVO.setAlgorithmEvaluation(algorithmBaseInfoVo.getAlgorithmName() + "经测试获得" + projectReportVO.getEvaluationLevel() + "级评价," + "(" + sceneNames + ")得分率达到了" + projectReportVO.getScoreRatio() + "%。");
|
|
projectReportVO.setAlgorithmScoreList(algorithmScoreVOList);
|
|
projectReportVO.setAlgorithmScoreList(algorithmScoreVOList);
|
|
// 指标得分列表
|
|
// 指标得分列表
|
|
- Map<String, Object> stringObjectMap = selectScenePackageSubListAndSetScore(poParam.getScene(), poParam.getId());
|
|
|
|
|
|
+ Map<String, Object> stringObjectMap = selectScenePackageSubListAndSetScore(projectPO.getScene(), projectPO.getId());
|
|
projectReportVO.setSubListScoreLiTitle((List<Map>) stringObjectMap.get("headerList"));
|
|
projectReportVO.setSubListScoreLiTitle((List<Map>) stringObjectMap.get("headerList"));
|
|
projectReportVO.setSubListScoreLi((List<SubScListVo>) stringObjectMap.get("result"));
|
|
projectReportVO.setSubListScoreLi((List<SubScListVo>) stringObjectMap.get("result"));
|
|
|
|
|
|
// 场景得分列表
|
|
// 场景得分列表
|
|
- Map<String, Object> maps = selectSceneScore2(poParam.getScene(), poParam.getId(), null, projectReportVO);
|
|
|
|
|
|
+ Map<String, Object> maps = selectSceneScore2(projectPO.getScene(), projectPO.getId(), null, projectReportVO);
|
|
projectReportVO.setSceneScoreLiTitle((List<Map>) maps.get("headerList"));
|
|
projectReportVO.setSceneScoreLiTitle((List<Map>) maps.get("headerList"));
|
|
projectReportVO.setSceneScoreLi((List<SceneScListVo>) maps.get("result"));
|
|
projectReportVO.setSceneScoreLi((List<SceneScListVo>) maps.get("result"));
|
|
|
|
|
|
@@ -1113,17 +1072,17 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
resultVo.setFinishState(po.getRunResult()); // Completed
|
|
resultVo.setFinishState(po.getRunResult()); // Completed
|
|
resultVo.setSceneDescribe(""); // 场景描述设置为空
|
|
resultVo.setSceneDescribe(""); // 场景描述设置为空
|
|
// -------------------------------- 获取任务得分详情 --------------------------------
|
|
// -------------------------------- 获取任务得分详情 --------------------------------
|
|
- SimulationManualProjectPO poParam = new SimulationManualProjectPO();
|
|
|
|
|
|
+ SimulationManualProjectPO projectPO = new SimulationManualProjectPO();
|
|
if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
|
|
if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
|
|
SimulationManualProjectPO spo = simulationProjectMapper.selectProjectBaseById(param);
|
|
SimulationManualProjectPO spo = simulationProjectMapper.selectProjectBaseById(param);
|
|
Optional.ofNullable(spo).orElseThrow(() -> new RuntimeException("没有获取到数据。"));
|
|
Optional.ofNullable(spo).orElseThrow(() -> new RuntimeException("没有获取到数据。"));
|
|
- poParam = spo;
|
|
|
|
|
|
+ projectPO = spo;
|
|
} else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
|
|
} else if (DictConstants.PROJECT_TYPE_AUTO_SUB.equals(projectType)) {
|
|
SimulationManualProjectVO spo = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
|
|
SimulationManualProjectVO spo = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
|
|
Optional.ofNullable(spo).orElseThrow(() -> new RuntimeException("没有获取到数据。"));
|
|
Optional.ofNullable(spo).orElseThrow(() -> new RuntimeException("没有获取到数据。"));
|
|
- BeanUtils.copyProperties(spo, poParam);
|
|
|
|
|
|
+ BeanUtils.copyProperties(spo, projectPO);
|
|
}
|
|
}
|
|
- Map<String, Object> stringObjectMap = selectSceneScore(poParam.getScene(), poParam.getId(), taskId);
|
|
|
|
|
|
+ Map<String, Object> stringObjectMap = selectSceneScore(projectPO.getScene(), projectPO.getId(), taskId);
|
|
resultVo.setSceneScoreLiTitle((List<Map>) stringObjectMap.get("headerList"));
|
|
resultVo.setSceneScoreLiTitle((List<Map>) stringObjectMap.get("headerList"));
|
|
resultVo.setSceneScoreLi((List<SceneScListVo>) stringObjectMap.get("result"));
|
|
resultVo.setSceneScoreLi((List<SceneScListVo>) stringObjectMap.get("result"));
|
|
// 1.获取仿真结果文件
|
|
// 1.获取仿真结果文件
|
|
@@ -1749,7 +1708,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
po.setProjectNum(po1.getProjectNum() + 1);
|
|
po.setProjectNum(po1.getProjectNum() + 1);
|
|
}
|
|
}
|
|
po.setProjectId(po.getProjectDate() + "-" + po.getProjectNum());
|
|
po.setProjectId(po.getProjectDate() + "-" + po.getProjectNum());
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
private void createProjectId(SimulationAutomaticProjectPO po) {
|
|
private void createProjectId(SimulationAutomaticProjectPO po) {
|
|
@@ -2552,10 +2510,10 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
}
|
|
}
|
|
|
|
|
|
private void setLastTargetScore(ScenePackageSubListVO vo, String pId) {
|
|
private void setLastTargetScore(ScenePackageSubListVO vo, String pId) {
|
|
- SimulationMptLastTargetScorePO poParam = new SimulationMptLastTargetScorePO();
|
|
|
|
- poParam.setPId(pId);
|
|
|
|
- poParam.setTarget(vo.getSublistId());
|
|
|
|
- SimulationMptLastTargetScorePO po = simulationMptLastTargetScoreMapper.selectLastTargetScore(poParam);
|
|
|
|
|
|
+ SimulationMptLastTargetScorePO projectPO = new SimulationMptLastTargetScorePO();
|
|
|
|
+ projectPO.setPId(pId);
|
|
|
|
+ projectPO.setTarget(vo.getSublistId());
|
|
|
|
+ SimulationMptLastTargetScorePO po = simulationMptLastTargetScoreMapper.selectLastTargetScore(projectPO);
|
|
if (po != null) {
|
|
if (po != null) {
|
|
vo.setNotStandardSceneNum(po.getNotStandardSceneNum());
|
|
vo.setNotStandardSceneNum(po.getNotStandardSceneNum());
|
|
vo.setScore(po.getScore());
|
|
vo.setScore(po.getScore());
|
|
@@ -2565,10 +2523,10 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
}
|
|
}
|
|
|
|
|
|
private void setFirstTargetScore(ScenePackageSubListVO vo, String pId) {
|
|
private void setFirstTargetScore(ScenePackageSubListVO vo, String pId) {
|
|
- SimulationMptFirstTargetScorePO poParam = new SimulationMptFirstTargetScorePO();
|
|
|
|
- poParam.setPId(pId);
|
|
|
|
- poParam.setTarget(vo.getSublistId());
|
|
|
|
- SimulationMptFirstTargetScorePO po = simulationMptFirstTargetScoreMapper.selectFirstTargetScore(poParam);
|
|
|
|
|
|
+ SimulationMptFirstTargetScorePO projectPO = new SimulationMptFirstTargetScorePO();
|
|
|
|
+ projectPO.setPId(pId);
|
|
|
|
+ projectPO.setTarget(vo.getSublistId());
|
|
|
|
+ SimulationMptFirstTargetScorePO po = simulationMptFirstTargetScoreMapper.selectFirstTargetScore(projectPO);
|
|
if (po != null) {
|
|
if (po != null) {
|
|
vo.setScore(po.getScore());
|
|
vo.setScore(po.getScore());
|
|
}
|
|
}
|