夜得朦胧 hace 1 año
padre
commit
1c1471d366

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

@@ -365,4 +365,19 @@ public class JobManageController {
     return multiSimulationProjectService.getMultiSimulationSceneCarList(param);
   }
 
+  @RequestMapping("/deleteMultiSimulationSceneCar")
+  public ResponseBodyVO deleteMultiSimulationSceneCar(@RequestBody MultiSimulationSceneCarParam param) {
+    return multiSimulationProjectService.deleteMultiSimulationSceneCar(param);
+  }
+
+  @RequestMapping("/addOrUpdateMultiSimulationSceneCar")
+  public ResponseBodyVO<String> addOrUpdateMultiSimulationSceneCar(@RequestBody MultiSimulationSceneCarParam param) {
+    return multiSimulationProjectService.addOrUpdateMultiSimulationSceneCar(param);
+  }
+
+  @RequestMapping("/setMultiSimulationSceneCarView")
+  public ResponseBodyVO setMultiSimulationSceneCarView(@RequestBody MultiSimulationSceneCarParam param) {
+    return multiSimulationProjectService.setMultiSimulationSceneCarView(param);
+  }
+
 }

+ 63 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/adapter/controller/job_manage/SimulationMapController.java

@@ -0,0 +1,63 @@
+package com.css.simulation.resource.server.adapter.controller.job_manage;
+
+import api.common.pojo.common.ResponseBodyVO;
+import api.common.pojo.param.map.SimulationMapParam;
+import api.common.pojo.param.project.*;
+import api.common.pojo.vo.map.SimulationMapVO;
+import api.common.pojo.vo.project.*;
+import api.common.util.StringUtil;
+import com.css.simulation.resource.server.app.service.ClusterService;
+import com.css.simulation.resource.server.app.service.job_manage.MultiSimulationProjectService;
+import com.css.simulation.resource.server.app.service.job_manage.SimulationMapService;
+import com.css.simulation.resource.server.app.service.job_manage.SimulationProjectService;
+import com.github.pagehelper.PageInfo;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 工作台模块--项目运行
+ */
+@RestController
+@RequestMapping("/simulationMap")
+public class SimulationMapController {
+
+  @Resource
+  private SimulationProjectService simulationProjectService;
+  @Resource
+  private ClusterService clusterService;
+
+  @Resource
+  private SimulationMapService mapService;
+
+  //* -------------------------------- 项目运行 --------------------------------
+
+  @RequestMapping("/selectAllSimulationMapList")
+  public ResponseBodyVO<List<SimulationMapVO>> selectAllSimulationMapList(@RequestBody SimulationMapParam param) {
+    return mapService.selectAllSimulationMapList(param);
+  }
+
+  @RequestMapping("/selectSimulationMapList")
+  public ResponseBodyVO<PageInfo<SimulationMapVO>> selectSimulationMapList(@RequestBody SimulationMapParam param) {
+    return mapService.selectMultiSimulationMap(param);
+  }
+
+  @RequestMapping("/getSimulationMap")
+  public ResponseBodyVO<SimulationMapVO> getSimulationMap(@RequestBody SimulationMapParam param) {
+    return mapService.getSimulationMap(param);
+  }
+
+  @RequestMapping("/updateSimulationMap")
+  public ResponseBodyVO updateSimulationMap(@RequestBody SimulationMapParam param) {
+    return mapService.updateSimulationMap(param);
+  }
+  @RequestMapping("/deleteSimulationMap")
+  public ResponseBodyVO deleteSimulationMap(@RequestBody SimulationMapParam param) {
+    return mapService.deleteSimulationMap(param);
+  }
+
+}

+ 66 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/impl/MultiSimulationProjectServiceImpl.java

@@ -267,6 +267,72 @@ public class MultiSimulationProjectServiceImpl implements MultiSimulationProject
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, pageInfo);
     }
 
