|
@@ -34,7 +34,6 @@ import com.css.simulation.resource.project.mapper.*;
|
|
|
import com.css.simulation.resource.project.service.SimulationProjectService;
|
|
|
import com.css.simulation.resource.scene.mapper.ScenePackageMapper;
|
|
|
import com.css.simulation.resource.system.service.DictService;
|
|
|
-import com.css.simulation.resource.util.ApacheKafkaUtil;
|
|
|
import com.css.simulation.resource.util.ProjectUtil;
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
@@ -248,7 +247,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
if (i > 0) {
|
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
|
|
|
}
|
|
|
-
|
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "删除失败。");
|
|
|
}
|
|
|
|
|
@@ -259,87 +257,64 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
@Override
|
|
|
public ResponseBodyVO<String> updateProjectNowRunState(SimulationManualProjectParam param) {
|
|
|
|
|
|
-
|
|
|
- //1 根据 id 查询项目信息
|
|
|
- if (isEmpty(param.getId()) || isEmpty(param.getNowRunState())) {
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
|
|
|
- }
|
|
|
- SimulationManualProjectPo po = simulationProjectMapper.selectProjectById(param);
|
|
|
- if (po == null) {
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "数据没有找到。");
|
|
|
- }
|
|
|
-
|
|
|
- // 已经完成的项目再次运行
|
|
|
- if (DictConstants.PROJECT_COMPLETED.equals(po.getNowRunState())) {
|
|
|
- //1 查询场景测试包是否被禁用
|
|
|
- String isUnavailable = scenePackageMapper.selectIsUnavailableByPackageId(po.getScene());
|
|
|
- if("1".equals(isUnavailable)){
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "包已经动过了,不能运行,编辑测试包后可重新运行。");
|
|
|
- }
|
|
|
- po.createPo(AuthUtil.getCurrentUserId());
|
|
|
- // 生成id
|
|
|
- createProjectId(po);
|
|
|
- // 初始化数据
|
|
|
- po.setNowRunState(param.getNowRunState());
|
|
|
- po.setEvaluationLevel("");
|
|
|
- po.setStartTime(new Date());
|
|
|
- po.setFinishTime(null);
|
|
|
- int add = simulationProjectMapper.add(po);
|
|
|
- if (add <= 0) {
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "生成新工作失败。");
|
|
|
- }
|
|
|
- // 查询项目详情信息并保存,固定项目最原始的运行数据
|
|
|
- String projectId = po.getId();
|
|
|
- ProjectDetailsVo info = selectProjectDetailsByIdBackUp(
|
|
|
- SimulationManualProjectParam.builder()
|
|
|
- .id(projectId)
|
|
|
- .projectType(DictConstants.PROJECT_TYPE_MANUAL)
|
|
|
- .build()
|
|
|
- ).getInfo();
|
|
|
- String infoJson = JsonUtil.beanToJson(info);
|
|
|
- simulationProjectMapper.updateDetailsById(projectId, infoJson);
|
|
|
- // Kafka推送消息
|
|
|
- projectRunToKafka(po);
|
|
|
- } else if (DictConstants.PROJECT_TERMINATED.equals(param.getNowRunState())) { // 项目终止,推送到kafka
|
|
|
- String projectId = param.getId();
|
|
|
- ApacheKafkaUtil.deleteTopic(kafkaAdminClient, projectId);
|
|
|
+ //1 查询项目详细信息
|
|
|
+ SimulationManualProjectPo po = projectUtil.getProjectInfo(param);
|
|
|
+ //2 项目终止信息直接推送
|
|
|
+ if (DictConstants.PROJECT_TERMINATED.equals(param.getNowRunState())) {
|
|
|
projectStopToKafka(po);
|
|
|
simulationProjectMapper.updateProjectNowRunState(param);
|
|
|
- } else { // 创建新的项目或者重新运行被终止的项目
|
|
|
- //1 查询场景测试包是否被禁用
|
|
|
- String isUnavailable = scenePackageMapper.selectIsUnavailableByPackageId(po.getScene());
|
|
|
- if("1".equals(isUnavailable)){
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "包已经动过了,不能运行,编辑测试包后可重新运行。");
|
|
|
- }
|
|
|
- // 查询项目详情信息并保存
|
|
|
- String projectId = param.getId();
|
|
|
- ProjectDetailsVo info = selectProjectDetailsByIdBackUp(
|
|
|
- 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 ("20".equals(param.getNowRunState())) {
|
|
|
- //设置开始时间
|
|
|
- param.setStartTime(new Date());
|
|
|
- //Kafka推送消息
|
|
|
+ } else {
|
|
|
+ //3 校验项目的信息是否可用
|
|
|
+ projectUtil.checkProject(DictConstants.PROJECT_TYPE_MANUAL, po.getId(), po.getAlgorithm(), po.getVehicle(),
|
|
|
+ po.getScene());
|
|
|
+ // 已经完成的项目再次运行
|
|
|
+ if (DictConstants.PROJECT_COMPLETED.equals(po.getNowRunState())) {
|
|
|
+ po.createPo(AuthUtil.getCurrentUserId());
|
|
|
+ // 生成id
|
|
|
+ createProjectId(po);
|
|
|
+ // 初始化数据
|
|
|
+ po.setNowRunState(param.getNowRunState());
|
|
|
+ po.setEvaluationLevel("");
|
|
|
+ po.setStartTime(new Date());
|
|
|
+ po.setFinishTime(null);
|
|
|
+ int add = simulationProjectMapper.add(po);
|
|
|
+ if (add <= 0) {
|
|
|
+ return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "生成新工作失败。");
|
|
|
+ }
|
|
|
+ // 查询项目详情信息并保存,固定项目最原始的运行数据
|
|
|
+ String projectId = po.getId();
|
|
|
+ ProjectDetailsVo info = selectProjectDetailsByIdBackUp(SimulationManualProjectParam.builder()
|
|
|
+ .id(projectId).projectType(DictConstants.PROJECT_TYPE_MANUAL).build()).getInfo();
|
|
|
+ String infoJson = JsonUtil.beanToJson(info);
|
|
|
+ simulationProjectMapper.updateDetailsById(projectId, infoJson);
|
|
|
+ // Kafka推送消息
|
|
|
projectRunToKafka(po);
|
|
|
- } else if ("30".equals(param.getNowRunState())) {
|
|
|
- //设置完成时间
|
|
|
- param.setFinishTime(new Date());
|
|
|
+ } else { // 创建新的项目或者重新运行被终止的项目
|
|
|
+ // 查询项目详情信息并保存
|
|
|
+ String projectId = param.getId();
|
|
|
+ ProjectDetailsVo info = selectProjectDetailsByIdBackUp(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 ("20".equals(param.getNowRunState())) {
|
|
|
+ //设置开始时间
|
|
|
+ param.setStartTime(new Date());
|
|
|
+ //Kafka推送消息
|
|
|
+ projectRunToKafka(po);
|
|
|
+ } else if ("30".equals(param.getNowRunState())) {
|
|
|
+ //设置完成时间
|
|
|
+ param.setFinishTime(new Date());
|
|
|
+ }
|
|
|
+ simulationProjectMapper.updateProjectNowRunState(param);
|
|
|
}
|
|
|
- simulationProjectMapper.updateProjectNowRunState(param);
|
|
|
}
|
|
|
-
|
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
|
|
|
}
|
|
|
|
|
|
private void projectRunToKafka(SimulationManualProjectPo po) {
|
|
|
try {
|
|
|
- log.info("projectRunToKafka() 准备发送项目消息:"+po);
|
|
|
+ log.info("projectRunToKafka() 准备发送项目消息:" + po);
|
|
|
SimulationManualProjectKafkaParam kafkaParam = new SimulationManualProjectKafkaParam();
|
|
|
kafkaParam.setProjectId(po.getId());
|
|
|
kafkaParam.setAlgorithmId(po.getAlgorithm());
|
|
@@ -1292,17 +1267,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, resultVo);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public ResponseBodyVO selectMaxParallelism() {
|
|
|
- String currentUserId = AuthUtil.getCurrentUserId();
|
|
|
- SystemUserVo systemUserVo = simulationProjectMapper.selectUserById(currentUserId);
|
|
|
- if (systemUserVo == null) {
|
|
|
- return new ResponseBodyVO(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到用户信息");
|
|
|
- }
|
|
|
-
|
|
|
- return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, null, systemUserVo.getCpuAvailableNumber());
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public String getDictName(String type, String code) {
|
|
|
Map<String, String> stringStringMap = getDictByType(type);
|
|
@@ -4466,7 +4430,6 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 查询算法下拉列表
|
|
|
*
|
|
@@ -4516,7 +4479,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
algorithmListSy = getOtherAlgorithmInfo(urlParam);
|
|
|
|
|
|
}
|
|
|
- List<DropDownNewVo> listGSy=new ArrayList<>();
|
|
|
+ List<DropDownNewVo> listGSy = new ArrayList<>();
|
|
|
DropDownNewVo dropDownNewSyVo = new DropDownNewVo();
|
|
|
dropDownNewSyVo.setLabel("私有");
|
|
|
dropDownNewSyVo.setOptions(algorithmListSy);
|
|
@@ -4585,7 +4548,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
|
|
|
vehicleGyList.add(dropDownVo);
|
|
|
}
|
|
|
- List<DropDownNewVo> listGSy=new ArrayList<>();
|
|
|
+ List<DropDownNewVo> listGSy = new ArrayList<>();
|
|
|
DropDownNewVo dropDownNewSyVo = new DropDownNewVo();
|
|
|
dropDownNewSyVo.setLabel("私有");
|
|
|
dropDownNewSyVo.setOptions(vehicleSyList);
|
|
@@ -4599,6 +4562,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
dropDownTypeNewVo.setType("2");
|
|
|
result.add(dropDownTypeNewVo);
|
|
|
}
|
|
|
+
|
|
|
private void setScenePackageDropDownNew(List<DropDownTypeNewVo> result) {
|
|
|
ScenePackagePO scenePackagePO = new ScenePackagePO();
|
|
|
scenePackagePO.setCreateUserId(AuthUtil.getCurrentUserId());
|
|
@@ -4622,7 +4586,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
|
|
|
dropDownVo.setShare(v.getShare());
|
|
|
scenePackageGyList.add(dropDownVo);
|
|
|
}
|
|
|
- List<DropDownNewVo> listGSy=new ArrayList<>();
|
|
|
+ List<DropDownNewVo> listGSy = new ArrayList<>();
|
|
|
DropDownNewVo dropDownNewSyVo = new DropDownNewVo();
|
|
|
dropDownNewSyVo.setLabel("私有");
|
|
|
dropDownNewSyVo.setOptions(scenePackageSyList);
|