diff --git a/src/api/iot/rule/data/sink/index.ts b/src/api/iot/rule/data/sink/index.ts index 31a2659a7..9bc356bc7 100644 --- a/src/api/iot/rule/data/sink/index.ts +++ b/src/api/iot/rule/data/sink/index.ts @@ -13,6 +13,7 @@ export interface DataSinkVO { | TcpConfig | WebSocketConfig | MqttConfig + | DatabaseConfig | RocketMQConfig | KafkaMQConfig | RabbitMQConfig @@ -73,6 +74,14 @@ export interface MqttConfig extends Config { topic: string } +/** Database 配置 */ +export interface DatabaseConfig extends Config { + jdbcUrl: string + username: string + password: string + tableName: string +} + /** RocketMQ 配置 */ export interface RocketMQConfig extends Config { nameServer: string diff --git a/src/views/iot/rule/data/sink/DataSinkForm.vue b/src/views/iot/rule/data/sink/DataSinkForm.vue index 2aca73f9d..5165bea3e 100644 --- a/src/views/iot/rule/data/sink/DataSinkForm.vue +++ b/src/views/iot/rule/data/sink/DataSinkForm.vue @@ -30,6 +30,10 @@ v-model="formData.config" /> + + + + + + + + + + + +
+ + + + {{ showSqlTip ? '收起表结构提示' : '查看表结构提示' }} + +
+
+ + + +
+
+
+
+
+
+
+
Initialization Required
+ +
+
+
+ ✨ 目标数据库必须包含以下结构的表,才能正常接收数据流转的消息: +
+
+
CREATE TABLE iot_device_message_sink (
+    id VARCHAR(64) NOT NULL COMMENT '消息ID',
+    device_id BIGINT NOT NULL COMMENT '设备编号',
+    tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT '租户编号',
+    method VARCHAR(128) COMMENT '请求方法',
+    report_time DATETIME COMMENT '上报时间',
+    data TEXT COMMENT '完整消息JSON',
+    create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    PRIMARY KEY (id) USING BTREE,
+    INDEX idx_create_time (create_time ASC) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'IoT 设备消息流转目标表';
+
+
+
+
+ + + + + diff --git a/src/views/iot/rule/data/sink/config/index.ts b/src/views/iot/rule/data/sink/config/index.ts index f04808f58..67b0d2fa6 100644 --- a/src/views/iot/rule/data/sink/config/index.ts +++ b/src/views/iot/rule/data/sink/config/index.ts @@ -2,6 +2,7 @@ import HttpConfigForm from './HttpConfigForm.vue' import TcpConfigForm from './TcpConfigForm.vue' import WebSocketConfigForm from './WebSocketConfigForm.vue' import MqttConfigForm from './MqttConfigForm.vue' +import DatabaseConfigForm from './DatabaseConfigForm.vue' import RocketMQConfigForm from './RocketMQConfigForm.vue' import KafkaMQConfigForm from './KafkaMQConfigForm.vue' import RabbitMQConfigForm from './RabbitMQConfigForm.vue' @@ -12,6 +13,7 @@ export { TcpConfigForm, WebSocketConfigForm, MqttConfigForm, + DatabaseConfigForm, RocketMQConfigForm, KafkaMQConfigForm, RabbitMQConfigForm,