-- ============================================
-- 风控平台数据库建表脚本 (对齐前端 types.ts)
-- 创建时间: 2026-06-18
-- 数据库: risk_control (需要先创建)
-- 字段命名规则: 与前端 camelCase 字段名 snake_case 化保持一致
-- ============================================

-- 0. 修复 sys_menu.menu_id 非自增问题(让 menu_id 变 AUTO_INCREMENT)
ALTER TABLE sys_menu MODIFY COLUMN menu_id BIGINT NOT NULL AUTO_INCREMENT;

-- 1. 安全隐患表 risk_hidden_danger
DROP TABLE IF EXISTS `risk_hidden_danger`;
CREATE TABLE `risk_hidden_danger` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `danger_code` VARCHAR(50) COMMENT '隐患编号',
  `danger_title` VARCHAR(200) NOT NULL COMMENT '隐患标题',
  `danger_type` VARCHAR(50) NOT NULL COMMENT '隐患类型',
  `danger_level` VARCHAR(20) NOT NULL COMMENT '风险等级',
  `danger_source` VARCHAR(200) COMMENT '隐患来源',
  `danger_desc` TEXT COMMENT '隐患描述',
  `store_id` BIGINT COMMENT '门店ID',
  `store_name` VARCHAR(100) COMMENT '门店名称',
  `discoverer_id` BIGINT COMMENT '发现人ID',
  `discoverer_name` VARCHAR(50) COMMENT '发现人',
  `discover_time` DATETIME NOT NULL COMMENT '发现时间',
  `handle_status` VARCHAR(20) DEFAULT '待处理' COMMENT '处理状态',
  `handler_id` BIGINT COMMENT '处理人ID',
  `handler_name` VARCHAR(50) COMMENT '处理人',
  `handle_time` DATETIME COMMENT '处理时间',
  `handle_result` TEXT COMMENT '处理结果',
  `handle_measures` TEXT COMMENT '处理措施',
  `finish_time` DATETIME COMMENT '完成时间',
  `photo_list` TEXT COMMENT '现场照片(JSON数组)',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_danger_code` (`danger_code`),
  KEY `idx_danger_type` (`danger_type`),
  KEY `idx_danger_level` (`danger_level`),
  KEY `idx_handle_status` (`handle_status`),
  KEY `idx_discover_time` (`discover_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='安全隐患表';

