root il y a 2 ans
Parent
commit
f5d7aa91f7

+ 8 - 4
api-common/src/main/java/api/common/pojo/param/project/SimulationManualProjectParam.java

@@ -1,13 +1,15 @@
 package api.common.pojo.param.project;
 
 import api.common.pojo.common.PageVO;
-import lombok.Getter;
-import lombok.Setter;
+import lombok.*;
 
 import java.util.Date;
 
-@Getter
-@Setter
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class SimulationManualProjectParam extends PageVO {
 
     private String id;  //id
@@ -54,4 +56,6 @@ public class SimulationManualProjectParam extends PageVO {
     private String automaticRunState;    //自动运行状态
     private String parentId;    //父级项目id
     private String projectType; //项目类型 1.手动;2.自动
+
+
 }

+ 2 - 5
simulation-resource-server/src/main/java/com/css/simulation/resource/project/ctrl/SimulationProjectCtrl.java

@@ -3,10 +3,7 @@ package com.css.simulation.resource.project.ctrl;
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.project.DictParam;
 import api.common.pojo.param.project.SimulationManualProjectParam;
-import api.common.pojo.vo.project.DropDownTypeVo;
-import api.common.pojo.vo.project.ProjectTaskDetailsVo;
-import api.common.pojo.vo.project.SimulationManualProjectSingleVo;
-import api.common.pojo.vo.project.SimulationManualProjectVo;
+import api.common.pojo.vo.project.*;
 import api.common.util.StringUtil;
 import com.css.simulation.resource.project.service.SimulationProjectService;
 import com.css.simulation.resource.system.service.ClusterService;
@@ -99,7 +96,7 @@ public class SimulationProjectCtrl {
      */
     @RequestMapping("selectProjectDetailsById")
     @ResponseBody
-    public ResponseBodyVO selectProjectDetailsById(@RequestBody SimulationManualProjectParam param) {
+    public ResponseBodyVO<ProjectDetailsVo> selectProjectDetailsById(@RequestBody SimulationManualProjectParam param) {
         return service.selectProjectDetailsById(param);
     }
 

+ 231 - 7
simulation-resource-server/src/main/java/com/css/simulation/resource/project/impl/SimulationProjectServiceImpl.java

@@ -267,6 +267,15 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
     @SneakyThrows
     @Override
     public ResponseBodyVO<String> updateProjectNowRunState(SimulationManualProjectParam param) {
+
+        //00000 查询项目详情信息并保存
+        String projectId = param.getId();
+        ProjectDetailsVo info = selectProjectDetailsByIdBackUp(SimulationManualProjectParam.builder()
+                .id(projectId)
+                .projectType(DictConstants.PROJECT_TYPE_MANUAL).build()).getInfo();
+        String infoJson = JsonUtil.beanToJson(info);
+        simulationProjectMapper.updateDetailsById(projectId, infoJson);
+
         //1 根据 id 查询项目信息
         if (isEmpty(param.getId()) || isEmpty(param.getNowRunState())) {
             return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
@@ -403,11 +412,226 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
 
     }
 
+
     @Override
-    public ResponseBodyVO selectProjectDetailsById(SimulationManualProjectParam param) {
+    @SneakyThrows
+    public ResponseBodyVO<ProjectDetailsVo> selectProjectDetailsById(SimulationManualProjectParam param) {
 
         if (isEmpty(param.getId())) {
-            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE);
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
+        }
+
+        if (isEmpty(param.getProjectType())) {
+            param.setProjectType("1");//默认
+        }
+
+        String s = manualProjectMapper.selectDetailsById(param.getId());
+
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, JsonUtil.jsonToBean(s,ProjectDetailsVo.class));
+    }
+//    @Override
+//    public ResponseBodyVO<ProjectDetailsVo> selectProjectDetailsById(SimulationManualProjectParam param) {
+//
+//        if (isEmpty(param.getId())) {
+//            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
+//        }
+//
+//        if (isEmpty(param.getProjectType())) {
+//            param.setProjectType("1");//默认
+//        }
+//
+//        ProjectDetailsVo projectDetailsVo = new ProjectDetailsVo();
+//
+//        //封装要使用到的数据
+//        SimulationManualProjectPo poParam = new SimulationManualProjectPo();
+//
+//        if ("1".equals(param.getProjectType())) {   // 手动运行任务
+//            //项目基本信息
+//            SimulationManualProjectPo po = simulationProjectMapper.selectProjectById(param);
+//            if (po == null) {
+//                return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
+//            }
+//            poParam = po;
+//
+//        } else if ("2".equals(param.getProjectType())) {
+//            SimulationManualProjectVo po = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
+//            if (po == null) {
+//                return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
+//            }
+//
+//            BeanUtils.copyProperties(po, poParam);
+//
+//        }
+//
+//        //获取场景包信息
+//        ScenePackagePO scenePackagePO = simulationProjectMapper.selectScenePackageInfoById(poParam.getScene());
+//
+//        projectDetailsVo.setPackageName(scenePackagePO.getPackageName());
+//
+//        //评测等级
+////        String s = getEvaluationLevel(poParam);
+//
+//        //算法配置
+//        AlgorithmPO algorithmBaseInfoVo = getAlgorithmInfo(poParam);
+//
+//
+//        //获取测试得分列表
+//        List<AlgorithmScoreVo> firstTargetScore = getFirstTargetScore(param.getId());
+//        projectDetailsVo.setAlgorithmScoreList(firstTargetScore);
+//
+//        //车辆配置
+//        VehiclePO vehicleBaseInfoVo = null;
+//        String vehicleConfigId = poParam.getVehicle();
+//
+//        ConfigPO configPO = new ConfigPO();
+//        configPO.setId(vehicleConfigId);
+//        List<ConfigPO> configVehicleVOS = simulationProjectMapper.selectConfigVehicle(configPO);
+//        if (!isEmpty(configVehicleVOS)) {
+//            ConfigPO configVehicleVO = configVehicleVOS.get(0);
+//            List<VehiclePO> vehiclePOS = simulationProjectMapper.selectVehicleBaseInfoById(configVehicleVO.getVehicleId());
+//            if (!isEmpty(vehiclePOS)) {
+//                vehicleBaseInfoVo = vehiclePOS.get(0);
+//            }
+//
+//        }
+//        /*String vehicleImage = vehicleBaseInfoVo.getVehicleImage();
+//        if(!isEmpty(vehicleImage)){
+//            vehicleBaseInfoVo.setVehicleImage(vehicleImage.replaceFirst("Front side","Top"));
+//        }*/
+//
+//        List<ConfigSensorPO> vehicleSensorVos = simulationProjectMapper.selectVehicleSensor(vehicleConfigId);
+//
+//        List<SensorBaseInfoVo> sensorCameraList = new ArrayList<>();
+//        List<SensorBaseInfoVo> sensorOgtList = new ArrayList<>();
+//        List<SensorBaseInfoVo> sensorLidarList = new ArrayList<>();
+//        List<SensorBaseInfoVo> sensorRadarList = new ArrayList<>();
+//        List<SensorBaseInfoVo> sensorGpsList = new ArrayList<>();
+//        for (ConfigSensorPO vs : vehicleSensorVos) {
+//            String sensorType = vs.getSensorType();
+//            String sensorId = vs.getSensorId();
+//            if (DictConstants.SENSOR_CAMERA.equals(sensorType)) {
+//                //摄像头
+//                SensorBaseInfoVo sensorBaseInfoVo = simulationProjectMapper.selectSensorCamera(sensorId);
+//                setVehicleConfig(sensorBaseInfoVo, vs);
+//                sensorCameraList.add(sensorBaseInfoVo);
+//            } else if (DictConstants.SENSOR_OGT.equals(sensorType)) {
+//                //完美传感器
+//                SensorBaseInfoVo sensorBaseInfoVo = simulationProjectMapper.selectSensorOgt(sensorId);
+//                setVehicleConfig(sensorBaseInfoVo, vs);
+//                sensorOgtList.add(sensorBaseInfoVo);
+//            } else if (DictConstants.SENSOR_LIDAR.equals(sensorType)) {
+//                //激光雷达
+//                SensorBaseInfoVo sensorBaseInfoVo = simulationProjectMapper.selectSensorLidar(sensorId);
+//                setVehicleConfig(sensorBaseInfoVo, vs);
+//                sensorLidarList.add(sensorBaseInfoVo);
+//            } else if (DictConstants.SENSOR_RADAR.equals(sensorType)) {
+//                //毫米波雷达
+//                SensorBaseInfoVo sensorBaseInfoVo = simulationProjectMapper.selectSensorRadar(sensorId);
+//                setVehicleConfig(sensorBaseInfoVo, vs);
+//                sensorRadarList.add(sensorBaseInfoVo);
+//            } else if (DictConstants.SENSOR_GPS.equals(sensorType)) {
+//                //gps
+//                SensorBaseInfoVo sensorBaseInfoVo = simulationProjectMapper.selectSensorGps(sensorId);
+//                setVehicleConfig(sensorBaseInfoVo, vs);
+//                sensorGpsList.add(sensorBaseInfoVo);
+//            }
+//        }
+//
+//        //任务信息
+//        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.setEvaluationLevel(s);
+//        if (algorithmBaseInfoVo != null) {
+//            projectDetailsVo.setAlgorithmName(algorithmBaseInfoVo.getAlgorithmName());
+//            projectDetailsVo.setAlgorithmDescribe(algorithmBaseInfoVo.getDescription());
+//        }
+//        if (vehicleBaseInfoVo != null) {
+//            projectDetailsVo.setVehicleName(vehicleBaseInfoVo.getVehicleName());
+//            projectDetailsVo.setVehicleDescribe(vehicleBaseInfoVo.getDescription());
+//            projectDetailsVo.setVehicleTopView(vehicleBaseInfoVo.getVehicleFrontView());
+//
+//        }
+//        projectDetailsVo.setSensorCameraList(sensorCameraList);
+//        projectDetailsVo.setSensorOgtList(sensorOgtList);
+//        projectDetailsVo.setSensorLidarList(sensorLidarList);
+//        projectDetailsVo.setSensorRadarList(sensorRadarList);
+//        projectDetailsVo.setSensorGpsList(sensorGpsList);
+//        projectDetailsVo.setStateList(projectRunStateNumVos);
+//        projectDetailsVo.setResultList(projectRunResultRatioNumVos);
+//        projectDetailsVo.setResultScoreList(resultScoreList);
+//
+//        projectDetailsVo.setParallelism(poParam.getParallelism());
+//        projectDetailsVo.setMaxSimulationTime(poParam.getMaxSimulationTime());
+//        String isChoiceGpu = poParam.getIsChoiceGpu();
+//        String g = "";
+//        if ("0".equals(isChoiceGpu)) {
+//            g = "是";
+//        } else if ("1".equals(isChoiceGpu)) {
+//            g = "否";
+//        }
+//        projectDetailsVo.setIsChoiceGpu(g);
+//
+///*
+//        //是否生成报告
+//        boolean isCreateReport = true;
+//        String nowRunState = projectDetailsVo.getNowRunState();
+//        if(!ProjectRunStateEnum.FINISH.getCode().equals(nowRunState)){
+//            isCreateReport = false;
+//        }else{
+//            //查询任务是否存在aborted
+//            SimulationMptSceneScorePo sPo = new SimulationMptSceneScorePo();
+//            sPo.setPId(param.getId());
+//            SceneScoreVo sceneScoreVo = simulationProjectTaskMapper.selectRunStateByAborted(sPo);
+//            if(sceneScoreVo != null && sceneScoreVo.getNum() > 0){
+//                isCreateReport = false;
+//            }
+//        }
+//
+//        projectDetailsVo.setCreateReport(isCreateReport);
+//*/
+//
+//        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, projectDetailsVo);
+//    }
+
+    private ResponseBodyVO<ProjectDetailsVo> selectProjectDetailsByIdBackUp(SimulationManualProjectParam param) {
+
+        if (isEmpty(param.getId())) {
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
         }
 
         if (isEmpty(param.getProjectType())) {
@@ -423,14 +647,14 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             //项目基本信息
             SimulationManualProjectPo po = simulationProjectMapper.selectProjectById(param);
             if (po == null) {
-                return new ResponseBodyVO(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
             }
             poParam = po;
 
         } else if ("2".equals(param.getProjectType())) {
             SimulationManualProjectVo po = simulationAutomaticSubProjectMapper.selectProjectInfo(param);
             if (po == null) {
-                return new ResponseBodyVO(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
             }
 
             BeanUtils.copyProperties(po, poParam);
@@ -599,7 +823,7 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
         projectDetailsVo.setCreateReport(isCreateReport);
 */
 
-        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS, projectDetailsVo);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, projectDetailsVo);
     }
 
     //运行状态统计
@@ -3993,8 +4217,8 @@ public class SimulationProjectServiceImpl implements SimulationProjectService {
             return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE, "没有获取到数据");
         }
         String deletedName = algorithmMapper.selectDeletedById(po.getAlgorithm());
-        if(StringUtil.isNotEmpty(deletedName)){
-            po.setAlgorithm(deletedName+"(已删除)");
+        if (StringUtil.isNotEmpty(deletedName)) {
+            po.setAlgorithm(deletedName + "(已删除)");
         }
         SimulationManualProjectSingleVo vo = new SimulationManualProjectSingleVo();
         convertPoToVo(po, vo);

+ 5 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/project/mapper/ManualProjectMapper.java

@@ -21,6 +21,11 @@ public interface ManualProjectMapper {
             "where id = #{projectId}")
     SchedulerProjectPO selectById(@Param("projectId") String projectId);
 
+    @Select("select details\n" +
+            "from simulation_manual_project\n" +
+            "where id = #{projectId}")
+    String selectDetailsById(@Param("projectId") String projectId);
+
     @Update("update simulation_manual_project\n" +
             "set evaluation_level = #{evaluationLevel}\n" +
             "where id = #{projectId}")

+ 6 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/project/mapper/SimulationProjectMapper.java

@@ -14,6 +14,7 @@ import api.common.pojo.vo.project.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -123,4 +124,9 @@ public interface SimulationProjectMapper {
     SimulationManualProjectPo selectProjectReportIdByAlgorithmId(String algorithmId);
 
 
+    @Update("update simulation_manual_project\n" +
+            "set details = #{details}\n" +
+            "where id = #{projectId}")
+    void updateDetailsById(@Param("projectId")String projectId,@Param("details")String details);
+
 }

+ 1 - 1
simulation-resource-server/src/main/java/com/css/simulation/resource/project/service/SimulationProjectService.java

@@ -20,7 +20,7 @@ public interface SimulationProjectService {
 
     ResponseBodyVO<String> updateProjectNowRunState(SimulationManualProjectParam param);
 
-    ResponseBodyVO selectProjectDetailsById(SimulationManualProjectParam param);
+    ResponseBodyVO<ProjectDetailsVo> selectProjectDetailsById(SimulationManualProjectParam param);
 
     ResponseBodyVO<ProjectReportVo> selectProjectReportById(SimulationManualProjectParam param);