-- 制度模块数据库表创建脚本 -- @author wangna -- @date 2025/07/28 -- 制度类型表 CREATE TABLE `regulation_type` ( `type_id` varchar(64) NOT NULL COMMENT '类型ID', `type_name` varchar(100) NOT NULL COMMENT '类型名称', `sort_order` int DEFAULT 0 COMMENT '排序顺序', `is_enabled` char(1) DEFAULT '1' COMMENT '是否启用(1-启用,0-禁用)', `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_name` (`type_name`), KEY `idx_sort_order` (`sort_order`), KEY `idx_is_enabled` (`is_enabled`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='制度类型'; -- 插入制度类型测试数据 INSERT INTO `regulation_type` (`type_id`, `type_name`, `sort_order`, `is_enabled`, `remark`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES ('type_001', '人事制度', 1, '1', '人力资源管理相关制度', 'admin', '2024-01-01 10:00:00', 'admin', '2024-01-01 10:00:00', '0'), ('type_002', '财务制度', 2, '1', '财务管理相关制度', 'admin', '2024-01-01 10:00:00', 'admin', '2024-01-01 10:00:00', '0'), ('type_003', '安全制度', 3, '1', '安全管理相关制度', 'admin', '2024-01-01 10:00:00', 'admin', '2024-01-01 10:00:00', '0'), ('type_004', '设备制度', 4, '1', '设备管理相关制度', 'admin', '2024-01-01 10:00:00', 'admin', '2024-01-01 10:00:00', '0'), ('type_005', '行政制度', 5, '1', '行政管理相关制度', 'admin', '2024-01-01 10:00:00', 'admin', '2024-01-01 10:00:00', '0'); -- 制度规范仓库表 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', `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 'CONFIRMED' COMMENT '确认状态:CONFIRMED-已确认', `confirm_time` datetime DEFAULT NULL 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='制度确认';