-- 制度模块数据库表创建脚本 -- @author wangna -- @date 2025/07/28 -- 制度规范仓库表 CREATE TABLE `regulation` ( `regulation_id` varchar(64) NOT NULL COMMENT '制度ID', `title` varchar(255) NOT NULL COMMENT '制度标题', `content` text COMMENT '制度内容', `regulation_type` varchar(50) DEFAULT NULL COMMENT '制度类型', `status` varchar(20) DEFAULT 'DRAFT' COMMENT '制度状态:DRAFT-草案,PUBLISHED-已发布,ARCHIVED-已归档', `publisher_id` varchar(64) DEFAULT NULL COMMENT '发布人ID', `publisher_name` varchar(100) DEFAULT NULL COMMENT '发布人姓名', `publish_time` datetime DEFAULT NULL COMMENT '发布时间', `effective_time` datetime DEFAULT NULL COMMENT '生效时间', `expire_time` datetime DEFAULT NULL COMMENT '失效时间', `scope` varchar(255) DEFAULT NULL COMMENT '适用范围', `level` varchar(20) DEFAULT 'MEDIUM' COMMENT '制度级别:HIGH-高级,MEDIUM-中级,LOW-低级', `version` varchar(20) DEFAULT '1.0' COMMENT '版本号', `remark` text COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在,1代表删除)', PRIMARY KEY (`regulation_id`), KEY `idx_status` (`status`), KEY `idx_type` (`regulation_type`), KEY `idx_publisher` (`publisher_id`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='制度规范仓库'; -- 制度草案表 CREATE TABLE `regulation_draft` ( `draft_id` varchar(64) NOT NULL COMMENT '草案ID', `title` varchar(255) NOT NULL COMMENT '制度标题', `content` text COMMENT '制度内容', `regulation_type` varchar(50) DEFAULT NULL COMMENT '制度类型', `status` varchar(20) DEFAULT 'DRAFT' COMMENT '草案状态:DRAFT-草稿,REVIEWING-审核中,APPROVED-已通过,REJECTED-已拒绝', `creator_id` varchar(64) DEFAULT NULL COMMENT '创建人ID', `creator_name` varchar(100) DEFAULT NULL COMMENT '创建人姓名', `reviewer_id` varchar(64) DEFAULT NULL COMMENT '审核人ID', `reviewer_name` varchar(100) DEFAULT NULL COMMENT '审核人姓名', `review_time` datetime DEFAULT NULL COMMENT '审核时间', `review_comment` text COMMENT '审核意见', `scope` varchar(255) DEFAULT NULL COMMENT '适用范围', `level` varchar(20) DEFAULT 'MEDIUM' COMMENT '制度级别:HIGH-高级,MEDIUM-中级,LOW-低级', `version` varchar(20) DEFAULT '1.0' COMMENT '版本号', `remark` text COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在,1代表删除)', PRIMARY KEY (`draft_id`), KEY `idx_status` (`status`), KEY `idx_creator` (`creator_id`), KEY `idx_reviewer` (`reviewer_id`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='制度草案'; -- 制度提案表 CREATE TABLE `regulation_proposal` ( `proposal_id` varchar(64) NOT NULL COMMENT '提案ID', `title` varchar(255) NOT NULL COMMENT '提案标题', `content` text COMMENT '提案内容', `proposal_type` varchar(50) DEFAULT NULL COMMENT '提案类型', `status` varchar(20) DEFAULT 'SUBMITTED' COMMENT '提案状态:SUBMITTED-已提交,DISCUSSING-讨论中,APPROVED-已通过,REJECTED-已拒绝,CONVERTED-已转为草案', `proposer_id` varchar(64) DEFAULT NULL COMMENT '提案人ID', `proposer_name` varchar(100) DEFAULT NULL COMMENT '提案人姓名', `proposer_dept` varchar(100) DEFAULT NULL COMMENT '提案人部门', `discussion_group_id` varchar(64) DEFAULT NULL COMMENT '讨论组ID', `discussion_group_name` varchar(100) DEFAULT NULL COMMENT '讨论组名称', `discussion_start_time` datetime DEFAULT NULL COMMENT '讨论开始时间', `discussion_end_time` datetime DEFAULT NULL COMMENT '讨论结束时间', `discussion_status` varchar(20) DEFAULT 'NOT_STARTED' COMMENT '讨论状态:NOT_STARTED-未开始,DISCUSSING-讨论中,FINISHED-已结束', `support_count` int DEFAULT 0 COMMENT '支持人数', `oppose_count` int DEFAULT 0 COMMENT '反对人数', `total_participants` int DEFAULT 0 COMMENT '总参与人数', `reviewer_id` varchar(64) DEFAULT NULL COMMENT '审核人ID', `reviewer_name` varchar(100) DEFAULT NULL COMMENT '审核人姓名', `review_time` datetime DEFAULT NULL COMMENT '审核时间', `review_comment` text COMMENT '审核意见', `converted_draft_id` varchar(64) DEFAULT NULL COMMENT '转为草案ID', `scope` varchar(255) DEFAULT NULL COMMENT '适用范围', `level` varchar(20) DEFAULT 'MEDIUM' COMMENT '制度级别:HIGH-高级,MEDIUM-中级,LOW-低级', `urgency_level` varchar(20) DEFAULT 'MEDIUM' COMMENT '紧急程度:HIGH-高,MEDIUM-中,LOW-低', `remark` text COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在,1代表删除)', PRIMARY KEY (`proposal_id`), KEY `idx_status` (`status`), KEY `idx_proposer` (`proposer_id`), KEY `idx_reviewer` (`reviewer_id`), KEY `idx_discussion_status` (`discussion_status`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='制度提案'; -- 制度确认表 CREATE TABLE `regulation_confirmation` ( `confirmation_id` varchar(64) NOT NULL COMMENT '确认ID', `regulation_id` varchar(64) NOT NULL COMMENT '制度ID', `regulation_title` varchar(255) DEFAULT NULL COMMENT '制度标题', `confirmer_id` varchar(64) NOT NULL COMMENT '确认人ID', `confirmer_name` varchar(100) DEFAULT NULL COMMENT '确认人姓名', `confirmer_dept` varchar(100) DEFAULT NULL COMMENT '确认人部门', `status` varchar(20) DEFAULT 'PENDING' COMMENT '确认状态:PENDING-待确认,CONFIRMED-已确认,DECLINED-已拒绝', `confirm_time` datetime DEFAULT NULL COMMENT '确认时间', `confirm_comment` text COMMENT '确认意见', `read_duration` int DEFAULT 0 COMMENT '阅读时长(秒)', `ip_address` varchar(50) DEFAULT NULL COMMENT 'IP地址', `user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理', `remark` text COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在,1代表删除)', PRIMARY KEY (`confirmation_id`), UNIQUE KEY `uk_confirmer_regulation` (`confirmer_id`, `regulation_id`), KEY `idx_regulation` (`regulation_id`), KEY `idx_confirmer` (`confirmer_id`), KEY `idx_status` (`status`), KEY `idx_confirm_time` (`confirm_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='制度确认'; -- 制度类型表 CREATE TABLE `regulation_type` ( `type_id` varchar(64) NOT NULL COMMENT '类型ID', `type_name` varchar(100) NOT NULL COMMENT '类型名称', `type_code` varchar(50) NOT NULL COMMENT '类型编码', `description` text COMMENT '类型描述', `parent_id` varchar(64) DEFAULT NULL COMMENT '父类型ID', `level` int DEFAULT 1 COMMENT '层级(1-一级,2-二级,3-三级)', `sort_order` int DEFAULT 0 COMMENT '排序号', `is_enabled` char(1) DEFAULT '1' COMMENT '是否启用(0-禁用,1-启用)', `icon` varchar(100) DEFAULT NULL COMMENT '图标', `color` varchar(20) DEFAULT NULL COMMENT '颜色', `remark` text COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在,1代表删除)', PRIMARY KEY (`type_id`), UNIQUE KEY `uk_type_code` (`type_code`), KEY `idx_parent_id` (`parent_id`), KEY `idx_level` (`level`), KEY `idx_sort_order` (`sort_order`), KEY `idx_is_enabled` (`is_enabled`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='制度类型';