iot_equipment_management.sql 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. -- =============================================
  2. -- 物联感知设备与管网基础设施管理
  3. -- 包含:设备管理增强、管网基础信息、监控点管理、预警阈值
  4. -- =============================================
  5. -- -----------------------------------------------------
  6. -- 1. 对现有表进行字段补充
  7. -- -----------------------------------------------------
  8. -- 补充设备基础表字段
  9. ALTER TABLE `equipment_base`
  10. ADD COLUMN IF NOT EXISTS `equipment_location` VARCHAR(512) COMMENT '设备位置描述' AFTER `latitude`,
  11. ADD COLUMN IF NOT EXISTS `install_time` DATETIME COMMENT '安装时间' AFTER `equipment_location`,
  12. ADD COLUMN IF NOT EXISTS `maintainer` VARCHAR(128) COMMENT '设备维护人员' AFTER `install_time`,
  13. ADD COLUMN IF NOT EXISTS `maintainer_phone` VARCHAR(32) COMMENT '联系方式' AFTER `maintainer`,
  14. ADD COLUMN IF NOT EXISTS `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' AFTER `remark`,
  15. ADD COLUMN IF NOT EXISTS `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' AFTER `create_time`;
  16. -- 补充设备维护记录表字段
  17. ALTER TABLE `equipment_maintain`
  18. ADD COLUMN IF NOT EXISTS `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' AFTER `maintain_remark`;
  19. -- 补充设备状态表字段
  20. ALTER TABLE `equipment_status`
  21. ADD COLUMN IF NOT EXISTS `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' AFTER `status_update_time`;
  22. -- 移除已停用的设备状态冗余字段(负责人/安装地址/维护日期)
  23. ALTER TABLE `equipment_status`
  24. DROP COLUMN IF EXISTS `user_id`,
  25. DROP COLUMN IF EXISTS `installation_addr`,
  26. DROP COLUMN IF EXISTS `last_maintain_date`,
  27. DROP COLUMN IF EXISTS `next_maintain_date`;
  28. -- -----------------------------------------------------
  29. -- 2. 管网基础信息表(5.2.4.1.2)
  30. -- -----------------------------------------------------
  31. DROP TABLE IF EXISTS `pipe_network_base`;
  32. CREATE TABLE `pipe_network_base` (
  33. `network_id` VARCHAR(64) NOT NULL COMMENT '管网设施ID(主键)',
  34. `network_code` VARCHAR(64) NOT NULL COMMENT '设施编码',
  35. `network_name` VARCHAR(256) NOT NULL COMMENT '设施名称',
  36. `network_type` VARCHAR(64) NOT NULL COMMENT '设施类型(GAS-燃气 DRAINAGE-排水 WATER_SUPPLY-供水 BRIDGE-桥梁 ROAD-道路等)',
  37. `network_level` VARCHAR(32) COMMENT '等级',
  38. `management_unit` VARCHAR(256) COMMENT '管养单位',
  39. `location` VARCHAR(512) COMMENT '位置描述',
  40. `start_longitude` DECIMAL(15, 10) COMMENT '管网起点WGS84经度',
  41. `start_latitude` DECIMAL(15, 10) COMMENT '管网起点WGS84纬度',
  42. `end_longitude` DECIMAL(15, 10) COMMENT '管网终点WGS84经度',
  43. `end_latitude` DECIMAL(15, 10) COMMENT '管网终点WGS84纬度',
  44. `length` DECIMAL(10, 2) COMMENT '长度(米)',
  45. `diameter` DECIMAL(10, 2) COMMENT '管径(毫米)',
  46. `material` VARCHAR(128) COMMENT '材质',
  47. `build_date` DATE COMMENT '建设日期',
  48. `status` VARCHAR(32) DEFAULT 'NORMAL' COMMENT '状态(NORMAL-正常 MAINTENANCE-维护中 ABNORMAL-异常)',
  49. `remark` TEXT COMMENT '备注',
  50. `create_by` VARCHAR(128) COMMENT '创建人',
  51. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  52. `update_by` VARCHAR(128) COMMENT '更新人',
  53. `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  54. PRIMARY KEY (`network_id`),
  55. UNIQUE KEY `uk_network_code` (`network_code`),
  56. KEY `idx_network_type` (`network_type`),
  57. KEY `idx_status` (`status`)
  58. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管网基础设施信息表';
  59. -- -----------------------------------------------------
  60. -- 3. 关键监控点位表(5.2.4.1.3)
  61. -- -----------------------------------------------------
  62. DROP TABLE IF EXISTS `monitor_point`;
  63. CREATE TABLE `monitor_point` (
  64. `point_id` VARCHAR(64) NOT NULL COMMENT '监测点ID(主键)',
  65. `point_code` VARCHAR(64) NOT NULL COMMENT '监测点编码',
  66. `point_name` VARCHAR(256) NOT NULL COMMENT '监测点名称',
  67. `point_type` INT COMMENT '监测点类型(1-供水监测点 2-排水监测点 3-燃气监测点)',
  68. `location` VARCHAR(512) COMMENT '位置描述',
  69. `longitude` DECIMAL(15, 10) COMMENT '经度',
  70. `latitude` DECIMAL(15, 10) COMMENT '纬度',
  71. `remark` TEXT COMMENT '备注',
  72. `create_by` VARCHAR(128) COMMENT '创建人',
  73. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  74. `update_by` VARCHAR(128) COMMENT '更新人',
  75. `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  76. PRIMARY KEY (`point_id`),
  77. UNIQUE KEY `uk_point_code` (`point_code`),
  78. KEY `idx_network_id` (`network_id`),
  79. KEY `idx_status` (`status`)
  80. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='关键监控点位表';
  81. -- -----------------------------------------------------
  82. -- 4. 设备-监控点关联表
  83. -- -----------------------------------------------------
  84. DROP TABLE IF EXISTS `equipment_point_rel`;
  85. CREATE TABLE `equipment_point_rel` (
  86. `rel_id` VARCHAR(64) NOT NULL COMMENT '关联ID',
  87. `equipment_id` VARCHAR(64) NOT NULL COMMENT '设备ID',
  88. `point_id` VARCHAR(64) NOT NULL COMMENT '监测点ID',
  89. `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  90. PRIMARY KEY (`rel_id`),
  91. KEY `idx_equipment_id` (`equipment_id`),
  92. KEY `idx_point_id` (`point_id`)
  93. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备-监控点关联表';
  94. -- -----------------------------------------------------
  95. -- 5. 补充现有预警阈值表字段
  96. -- -----------------------------------------------------
  97. -- 对已有的 warning_threshold 表补充字段(项目已有该表)
  98. -- 注意:只保留阈值相关字段,不包含预警联动、通知等业务逻辑
  99. ALTER TABLE `warning_threshold`
  100. ADD COLUMN IF NOT EXISTS `min_value` DECIMAL(10, 2) COMMENT '预警最小值,小于等于该值视为报警' AFTER `warning_code`,
  101. ADD COLUMN IF NOT EXISTS `max_value` DECIMAL(10, 2) COMMENT '预警最大值,大于等于该值视为报警' AFTER `min_value`;
  102. -- 移除旧字段(如果存在)
  103. -- 注意:实际执行时请根据需要取消注释
  104. -- ALTER TABLE `warning_threshold` DROP COLUMN IF EXISTS `warning_value`;
  105. -- ALTER TABLE `warning_threshold` DROP COLUMN IF EXISTS `operator`;
  106. -- ALTER TABLE `warning_threshold` DROP COLUMN IF EXISTS `device_name`;
  107. -- ALTER TABLE `warning_threshold` DROP COLUMN IF EXISTS `device_type`;
  108. -- ALTER TABLE `warning_threshold` DROP COLUMN IF EXISTS `equipment_id`;
  109. -- ALTER TABLE `warning_threshold` DROP COLUMN IF EXISTS `point_id`;
  110. -- ALTER TABLE `warning_threshold` DROP COLUMN IF EXISTS `monitor_type`;
  111. -- ALTER TABLE `warning_threshold` DROP COLUMN IF EXISTS `warning_level`;
  112. -- -----------------------------------------------------
  113. -- 6. 设备测试记录表(已废弃,删除表)
  114. -- -----------------------------------------------------
  115. DROP TABLE IF EXISTS `equipment_test`;
  116. -- -----------------------------------------------------
  117. -- 7. 初始化数据
  118. -- -----------------------------------------------------
  119. -- 初始化管网设施类型字典
  120. INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES
  121. (102, '管网设施类型', 'network_type', '0', 'admin', NOW(), '', NULL, '管网设施类型列表');
  122. 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
  123. (113, 1, '燃气管道', 'GAS', 'network_type', '', 'danger', 'N', '0', 'admin', NOW(), '', NULL, '燃气管道'),
  124. (114, 2, '排水管道', 'DRAINAGE', 'network_type', '', 'primary', 'N', '0', 'admin', NOW(), '', NULL, '排水管道'),
  125. (115, 3, '供水管道', 'WATER_SUPPLY', 'network_type', '', 'primary', 'N', '0', 'admin', NOW(), '', NULL, '供水管道'),
  126. (116, 4, '热力管道', 'HEAT', 'network_type', '', 'warning', 'N', '0', 'admin', NOW(), '', NULL, '热力管道'),
  127. (117, 5, '电力管道', 'ELECTRIC', 'network_type', '', 'info', 'N', '0', 'admin', NOW(), '', NULL, '电力管道'),
  128. (118, 6, '通信管道', 'COMMUNICATION', 'network_type', '', 'info', 'N', '0', 'admin', NOW(), '', NULL, '通信管道'),
  129. (119, 7, '桥梁', 'BRIDGE', 'network_type', '', 'default', 'N', '0', 'admin', NOW(), '', NULL, '桥梁'),
  130. (120, 8, '道路', 'ROAD', 'network_type', '', 'default', 'N', '0', 'admin', NOW(), '', NULL, '道路');
  131. -- 初始化监测点类型字典
  132. INSERT INTO `sys_dict_type` (`dict_id`, `dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES
  133. (103, '监测点类型', 'monitor_type', '0', 'admin', NOW(), '', NULL, '监测点类型列表');
  134. 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
  135. (121, 1, '水位监测', 'WATER_LEVEL', 'monitor_type', '', 'primary', 'N', '0', 'admin', NOW(), '', NULL, '水位监测'),
  136. (122, 2, '流量监测', 'FLOW', 'monitor_type', '', 'primary', 'N', '0', 'admin', NOW(), '', NULL, '流量监测'),
  137. (123, 3, '压力监测', 'PRESSURE', 'monitor_type', '', 'warning', 'N', '0', 'admin', NOW(), '', NULL, '压力监测'),
  138. (124, 4, '温度监测', 'TEMPERATURE', 'monitor_type', '', 'info', 'N', '0', 'admin', NOW(), '', NULL, '温度监测'),
  139. (125, 5, '气体监测', 'GAS', 'monitor_type', '', 'danger', 'N', '0', 'admin', NOW(), '', NULL, '气体监测'),
  140. (126, 6, '视频监控', 'VIDEO', 'monitor_type', '', 'default', 'N', '0', 'admin', NOW(), '', NULL, '视频监控');