-- 2. 危险源表 risk_danger_source
DROP TABLE IF EXISTS `risk_danger_source`;
CREATE TABLE `risk_danger_source` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `source_code` VARCHAR(50) COMMENT '危险源编号',
  `source_name` VARCHAR(100) NOT NULL COMMENT '危险源名称',
  `source_type` VARCHAR(50) NOT NULL COMMENT '危险源类型',
  `risk_level` VARCHAR(20) NOT NULL COMMENT '风险等级',
  `store_id` BIGINT COMMENT '门店ID',
  `store_name` VARCHAR(100) COMMENT '门店名称',
  `location` VARCHAR(200) NOT NULL COMMENT '位置',
  `source_desc` TEXT COMMENT '危险源描述',
  `control_measures` TEXT COMMENT '控制措施',
  `report_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上报时间',
  `responsible_id` BIGINT COMMENT '负责人ID',
  `responsible_name` VARCHAR(50) COMMENT '负责人',
  `status` VARCHAR(20) DEFAULT '正常' COMMENT '状态',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_source_code` (`source_code`),
  KEY `idx_source_type` (`source_type`),
  KEY `idx_risk_level` (`risk_level`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='危险源表';

-- 3. 作业上报表 risk_work_report
DROP TABLE IF EXISTS `risk_work_report`;
CREATE TABLE `risk_work_report` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `report_code` VARCHAR(50) COMMENT '上报编号',
  `work_type` VARCHAR(50) NOT NULL COMMENT '作业类型',
  `work_title` VARCHAR(200) NOT NULL COMMENT '作业标题',
  `work_content` TEXT COMMENT '作业内容',
  `store_id` BIGINT COMMENT '门店ID',
  `store_name` VARCHAR(100) COMMENT '门店名称',
  `work_location` VARCHAR(200) COMMENT '作业位置',
  `work_start_time` DATETIME NOT NULL COMMENT '作业开始时间',
  `work_end_time` DATETIME NOT NULL COMMENT '作业结束时间',
  `duration_days` INT DEFAULT NULL COMMENT '工期(单位:天,与开始/结束时间联动计算)',
  `reporter_id` BIGINT COMMENT '上报人ID',
  `reporter_name` VARCHAR(50) COMMENT '上报人',
  `report_time` DATETIME NOT NULL COMMENT '上报时间',
  `contact_phone` VARCHAR(20) COMMENT '联系电话',
  `photo_list` TEXT COMMENT '现场施工图片(JSON数组)',
  `cert_file` VARCHAR(500) COMMENT '施工证件URL',
  `cert_name` VARCHAR(100) COMMENT '施工证件名称',
  `participants` VARCHAR(500) COMMENT '参与人员',
  `risk_measures` TEXT COMMENT '风险措施',
  `work_result` TEXT COMMENT '作业结果',
  `audit_status` VARCHAR(20) DEFAULT '待审核' COMMENT '审核状态',
  `auditor_id` BIGINT COMMENT '审核人ID',
  `auditor_name` VARCHAR(50) COMMENT '审核人',
  `audit_time` DATETIME COMMENT '审核时间',
  `audit_opinion` TEXT COMMENT '审核意见',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_report_code` (`report_code`),
  KEY `idx_work_type` (`work_type`),
  KEY `idx_audit_status` (`audit_status`),
  KEY `idx_work_start_time` (`work_start_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='作业上报表';

-- 4. 人员信息表 risk_personnel
DROP TABLE IF EXISTS `risk_personnel`;
CREATE TABLE `risk_personnel` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `personnel_code` VARCHAR(50) COMMENT '人员编号',
  `personnel_name` VARCHAR(50) NOT NULL COMMENT '姓名',
  `gender` CHAR(1) DEFAULT '0' COMMENT '性别(0男 1女)',
  `id_card` VARCHAR(18) COMMENT '身份证号',
  `age` INT COMMENT '年龄',
  `phone` VARCHAR(20) COMMENT '手机号',
  `email` VARCHAR(100) COMMENT '邮箱',
  `store_id` BIGINT COMMENT '门店ID',
  `store_name` VARCHAR(100) COMMENT '门店名称',
  `department` VARCHAR(100) COMMENT '部门',
  `position` VARCHAR(100) COMMENT '岗位',
  `insurance_status` VARCHAR(20) DEFAULT '未投保' COMMENT '保险状态',
  `insurance_start_date` DATETIME COMMENT '保险有效期开始',
  `insurance_expire_date` DATETIME COMMENT '保险有效期结束',
  `job_type` VARCHAR(50) COMMENT '工种',
  `entry_date` DATE COMMENT '入职日期',
  `leave_date` DATE COMMENT '离职日期',
  `status` VARCHAR(20) DEFAULT '在职' COMMENT '状态',
  `health_status` VARCHAR(50) COMMENT '健康状况',
  `address` VARCHAR(500) COMMENT '地址',
  `emergency_contact` VARCHAR(50) COMMENT '紧急联系人',
  `emergency_phone` VARCHAR(20) COMMENT '紧急联系电话',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_personnel_code` (`personnel_code`),
  KEY `idx_personnel_name` (`personnel_name`),
  KEY `idx_store_id` (`store_id`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='人员信息表';

-- 5. 人员证书表 risk_personnel_cert
DROP TABLE IF EXISTS `risk_personnel_cert`;
CREATE TABLE `risk_personnel_cert` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `personnel_id` BIGINT NOT NULL COMMENT '人员ID',
  `personnel_name` VARCHAR(50) COMMENT '人员姓名',
  `cert_type` VARCHAR(50) NOT NULL COMMENT '证书类型',
  `cert_name` VARCHAR(100) NOT NULL COMMENT '证书名称',
  `cert_no` VARCHAR(100) COMMENT '证书编号',
  `issue_org` VARCHAR(200) COMMENT '颁发机构',
  `issue_date` DATE COMMENT '颁发日期',
  `expire_date` DATE COMMENT '过期日期',
  `cert_status` VARCHAR(20) DEFAULT '有效' COMMENT '证书状态',
  `cert_file` VARCHAR(500) COMMENT '证书附件',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  KEY `idx_personnel_id` (`personnel_id`),
  KEY `idx_cert_type` (`cert_type`),
  KEY `idx_cert_status` (`cert_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='人员证书表';

-- 6. 人员变动表 risk_personnel_change
DROP TABLE IF EXISTS `risk_personnel_change`;
CREATE TABLE `risk_personnel_change` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `change_code` VARCHAR(50) COMMENT '变动编号',
  `personnel_id` BIGINT NOT NULL COMMENT '人员ID',
  `personnel_name` VARCHAR(50) COMMENT '人员姓名',
  `change_type` VARCHAR(50) NOT NULL COMMENT '变动类型',
  `change_reason` TEXT COMMENT '变动原因',
  `change_date` DATE NOT NULL COMMENT '变动日期',
  `before_store_id` BIGINT COMMENT '变动前门店ID',
  `before_store_name` VARCHAR(100) COMMENT '变动前门店',
  `before_dept` VARCHAR(100) COMMENT '变动前部门',
  `before_position` VARCHAR(100) COMMENT '变动前岗位',
  `after_store_id` BIGINT COMMENT '变动后门店ID',
  `after_store_name` VARCHAR(100) COMMENT '变动后门店',
  `after_dept` VARCHAR(100) COMMENT '变动后部门',
  `after_position` VARCHAR(100) COMMENT '变动后岗位',
  `handler_id` BIGINT COMMENT '经办人ID',
  `handler_name` VARCHAR(50) COMMENT '经办人',
  `audit_status` VARCHAR(20) DEFAULT '待审核' COMMENT '审核状态',
  `auditor_id` BIGINT COMMENT '审核人ID',
  `auditor_name` VARCHAR(50) COMMENT '审核人',
  `audit_time` DATETIME COMMENT '审核时间',
  `audit_opinion` TEXT COMMENT '审核意见',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_change_code` (`change_code`),
  KEY `idx_personnel_id` (`personnel_id`),
  KEY `idx_change_type` (`change_type`),
  KEY `idx_audit_status` (`audit_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='人员变动表';

-- 7. 审计文件表 risk_audit_file
DROP TABLE IF EXISTS `risk_audit_file`;
CREATE TABLE `risk_audit_file` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `file_code` VARCHAR(50) COMMENT '文件编号',
  `change_id` BIGINT COMMENT '关联人员变动ID',
  `file_name` VARCHAR(200) NOT NULL COMMENT '文件名',
  `file_type` VARCHAR(50) COMMENT '文件类型',
  `file_url` VARCHAR(500) NOT NULL COMMENT '文件URL',
  `file_size` BIGINT COMMENT '文件大小(字节)',
  `upload_by` BIGINT COMMENT '上传人ID',
  `upload_name` VARCHAR(50) COMMENT '上传人',
  `upload_time` DATETIME NOT NULL COMMENT '上传时间',
  `audit_result` VARCHAR(20) COMMENT '审核结果',
  `audit_opinion` TEXT COMMENT '审核意见',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  KEY `idx_change_id` (`change_id`),
  KEY `idx_file_type` (`file_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='审计文件表';

-- 8. 风险警示表 risk_warning
DROP TABLE IF EXISTS `risk_warning`;
CREATE TABLE `risk_warning` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `warning_code` VARCHAR(50) COMMENT '警示编号',
  `warning_title` VARCHAR(200) NOT NULL COMMENT '警示标题',
  `warning_type` VARCHAR(50) NOT NULL COMMENT '警示类型',
  `warning_level` VARCHAR(20) NOT NULL COMMENT '警示等级',
  `warning_source` VARCHAR(200) COMMENT '警示来源',
  `warning_content` TEXT COMMENT '警示内容',
  `store_id` BIGINT COMMENT '门店ID',
  `store_name` VARCHAR(100) COMMENT '门店名称',
  `release_time` DATETIME NOT NULL COMMENT '发布时间',
  `expire_time` DATETIME COMMENT '过期时间',
  `releaser_id` BIGINT COMMENT '发布人ID',
  `releaser_name` VARCHAR(50) COMMENT '发布人',
  `publish_scope` VARCHAR(50) DEFAULT '全部' COMMENT '发布范围',
  `status` VARCHAR(20) DEFAULT '已发布' COMMENT '状态',
  `read_count` INT DEFAULT 0 COMMENT '阅读数',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_warning_code` (`warning_code`),
  KEY `idx_warning_type` (`warning_type`),
  KEY `idx_warning_level` (`warning_level`),
  KEY `idx_status` (`status`),
  KEY `idx_release_time` (`release_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='风险警示表';

-- 9. 特种设备表 risk_special_equipment
DROP TABLE IF EXISTS `risk_special_equipment`;
CREATE TABLE `risk_special_equipment` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `equipment_code` VARCHAR(50) COMMENT '设备编号',
  `equipment_name` VARCHAR(100) NOT NULL COMMENT '设备名称',
  `equipment_type` VARCHAR(50) NOT NULL COMMENT '设备类型',
  `model` VARCHAR(100) COMMENT '型号',
  `specification` VARCHAR(200) COMMENT '规格',
  `manufacturer` VARCHAR(200) COMMENT '制造商',
  `manufacture_date` DATE COMMENT '出厂日期',
  `purchase_date` DATE COMMENT '采购日期',
  `store_id` BIGINT COMMENT '门店ID',
  `store_name` VARCHAR(100) COMMENT '门店名称',
  `location` VARCHAR(200) COMMENT '位置',
  `photo_list` TEXT COMMENT '设备照片(JSON数组)',
  `install_date` DATE COMMENT '安装日期',
  `use_status` VARCHAR(20) DEFAULT '在用' COMMENT '使用状态',
  `inspection_status` VARCHAR(20) DEFAULT '未检' COMMENT '检验状态',
  `next_inspection_date` DATE COMMENT '下次检验日期',
  `responsible_id` BIGINT COMMENT '负责人ID',
  `responsible_name` VARCHAR(50) COMMENT '负责人',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_equipment_code` (`equipment_code`),
  KEY `idx_equipment_type` (`equipment_type`),
  KEY `idx_use_status` (`use_status`),
  KEY `idx_inspection_status` (`inspection_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='特种设备表';

-- 10. 特种设备维护记录表 risk_equipment_maintenance
DROP TABLE IF EXISTS `risk_equipment_maintenance`;
CREATE TABLE `risk_equipment_maintenance` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `equipment_id` BIGINT NOT NULL COMMENT '设备ID',
  `equipment_code` VARCHAR(50) COMMENT '设备编号',
  `equipment_name` VARCHAR(100) COMMENT '设备名称',
  `maintenance_status` VARCHAR(20) DEFAULT '待维护' COMMENT '维护状态(待维护/维护中/已维护)',
  `plan_start_time` DATETIME COMMENT '预计开始时间',
  `plan_end_time` DATETIME COMMENT '预计结束时间',
  `actual_start_time` DATETIME COMMENT '实际开始时间',
  `actual_end_time` DATETIME COMMENT '实际结束时间',
  `maintainer_name` VARCHAR(50) COMMENT '维护人员',
  `site_name` VARCHAR(50) COMMENT '现场人员',
  `maintenance_content` TEXT COMMENT '维护内容',
  `maintenance_result` TEXT COMMENT '维护结果',
  `photo_list` TEXT COMMENT '维护照片(JSON数组)',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志',
  PRIMARY KEY (`id`),
  KEY `idx_equipment_id` (`equipment_id`),
  KEY `idx_maintenance_status` (`maintenance_status`),
  KEY `idx_plan_start_time` (`plan_start_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='特种设备维护记录表';

-- 11. 舆情推送表 risk_public_opinion
DROP TABLE IF EXISTS `risk_public_opinion`;
CREATE TABLE `risk_public_opinion` (
  `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` VARCHAR(20) DEFAULT '000000' COMMENT '租户编号',
  `opinion_title` VARCHAR(200) NOT NULL COMMENT '舆情标题',
  `source` VARCHAR(100) NOT NULL COMMENT '舆情来源',
  `publish_time` DATETIME NOT NULL COMMENT '舆情原文发布时间',
  `risk_level` VARCHAR(20) NOT NULL COMMENT '风险等级(重大/较大/一般)',
  `responsible_person` VARCHAR(50) COMMENT '负责人',
  `opinion_link` VARCHAR(500) COMMENT '舆情外部链接',
  `opinion_content` TEXT COMMENT '舆情内容',
  `disposal_suggestion` TEXT COMMENT '处置建议',
  `status` VARCHAR(20) DEFAULT '待处理' COMMENT '处置状态(待处理/处理中/已处理)',
  `handle_result` TEXT COMMENT '处理结果',
  `handle_time` DATETIME COMMENT '处理时间',
  `remark` VARCHAR(500) COMMENT '备注',
  `create_dept` BIGINT COMMENT '创建部门',
  `create_by` BIGINT COMMENT '创建者',
  `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_by` BIGINT COMMENT '更新者',
  `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)',
  PRIMARY KEY (`id`),
  KEY `idx_source` (`source`),
  KEY `idx_risk_level` (`risk_level`),
  KEY `idx_status` (`status`),
  KEY `idx_publish_time` (`publish_time`),
  KEY `idx_responsible_person` (`responsible_person`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='舆情推送表';
