fastbee/sql/iot_platform_connect.sql
2026-05-29 21:22:36 +08:00

408 lines
34 KiB
SQL
Raw 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.

-- 平台对接 / 数据交换表结构
-- 平台模板层、租户接入层、数据交换层。DCP 等平台共用模板能力,租户数据按 tenant_id 隔离。
DROP TABLE IF EXISTS `iot_platform_template`;
CREATE TABLE `iot_platform_template` (
`id` bigint(20) 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 DEFAULT CHARSET=utf8mb4 COMMENT='平台对接-平台模板';
DROP TABLE IF EXISTS `iot_platform_api`;
CREATE TABLE `iot_platform_api` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`template_id` bigint(20) 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(11) 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 DEFAULT CHARSET=utf8mb4 COMMENT='平台对接-接口定义';
DROP TABLE IF EXISTS `iot_platform_api_field`;
CREATE TABLE `iot_platform_api_field` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`api_id` bigint(20) 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(11) DEFAULT '0' COMMENT '排序',
PRIMARY KEY (`id`),
KEY `idx_api_direction` (`api_id`,`direction`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台对接-接口字段';
DROP TABLE IF EXISTS `iot_platform_flow`;
CREATE TABLE `iot_platform_flow` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`template_id` bigint(20) 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 DEFAULT CHARSET=utf8mb4 COMMENT='平台对接-流程模板';
DROP TABLE IF EXISTS `iot_platform_flow_step`;
CREATE TABLE `iot_platform_flow_step` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`flow_id` bigint(20) 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(20) 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(11) 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 COMMENT='平台对接-流程步骤';
DROP TABLE IF EXISTS `iot_platform_tenant_channel`;
CREATE TABLE `iot_platform_tenant_channel` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`tenant_name` varchar(64) DEFAULT '' COMMENT '租户名称',
`template_id` bigint(20) 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 COMMENT='平台对接-租户平台实例';
DROP TABLE IF EXISTS `iot_platform_resource_mapping`;
CREATE TABLE `iot_platform_resource_mapping` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`tenant_channel_id` bigint(20) NOT NULL COMMENT '租户平台实例ID',
`binding_id` bigint(20) 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 COMMENT='平台对接-资源映射';
DROP TABLE IF EXISTS `iot_platform_binding`;
CREATE TABLE `iot_platform_binding` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`tenant_channel_id` bigint(20) NOT NULL COMMENT '租户平台实例ID',
`flow_id` bigint(20) NOT NULL COMMENT '平台流程ID',
`product_id` bigint(20) DEFAULT NULL COMMENT '产品ID',
`product_name` varchar(128) DEFAULT NULL COMMENT '产品名称',
`device_id` bigint(20) 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 COMMENT='平台对接-设备绑定';
DROP TABLE IF EXISTS `iot_platform_field_mapping`;
CREATE TABLE `iot_platform_field_mapping` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`binding_id` bigint(20) 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(11) 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 COMMENT='平台对接-字段映射';
DROP TABLE IF EXISTS `iot_platform_exchange_task`;
CREATE TABLE `iot_platform_exchange_task` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`tenant_channel_id` bigint(20) NOT NULL COMMENT '租户平台实例ID',
`flow_id` bigint(20) 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(11) DEFAULT '100' COMMENT '批次大小',
`max_retry` int(11) 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 COMMENT='平台对接-数据交换任务';
DROP TABLE IF EXISTS `iot_platform_task_binding`;
CREATE TABLE `iot_platform_task_binding` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`task_id` bigint(20) NOT NULL COMMENT '任务ID',
`binding_id` bigint(20) 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 COMMENT='平台对接-任务绑定';
DROP TABLE IF EXISTS `iot_platform_exchange_record`;
CREATE TABLE `iot_platform_exchange_record` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`tenant_channel_id` bigint(20) NOT NULL COMMENT '租户平台实例ID',
`flow_id` bigint(20) NOT NULL COMMENT '流程ID',
`binding_id` bigint(20) DEFAULT NULL COMMENT '绑定ID',
`task_id` bigint(20) 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(20) 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(11) DEFAULT '0' COMMENT '重试次数',
`max_retry` int(11) 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 COMMENT='平台对接-数据交换记录';
DROP TABLE IF EXISTS `iot_platform_exchange_attempt`;
CREATE TABLE `iot_platform_exchange_attempt` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
`record_id` bigint(20) NOT NULL COMMENT '交换记录ID',
`attempt_no` int(11) 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(11) DEFAULT NULL COMMENT '响应状态码',
`response_body` mediumtext COMMENT '响应内容',
`success` tinyint(1) DEFAULT '0' COMMENT '是否成功',
`error_msg` varchar(1000) DEFAULT NULL COMMENT '错误信息',
`duration_ms` int(11) 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 COMMENT='平台对接-数据交换尝试日志';
INSERT INTO `iot_platform_template` (`platform_code`, `platform_name`, `platform_type`, `adapter_code`, `auth_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('DCP', 'DCP平台', 'DCP', 'dcp', 'CUSTOM_TOKEN', 1, 'system', NOW(), 'DCP 首批平台对接模板,一测点对应一个 FastBee 设备');
-- 平台对接菜单(顶级菜单)。如已存在相同 menu_id,INSERT IGNORE 会跳过。
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3500, '平台对接', 0, 8, 'platformConnect', NULL, NULL, 1, 0, 'M', '0', '0', '', 'international', 'admin', NOW(), 'admin', NOW(), '平台对接菜单');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3501, '平台模板', 3500, 1, 'template', 'iot/platformConnect/template/index', NULL, 1, 0, 'C', '0', '0', 'iot:platformConnect:template:list', 'dict', 'admin', NOW(), 'admin', NOW(), '平台模板菜单');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3502, '平台模板查询', 3501, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:template:query', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3503, '平台模板新增', 3501, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:template:add', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3504, '平台模板修改', 3501, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:template:edit', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3505, '平台模板删除', 3501, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:template:remove', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3506, '平台模板导出', 3501, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:template:export', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3520, '接口配置', 3500, 2, 'api', 'iot/platformConnect/api/index', NULL, 1, 0, 'C', '0', '0', 'iot:platformConnect:api:list', 'api', 'admin', NOW(), 'admin', NOW(), '接口配置菜单');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3521, '接口配置查询', 3520, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:api:query', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3522, '接口配置新增', 3520, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:api:add', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3523, '接口配置修改', 3520, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:api:edit', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3524, '接口配置删除', 3520, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:api:remove', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3530, '流程编排', 3500, 3, 'flow', 'iot/platformConnect/flow/index', NULL, 1, 0, 'C', '0', '0', 'iot:platformConnect:flow:list', 'tree', 'admin', NOW(), 'admin', NOW(), '流程编排菜单');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3531, '流程查询', 3530, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:flow:query', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3532, '流程新增', 3530, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:flow:add', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3533, '流程修改', 3530, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:flow:edit', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3534, '流程删除', 3530, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:flow:remove', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3540, '租户接入', 3500, 4, 'tenantChannel', 'iot/platformConnect/tenantChannel/index', NULL, 1, 0, 'C', '0', '0', 'iot:platformConnect:tenantChannel:list', 'peoples', 'admin', NOW(), 'admin', NOW(), '租户接入菜单');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3541, '租户接入查询', 3540, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:tenantChannel:query', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3542, '租户接入新增', 3540, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:tenantChannel:add', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3543, '租户接入修改', 3540, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:tenantChannel:edit', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3544, '租户接入删除', 3540, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:tenantChannel:remove', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3550, '资源映射', 3500, 5, 'resource', 'iot/platformConnect/resource/index', NULL, 1, 0, 'C', '0', '0', 'iot:platformConnect:resource:list', 'link', 'admin', NOW(), 'admin', NOW(), '资源映射菜单');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3551, '资源映射查询', 3550, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:resource:query', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3552, '资源映射新增', 3550, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:resource:add', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3553, '资源映射修改', 3550, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:resource:edit', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3554, '资源映射删除', 3550, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:resource:remove', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3560, '设备绑定', 3500, 6, 'binding', 'iot/platformConnect/binding/index', NULL, 1, 0, 'C', '0', '0', 'iot:platformConnect:binding:list', 'device', 'admin', NOW(), 'admin', NOW(), '设备绑定菜单');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3561, '设备绑定查询', 3560, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:binding:query', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3562, '设备绑定新增', 3560, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:binding:add', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3563, '设备绑定修改', 3560, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:binding:edit', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3564, '设备绑定删除', 3560, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:binding:remove', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3570, '数据交换任务', 3500, 7, 'task', 'iot/platformConnect/task/index', NULL, 1, 0, 'C', '0', '0', 'iot:platformConnect:task:list', 'job', 'admin', NOW(), 'admin', NOW(), '数据交换任务菜单');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3571, '数据交换任务查询', 3570, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:task:query', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3572, '数据交换任务新增', 3570, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:task:add', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3573, '数据交换任务修改', 3570, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:task:edit', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3574, '数据交换任务删除', 3570, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:task:remove', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3510, '数据交换记录', 3500, 8, 'record', 'iot/platformConnect/record/index', NULL, 1, 0, 'C', '0', '0', 'iot:platformConnect:record:list', 'log', 'admin', NOW(), 'admin', NOW(), '数据交换记录菜单');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3511, '数据交换记录查询', 3510, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:record:query', '#', 'admin', NOW(), 'admin', NOW(), '');
INSERT IGNORE INTO `sys_menu` (menu_id, menu_name, parent_id, order_num, `path`, component, query, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
VALUES (3512, '数据交换记录重试', 3510, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'iot:platformConnect:record:retry', '#', 'admin', NOW(), 'admin', NOW(), '');
-- ===================== Quartz 定时任务种子数据 =====================
-- 平台数据交换 Worker(每10秒轮询待处理记录)
INSERT IGNORE INTO `sys_job` (`job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('platform_exchange_worker', 'PLATFORM', 'platformExchangeWorker.pollAndExecute()', '0/10 * * * * ?', '2', '1', '0', 'admin', NOW(), '平台数据交换Worker-轮询待处理记录并执行');