early_warning_system.sql 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. -- =============================================
  2. -- 城市地下管网预警管理系统数据库表设计
  3. -- =============================================
  4. -- 1. 预警信息表
  5. DROP TABLE IF EXISTS `early_warning`;
  6. CREATE TABLE `early_warning` (
  7. `warning_id` varchar(64) NOT NULL COMMENT '预警ID(主键)',
  8. `warning_no` varchar(64) NOT NULL COMMENT '预警编号',
  9. `warning_name` varchar(256) NOT NULL COMMENT '预警名称',
  10. `warning_type` varchar(64) NOT NULL COMMENT '预警类型',
  11. `warning_level` varchar(32) NOT NULL COMMENT '预警级别(1-蓝色 2-黄色 3-橙色 4-红色)',
  12. `warning_special` varchar(128) DEFAULT NULL COMMENT '预警专项',
  13. `location` varchar(512) DEFAULT NULL COMMENT '预警位置',
  14. `longitude` decimal(15,10) DEFAULT NULL COMMENT '经度',
  15. `latitude` decimal(15,10) DEFAULT NULL COMMENT '纬度',
  16. `ownership_unit` varchar(256) DEFAULT NULL COMMENT '权属单位',
  17. `publisher` varchar(128) DEFAULT NULL COMMENT '发布人',
  18. `publish_time` datetime DEFAULT NULL COMMENT '发布时间',
  19. `handler` varchar(128) DEFAULT NULL COMMENT '处置人',
  20. `status` varchar(32) NOT NULL DEFAULT 'DRAFT' COMMENT '状态(DRAFT-草稿 PENDING-待办 PROCESSING-处置中 RELEASED-已发布 HANDLED-已处置 CLOSED-已解除)',
  21. `warning_content` text COMMENT '预警内容描述',
  22. `process_instance_id` varchar(128) DEFAULT NULL COMMENT '工作流实例ID',
  23. `create_by` varchar(128) DEFAULT NULL COMMENT '创建人',
  24. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  25. `update_by` varchar(128) DEFAULT NULL COMMENT '更新人',
  26. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  27. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  28. PRIMARY KEY (`warning_id`),
  29. UNIQUE KEY `uk_warning_no` (`warning_no`),
  30. KEY `idx_warning_type` (`warning_type`),
  31. KEY `idx_warning_level` (`warning_level`),
  32. KEY `idx_status` (`status`),
  33. KEY `idx_publish_time` (`publish_time`)
  34. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警信息表';
  35. -- 2. 报警预警关联表
  36. DROP TABLE IF EXISTS `alarm_warning_rel`;
  37. CREATE TABLE `alarm_warning_rel` (
  38. `rel_id` varchar(64) NOT NULL COMMENT '关联ID',
  39. `warning_id` varchar(64) NOT NULL COMMENT '预警ID',
  40. `alarm_id` varchar(64) NOT NULL COMMENT '报警ID',
  41. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  42. PRIMARY KEY (`rel_id`),
  43. KEY `idx_warning_id` (`warning_id`),
  44. KEY `idx_alarm_id` (`alarm_id`)
  45. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警预警关联表';
  46. -- 3. 预警报告附件表
  47. DROP TABLE IF EXISTS `warning_attachment`;
  48. CREATE TABLE `warning_attachment` (
  49. `attachment_id` varchar(64) NOT NULL COMMENT '附件ID',
  50. `warning_id` varchar(64) NOT NULL COMMENT '预警ID',
  51. `attachment_name` varchar(256) NOT NULL COMMENT '附件名称',
  52. `attachment_url` varchar(512) NOT NULL COMMENT '附件地址',
  53. `attachment_type` varchar(255) DEFAULT NULL COMMENT '附件类型(MIME,标准 MIME 可达 70+ 字符)',
  54. `attachment_size` bigint DEFAULT NULL COMMENT '附件大小(字节)',
  55. `create_by` varchar(128) DEFAULT NULL COMMENT '上传人',
  56. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
  57. PRIMARY KEY (`attachment_id`),
  58. KEY `idx_warning_id` (`warning_id`)
  59. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警报告附件表';
  60. -- 4. 预警处置记录表
  61. DROP TABLE IF EXISTS `warning_disposal`;
  62. CREATE TABLE `warning_disposal` (
  63. `disposal_id` varchar(64) NOT NULL COMMENT '处置记录ID',
  64. `warning_id` varchar(64) NOT NULL COMMENT '预警ID',
  65. `disposal_type` varchar(32) NOT NULL COMMENT '处置类型(UPGRADE-升级 DOWNGRADE-降级 RESOLVE-解除 RETURN-退回 SUPERVISION-督办 INSTRUCTION-批示)',
  66. `old_level` varchar(32) DEFAULT NULL COMMENT '原预警级别',
  67. `new_level` varchar(32) DEFAULT NULL COMMENT '新预警级别',
  68. `disposal_user` varchar(128) NOT NULL COMMENT '处置人',
  69. `disposal_content` text COMMENT '处置内容/意见',
  70. `supervision_user` varchar(128) DEFAULT NULL COMMENT '督办人员',
  71. `supervision_content` text COMMENT '督办意见',
  72. `notification_type` varchar(32) DEFAULT NULL COMMENT '通知方式(SMS-短信 EMAIL-邮件 APP-APP通知)',
  73. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '处置时间',
  74. PRIMARY KEY (`disposal_id`),
  75. KEY `idx_warning_id` (`warning_id`),
  76. KEY `idx_disposal_type` (`disposal_type`)
  77. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警处置记录表';
  78. -- 5. 预警督办表
  79. DROP TABLE IF EXISTS `warning_supervision`;
  80. CREATE TABLE `warning_supervision` (
  81. `supervision_id` varchar(64) NOT NULL COMMENT '督办ID',
  82. `warning_id` varchar(64) NOT NULL COMMENT '预警ID',
  83. `supervision_user` varchar(128) NOT NULL COMMENT '督办人员',
  84. `supervision_content` text NOT NULL COMMENT '督办意见',
  85. `notification_type` varchar(32) NOT NULL COMMENT '通知方式',
  86. `notification_content` text COMMENT '通知内容',
  87. `attachment_url` varchar(512) DEFAULT NULL COMMENT '附件地址',
  88. `create_by` varchar(128) DEFAULT NULL COMMENT '创建人',
  89. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  90. PRIMARY KEY (`supervision_id`),
  91. KEY `idx_warning_id` (`warning_id`)
  92. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警督办表';
  93. -- 6. 领导批示表
  94. DROP TABLE IF EXISTS `leader_instruction`;
  95. CREATE TABLE `leader_instruction` (
  96. `instruction_id` varchar(64) NOT NULL COMMENT '批示ID',
  97. `warning_id` varchar(64) NOT NULL COMMENT '预警ID',
  98. `leader_name` varchar(128) NOT NULL COMMENT '领导姓名',
  99. `instruction_content` text NOT NULL COMMENT '批示内容',
  100. `sms_receivers` text COMMENT '短信接收人(逗号分隔)',
  101. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '批示时间',
  102. PRIMARY KEY (`instruction_id`),
  103. KEY `idx_warning_id` (`warning_id`)
  104. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='领导批示表';
  105. -- 7. 预警待办表(为了快速查询待办已办)
  106. DROP TABLE IF EXISTS `warning_todo`;
  107. CREATE TABLE `warning_todo` (
  108. `todo_id` varchar(64) NOT NULL COMMENT '待办ID',
  109. `warning_id` varchar(64) NOT NULL COMMENT '预警ID',
  110. `user_id` varchar(64) NOT NULL COMMENT '用户ID',
  111. `user_name` varchar(128) DEFAULT NULL COMMENT '用户姓名',
  112. `todo_type` varchar(32) NOT NULL COMMENT '待办类型(TODO-待办 DONE-已办)',
  113. `read_status` varchar(32) DEFAULT 'UNREAD' COMMENT '阅读状态(UNREAD-未读 READ-已读)',
  114. `task_name` varchar(256) DEFAULT NULL COMMENT '任务名称',
  115. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  116. `complete_time` datetime DEFAULT NULL COMMENT '完成时间',
  117. PRIMARY KEY (`todo_id`),
  118. KEY `idx_user_id` (`user_id`),
  119. KEY `idx_warning_id` (`warning_id`),
  120. KEY `idx_todo_type` (`todo_type`)
  121. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警待办表';
  122. -- =============================================
  123. -- 初始化数据
  124. -- =============================================
  125. -- 初始化预警类型字典
  126. INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES
  127. (100, '预警类型', 'warning_type', '0', 'admin', NOW(), '', NULL, '预警类型列表');
  128. INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES
  129. (100, 1, '供水管网预警', 'WATER_PIPE', 'warning_type', '', 'primary', 'N', '0', 'admin', NOW(), '', NULL, '供水管网预警'),
  130. (101, 2, '排水管网预警', 'SEWER_PIPE', 'warning_type', '', 'primary', 'N', '0', 'admin', NOW(), '', NULL, '排水管网预警'),
  131. (102, 3, '燃气管网预警', 'GAS_PIPE', 'warning_type', '', 'warning', 'N', '0', 'admin', NOW(), '', NULL, '燃气管网预警'),
  132. (103, 4, '热力管网预警', 'HEAT_PIPE', 'warning_type', '', 'warning', 'N', '0', 'admin', NOW(), '', NULL, '热力管网预警'),
  133. (104, 5, '电力管网预警', 'ELECTRIC_PIPE', 'warning_type', '', 'danger', 'N', '0', 'admin', NOW(), '', NULL, '电力管网预警'),
  134. (105, 6, '通信管网预警', 'COMMUNICATION_PIPE', 'warning_type', '', 'info', 'N', '0', 'admin', NOW(), '', NULL, '通信管网预警');
  135. -- 初始化设备类型字典
  136. INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES
  137. (101, '设备类型', 'equipment_type', '0', 'admin', NOW(), '', NULL, '设备类型列表');
  138. INSERT INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES
  139. (106, 1, '压力传感器', 'PRESSURE', 'equipment_type', '', 'primary', 'N', '0', 'admin', NOW(), '', NULL, '压力传感器'),
  140. (107, 2, '流量传感器', 'FLOW', 'equipment_type', '', 'primary', 'N', '0', 'admin', NOW(), '', NULL, '流量传感器'),
  141. (108, 3, '液位传感器', 'LEVEL', 'equipment_type', '', 'warning', 'N', '0', 'admin', NOW(), '', NULL, '液位传感器'),
  142. (109, 4, '温度传感器', 'TEMPERATURE', 'equipment_type', '', 'info', 'N', '0', 'admin', NOW(), '', NULL, '温度传感器'),
  143. (110, 5, '气体传感器', 'GAS', 'equipment_type', '', 'danger', 'N', '0', 'admin', NOW(), '', NULL, '气体传感器'),
  144. (111, 6, '阀门控制器', 'VALVE', 'equipment_type', '', 'default', 'N', '0', 'admin', NOW(), '', NULL, '阀门控制器'),
  145. (112, 7, '摄像头', 'CAMERA', 'equipment_type', '', 'default', 'N', '0', 'admin', NOW(), '', NULL, '摄像头');
  146. -- 10. 预警归档表
  147. DROP TABLE IF EXISTS `warning_archive`;
  148. CREATE TABLE `warning_archive` (
  149. `archive_id` varchar(64) NOT NULL COMMENT '归档ID',
  150. `warning_id` varchar(64) NOT NULL COMMENT '预警ID',
  151. `archive_no` varchar(64) NOT NULL COMMENT '归档编号',
  152. `warning_no` varchar(64) NOT NULL COMMENT '预警编号',
  153. `warning_name` varchar(256) NOT NULL COMMENT '预警名称',
  154. `warning_type` varchar(64) NOT NULL COMMENT '预警类型',
  155. `warning_level` varchar(32) NOT NULL COMMENT '预警级别',
  156. `location` varchar(512) DEFAULT NULL COMMENT '预警位置',
  157. `longitude` decimal(15,10) DEFAULT NULL COMMENT '经度',
  158. `latitude` decimal(15,10) DEFAULT NULL COMMENT '纬度',
  159. `ownership_unit` varchar(256) DEFAULT NULL COMMENT '权属单位',
  160. `publisher` varchar(128) DEFAULT NULL COMMENT '发布人',
  161. `publish_time` datetime DEFAULT NULL COMMENT '发布时间',
  162. `handler` varchar(128) DEFAULT NULL COMMENT '处置人',
  163. `warning_content` text COMMENT '预警内容',
  164. `archive_content` text COMMENT '归档内容',
  165. `archive_status` varchar(32) DEFAULT NULL COMMENT '归档状态',
  166. `create_by` varchar(128) DEFAULT NULL COMMENT '创建人',
  167. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  168. PRIMARY KEY (`archive_id`),
  169. UNIQUE KEY `uk_warning_id` (`warning_id`),
  170. KEY `idx_archive_no` (`archive_no`),
  171. KEY `idx_create_time` (`create_time`)
  172. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警归档表';
  173. -- 11. 预警清单表
  174. DROP TABLE IF EXISTS `warning_item`;
  175. CREATE TABLE `warning_item` (
  176. `item_id` varchar(64) NOT NULL COMMENT '事项ID',
  177. `item_code` varchar(64) NOT NULL COMMENT '事项编码',
  178. `item_name` varchar(256) NOT NULL COMMENT '事项名称',
  179. `warning_type` varchar(64) NOT NULL COMMENT '预警类型',
  180. `warning_level` varchar(32) NOT NULL COMMENT '预警级别',
  181. `warning_special` varchar(128) DEFAULT NULL COMMENT '预警专项',
  182. `industry` varchar(128) DEFAULT NULL COMMENT '所属行业',
  183. `duration` int DEFAULT NULL COMMENT '预警时长(小时)',
  184. `link_config` text COMMENT '预警环节配置',
  185. `status` varchar(32) DEFAULT 'ENABLED' COMMENT '状态(ENABLED-启用 DISABLED-禁用 INVALID-作废)',
  186. `create_by` varchar(128) DEFAULT NULL COMMENT '创建人',
  187. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  188. `update_by` varchar(128) DEFAULT NULL COMMENT '更新人',
  189. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  190. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  191. PRIMARY KEY (`item_id`),
  192. UNIQUE KEY `uk_item_code` (`item_code`),
  193. KEY `idx_warning_type` (`warning_type`),
  194. KEY `idx_warning_level` (`warning_level`),
  195. KEY `idx_status` (`status`)
  196. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警清单表';
  197. -- 12. 预警原因库表
  198. DROP TABLE IF EXISTS `warning_reason`;
  199. CREATE TABLE `warning_reason` (
  200. `reason_id` varchar(64) NOT NULL COMMENT '原因ID',
  201. `reason_code` varchar(64) NOT NULL COMMENT '原因编码',
  202. `reason_name` varchar(256) NOT NULL COMMENT '原因名称',
  203. `warning_type` varchar(64) NOT NULL COMMENT '预警类型',
  204. `warning_level` varchar(32) NOT NULL COMMENT '预警级别',
  205. `description` text COMMENT '原因描述',
  206. `sort_order` int DEFAULT 0 COMMENT '排序',
  207. `status` char(1) DEFAULT '0' COMMENT '状态(0-正常 1-停用)',
  208. `create_by` varchar(128) DEFAULT NULL COMMENT '创建人',
  209. `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  210. `update_by` varchar(128) DEFAULT NULL COMMENT '更新人',
  211. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  212. PRIMARY KEY (`reason_id`),
  213. UNIQUE KEY `uk_reason_code` (`reason_code`),
  214. KEY `idx_warning_type` (`warning_type`),
  215. KEY `idx_warning_level` (`warning_level`)
  216. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警原因库表';