569 lines
43 KiB
SQL
569 lines
43 KiB
SQL
-- 平台对接模块 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_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`)
|
||
) 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 在初始化时写入
|
||
|
||
-- 平台对接另外一套方案
|
||
-- 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='平台对接-租户平台实例'; |