znpt-backend/doc/regulation_tables.sql

154 lines
8.8 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 制度模块数据库表创建脚本
-- @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='制度类型';