夜得朦胧 1 yıl önce
ebeveyn
işleme
11eb98469a

+ 39 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/server/adapter/controller/job_manage/JobManageController.java

@@ -1,9 +1,7 @@
 package com.css.simulation.resource.server.adapter.controller.job_manage;
 
 import api.common.pojo.common.ResponseBodyVO;
-import api.common.pojo.param.project.DictParam;
-import api.common.pojo.param.project.MultiSimulationProjectParam;
-import api.common.pojo.param.project.SimulationManualProjectParam;
+import api.common.pojo.param.project.*;
 import api.common.pojo.vo.project.*;
 import api.common.util.StringUtil;
 import com.css.simulation.resource.server.app.service.job_manage.MultiSimulationProjectService;
@@ -328,5 +326,43 @@ public class JobManageController {
     return multiSimulationProjectService.addMultiSimulationProject(param);
   }
 
+  @RequestMapping("/deleteMultiSimulationProject")
+  public ResponseBodyVO<String> deleteMultiSimulationProject(@RequestBody MultiSimulationProjectParam param) {
+    return multiSimulationProjectService.deleteMultiSimulationProject(param);
+  }
+
+  @RequestMapping("/updateMultiSimulationProject")
+  public ResponseBodyVO<String> updateMultiSimulationProject(@RequestBody MultiSimulationProjectParam param) {
+    return multiSimulationProjectService.updateMultiSimulationProject(param);
+  }
+
+  @RequestMapping("/getMultiSimulationProjectDetail")
+  public ResponseBodyVO<MultiSimulationProjectVO> getMultiSimulationProjectDetail(@RequestBody MultiSimulationProjectParam param) {
+    return multiSimulationProjectService.getMultiSimulationProjectDetail(param);
+  }
+  @RequestMapping("/addMultiSimulationScene")
+  public ResponseBodyVO<MultiSimulationSceneVO> addMultiSimulationScene(@RequestBody MultiSimulationSceneParam param) {
+    return multiSimulationProjectService.addMultiSimulationScene(param);
+  }
+
+  @RequestMapping("/deleteMultiSimulationScene")
+  public ResponseBodyVO deleteMultiSimulationScene(@RequestBody MultiSimulationSceneParam param) {
+    return multiSimulationProjectService.deleteMultiSimulationScene(param);
+  }
+
+  @RequestMapping("/selectMultiSimulationSceneList")
+  public ResponseBodyVO<PageInfo<MultiSimulationSceneVO>> selectMultiSimulationSceneList(@RequestBody MultiSimulationSceneParam param) {
+    return multiSimulationProjectService.selectMultiSimulationSceneList(param);
+  }
+
+  @RequestMapping("/getMultiSimulationSceneDetail")
+  public ResponseBodyVO<MultiSimulationSceneVO> getMultiSimulationSceneDetail(@RequestBody MultiSimulationSceneParam param) {
+    return multiSimulationProjectService.getMultiSimulationSceneDetail(param);
+  }
+
+  @RequestMapping("/getMultiSimulationSceneCarList")
+  public ResponseBodyVO<PageInfo<MultiSimulationSceneCarVO>> getMultiSimulationSceneCarList(@RequestBody MultiSimulationSceneCarParam param) {
+    return multiSimulationProjectService.getMultiSimulationSceneCarList(param);
+  }
 
 }

+ 206 - 5
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/impl/MultiSimulationProjectServiceImpl.java

@@ -4,19 +4,24 @@ import api.common.pojo.common.PageVO;
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.enums.MultiSimulationStatusEnum;
 import api.common.pojo.param.project.MultiSimulationProjectParam;
+import api.common.pojo.param.project.MultiSimulationSceneCarParam;
+import api.common.pojo.param.project.MultiSimulationSceneParam;
+import api.common.pojo.po.algorithm.AlgorithmPO;
+import api.common.pojo.po.model.ConfigPO;
 import api.common.pojo.po.project.MultiSimulationProjectPO;
