martin 3 سال پیش
والد
کامیت
25eb5be510

+ 1 - 1
api-common/src/main/java/api/common/pojo/dto/ProjectMessageDTO.java

@@ -23,7 +23,7 @@ public class ProjectMessageDTO {
 
     private String projectId;// 项目 id
     private String algorithmId;// 算法 id
-    private String vehicleId;// 车辆 id
+    private String vehicleConfigId;// 车辆配置 id
     private String scenePackageId;// 场景包 id
     private int maxSimulationTime;// 最大仿真时间(秒)
     private int parallelism;// 并行度,创建 pod 时使用

+ 2 - 0
api-common/src/main/java/api/common/util/CollectionUtil.java

@@ -11,10 +11,12 @@ public class CollectionUtil {
     }
 
 
+    @SafeVarargs
     public static <T> ArrayList<T> createArrayList(T... elements) {
         return new ArrayList<>(Arrays.asList(elements));
     }
 
+    @SafeVarargs
     public static <T> HashSet<T> createHashSet(T... elements) {
         return new HashSet<>(Arrays.asList(elements));
     }

+ 1 - 1
simulation-resource-common/src/main/java/com/css/simulation/resource/common/controller/MinioController.java

@@ -49,7 +49,7 @@ public class MinioController {
         );
         String previewUrl = MinioUtil.getPreviewUrl(minioClient, Method.GET, bucketName, objectName);
 
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, previewUrl);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, "请求成功!", previewUrl);
     }
 
 //    @PostMapping("/download")

+ 5 - 5
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ManualProjectConsumer.java

