-- 平台对接模块 DDL -- 创建时间: 2026-05-30 -- ---------------------------- -- 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', `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='平台接口定义'; -- ---------------------------- -- 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时有效: inclino/stress/hyeto/static_level', `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', `device_id` bigint(20) NOT NULL COMMENT 'FastBee设备ID', `serial_number` varchar(64) NOT NULL COMMENT 'FastBee设备序列号', `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 '传感器类型: inclino/stress/hyeto/static_level', `push_interface_id` bigint(20) DEFAULT NULL COMMENT '推送接口ID,用于字段映射参照', `field_mapping` json DEFAULT NULL COMMENT '字段映射 [{identifier,platformField,transform}]', `net_status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '入网状态(0=未入网,1=已入网)', `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='平台设备绑定关系'; -- ---------------------------- -- 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 '幂等键,防重复推送', `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 在初始化时写入