-import api.common.pojo.vo.project.MultiSimulationProjectDetailVO;
-import api.common.pojo.vo.project.MultiSimulationProjectVO;
-import api.common.pojo.vo.project.SimulationManualProjectVO;
+import api.common.pojo.po.project.MultiSimulationScenePO;
+import api.common.pojo.vo.map.SimulationMapVO;
+import api.common.pojo.vo.project.*;
 import api.common.util.StringUtil;
 import com.alibaba.cloud.commons.lang.StringUtils;
 import com.css.simulation.resource.server.app.service.job_manage.MultiSimulationProjectService;
-import com.css.simulation.resource.server.infra.db.mysql.mapper.MultiSimulationProjectMapper;
+import com.css.simulation.resource.server.infra.db.mysql.mapper.*;
 import com.css.simulation.resource.server.infra.util.PageUtil;
 import com.github.pagehelper.PageInfo;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -28,6 +33,18 @@ public class MultiSimulationProjectServiceImpl implements MultiSimulationProject
 
     @Resource
     private MultiSimulationProjectMapper multiSimulationProjectMapper;
+    @Resource
+    private MultiSimulationSceneMapper simulationSceneMapper;
+
+    @Resource
+    private MultiSimulationSceneCarMapper sceneCarMapper;
+
+    @Resource
+    private SimulationMapMapper mapMapper;
+
+    @Resource
+    private SimulationManualProjectMapper simulationManualProjectMapper;
+
     @Override
     @SneakyThrows
     public ResponseBodyVO<PageInfo<MultiSimulationProjectVO>> selectMultiSimulationProject(MultiSimulationProjectParam param){
@@ -43,15 +60,31 @@ public class MultiSimulationProjectServiceImpl implements MultiSimulationProject
         if (StringUtils.isBlank(param.getProjectKey())){
             param.setProjectKey(null);
         }
-
+        if (StringUtils.isBlank(param.getProjectId())){
+            param.setProjectId(null);
+        }
         setPage(param.getPageNum(), param.getPageSize());
         List<MultiSimulationProjectVO> multiSimulationProjectVOS = multiSimulationProjectMapper.selectProjectList(param);
+        if (!CollectionUtils.isEmpty(multiSimulationProjectVOS)){
+            for (MultiSimulationProjectVO project: multiSimulationProjectVOS) {
+                String id = project.getId();
+                project.setProjectStatusValue(MultiSimulationStatusEnum.matchStatusEnumByStatus(project.getProjectStatus()).getProjectStatusValue());
+                int i = simulationSceneMapper.selectSceneNumsByProjectId(id);
+                project.setSceneNums(i);
+            }
+        }
         PageInfo<MultiSimulationProjectVO> pageInfo = new PageInfo<>(multiSimulationProjectVOS);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, pageInfo);
     }
     @Override
     @SneakyThrows
     public ResponseBodyVO<MultiSimulationProjectDetailVO> addMultiSimulationProject(MultiSimulationProjectParam param){
+        String name = param.getProjectName();
+
+        MultiSimulationProjectVO multiSimulationProjectVO = multiSimulationProjectMapper.selectMultiSimulationProjectByName(StringUtils.isBlank(name) ? "" : name);
+        if (!Objects.isNull(multiSimulationProjectVO)){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE,"添加失败,存在同名的多模式仿真任务");
+        }
         MultiSimulationProjectPO build = MultiSimulationProjectPO.builder()
             .id(StringUtil.getRandomUUID())
             .projectName(param.getProjectName()== null ? "": param.getProjectName())