+    public ResponseBodyVO deleteMultiSimulationSceneCar(MultiSimulationSceneCarParam param){
+        int i = sceneCarMapper.deleteMultiSimulationSceneCar(param);
+        if (i > 0){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+        }
+        MultiSimulationSceneCarVO multiSimulationSceneCarVO = sceneCarMapper.selectSceneCarById(param);
+        if (Objects.isNull(multiSimulationSceneCarVO)){
+            log.info("该id未查出有效的场景车辆信息:{}", param.getSceneCarId());
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
+    }
+
+    public ResponseBodyVO<String> addOrUpdateMultiSimulationSceneCar(MultiSimulationSceneCarParam param){
+        param.setCarId(StringUtils.isBlank(param.getCarId()) ? "" : param.getCarId());
+        param.setAlgorithmId(StringUtils.isBlank(param.getAlgorithmId()) ? "" : param.getAlgorithmId());
+        param.setPathId(StringUtils.isBlank(param.getPathId()) ? "" : param.getPathId());
+        param.setPathStart(StringUtils.isBlank(param.getPathStart()) ? "" : param.getPathStart());
+        param.setPathEnd(StringUtils.isBlank(param.getPathEnd()) ? "" : param.getPathEnd());
+        param.setPathStartPoint(StringUtils.isBlank(param.getPathStartPoint()) ? "" : param.getPathStartPoint());
+        param.setPathEndPoint(StringUtils.isBlank(param.getPathEndPoint()) ? "" : param.getPathEndPoint());
+        param.setCarSort(Objects.isNull(param.getCarSort()) ? 0 : param.getCarSort());
+        if (StringUtils.isBlank(param.getSceneCarId())){
+            param.setSceneCarId(StringUtil.getRandomUUID());
+            if (StringUtils.isBlank(param.getSceneId())){
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "场景id为空");
+            }
+            int i = sceneCarMapper.addMultiSimulationSceneCar(param);
+            if (i > 0){
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, param.getSceneCarId());
+            }
+        }else {
+            int i = sceneCarMapper.updateMultiSimulationSceneCar(param);
+            if (i > 0){
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, param.getSceneCarId());
+            }
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
+    }
+
+    public ResponseBodyVO setMultiSimulationSceneCarView(MultiSimulationSceneCarParam param){
+        if (StringUtils.isBlank(param.getSceneCarId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "参数为空");
+        }
+        MultiSimulationSceneCarVO multiSimulationSceneCarVO = sceneCarMapper.selectSceneCarById(param);
+        if (Objects.isNull(multiSimulationSceneCarVO)){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "未找到有效的车辆配置");
+        }
+        String sceneId = multiSimulationSceneCarVO.getSceneId();
+        if (StringUtils.isBlank(sceneId)){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "未找到对应的场景");
+        }
+        param.setSceneId(sceneId);
+        List<MultiSimulationSceneCarVO> multiSimulationSceneCarVOS = sceneCarMapper.selectSceneCarList(param);
+        for (MultiSimulationSceneCarVO car: multiSimulationSceneCarVOS) {
+            Integer isSimulationCar = car.getIsSimulationCar();
+            if (isSimulationCar == 1 && !StringUtils.equals(car.getId(), param.getSceneCarId())){
+                // TODO 库里面已经存在仿真视角的车辆,看是直接更新还是返回失败
+            }
+        }
+        int i = sceneCarMapper.updateMultiSimulationSceneCarView(param.getSceneCarId());
+        if (i > 0){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
+    }
 
     private void setPage(Integer pageNum, Integer pageSize) {
         PageVO pageVO = new PageVO();

+ 116 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/impl/SimulationMapServiceImpl.java

@@ -0,0 +1,116 @@
+package com.css.simulation.resource.server.app.impl;
+
+import api.common.pojo.common.PageVO;
+import api.common.pojo.common.ResponseBodyVO;
+import api.common.pojo.enums.MultiSimulationStatusEnum;
+import api.common.pojo.param.map.SimulationMapParam;
+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.po.project.MultiSimulationScenePO;
+import api.common.pojo.vo.map.SimulationMapVO;
+import api.common.pojo.vo.project.MultiSimulationProjectDetailVO;
+import api.common.pojo.vo.project.MultiSimulationProjectVO;
+import api.common.pojo.vo.project.MultiSimulationSceneCarVO;
+import api.common.pojo.vo.project.MultiSimulationSceneVO;
+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.app.service.job_manage.SimulationMapService;
+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;
+import java.util.Objects;
+
+@Service
+@Slf4j
+public class SimulationMapServiceImpl implements SimulationMapService {
+
+    @Resource
+    private SimulationMapMapper mapMapper;
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<PageInfo<SimulationMapVO>> selectMultiSimulationMap(SimulationMapParam param){
+        if (Objects.isNull(param.getPageNum())){
+            param.setPageNum(1);
+        }
+        if (Objects.isNull(param.getPageSize())){
+            param.setPageSize(10);
+        }
+        if (StringUtils.isBlank(param.getMapName())){
+            param.setMapName(null);
+        }
+        if (StringUtils.isBlank(param.getMapDescription())){
+            param.setMapDescription(null);
+        }
+        setPage(param.getPageNum(), param.getPageSize());
+        List<SimulationMapVO> simulationMapVOS = mapMapper.selectSimulationMapList(param);
+        PageInfo<SimulationMapVO> pageInfo = new PageInfo<>(simulationMapVOS);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, pageInfo);
+    }
+
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<List<SimulationMapVO>> selectAllSimulationMapList(SimulationMapParam param){
+        List<SimulationMapVO> simulationMapVOS = mapMapper.selectSimulationMapList(param);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, simulationMapVOS);
+    }
+
+    @Override
+    @SneakyThrows
+    public ResponseBodyVO<SimulationMapVO> getSimulationMap(SimulationMapParam param){
+        if (StringUtils.isBlank(param.getMapId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "地图id为空");
+        }
+        SimulationMapVO simulationMapVO = mapMapper.selectMapByMapId(param.getMapId());
+        if (Objects.isNull(simulationMapVO)){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "未找到有效的id");
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS,  simulationMapVO);
+    }
+
+
+    public ResponseBodyVO updateSimulationMap(SimulationMapParam param){
+        if (StringUtils.isBlank(param.getMapId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "地图id为空");
+        }
+        if (Objects.isNull(param.getPathNum())){
+            param.setPathNum(0);
+        }
+        if (StringUtils.isBlank(param.getMapDescription())){
+            param.setMapDescription("");
+        }
+        int i = mapMapper.updateMultiSimulationScene(param);
+        if (i > 0){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
+
+    }
+    public ResponseBodyVO deleteSimulationMap(SimulationMapParam param){
+        if (StringUtils.isBlank(param.getMapId())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "地图id为空");
+        }
+        int i = mapMapper.deleteMultiSimulationScene(param);
+        if (i > 0){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
+        }
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE);
+    }
+    private void setPage(Integer pageNum, Integer pageSize) {
+        PageVO pageVO = new PageVO();
+        pageVO.setCurrentPage(pageNum);
+        pageVO.setPageSize(pageSize);
+        PageUtil.setPageInfo(pageVO);
+    }
+}

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