@@ -109,11 +109,11 @@ public class ManualProjectConsumer {
         sceneList.addAll(sceneMapper.selectAccidentByIdList(accidentIdList));
         projectMapper.updateTaskNumber(projectId, sceneList.size()); // 有多少场景就有多少任务
         // -------------------------------- 2 模型 --------------------------------
-        // 根据 vehicleId, 获取 模型信息和传感器信息
-        String vehicleId = projectMessageDTO.getVehicleId();    // 模型 id
-        VehiclePO vehiclePO = vehicleMapper.selectByVehicleId(projectId);
-        List<CameraPO> cameraPOList = sensorCameraMapper.selectCameraByVehicleId(vehicleId);
-        List<OgtPO> ogtPOList = sensorOgtMapper.selectOgtByVehicleId(vehicleId);
+        // 根据车辆配置id vehicleConfigId, 获取 模型信息和传感器信息
+        String vehicleConfigId = projectMessageDTO.getVehicleConfigId();// 模型配置 id
+        VehiclePO vehiclePO = vehicleMapper.selectByVehicleConfigId(vehicleConfigId);   // 模型
+        List<CameraPO> cameraPOList = sensorCameraMapper.selectCameraByVehicleConfigId(vehicleConfigId);    // 摄像头
+        List<OgtPO> ogtPOList = sensorOgtMapper.selectOgtByVehicleId(vehicleConfigId); // 完美传感器
 
         // -------------------------------- 3 任务消息 --------------------------------
         // 根据场景创建任务,组装 task 消息

+ 19 - 19
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorCameraMapper.java

@@ -11,10 +11,10 @@ public interface SensorCameraMapper {
 
     @Results(id = "camera", value = {
             @Result(column = "name", property = "sensor_name", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "horizontal_field_angle", property = "sensor_fovH", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "vertical_field_angle", property = "sensor_fovV", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "blind_zone_distance", property = "sensor_near", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "detection_distance", property = "sensor_far", jdbcType = JdbcType.DECIMAL),
+            @Result(column = "fov_h", property = "sensor_fovH", jdbcType = JdbcType.DECIMAL),
+            @Result(column = "fov_v", property = "sensor_fovV", jdbcType = JdbcType.DECIMAL),
+            @Result(column = "near_distance", property = "sensor_near", jdbcType = JdbcType.DECIMAL),
+            @Result(column = "far_distance", property = "sensor_far", jdbcType = JdbcType.DECIMAL),
             @Result(column = "resolution", property = "sensor_resolution", jdbcType = JdbcType.DECIMAL),
             @Result(column = "frame_rate", property = "sensor_frameRate", jdbcType = JdbcType.DECIMAL),
             @Result(column = "sensor_x", property = "sensor_x", jdbcType = JdbcType.DECIMAL),
@@ -24,21 +24,21 @@ public interface SensorCameraMapper {
             @Result(column = "sensor_p", property = "sensor_p", jdbcType = JdbcType.DECIMAL),
             @Result(column = "sensor_r", property = "sensor_r", jdbcType = JdbcType.DECIMAL),
     })
-    @Select("select msc.name,\n" +
-            "       msc.horizontal_field_angle,\n" +
-            "       msc.vertical_field_angle,\n" +
-            "       msc.blind_zone_distance,\n" +
-            "       msc.detection_distance,\n" +
+    @Select("select msc.sensor_name,\n" +
+            "       msc.fov_h,\n" +
+            "       msc.fov_v,\n" +
+            "       msc.near_distance,\n" +
+            "       msc.far_distance,\n" +
             "       msc.resolution,\n" +
             "       msc.frame_rate,\n" +
-            "       rvs.sensor_x,\n" +
-            "       rvs.sensor_y,\n" +
-            "       rvs.sensor_z,\n" +
-            "       rvs.sensor_h,\n" +
-            "       rvs.sensor_p,\n" +
-            "       rvs.sensor_r\n" +
-            "from model_sensor_camera msc left join relation_vehicle_sensor rvs on msc.id = rvs.sensor_id\n" +
-            "where msc.is_deleted = '0' and rvs.is_deleted = '0'" +
-            "   and rvs.vehicle_id = #{vehicleId}")
-    List<CameraPO> selectCameraByVehicleId(@Param("vehicleId") String vehicleId);
+            "       rcs.sensor_x,\n" +
+            "       rcs.sensor_y,\n" +
+            "       rcs.sensor_z,\n" +
+            "       rcs.sensor_h,\n" +
+            "       rcs.sensor_p,\n" +
+            "       rcs.sensor_r\n" +
+            "from model_sensor_camera msc left join relation_config_sensor rcs on msc.id = rcs.sensor_id\n" +
+            "where msc.is_deleted = '0' and rcs.is_deleted = '0'\n" +
+            "   and rcs.config_id = #{vehicleConfigId}")
+    List<CameraPO> selectCameraByVehicleConfigId(@Param("vehicleConfigId") String vehicleConfigId);
 }

+ 28 - 27
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorOgtMapper.java

@@ -9,42 +9,43 @@ import java.util.List;
 @Mapper
 public interface SensorOgtMapper {
 
-    @Results(id = "camera", value = {
-            @Result(column = "name", property = "sensor_name", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "horizontal_field_angle", property = "sensor_fovH", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "vertical_field_angle", property = "sensor_fovV", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "blind_zone_distance", property = "sensor_near", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "detection_distance", property = "sensor_far", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "range_display", property = "sensor_display", jdbcType = JdbcType.BOOLEAN),
-            @Result(column = "max_objects", property = "sensor_maxObjects", jdbcType = JdbcType.INTEGER),
-            @Result(column = "target_filter", property = "sensor_filter", jdbcType = JdbcType.VARCHAR),
+    @Results(id = "Ogt", value = {
+            @Result(column = "sensor_name", property = "sensor_name", jdbcType = JdbcType.VARCHAR),
+            @Result(column = "fov_h_left", property = "sensor_fovHLeft", jdbcType = JdbcType.DECIMAL),
+            @Result(column = "fov_h_right", property = "sensor_fovHRight", jdbcType = JdbcType.DECIMAL),
+            @Result(column = "fov_v_bottom", property = "sensor_fovVBottom", jdbcType = JdbcType.DECIMAL),
+            @Result(column = "sensor_near", property = "sensor_near", jdbcType = JdbcType.DECIMAL),
+            @Result(column = "sensor_far", property = "sensor_far", jdbcType = JdbcType.DECIMAL),
             @Result(column = "sensor_x", property = "sensor_x", jdbcType = JdbcType.DECIMAL),
             @Result(column = "sensor_y", property = "sensor_y", jdbcType = JdbcType.DECIMAL),
             @Result(column = "sensor_z", property = "sensor_z", jdbcType = JdbcType.DECIMAL),
             @Result(column = "sensor_h", property = "sensor_h", jdbcType = JdbcType.DECIMAL),
             @Result(column = "sensor_p", property = "sensor_p", jdbcType = JdbcType.DECIMAL),
             @Result(column = "sensor_r", property = "sensor_r", jdbcType = JdbcType.DECIMAL),
+            @Result(column = "target_filter", property = "sensor_filter", jdbcType = JdbcType.VARCHAR),
+            @Result(column = "range_display", property = "sensor_display", jdbcType = JdbcType.BOOLEAN),
+            @Result(column = "max_objects", property = "sensor_maxObjects", jdbcType = JdbcType.INTEGER),
             @Result(column = "sensor_port", property = "sensor_port", jdbcType = JdbcType.INTEGER),
     })
-    @Select("select mso.name,\n" +
-            "       mso.horizontal_field_angle_left,\n" +
-            "       mso.horizontal_field_angle_right,\n" +
-            "       mso.vertical_field_angle_top,\n" +
-            "       mso.vertical_field_angle_bottom,\n" +
-            "       mso.blind_zone_distance,\n" +
-            "       mso.detection_distance,\n" +
+    @Select("select mso.sensor_name,\n" +
+            "       mso.fov_h_left,\n" +
+            "       mso.fov_h_right,\n" +
+            "       mso.fov_v_top,\n" +
+            "       mso.fov_v_bottom,\n" +
+            "       mso.near_distance,\n" +
+            "       mso.far_distance,\n" +
+            "       mso.target_filter,\n" +
             "       mso.range_display,\n" +
             "       mso.max_objects,\n" +
-            "       mso.target_filter,\n" +
-            "       rvs.sensor_x,\n" +
-            "       rvs.sensor_y,\n" +
-            "       rvs.sensor_z,\n" +
-            "       rvs.sensor_h,\n" +
-            "       rvs.sensor_p,\n" +
-            "       rvs.sensor_r,\n" +
-            "       rvs.sensor_port\n" +
-            "from model_sensor_ogt mso left join relation_vehicle_sensor rvs on mso.id = rvs.sensor_id\n" +
-            "where mso.is_deleted = '0' and rvs.is_deleted = '0'\n" +
-            "   and rvs.vehicle_id = #{vehicleId}")
+            "       rcs.sensor_x,\n" +
+            "       rcs.sensor_y,\n" +
+            "       rcs.sensor_z,\n" +
+            "       rcs.sensor_h,\n" +
+            "       rcs.sensor_p,\n" +
+            "       rcs.sensor_r,\n" +
+            "       rcs.sensor_port\n" +
+            "from model_sensor_ogt mso left join relation_config_sensor rcs on mso.id = rcs.sensor_id\n" +
+            "where mso.is_deleted = '0' and rcs.is_deleted = '0'\n" +
+            "   and rcs.config_id = #{vehicleConfigId}")
     List<OgtPO> selectOgtByVehicleId(@Param("vehicleId") String vehicleId);
 }

+ 7 - 3
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/VehicleMapper.java

@@ -27,7 +27,7 @@ public interface VehicleMapper {
             @Result(column = "height_distance", property = "heightDistance", jdbcType = JdbcType.DECIMAL),
             @Result(column = "wheelbase", property = "wheelbase", jdbcType = JdbcType.DECIMAL),
     })
-    @Select("select model_label,\n" +
+    @Select("select vehicle_type + '_' + vehicle_model + '_' + vehicle_colour model_label,\n" +
             "       max_speed,\n" +
             "       engine_power,\n" +
             "       max_deceleration,\n" +
@@ -47,6 +47,10 @@ public interface VehicleMapper {
             "       wheelbase\n" +
             "from model_vehicle\n" +
             "where is_deleted = '0'\n" +
-            "   and id = #{vehicleId}")
-    VehiclePO selectByVehicleId(@Param("projectId") String projectId);
+            "  and id = (\n" +
+            "    select mc.vehicle_id\n" +
+            "    from model_config mc\n" +
+            "    where mcv.id = #{vehicleConfigId}\n" +
+            ")")
+    VehiclePO selectByVehicleConfigId(@Param("vehicleConfigId") String vehicleConfigId);
 }