@@ -67,6 +100,174 @@ public class MultiSimulationProjectServiceImpl implements MultiSimulationProject
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE);
     }
 
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<String> deleteMultiSimulationProject(MultiSimulationProjectParam param){
+        int i = multiSimulationProjectMapper.deleteMultiSimulationProject(param.getProjectId());
+        if (i > 0){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, null);
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE);
+    }
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<String> updateMultiSimulationProject(MultiSimulationProjectParam param){
+        if (StringUtils.isBlank(param.getProjectId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "项目id不能为空");
+        }
+        param.setProjectName(StringUtils.isBlank(param.getProjectName()) ? "" : param.getProjectName());
+        param.setProjectDescription(StringUtils.isBlank(param.getProjectDescription()) ? "" : param.getProjectDescription());
+        param.setProjectMaxSeconds(Objects.isNull(param.getProjectMaxSeconds()) ? 0 : param.getProjectMaxSeconds());
+        int i = multiSimulationProjectMapper.updateMultiSimulationProject(param);
+        if (i > 0){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, null);
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
+    }
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<MultiSimulationProjectVO> getMultiSimulationProjectDetail(MultiSimulationProjectParam param){
+        if (StringUtils.isBlank(param.getProjectId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "项目id不能为空");
+        }
+        MultiSimulationProjectVO multiSimulationProjectVO = multiSimulationProjectMapper.selectMultiSimulationProjectById(param.getProjectId());
+        if (Objects.isNull(multiSimulationProjectVO)){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "未查询出有效的项目");
+        }
+        multiSimulationProjectVO.setProjectStatusValue(MultiSimulationStatusEnum.matchStatusEnumByStatus(multiSimulationProjectVO.getProjectStatus()).getProjectStatusValue());
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, multiSimulationProjectVO);
+    }
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<MultiSimulationSceneVO> addMultiSimulationScene(MultiSimulationSceneParam param){
+        if (StringUtils.isBlank(param.getProjectId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "项目id不能为空");
+        }
+        MultiSimulationScenePO build = MultiSimulationScenePO.builder().id(StringUtil.getRandomUUID()).projectId(param.getProjectId()).build();
+        int i = simulationSceneMapper.addMultiSimulationScene(build);
+        if (i > 0){
+            MultiSimulationSceneVO sceneVO = MultiSimulationSceneVO.builder().sceneId(build.getId()).build();
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, sceneVO);
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SERVER_FAILURE);
+    }
+
+
+
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO deleteMultiSimulationScene(MultiSimulationSceneParam param){
+        if (StringUtils.isBlank(param.getSceneId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "删除失败,场景id不能为空");
+        }
+        int i = simulationSceneMapper.deleteMultiSimulationScene(param);
+        if (i > 0){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, "删除成功");
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
+    }
+
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<PageInfo<MultiSimulationSceneVO>> selectMultiSimulationSceneList(MultiSimulationSceneParam param){
+        if (StringUtils.isBlank(param.getProjectId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "查询失败,id为空");
+        }
+        if (Objects.isNull(param.getPageNum())){
+            param.setPageNum(1);
+        }
+        if (Objects.isNull(param.getPageSize())){
+            param.setPageSize(10);
+        }
+        setPage(param.getPageNum(), param.getPageSize());
+        List<MultiSimulationSceneVO> multiSimulationSceneVOS = simulationSceneMapper.selectSceneList(param);
+        if (!CollectionUtils.isEmpty(multiSimulationSceneVOS)){
+            for (MultiSimulationSceneVO scene: multiSimulationSceneVOS) {
+                String sceneId = scene.getSceneId();
+                int i = sceneCarMapper.selectSceneCarNumsByProjectId(sceneId);
+                scene.setCarNums(i);
+                String mapId = scene.getMapId();
+                if (StringUtils.isBlank(mapId)){
+                    continue;
+                }
+                SimulationMapVO simulationMapVO = mapMapper.selectMapByMapId(mapId);
+                if (Objects.isNull(simulationMapVO)){
+                    continue;
+                }
+                scene.setMapName(simulationMapVO.getMapName());
+            }
+        }
+        PageInfo<MultiSimulationSceneVO> pageInfo = new PageInfo<>(multiSimulationSceneVOS);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, pageInfo);
+    }
+
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<MultiSimulationSceneVO> getMultiSimulationSceneDetail(MultiSimulationSceneParam param){
+        if (StringUtils.isBlank(param.getSceneId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "查询失败,场景id为空");
+        }
+        MultiSimulationSceneVO sceneVO = simulationSceneMapper.selectSceneDetailBySceneId(param.getSceneId());
+        if (Objects.isNull(sceneVO)){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "查询失败,未找到有效的场景");
+        }
+        String mapId = sceneVO.getMapId();
+        if (StringUtils.isNotBlank(mapId)){
+            SimulationMapVO simulationMapVO = mapMapper.selectMapByMapId(mapId);
+            if (Objects.isNull(simulationMapVO)){
+                sceneVO.setMapId("");
+            }else {
+                sceneVO.setMapName(simulationMapVO.getMapName());
+                sceneVO.setMapImgUrl(simulationMapVO.getMapImgUrl());
+            }
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, sceneVO);
+    }
+
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<PageInfo<MultiSimulationSceneCarVO>> getMultiSimulationSceneCarList(MultiSimulationSceneCarParam param){
+        String sceneId = param.getSceneId();
+        if (StringUtils.isBlank(sceneId)){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "查询失败,场景id为空");
+        }
+        if (Objects.isNull(param.getPageNum())){
+            param.setPageNum(1);
+        }
+        if (Objects.isNull(param.getPageSize())){
+            param.setPageSize(10);
+        }
+        setPage(param.getPageNum(), param.getPageSize());
+        List<MultiSimulationSceneCarVO> multiSimulationSceneCarVOS = sceneCarMapper.selectSceneCarList(param);
+        if (!CollectionUtils.isEmpty(multiSimulationSceneCarVOS)){
+            for (MultiSimulationSceneCarVO car: multiSimulationSceneCarVOS) {
+                String algorithmId = car.getAlgorithmId();
+                String carId = car.getCarId();
+                if (StringUtils.isNotBlank(carId)){
+                    ConfigPO configPO = simulationManualProjectMapper.selectConfigVehicleById(carId);
+                    if (!Objects.isNull(configPO)){
+                        car.setCarName(configPO.getConfigName());
+                    }else {
+                        log.info("根据carId未查出有效的车辆信息carId:{}", carId);
+                        car.setCarId("");
+                    }
+                }
+                if (StringUtils.isNotBlank(algorithmId)){
+                    AlgorithmPO algorithmPO = simulationManualProjectMapper.selectAvailableAlgorithmById(algorithmId);
+                    if (!Objects.isNull(algorithmPO)){
+                        car.setAlgorithmName(algorithmPO.getAlgorithmName());
+                    }else {
+                        log.info("根据算法id未查出有效的算法信息algorithmId:{}", algorithmId);
+                        car.setAlgorithmId("");
+                    }
+                }
+            }
+        }
+        PageInfo<MultiSimulationSceneCarVO> pageInfo = new PageInfo<>(multiSimulationSceneCarVOS);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, pageInfo);
+    }
+
+
     private void setPage(Integer pageNum, Integer pageSize) {
         PageVO pageVO = new PageVO();
         pageVO.setCurrentPage(pageNum);

+ 19 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/job_manage/MultiSimulationProjectService.java

@@ -2,10 +2,10 @@ package com.css.simulation.resource.server.app.service.job_manage;
 
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.project.MultiSimulationProjectParam;
+import api.common.pojo.param.project.MultiSimulationSceneCarParam;
+import api.common.pojo.param.project.MultiSimulationSceneParam;
 import api.common.pojo.param.project.SimulationManualProjectParam;
-import api.common.pojo.vo.project.MultiSimulationProjectDetailVO;
-import api.common.pojo.vo.project.MultiSimulationProjectVO;
-import api.common.pojo.vo.project.SimulationManualProjectVO;
+import api.common.pojo.vo.project.*;
 import com.github.pagehelper.PageInfo;
 
 public interface MultiSimulationProjectService {
@@ -13,4 +13,20 @@ public interface MultiSimulationProjectService {
 
     ResponseBodyVO<MultiSimulationProjectDetailVO> addMultiSimulationProject(MultiSimulationProjectParam param);
 
+    ResponseBodyVO<String> deleteMultiSimulationProject(MultiSimulationProjectParam param);
+
+    ResponseBodyVO<String> updateMultiSimulationProject(MultiSimulationProjectParam param);
+
+    ResponseBodyVO<MultiSimulationProjectVO> getMultiSimulationProjectDetail(MultiSimulationProjectParam param);
+
+    ResponseBodyVO<MultiSimulationSceneVO> addMultiSimulationScene(MultiSimulationSceneParam param);
+
+    ResponseBodyVO<String> deleteMultiSimulationScene(MultiSimulationSceneParam param);
+
+    ResponseBodyVO<PageInfo<MultiSimulationSceneVO>> selectMultiSimulationSceneList(MultiSimulationSceneParam param);
+
+    ResponseBodyVO<MultiSimulationSceneVO> getMultiSimulationSceneDetail(MultiSimulationSceneParam param);
+
+    ResponseBodyVO<PageInfo<MultiSimulationSceneCarVO>> getMultiSimulationSceneCarList(MultiSimulationSceneCarParam param);
+
 }

+ 18 - 4
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/db/mysql/mapper/MultiSimulationProjectMapper.java

@@ -9,10 +9,7 @@ import api.common.pojo.vo.algorithm.AlgorithmVO;
 import api.common.pojo.vo.algorithm.RunningProjectVO;
 import api.common.pojo.vo.project.MultiSimulationProjectVO;
 import api.common.pojo.vo.project.SimulationManualProjectVO;
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.*;
 
 import java.util.List;
 
@@ -29,6 +26,9 @@ public interface MultiSimulationProjectMapper {
         "<if test='projectStatus != null'> " +
         " AND project_status = #{projectStatus}" +
         "</if>" +
+        "<if test='projectId != null'> " +
+        " AND project_id = #{projectId}" +
+        "</if>" +
         "order by create_time desc" +
         "</script>")
     List<MultiSimulationProjectVO> selectProjectList(MultiSimulationProjectParam param);
@@ -38,4 +38,18 @@ public interface MultiSimulationProjectMapper {
         "(#{id},#{projectKey},#{projectName},#{projectDescription},#{projectMaxSeconds},#{projectStatus})")
     int  addMultiSimulationProject(MultiSimulationProjectPO projectPO);
 
+    @Select("select id,project_key,project_name,project_status,create_time from multi_simulation_project where deleted = 0 " +
+        "and project_name = #{projectName} limit 1")
+    MultiSimulationProjectVO selectMultiSimulationProjectByName(@Param("projectName") String projectName);
+
+    @Delete("delete from multi_simulation_project where id = #{id}")
+    int deleteMultiSimulationProject(@Param("id") String id);
+
+    @Update("update multi_simulation_project set project_name = #{projectName}, project_description = #{projectDescription}," +
+        "project_max_seconds = #{projectMaxSeconds} where id = #{projectId}")
+    int updateMultiSimulationProject(MultiSimulationProjectParam param);
+
+    @Select("select id,project_key,project_name,project_status,create_time from multi_simulation_project where deleted = 0 " +
+        "and id = #{id} limit 1")
+    MultiSimulationProjectVO selectMultiSimulationProjectById(@Param("id") String projectId);
 }

+ 31 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/db/mysql/mapper/MultiSimulationSceneCarMapper.java

@@ -0,0 +1,31 @@
+package com.css.simulation.resource.server.infra.db.mysql.mapper;
+
+import api.common.pojo.param.project.MultiSimulationSceneCarParam;
+import api.common.pojo.param.project.MultiSimulationSceneParam;
+import api.common.pojo.po.project.MultiSimulationScenePO;
+import api.common.pojo.vo.project.MultiSimulationSceneCarVO;
+import api.common.pojo.vo.project.MultiSimulationSceneVO;
+import org.apache.ibatis.annotations.*;
+
+import java.util.List;
+
+@Mapper
+public interface MultiSimulationSceneCarMapper {
+//    @Insert("insert into multi_simulation_scene (id,project_id) values" +
+//        "(#{id},#{projectId})")
+//    int addMultiSimulationScene(MultiSimulationScenePO scenePO);
+
+    @Select("select count(*) from multi_simulation_scene_car where scene_id = #{sceneId} and deleted = 0")
+    int selectSceneCarNumsByProjectId(@Param("sceneId") String sceneId);
+
+//    @Update("update multi_simulation_scene set deleted = 1 where id = #{sceneId}")
+//    int deleteMultiSimulationScene(MultiSimulationSceneParam param);
+//
+    @Select("<script>" +
+        "select id,sceneId,carId,algorithmId,pathId,pathStart,pathEnd,pathStartPoint,pathEndPoint,carSort,createTime from multi_simulation_scene_car where deleted = 0 " +
+        "and scene_id = #{sceneId}" +
+        "order by carSort, create_time desc" +
+        "</script>")
+    List<MultiSimulationSceneCarVO> selectSceneCarList(MultiSimulationSceneCarParam param);
+
+}

+ 37 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/db/mysql/mapper/MultiSimulationSceneMapper.java

@@ -0,0 +1,37 @@
+package com.css.simulation.resource.server.infra.db.mysql.mapper;
+
+import api.common.pojo.param.project.MultiSimulationProjectParam;
+import api.common.pojo.param.project.MultiSimulationSceneParam;
+import api.common.pojo.po.project.MultiSimulationScenePO;
+import api.common.pojo.vo.project.MultiSimulationProjectVO;
+import api.common.pojo.vo.project.MultiSimulationSceneVO;
+import org.apache.ibatis.annotations.*;
+
+import java.util.List;
+
+@Mapper
+public interface MultiSimulationSceneMapper {
+    @Insert("insert into multi_simulation_scene (id,project_id) values" +
+        "(#{id},#{projectId})")
+    int addMultiSimulationScene(MultiSimulationScenePO scenePO);
+
+    @Select("select count(*) from multi_simulation_scene where project_id = #{projectId} and deleted = 0")
+    int selectSceneNumsByProjectId(@Param("projectId") String projectId);
+
+    @Update("update multi_simulation_scene set deleted = 1 where id = #{sceneId}")
+    int deleteMultiSimulationScene(MultiSimulationSceneParam param);
+
+    @Select("<script>" +
+        "select id,project_id,scene_name,map_id,create_time from multi_simulation_scene where deleted = 0 " +
+        "and project_id = #{projectId}" +
+        "order by create_time desc" +
+        "</script>")
+    List<MultiSimulationSceneVO> selectSceneList(MultiSimulationSceneParam param);
+
+    @Select("<script>" +
+        "select id,project_id,scene_name,map_id,create_time from multi_simulation_scene where deleted = 0 " +
+        "and id = #{sceneId}" +
+        "</script>")
+    MultiSimulationSceneVO selectSceneDetailBySceneId(String sceneId);
+
+}

+ 8 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/db/mysql/mapper/SimulationManualProjectMapper.java

@@ -55,6 +55,11 @@ public interface SimulationManualProjectMapper {
             "        where id = #{algorithmId}")
     AlgorithmPO selectAlgorithmInfoById(@Param("algorithmId") String algorithmId);
 
+    @Select("select id, algorithm_name, description\n" +
+        "        from algorithm\n" +
+        "        where id = #{algorithmId} and is_deleted = 0")
+    AlgorithmPO selectAvailableAlgorithmById(@Param("algorithmId") String algorithmId);
+
     List<VehiclePO> selectVehicleBaseInfoById(String id);
 
     List<ScenePackagePO> selectScenePackageBaseById(ScenePackagePO scenePackagePO);
@@ -108,6 +113,9 @@ public interface SimulationManualProjectMapper {
 
     List<ConfigPO> selectConfigVehicleSy(ConfigPO configPO);
 
+    @Select("select id,config_name from model_config where id = #{id} and is_deleted = 0 and is_unavailable = 0")
+    ConfigPO selectConfigVehicleById(@Param("id") String id);
+
     List<ConfigSensorPO> selectConfigSensor(String id);
 
     List<SimulationManualProjectPO> selectProjectNowRunState(String[] ids);

+ 27 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/infra/db/mysql/mapper/SimulationMapMapper.java

@@ -0,0 +1,27 @@
+package com.css.simulation.resource.server.infra.db.mysql.mapper;
+
+import api.common.pojo.vo.map.SimulationMapVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+@Mapper
+public interface SimulationMapMapper {
+//    @Insert("insert into multi_simulation_scene (id,project_id) values" +
+//        "(#{id},#{projectId})")
+//    int addMultiSimulationScene(MultiSimulationScenePO scenePO);
+
+    @Select("select id,path_num,map_name from simulation_map where id = #{id} and deleted = 0")
+    SimulationMapVO selectMapByMapId(@Param("id") String mapId);
+
+//    @Update("update multi_simulation_scene set deleted = 1 where id = #{sceneId}")
+//    int deleteMultiSimulationScene(MultiSimulationSceneParam param);
+//
+//    @Select("<script>" +
+//        "select id,project_id,scene_name,map_id,create_time from multi_simulation_scene where deleted = 0 " +
+//        "and project_id = #{projectId}" +
+//        "order by create_time desc" +
+//        "</script>")
+//    List<MultiSimulationSceneVO> selectSceneList(MultiSimulationSceneParam param);
+
+}