@@ -29,4 +29,10 @@ public interface MultiSimulationProjectService {
 
     ResponseBodyVO<PageInfo<MultiSimulationSceneCarVO>> getMultiSimulationSceneCarList(MultiSimulationSceneCarParam param);
 
+    ResponseBodyVO deleteMultiSimulationSceneCar(MultiSimulationSceneCarParam param);
+
+    ResponseBodyVO<String> addOrUpdateMultiSimulationSceneCar(MultiSimulationSceneCarParam param);
+
+    ResponseBodyVO setMultiSimulationSceneCarView(MultiSimulationSceneCarParam param);
+
 }

+ 20 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/server/app/service/job_manage/SimulationMapService.java

@@ -0,0 +1,20 @@
+package com.css.simulation.resource.server.app.service.job_manage;
+
+import api.common.pojo.common.ResponseBodyVO;
+import api.common.pojo.param.map.SimulationMapParam;
+import api.common.pojo.vo.map.SimulationMapVO;
+import com.github.pagehelper.PageInfo;
+
+import java.util.List;
+
+public interface SimulationMapService {
+    ResponseBodyVO<List<SimulationMapVO>> selectAllSimulationMapList(SimulationMapParam param);
+    ResponseBodyVO<PageInfo<SimulationMapVO>> selectMultiSimulationMap(SimulationMapParam param);
+
+    ResponseBodyVO<SimulationMapVO> getSimulationMap(SimulationMapParam param);
+
+    ResponseBodyVO updateSimulationMap(SimulationMapParam param);
+
+    ResponseBodyVO deleteSimulationMap(SimulationMapParam param);
+
+}

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

