iot_cj_push_mysql.sql 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. -- 集抄数据推送 MySQL 表结构
  2. -- 推送配置
  3. CREATE TABLE `iot_cj_push_config` (
  4. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  5. `name` varchar(100) NOT NULL COMMENT '配置名称',
  6. `push_url` varchar(500) NOT NULL COMMENT '推送接口URL',
  7. `address_format` tinyint NOT NULL DEFAULT 0 COMMENT '表地址格式:0=14位基表号, 1=12位表地址',
  8. `batch_size` int NOT NULL DEFAULT 100 COMMENT '每次推送最大记录数',
  9. `retry_count` int NOT NULL DEFAULT 3 COMMENT '失败重试次数',
  10. `retry_interval` int NOT NULL DEFAULT 5 COMMENT '重试间隔(秒)',
  11. `supplement_cron` varchar(50) NOT NULL DEFAULT '0 */5 * * * ?' COMMENT '补推定时表达式',
  12. `supplement_days` int NOT NULL DEFAULT 7 COMMENT '补推回溯天数',
  13. `enabled` tinyint NOT NULL DEFAULT 1 COMMENT '是否启用:0禁用, 1启用',
  14. `headers` varchar(1000) DEFAULT NULL COMMENT '自定义请求头(JSON格式)',
  15. `creator` varchar(64) DEFAULT '',
  16. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  17. `updater` varchar(64) DEFAULT '',
  18. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  19. `deleted` bit(1) NOT NULL DEFAULT b'0',
  20. `tenant_id` bigint NOT NULL DEFAULT 0,
  21. PRIMARY KEY (`id`)
  22. ) ENGINE=InnoDB COMMENT='集抄-推送配置';
  23. -- 推送日志
  24. CREATE TABLE `iot_cj_push_log` (
  25. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  26. `config_id` bigint NOT NULL COMMENT '推送配置ID',
  27. `config_name` varchar(100) NOT NULL DEFAULT '' COMMENT '配置名称',
  28. `push_type` tinyint NOT NULL COMMENT '推送类型:0=实时, 1=补推',
  29. `data_count` int NOT NULL DEFAULT 0 COMMENT '推送数据条数',
  30. `request_body` text DEFAULT NULL COMMENT '请求内容',
  31. `response_body` varchar(500) DEFAULT NULL COMMENT '响应内容',
  32. `status` tinyint NOT NULL COMMENT '状态:0=成功, 1=失败',
  33. `retry_times` int NOT NULL DEFAULT 0 COMMENT '已重试次数',
  34. `error_msg` varchar(500) DEFAULT NULL COMMENT '错误信息',
  35. `push_time` datetime NOT NULL COMMENT '推送时间',
  36. `duration` int DEFAULT NULL COMMENT '推送耗时(毫秒)',
  37. `creator` varchar(64) DEFAULT '',
  38. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  39. `tenant_id` bigint NOT NULL DEFAULT 0,
  40. PRIMARY KEY (`id`),
  41. KEY `idx_config_time` (`config_id`, `push_time`)
  42. ) ENGINE=InnoDB COMMENT='集抄-推送日志';
  43. -- 推送记录跟踪
  44. CREATE TABLE `iot_cj_push_record` (
  45. `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  46. `config_id` bigint NOT NULL COMMENT '推送配置ID',
  47. `meter_address` varchar(20) NOT NULL COMMENT '表地址(14位基表号)',
  48. `data_time` datetime NOT NULL COMMENT '数据时间',
  49. `push_status` tinyint NOT NULL DEFAULT 0 COMMENT '0=待推送, 1=已推送, 2=推送失败, 3=过期放弃',
  50. `push_time` datetime DEFAULT NULL COMMENT '推送成功时间',
  51. `fail_count` int NOT NULL DEFAULT 0 COMMENT '失败次数',
  52. `tenant_id` bigint NOT NULL DEFAULT 0,
  53. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  54. PRIMARY KEY (`id`),
  55. KEY `idx_config_status` (`config_id`, `push_status`),
  56. KEY `idx_meter_time` (`meter_address`, `data_time`)
  57. ) ENGINE=InnoDB COMMENT='集抄-推送记录';