fastbee/sql/platform-integration.sql
2026-07-31 15:10:49 +08:00

610 lines
45 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 平台对接模块 DDL
-- 创建时间: 2026-05-30
-- ----------------------------
-- 0. 平台传感器类型字典
-- 页面从 platform_sensor_type 读取选项,新增类型只需维护字典。
-- ----------------------------
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('平台传感器类型', 'platform_sensor_type', '0', 'system', NOW(), '第三方平台对接使用的传感器类型');
DELETE FROM `sys_dict_data`
WHERE `dict_type` = 'platform_sensor_type'
AND `dict_value` IN ('inclino', 'deep_inclino', 'stress', 'hyeto', 'static_level');
INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES
(1, '倾角', 'inclino', 'platform_sensor_type', 'primary', 'N', '0', 'system', NOW(), 'DCP倾角'),
(2, '深部位移计', 'deep_inclino', 'platform_sensor_type', 'primary', 'N', '0', 'system', NOW(), 'DCP深部位移计'),
(3, '轴力计', 'stress', 'platform_sensor_type', 'primary', 'N', '0', 'system', NOW(), 'DCP轴力计'),
(4, '雨量计', 'hyeto', 'platform_sensor_type', 'primary', 'N', '0', 'system', NOW(), 'DCP雨量计'),
(5, '静力水准仪', 'static_level', 'platform_sensor_type', 'primary', 'N', '0', 'system', NOW(), 'DCP静力水准');
INSERT INTO `sys_dict_data_translate` (`id`,`zh_cn`, `en_us`)
VALUES (738,'倾角','inclino'),
(739,'深部位移','deepInclino'),
(740,'轴力','stress'),
(741,'雨量','hyeto'),
(742,'静力水准','staticLevel')
;
-- ----------------------------
-- 1. 平台实体
-- ----------------------------
CREATE TABLE IF NOT EXISTS `platform_instance` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(100) NOT NULL COMMENT '平台名称,如 DCP结构监测',
`code` varchar(50) NOT NULL COMMENT '平台唯一标识,如 dcp',
`base_url` varchar(255) NOT NULL COMMENT '基础URL',
`auth_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '认证类型(1=密码Token,2=ApiKey,3=OAuth2)',
`auth_config` json DEFAULT NULL COMMENT '认证凭证JSON {userName,password,clientId,scope}',
`extra_config` json DEFAULT NULL COMMENT '初始化后保存的平台数据 {userId,projectId,...}',
`access_token` varchar(2000) DEFAULT NULL COMMENT '当前有效Token',
`token_expires_at` datetime DEFAULT NULL COMMENT 'Token过期时间',
`init_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '初始化状态(0=未初始化,1=已初始化)',
`enable` char(1) NOT NULL DEFAULT '1' COMMENT '是否启用(0=禁用,1=启用)',
`tenant_id` bigint(20) DEFAULT NULL COMMENT '租户ID',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='第三方平台实体';
-- ----------------------------
-- 2. 接口定义
-- ----------------------------
CREATE TABLE IF NOT EXISTS `platform_interface` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`platform_id` bigint(20) NOT NULL COMMENT '所属平台ID',
`name` varchar(100) NOT NULL COMMENT '接口名称',
`code` varchar(100) NOT NULL COMMENT '接口标识',
`method` varchar(10) NOT NULL COMMENT 'HTTP方法: GET/POST/PUT/DELETE',
`is_batch_push` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否批量推送(0=否,1=是),用于深部位移等整孔数据推送',
`path` varchar(255) NOT NULL COMMENT '接口路径,支持路径变量 {userId}',
`content_type` varchar(100) DEFAULT 'application/json' COMMENT 'Content-Type',
`request_schema` json DEFAULT NULL COMMENT '入参字段定义 [{name,type,source,value,field,contextKey,required,desc}]',
`response_schema` json DEFAULT NULL COMMENT '出参字段定义 [{name,type,path,desc}]',
`sort_order` int(11) DEFAULT 0 COMMENT '排序',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_platform_id` (`platform_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台接口定义';
ALTER TABLE `platform_interface` ADD COLUMN `is_batch_push` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否批量推送(0=否,1=是),用于深部位移等整孔数据推送' AFTER `method`
-- ----------------------------
-- 3. 流程定义
-- ----------------------------
CREATE TABLE IF NOT EXISTS `platform_flow` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`platform_id` bigint(20) NOT NULL COMMENT '所属平台ID',
`name` varchar(100) NOT NULL COMMENT '流程名称',
`code` varchar(100) NOT NULL COMMENT '流程标识',
`flow_type` tinyint(1) NOT NULL COMMENT '流程类型(1=平台初始化,2=设备入网,3=Token刷新)',
`sensor_type` varchar(50) DEFAULT NULL COMMENT '传感器类型,flow_type=2时有效,来自字典 platform_sensor_type',
`enable` char(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_platform_type` (`platform_id`, `flow_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台对接流程';
-- ----------------------------
-- 4. 流程步骤
-- ----------------------------
CREATE TABLE IF NOT EXISTS `platform_flow_step` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`flow_id` bigint(20) NOT NULL COMMENT '所属流程ID',
`step_order` int(11) NOT NULL DEFAULT 1 COMMENT '执行顺序,从1开始',
`interface_id` bigint(20) NOT NULL COMMENT '关联接口ID',
`param_mapping` json DEFAULT NULL COMMENT '入参来源覆盖配置,覆盖接口默认schema',
`result_key` varchar(100) DEFAULT NULL COMMENT '出参写入上下文的key,如 step1',
`result_save` json DEFAULT NULL COMMENT '需持久化的出参字段 [{field,saveTo}]',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `idx_flow_id` (`flow_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程步骤';
-- ----------------------------
-- 5. 设备绑定关系
-- ----------------------------
CREATE TABLE IF NOT EXISTS `platform_device_mapping` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`platform_id` bigint(20) NOT NULL COMMENT '所属平台ID',
`platform_user_auth_id` bigint(20) DEFAULT NULL COMMENT '关联用户认证ID',
`platform_project_id` varchar(100) NOT NULL COMMENT 'DCP项目ID',
`platform_project_name` varchar(255) DEFAULT NULL COMMENT 'DCP项目名称',
`device_id` bigint(20) NOT NULL COMMENT 'FastBee设备ID',
`serial_number` varchar(64) NOT NULL COMMENT 'FastBee设备序列号',
`device_name` varchar(64) DEFAULT NULL COMMENT '默认为本平台设备名称,可以修改为对方平台需要的名称',
`platform_device_id` varchar(100) DEFAULT NULL COMMENT 'DCP侧deviceId,入网后自动回填',
`platform_point_id` varchar(100) DEFAULT NULL COMMENT 'DCP侧pointId,入网后自动回填',
`sensor_type` varchar(50) NOT NULL COMMENT '传感器类型,来自字典 platform_sensor_type',
`device_type` tinyint(1) NOT NULL DEFAULT 0 COMMENT '设备类型: 0=直连设备 1=网关设备(多子设备)',
`push_interface_id` bigint(20) DEFAULT NULL COMMENT '推送接口ID,用于字段映射参照',
`field_mapping` json DEFAULT NULL COMMENT '字段映射 [{identifier,platformField,transform}]',
`extra_mapping` json DEFAULT NULL COMMENT '扩展映射配置,如静力水准子设备编号与DCP sensorId映射',
`net_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '入网状态(0=未入网,1=已入网)',
`push_mode` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '推送模式:1=实时 2=定时(默认1)',
`push_interval` INT DEFAULT 0 COMMENT '定时推送间隔(分钟),0=不自动推送',
`last_push_time` DATETIME DEFAULT NULL COMMENT '最近推送时间',
`enable` char(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_serial` (`serial_number`),
KEY `idx_platform_device` (`platform_id`, `device_id`),
KEY `idx_user_auth` (`platform_user_auth_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台设备绑定关系';
-- ----------------------------
-- 5.1 设备绑定关系 - 补充绑定项目和设备类型字段
-- ----------------------------
ALTER TABLE `platform_device_mapping`
ADD COLUMN IF NOT EXISTS `platform_project_id` varchar(100) DEFAULT NULL COMMENT 'DCP项目ID' AFTER `platform_id`,
ADD COLUMN IF NOT EXISTS `platform_project_name` varchar(255) DEFAULT NULL COMMENT 'DCP项目名称' AFTER `platform_project_id`;
ALTER TABLE `platform_device_mapping`
ADD COLUMN IF NOT EXISTS `device_type` tinyint(1) NOT NULL DEFAULT 0
COMMENT '设备类型: 0=直连设备 1=网关设备(多子设备)' AFTER `sensor_type`;
ALTER TABLE `platform_device_mapping`
ADD COLUMN `device_name` varchar(64) DEFAULT NULL COMMENT '默认为本平台设备名称,可以修改为对方平台需要的名称' AFTER `serial_number`;
-- 添加推送模式字段
ALTER TABLE platform_device_mapping
ADD COLUMN `push_mode` TINYINT DEFAULT 1 COMMENT '推送模式:1=实时 2=定时(默认1)' AFTER `net_status`;
-- 添加定时推送间隔字段
ALTER TABLE platform_device_mapping
ADD COLUMN `push_interval` INT DEFAULT 0 COMMENT '定时推送间隔(分钟),0=不自动推送' after `push_mode`;
-- 添加最近推送时间字段
ALTER TABLE platform_device_mapping
ADD COLUMN `last_push_time` DATETIME DEFAULT NULL COMMENT '最近推送时间' after `push_interval`;
-- 添加索引优化查询性能
CREATE INDEX idx_push_mode ON platform_device_mapping(push_mode);
CREATE INDEX idx_last_push_time ON platform_device_mapping(last_push_time);
-- ----------------------------
-- 5.2 子设备映射(网关多子设备通用)
-- ----------------------------
CREATE TABLE IF NOT EXISTS `platform_device_sub_mapping` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`parent_mapping_id` bigint(20) NOT NULL COMMENT '父映射ID (platform_device_mapping.id)',
`sub_serial_number` varchar(64) NOT NULL COMMENT '子设备序列号',
`sub_device_name` varchar(64) DEFAULT NULL COMMENT '子设备名称',
`device_role` varchar(20) NOT NULL DEFAULT 'monitor' COMMENT '角色: reference=基准 monitor=监测',
`platform_device_id` varchar(100) DEFAULT NULL COMMENT '平台分配的设备ID (入网后回填)',
`platform_point_id` varchar(100) DEFAULT NULL COMMENT '平台分配的测点/辅助ID (入网后回填)',
`onboard_config` json DEFAULT NULL COMMENT '入网时传给平台的标识参数(平台相关)',
`net_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0=未入网 1=已入网',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_parent` (`parent_mapping_id`),
KEY `idx_sub_serial` (`sub_serial_number`),
UNIQUE KEY `uk_parent_sub` (`parent_mapping_id`, `sub_serial_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台设备子映射(网关多子设备通用)';
ALTER TABLE `platform_device_sub_mapping`
ADD COLUMN IF NOT EXISTS `sub_device_name` varchar(64) DEFAULT NULL
COMMENT '子设备名称' AFTER `sub_serial_number`;
-- ----------------------------
-- 6. 推送日志
-- ----------------------------
CREATE TABLE IF NOT EXISTS `platform_push_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`platform_id` bigint(20) NOT NULL COMMENT '平台ID',
`flow_id` bigint(20) DEFAULT NULL COMMENT '流程ID',
`step_order` int(11) DEFAULT NULL COMMENT '步骤序号',
`device_id` bigint(20) DEFAULT NULL COMMENT '设备ID',
`serial_number` varchar(64) DEFAULT NULL COMMENT '设备序列号',
`interface_code` varchar(100) DEFAULT NULL COMMENT '接口标识',
`request_url` varchar(500) DEFAULT NULL COMMENT '请求URL',
`request_body` mediumtext DEFAULT NULL COMMENT '请求体',
`response_code` int(11) DEFAULT NULL COMMENT 'HTTP响应码',
`response_body` mediumtext DEFAULT NULL COMMENT '响应体',
`status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '状态(0=进行中,1=成功,2=失败)',
`error_msg` varchar(1000) DEFAULT NULL COMMENT '错误信息',
`idempotency_key` varchar(100) DEFAULT NULL COMMENT '幂等键,防重复推送',
`log_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '日志类型(1=数据推送,2=操作日志)',
`retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '重试次数',
`cost_ms` int(11) DEFAULT NULL COMMENT '耗时毫秒',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_platform_status` (`platform_id`, `status`),
KEY `idx_device_time` (`device_id`, `create_time`),
KEY `idx_idempotency` (`idempotency_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台推送日志';
-- ----------------------------
-- DCP 内置数据初始化
-- ----------------------------
-- DCP 平台接口定义(内置,用户无需手动配置)
-- 注意:platform_id 需在创建 DCP 平台实例后更新,此处用占位符 0
-- 实际由 DcpPlatformAdapter 在初始化时写入
-- ----------------------------
-- 7. 创建平台用户认证表
-- ----------------------------
CREATE TABLE `platform_user_auth` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`platform_id` bigint(20) NOT NULL COMMENT '平台实例ID',
`platform_user_id` varchar(100) DEFAULT NULL COMMENT '平台侧用户ID(如DCP的userId)',
`platform_user_name` varchar(100) DEFAULT NULL COMMENT '平台侧用户名',
`auth_config` json DEFAULT NULL COMMENT '用户认证凭证JSON {userName,password,clientId,scope}',
`access_token` varchar(2000) DEFAULT NULL COMMENT '该用户的Token',
`token_expires_at` datetime DEFAULT NULL COMMENT 'Token过期时间',
`init_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '初始化状态(0=未初始化,1=已初始化)',
`extra_config` json DEFAULT NULL COMMENT '用户级配置 {projectId,projectName,...}',
`enable` char(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_platform_user` (`platform_id`, `platform_user_id`),
KEY `idx_token_expire` (`token_expires_at`),
KEY `idx_init_status` (`init_status`),
KEY `idx_platform_id` (`platform_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台用户认证';
-- ----------------------------
-- 2. 修改 platform_device_mapping 表
-- ----------------------------
-- 增加用户认证关联字段
ALTER TABLE `platform_device_mapping`
ADD COLUMN `platform_user_auth_id` bigint(20) DEFAULT NULL COMMENT '关联用户认证ID' AFTER `platform_id`;
-- 增加索引
CREATE INDEX `idx_user_auth` ON `platform_device_mapping`(`platform_user_auth_id`);
-- 平台对接另外一套方案
-- fastbee.iot_platform_api definition
CREATE TABLE `iot_platform_api` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`template_id` bigint NOT NULL COMMENT '平台模板ID',
`api_code` varchar(64) NOT NULL COMMENT '接口编码',
`api_name` varchar(128) NOT NULL COMMENT '接口名称',
`api_type` varchar(32) NOT NULL COMMENT '接口类型',
`method` varchar(16) DEFAULT NULL COMMENT '请求方法',
`path_template` varchar(512) DEFAULT NULL COMMENT '路径模板',
`content_type` varchar(64) DEFAULT NULL COMMENT '内容类型',
`header_template` json DEFAULT NULL COMMENT 'Header模板',
`query_template` json DEFAULT NULL COMMENT 'Query模板',
`body_template` json DEFAULT NULL COMMENT 'Body模板',
`auth_config` json DEFAULT NULL COMMENT '接口认证配置',
`idempotency_config` json DEFAULT NULL COMMENT '幂等配置',
`success_condition` json DEFAULT NULL COMMENT '成功条件',
`response_mapping` json DEFAULT NULL COMMENT '响应映射',
`retry_policy` json DEFAULT NULL COMMENT '重试策略',
`timeout_ms` int DEFAULT NULL COMMENT '超时时间毫秒',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0停用 1启用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_template_api_code` (`template_id`,`api_code`),
KEY `idx_template_api_type` (`template_id`,`api_type`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-接口定义';
-- fastbee.iot_platform_api_field definition
CREATE TABLE `iot_platform_api_field` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`api_id` bigint NOT NULL COMMENT '接口ID',
`direction` varchar(16) NOT NULL COMMENT '方向(REQUEST RESPONSE)',
`field_path` varchar(256) NOT NULL COMMENT '字段路径',
`field_name` varchar(128) DEFAULT NULL COMMENT '字段名称',
`data_type` varchar(32) DEFAULT NULL COMMENT '数据类型',
`required` tinyint(1) DEFAULT '0' COMMENT '是否必填',
`default_value` varchar(512) DEFAULT NULL COMMENT '默认值',
`example_value` varchar(512) DEFAULT NULL COMMENT '示例值',
`description` varchar(500) DEFAULT NULL COMMENT '说明',
`sort_order` int DEFAULT '0' COMMENT '排序',
PRIMARY KEY (`id`),
KEY `idx_api_direction` (`api_id`,`direction`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-接口字段';
-- fastbee.iot_platform_binding definition
CREATE TABLE `iot_platform_binding` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
`tenant_channel_id` bigint NOT NULL COMMENT '租户平台实例ID',
`flow_id` bigint NOT NULL COMMENT '平台流程ID',
`product_id` bigint DEFAULT NULL COMMENT '产品ID',
`product_name` varchar(128) DEFAULT NULL COMMENT '产品名称',
`device_id` bigint DEFAULT NULL COMMENT 'FastBee设备ID',
`device_name` varchar(128) DEFAULT NULL COMMENT 'FastBee设备名称',
`serial_number` varchar(64) NOT NULL COMMENT 'FastBee设备编号',
`external_user_id` varchar(128) DEFAULT NULL COMMENT '绑定级第三方用户ID',
`external_project_id` varchar(128) DEFAULT NULL COMMENT '绑定级第三方项目ID',
`external_device_type` varchar(32) DEFAULT NULL COMMENT '第三方设备类型',
`binding_name` varchar(128) DEFAULT NULL COMMENT '绑定名称',
`exchange_mode` varchar(32) NOT NULL COMMENT '交换模式',
`config_json` json DEFAULT NULL COMMENT '绑定配置',
`last_success_time` datetime DEFAULT NULL COMMENT '最近成功时间',
`last_success_value` varchar(128) DEFAULT NULL COMMENT '最近成功值',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0停用 1启用)',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_binding` (`tenant_channel_id`,`flow_id`,`serial_number`,`del_flag`),
KEY `idx_binding_device` (`tenant_id`,`product_id`,`serial_number`),
KEY `idx_binding_channel_flow` (`tenant_channel_id`,`flow_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-设备绑定';
-- fastbee.iot_platform_exchange_attempt definition
CREATE TABLE `iot_platform_exchange_attempt` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
`record_id` bigint NOT NULL COMMENT '交换记录ID',
`attempt_no` int NOT NULL COMMENT '尝试次数',
`direction` varchar(32) NOT NULL COMMENT '方向',
`request_url` varchar(1024) DEFAULT NULL COMMENT '请求地址或接收入口',
`request_headers` json DEFAULT NULL COMMENT '请求头',
`request_payload` json DEFAULT NULL COMMENT '请求体',
`response_status` int DEFAULT NULL COMMENT '响应状态码',
`response_body` mediumtext COMMENT '响应内容',
`success` tinyint(1) DEFAULT '0' COMMENT '是否成功',
`error_msg` varchar(1000) DEFAULT NULL COMMENT '错误信息',
`duration_ms` int DEFAULT NULL COMMENT '耗时毫秒',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_attempt_record` (`record_id`,`attempt_no`),
KEY `idx_attempt_tenant` (`tenant_id`,`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-数据交换尝试日志';
-- fastbee.iot_platform_exchange_record definition
CREATE TABLE `iot_platform_exchange_record` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
`tenant_channel_id` bigint NOT NULL COMMENT '租户平台实例ID',
`flow_id` bigint NOT NULL COMMENT '流程ID',
`binding_id` bigint DEFAULT NULL COMMENT '绑定ID',
`task_id` bigint DEFAULT NULL COMMENT '任务ID',
`direction` varchar(32) NOT NULL COMMENT '方向',
`source_type` varchar(32) DEFAULT NULL COMMENT '来源类型',
`sink_type` varchar(32) DEFAULT NULL COMMENT '落点类型',
`source_device_id` bigint DEFAULT NULL COMMENT 'FastBee设备ID',
`serial_number` varchar(64) DEFAULT NULL COMMENT '设备编号',
`external_message_id` varchar(128) DEFAULT NULL COMMENT '第三方消息ID',
`source_ref_id` varchar(128) DEFAULT NULL COMMENT '来源ID',
`source_time` datetime DEFAULT NULL COMMENT '数据时间',
`time_window_start` datetime DEFAULT NULL COMMENT '窗口开始',
`time_window_end` datetime DEFAULT NULL COMMENT '窗口结束',
`raw_payload` json DEFAULT NULL COMMENT '原始输入',
`standard_payload` json DEFAULT NULL COMMENT '标准消息',
`request_payload` json DEFAULT NULL COMMENT '请求载荷',
`response_payload` json DEFAULT NULL COMMENT '响应载荷',
`payload_hash` varchar(64) DEFAULT NULL COMMENT 'payload哈希',
`idempotency_key` varchar(128) NOT NULL COMMENT '幂等键',
`status` varchar(32) NOT NULL DEFAULT 'PENDING' COMMENT '状态',
`retry_count` int DEFAULT '0' COMMENT '重试次数',
`max_retry` int DEFAULT '3' COMMENT '最大重试次数',
`next_retry_time` datetime DEFAULT NULL COMMENT '下次重试时间',
`last_error` varchar(1000) DEFAULT NULL COMMENT '最近错误',
`locked_by` varchar(64) DEFAULT NULL COMMENT 'worker锁',
`locked_time` datetime DEFAULT NULL COMMENT '锁定时间',
`success_time` datetime DEFAULT NULL COMMENT '成功时间',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_idempotency` (`idempotency_key`),
KEY `idx_record_poll` (`status`,`next_retry_time`),
KEY `idx_record_direction` (`tenant_channel_id`,`direction`,`source_time`),
KEY `idx_record_device` (`tenant_channel_id`,`serial_number`,`source_time`),
KEY `idx_record_binding` (`binding_id`,`source_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-数据交换记录';
-- fastbee.iot_platform_exchange_task definition
CREATE TABLE `iot_platform_exchange_task` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
`tenant_channel_id` bigint NOT NULL COMMENT '租户平台实例ID',
`flow_id` bigint NOT NULL COMMENT '流程ID',
`task_name` varchar(128) NOT NULL COMMENT '任务名称',
`task_type` varchar(32) NOT NULL COMMENT '任务类型',
`cron_expression` varchar(128) DEFAULT NULL COMMENT 'Cron表达式',
`window_type` varchar(32) DEFAULT NULL COMMENT '窗口类型',
`window_config` json DEFAULT NULL COMMENT '窗口配置',
`cursor_json` json DEFAULT NULL COMMENT '拉取游标',
`sink_type` varchar(32) DEFAULT NULL COMMENT '入站数据落点',
`batch_size` int DEFAULT '100' COMMENT '批次大小',
`max_retry` int DEFAULT '3' COMMENT '最大重试次数',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0停用 1启用)',
`last_run_time` datetime DEFAULT NULL COMMENT '最近执行时间',
`next_run_time` datetime DEFAULT NULL COMMENT '下次执行时间',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_task_channel_type` (`tenant_channel_id`,`task_type`),
KEY `idx_task_next_run` (`status`,`next_run_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-数据交换任务';
-- fastbee.iot_platform_field_mapping definition
CREATE TABLE `iot_platform_field_mapping` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
`binding_id` bigint NOT NULL COMMENT '绑定ID',
`direction` varchar(32) NOT NULL COMMENT '方向',
`target_path` varchar(256) NOT NULL COMMENT '目标字段路径',
`target_name` varchar(128) DEFAULT NULL COMMENT '目标字段名称',
`source_type` varchar(32) NOT NULL COMMENT '来源类型',
`source_key` varchar(256) DEFAULT NULL COMMENT '来源键',
`source_name` varchar(128) DEFAULT NULL COMMENT '来源字段名称',
`transform_type` varchar(32) DEFAULT 'DIRECT' COMMENT '转换类型',
`transform_config` json DEFAULT NULL COMMENT '转换配置',
`default_value` varchar(512) DEFAULT NULL COMMENT '默认值',
`required` tinyint(1) DEFAULT '0' COMMENT '是否必填',
`sort_order` int DEFAULT '0' COMMENT '排序',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0停用 1启用)',
PRIMARY KEY (`id`),
KEY `idx_mapping_binding` (`binding_id`,`direction`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-字段映射';
-- fastbee.iot_platform_flow definition
CREATE TABLE `iot_platform_flow` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`template_id` bigint NOT NULL COMMENT '平台模板ID',
`flow_code` varchar(64) NOT NULL COMMENT '流程编码',
`flow_name` varchar(128) NOT NULL COMMENT '流程名称',
`flow_type` varchar(32) NOT NULL COMMENT '流程类型',
`adapter_code` varchar(64) DEFAULT NULL COMMENT '适配器编码',
`sink_type` varchar(32) DEFAULT NULL COMMENT '入站数据落点',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0停用 1启用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_template_flow_code` (`template_id`,`flow_code`),
KEY `idx_template_flow_type` (`template_id`,`flow_type`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-流程模板';
-- fastbee.iot_platform_flow_step definition
CREATE TABLE `iot_platform_flow_step` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`flow_id` bigint NOT NULL COMMENT '流程ID',
`step_code` varchar(64) NOT NULL COMMENT '步骤编码',
`step_name` varchar(128) NOT NULL COMMENT '步骤名称',
`step_type` varchar(32) NOT NULL COMMENT '步骤类型',
`api_id` bigint DEFAULT NULL COMMENT '接口ID',
`adapter_method` varchar(128) DEFAULT NULL COMMENT '适配器方法',
`input_mapping` json DEFAULT NULL COMMENT '入参映射',
`output_mapping` json DEFAULT NULL COMMENT '输出映射',
`condition_expr` varchar(512) DEFAULT NULL COMMENT '执行条件',
`on_fail` varchar(32) DEFAULT 'STOP' COMMENT '失败策略',
`sort_order` int DEFAULT '0' COMMENT '排序',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0停用 1启用)',
PRIMARY KEY (`id`),
KEY `idx_flow_sort` (`flow_id`,`sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-流程步骤';
-- fastbee.iot_platform_resource_mapping definition
CREATE TABLE `iot_platform_resource_mapping` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
`tenant_channel_id` bigint NOT NULL COMMENT '租户平台实例ID',
`binding_id` bigint DEFAULT NULL COMMENT '绑定ID',
`resource_scope` varchar(32) NOT NULL COMMENT '资源范围',
`resource_type` varchar(64) NOT NULL COMMENT '资源类型',
`local_key` varchar(128) NOT NULL COMMENT '本地唯一键',
`external_id` varchar(128) DEFAULT NULL COMMENT '外部资源ID',
`external_code` varchar(128) DEFAULT NULL COMMENT '外部资源编码',
`external_name` varchar(128) DEFAULT NULL COMMENT '外部资源名称',
`resource_payload` json DEFAULT NULL COMMENT '外部资源详情',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0失效 1有效)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_resource` (`tenant_channel_id`,`binding_id`,`resource_type`,`local_key`),
KEY `idx_resource_tenant_type` (`tenant_id`,`tenant_channel_id`,`resource_type`),
KEY `idx_external_id` (`tenant_channel_id`,`resource_type`,`external_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-资源映射';
-- fastbee.iot_platform_task_binding definition
CREATE TABLE `iot_platform_task_binding` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`task_id` bigint NOT NULL COMMENT '任务ID',
`binding_id` bigint NOT NULL COMMENT '绑定ID',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0停用 1启用)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_binding` (`task_id`,`binding_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-任务绑定';
-- fastbee.iot_platform_template definition
CREATE TABLE `iot_platform_template` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`platform_code` varchar(64) NOT NULL COMMENT '平台编码',
`platform_name` varchar(128) NOT NULL COMMENT '平台名称',
`platform_type` varchar(32) NOT NULL COMMENT '平台类型',
`adapter_code` varchar(64) DEFAULT NULL COMMENT '适配器编码',
`base_url_template` varchar(512) DEFAULT NULL COMMENT '默认基础地址模板',
`auth_type` varchar(32) DEFAULT NULL COMMENT '认证类型',
`auth_schema` json DEFAULT NULL COMMENT '授权配置字段定义',
`request_config` json DEFAULT NULL COMMENT '默认请求配置',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0停用 1启用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_platform_code` (`platform_code`),
KEY `idx_platform_type` (`platform_type`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-平台模板';
-- fastbee.iot_platform_tenant_channel definition
CREATE TABLE `iot_platform_tenant_channel` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint NOT NULL COMMENT '租户ID',
`tenant_name` varchar(64) DEFAULT '' COMMENT '租户名称',
`template_id` bigint NOT NULL COMMENT '平台模板ID',
`channel_code` varchar(64) NOT NULL COMMENT '租户平台实例编码',
`channel_name` varchar(128) NOT NULL COMMENT '租户平台实例名称',
`base_url` varchar(512) DEFAULT NULL COMMENT '实际基础地址',
`auth_config` json DEFAULT NULL COMMENT '租户授权配置',
`receive_config` json DEFAULT NULL COMMENT '接收安全配置',
`default_user_id` varchar(128) DEFAULT NULL COMMENT '默认第三方用户ID',
`default_project_id` varchar(128) DEFAULT NULL COMMENT '默认第三方项目ID',
`config_json` json DEFAULT NULL COMMENT '扩展配置',
`status` tinyint(1) DEFAULT '1' COMMENT '状态(0停用 1启用)',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tenant_channel_code` (`tenant_id`,`channel_code`,`del_flag`),
KEY `idx_tenant_template` (`tenant_id`,`template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台对接-租户平台实例';