martin 3 anni fa
parent
commit
22742c4d1b

+ 7 - 4
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ProjectConsumer.java

@@ -5,7 +5,8 @@ import api.common.pojo.constants.DictConstants;
 import api.common.pojo.dto.ProjectMessageDTO;
 import api.common.util.JsonUtil;
 import com.css.simulation.resource.scheduler.mapper.ProjectMapper;
-import com.css.simulation.resource.scheduler.mapper.SensorMapper;
+import com.css.simulation.resource.scheduler.mapper.SensorCameraMapper;
+import com.css.simulation.resource.scheduler.mapper.SensorOgtMapper;
 import com.css.simulation.resource.scheduler.mapper.TaskMapper;
 import com.css.simulation.resource.scheduler.pojo.dto.task.*;
 import com.css.simulation.resource.scheduler.pojo.po.TaskPO;
@@ -28,7 +29,9 @@ public class ProjectConsumer {
     @Autowired
     TaskMapper taskMapper;
     @Autowired
-    SensorMapper sensorMapper;
+    SensorCameraMapper sensorCameraMapper;
+    @Autowired
+    SensorOgtMapper sensorOgtMapper;
     @Autowired
     private KafkaTemplate<String, String> kafkaTemplate;
 
@@ -110,8 +113,8 @@ public class ProjectConsumer {
                                     .dynamics_wheelbase(taskPO.getWheelbase())
                                     .build())
                             .sensors(SensorsDTO.builder()   // 根据 vehicleId 查询绑定的传感器列表
-                                    .camera(sensorMapper.selectCameraByVehicleId(taskPO.getVehicleId()))
-                                    .OGT(sensorMapper.selectOgtByVehicleId(taskPO.getVehicleId()))
+                                    .camera(sensorCameraMapper.selectCameraByVehicleId(taskPO.getVehicleId()))
+                                    .OGT(sensorOgtMapper.selectOgtByVehicleId(taskPO.getVehicleId()))
                                     .build())
                             .build())
                     .build();

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

@@ -0,0 +1,43 @@
+package com.css.simulation.resource.scheduler.mapper;
+
+import com.css.simulation.resource.scheduler.pojo.po.CameraPO;
+import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.type.JdbcType;
+
+import java.util.List;
+
+@Mapper
+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 = "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),
+            @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),
+    })
+    @Select("select msc.name,\n" +
+            "       msc.horizontal_field_angle,\n" +
+            "       msc.vertical_field_angle,\n" +
+            "       msc.blind_zone_distance,\n" +
+            "       msc.detection_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 rvs.vehicle_id = #{vehicleId}")
+    List<CameraPO> selectCameraByVehicleId(@Param("vehicleId") String vehicleId);
+}

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

@@ -1,19 +0,0 @@
-package com.css.simulation.resource.scheduler.mapper;
-
-import com.css.simulation.resource.scheduler.pojo.po.CameraPO;
-import com.css.simulation.resource.scheduler.pojo.po.OgtPO;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface SensorMapper {
-
-
-
-
-    List<CameraPO> selectCameraByVehicleId(@Param("vehicleId") String vehicleId);
-
-    List<OgtPO> selectOgtByVehicleId(@Param("vehicleId") String vehicleId);
-}

+ 49 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorOgtMapper.java

@@ -0,0 +1,49 @@
+package com.css.simulation.resource.scheduler.mapper;
+
+import com.css.simulation.resource.scheduler.pojo.po.OgtPO;
+import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.type.JdbcType;
+
+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),
+            @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 = "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" +
+            "       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 rvs.vehicle_id = #{vehicleId}")
+    List<OgtPO> selectOgtByVehicleId(@Param("vehicleId") String vehicleId);
+}

+ 47 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/pojo/po/OgtPO.java

@@ -1,4 +1,51 @@
 package com.css.simulation.resource.scheduler.pojo.po;
 
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * 					"sensor_name": "120_perfect_sensor",
+ * 					"sensor_fovHLeft":   60,
+ * 					"sensor_fovHRight":  60,
+ * 					"sensor_fovVTop":    10,
+ * 					"sensor_fovVBottom": 10,
+ * 					"sensor_near": 0,
+ * 					"sensor_far": 100,
+ * 					"sensor_x": 0,
+ * 					"sensor_y": 0,
+ * 					"sensor_z": 1.7,
+ * 					"sensor_h": 0,
+ * 					"sensor_p": 0,
+ * 					"sensor_r": 0,
+ * 					"sensor_filter": [0,1,5],
+ * 					"sensor_display": true,
+ * 					"sensor_maxObjects": 10,
+ * 					"sensor_port": 62002
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class OgtPO {
+    private String sensor_name;
+    private BigDecimal sensor_fovHLeft;
+    private BigDecimal sensor_fovHRight;
+    private BigDecimal sensor_fovVTop;
+    private BigDecimal sensor_fovVBottom;
+    private BigDecimal sensor_near;
+    private BigDecimal sensor_far;
+    private BigDecimal sensor_x;
+    private BigDecimal sensor_y;
+    private BigDecimal sensor_z;
+    private BigDecimal sensor_h;
+    private BigDecimal sensor_p;
+    private BigDecimal sensor_r;
+    private String sensor_filter;
+    private Boolean sensor_display;
+    private Integer sensor_maxObjects;
+    private Integer sensor_port;
 }