donglang il y a 2 mois
Parent
commit
bf24d9a3b1

+ 2 - 4
iot-platform-manager/src/main/java/com/platform/api/manager/TransferVehicleManage.java

@@ -22,7 +22,6 @@ import org.springframework.context.ApplicationContextAware;
 import org.springframework.lang.Nullable;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -77,7 +76,7 @@ public class TransferVehicleManage implements ApplicationContextAware {
     /**
      * 插入车辆数据
      */
-    @Transactional(rollbackFor = Exception.class)
+//    @Transactional(rollbackFor = Exception.class)
     public void batchSaveVehicle(List<VehicleDataSaveRequest> vehicleDataList) {
         List<VehicleData> newVehicles = checkVehicle(vehicleDataList);
         // 批量保存到关系库
@@ -122,8 +121,7 @@ public class TransferVehicleManage implements ApplicationContextAware {
     public void scheduledBatchSave() {
         List<VehicleDataSaveRequest> remainingData = vehicleDataQueue.takeAll();
         if (!remainingData.isEmpty()) {
-            TransferVehicleManage proxy = applicationContext.getBean(TransferVehicleManage.class);
-            proxy.batchSaveVehicle(remainingData);
+            batchSaveVehicle(remainingData);
         }
     }
 

+ 11 - 10
iot-platform-manager/src/main/java/com/platform/api/request/VehicleDataSaveRequest.java

@@ -6,6 +6,7 @@ import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 
 /**
  * @Author: donglang
@@ -22,31 +23,31 @@ public class VehicleDataSaveRequest extends PageRequest {
     /**
      * 时间戳
      */
-//    @NotNull(message = "数据时间戳ts不能为空")
-    private LocalDateTime ts;
+    @NotNull(message = "数据时间戳ts不能为空")
+    private String ts = LocalDateTime.now().toString();
 
     /**
      * 经度
      */
-//    @NotBlank(message = "经度longitude不能为空")
+    @NotBlank(message = "经度longitude不能为空")
     private String longitude;
 
     /**
      * 纬度
      */
-//    @NotBlank(message = "纬度latitude不能为空")
+    @NotBlank(message = "纬度latitude不能为空")
     private String latitude;
 
     /**
      * 车速(km/h)
      */
-//    @NotNull
+    @NotNull
     private Float speed;
 
     /**
      * 行驶方向(角度)
      */
-    private Integer direction;
+    private Float direction;
 
     /**
      * 燃油液位(%)
@@ -56,7 +57,7 @@ public class VehicleDataSaveRequest extends PageRequest {
     /**
      * 里程数(km)
      */
-    private Double mileage;
+    private String mileage;
 
     /**
      * 发动机温度(℃)
@@ -71,19 +72,19 @@ public class VehicleDataSaveRequest extends PageRequest {
     /**
      * 车辆状态
      */
-//    @NotBlank
+
     private String status;
 
     /**
      * 运单号
      */
-//    @NotBlank
+
     private String wOrderNo;
 
     /**
      * 报警代码
      */
-    private Integer alarmCode;
+    private String alarmCode;
 
 
     /**

+ 0 - 2
iot-platform-manager/src/main/java/com/platform/mapper/TaosMapper.java

@@ -25,7 +25,6 @@ public interface TaosMapper {
      * 插入车辆数据超级表
      * @return 插入成功的行数
      */
-    @DS("td")
     int createVehicleDataTable();
 
     /**
@@ -34,7 +33,6 @@ public interface TaosMapper {
      * @param vehicleDataList 车辆数据实体
      * @return 插入成功的行数
      */
-    @DS("td")
     int batchInsertVehicleData(List<VehicleDataSaveRequest> vehicleDataList);
 
     /**

+ 0 - 1
iot-platform-manager/src/main/java/com/platform/service/impl/TaosServiceImpl.java

@@ -36,7 +36,6 @@ public class TaosServiceImpl implements TaosService {
     @Override
     public int batchInsertVehicleData(List<VehicleDataSaveRequest> vehicleDataList) {
          try {
-             //
              taosMapper.createVehicleDataTable();
              return taosMapper.batchInsertVehicleData(vehicleDataList);
          } catch (Exception e) {

+ 4 - 0
iot-platform-manager/src/main/resources/bootstrap.yml

@@ -18,5 +18,9 @@ spring:
         name: demo
         shared-configs:
           - dataId: common-iot.yaml
+            group: common-iot
+            refresh: true
+        extension-configs:
+          - dataId: iot-platform.yaml
             group: common-iot
             refresh: true

+ 26 - 26
iot-platform-manager/src/main/resources/mapper/TaosMapper.xml

@@ -5,21 +5,20 @@
 <mapper namespace="com.platform.mapper.TaosMapper">
 
 
-    <!-- 创建车辆数据子表-->
-    <!-- 创建超级表 -->
+    <!-- 创建车辆数超级表-->
     <update id="createVehicleDataTable">
-        CREATE STABLE IF NOT EXISTS vehicle_data (
-            ts TIMESTAMP,
-            longitude DOUBLE,
-            latitude DOUBLE,
+        CREATE  STABLE IF NOT EXISTS vehicle_data (
+            ts TIMESTAMP ,
+            longitude NCHAR(100) ,
+            latitude NCHAR(100) ,
             speed FLOAT,
-            direction TINYINT UNSIGNED,
+            direction FLOAT,
             fuel_level FLOAT,
-            mileage DOUBLE,
-            engine_temp SMALLINT,
+            mileage NCHAR(100),
+            engine_temp FLOAT,
             battery_voltage FLOAT,
-            status INT,
-            alarm_code INT,
+            status NCHAR(50),
+            alarm_code NCHAR(100) ,
             w_order_no NCHAR(50)
         ) TAGS (
             car_no NCHAR(20)
@@ -37,22 +36,23 @@
     <!-- 批量插入车辆数据时序数据库子表 -->
     <insert id="batchInsertVehicleData">
         INSERT INTO
-        <foreach collection="list" item="request" separator=";">
-            vehicle_data_${request.carNo}
+        <foreach collection="list" item="request" separator=",">
+            vehicle_data_${request.vehicleDataVO.carNo}
             USING vehicle_data
+            TAGS (#{request.vehicleDataVO.carNo})
             VALUES (
-            #{request.data.ts},
-            #{request.data.longitude},
-            #{request.data.latitude},
-            #{request.data.speed},
-            #{request.data.direction},
-            #{request.data.fuelLevel},
-            #{request.data.mileage},
-            #{request.data.engineTemp},
-            #{request.data.batteryVoltage},
-            #{request.data.status},
-            #{request.data.wOrderNo},
-            #{request.data.alarmCode}
+            #{request.ts},
+            #{request.longitude},
+            #{request.latitude},
+            #{request.speed},
+            #{request.direction},
+            #{request.fuelLevel},
+            #{request.mileage},
+            #{request.engineTemp},
+            #{request.batteryVoltage},
+            #{request.status},
+            #{request.wOrderNo},
+            #{request.alarmCode}
             )
         </foreach>
     </insert>
@@ -97,7 +97,7 @@
             status,
             alarm_code,
             w_order_no,
-            #{carNo} AS carNo
+            '${carNo}' AS carNo
         FROM  ${subTableName}
         WHERE 1=1
             <if test="startTime != null">

+ 2 - 2
pom.xml

@@ -91,8 +91,8 @@
         <!-- 动态数据源依赖 -->
         <dependency>
             <groupId>com.baomidou</groupId>
-            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
-            <version>3.5.2</version> <!-- 最新稳定版 -->
+            <artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
+            <version>4.2.0</version>
         </dependency>
 
         <!-- TDengine 官方 Java 驱动 -->