@@ -11,15 +11,29 @@ import java.util.List;
 
 @Mapper
 public interface MultiSimulationSceneCarMapper {
-//    @Insert("insert into multi_simulation_scene (id,project_id) values" +
-//        "(#{id},#{projectId})")
-//    int addMultiSimulationScene(MultiSimulationScenePO scenePO);
+    @Insert("insert into multi_simulation_scene_car (id,scene_id,car_id,algorithm_id,path_id,path_start,path_end,path_start_point,path_end_point,car_sort) values" +
+        "(#{sceneCarId},#{sceneId},#{carId},#{algorithmId},#{pathId},#{pathStart},#{pathEnd},#{pathStartPoint},#{pathEndPoint},#{carSort})")
+    int addMultiSimulationSceneCar(MultiSimulationSceneCarParam param);
 
     @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);
+
+    @Update("<script>" +
+        "update multi_simulation_scene_car set car_id = #{carId},algorithm_id = #{algorithmId}, path_id = #{pathId}," +
+        "path_start = #{pathStart},path_end = #{pathEnd},path_start_point = #{pathStartPoint},path_end_point = #{pathEndPoint},car_sort = #{carSort} " +
+        "where id = #{sceneCarId}" +
+        "</script>")
+    int updateMultiSimulationSceneCar(MultiSimulationSceneCarParam param);
+
+    @Update("<script>" +
+        "update multi_simulation_scene_car set is_simulation_car = #{isSimulationCar} " +
+        "where id = #{id}" +
+        "</script>")
+    int updateMultiSimulationSceneCarView(String id);
+
+    @Update("update multi_simulation_scene_car set deleted = 1 where id = #{sceneCarId}")
+    int deleteMultiSimulationSceneCar(MultiSimulationSceneCarParam param);
 //
     @Select("<script>" +
         "select id,sceneId,carId,algorithmId,pathId,pathStart,pathEnd,pathStartPoint,pathEndPoint,carSort,createTime from multi_simulation_scene_car where deleted = 0 " +
@@ -28,4 +42,10 @@ public interface MultiSimulationSceneCarMapper {
         "</script>")
     List<MultiSimulationSceneCarVO> selectSceneCarList(MultiSimulationSceneCarParam param);
 
+    @Select("<script>" +
+        "select id,sceneId,carId,algorithmId,pathId,pathStart,pathEnd,pathStartPoint,pathEndPoint,carSort,createTime from multi_simulation_scene_car where deleted = 0 " +
+        "and id = #{sceneCarId}" +
+        "</script>")
+    MultiSimulationSceneCarVO selectSceneCarById(MultiSimulationSceneCarParam param);
+
 }

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

@@ -1,9 +1,15 @@
 package com.css.simulation.resource.server.infra.db.mysql.mapper;
 
+import api.common.pojo.param.map.SimulationMapParam;
+import api.common.pojo.param.project.MultiSimulationProjectParam;
 import api.common.pojo.vo.map.SimulationMapVO;
+import api.common.pojo.vo.project.MultiSimulationProjectVO;
 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 java.util.List;
 
 @Mapper
 public interface SimulationMapMapper {
@@ -11,11 +17,16 @@ public interface SimulationMapMapper {
 //        "(#{id},#{projectId})")
 //    int addMultiSimulationScene(MultiSimulationScenePO scenePO);
 
-    @Select("select id,path_num,map_name from simulation_map where id = #{id} and deleted = 0")
+    @Select("select id,path_num,map_name,map_description,create_time 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);
+    @Update("update simulation_map set deleted = 1 where id = #{mapId}")
+    int deleteMultiSimulationScene(SimulationMapParam param);
+
+    @Update("update simulation_map set map_path = #{mapPath},map_description = #{mapDescription} where id = #{mapId}")
+    int updateMultiSimulationScene(SimulationMapParam param);
+
+
 //
 //    @Select("<script>" +
 //        "select id,project_id,scene_name,map_id,create_time from multi_simulation_scene where deleted = 0 " +
@@ -24,4 +35,16 @@ public interface SimulationMapMapper {
 //        "</script>")
 //    List<MultiSimulationSceneVO> selectSceneList(MultiSimulationSceneParam param);
 
+    @Select("<script>" +
+        "select id,map_name,map_description,path_num,create_time from simulation_map where deleted = 0 " +
+        "<if test='mapName != null'> " +
+        " AND map_name = #{mapName}" +
+        "</if>" +
+        "<if test='mapDescription != null'> " +
+        " AND map_description = #{mapDescription}" +
+        "</if>" +
+        "order by create_time desc" +
+        "</script>")
+    List<SimulationMapVO> selectSimulationMapList(SimulationMapParam param);
+
 }