| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- -- 审批流程框架数据库表结构
- -- 创建时间:2025-09-06
- -- 1. 审批流程定义表
- DROP TABLE IF EXISTS `approval_workflow_definition`;
- CREATE TABLE `approval_workflow_definition` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `workflow_code` varchar(50) NOT NULL COMMENT '流程代码',
- `workflow_name` varchar(100) NOT NULL COMMENT '流程名称',
- `workflow_type` varchar(50) NOT NULL COMMENT '流程类型(PERSONAL:个人级别,SECTION:科级,GROUP:班组级,SEIZURE_REPORT:查获上报)',
- `description` varchar(500) DEFAULT NULL COMMENT '流程描述',
- `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_workflow_code` (`workflow_code`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批流程定义表';
- -- 2. 审批节点定义表
- DROP TABLE IF EXISTS `approval_node_definition`;
- CREATE TABLE `approval_node_definition` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `workflow_id` bigint(20) NOT NULL COMMENT '流程定义ID',
- `node_code` varchar(50) NOT NULL COMMENT '节点代码',
- `node_name` varchar(100) NOT NULL COMMENT '节点名称',
- `node_type` varchar(50) NOT NULL COMMENT '节点类型(START:开始,APPROVE:审批,NOTIFY:通知,END:结束)',
- `sort_order` int(11) NOT NULL COMMENT '节点顺序',
- `approver_type` varchar(50) DEFAULT NULL COMMENT '审批人类型(USER:指定用户,ROLE:角色,DEPT:部门,GROUP_LEADER:班组长,SECTION_LEADER:科长)',
- `approver_value` varchar(200) DEFAULT NULL COMMENT '审批人值',
- `can_reject` char(1) DEFAULT '0' COMMENT '是否可驳回(0否 1是)',
- `is_required` char(1) DEFAULT '1' COMMENT '是否必须审批(0否 1是)',
- `timeout_hours` int(11) DEFAULT NULL COMMENT '超时小时数',
- `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_workflow_id` (`workflow_id`),
- UNIQUE KEY `uk_workflow_node` (`workflow_id`, `node_code`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批节点定义表';
- -- 3. 审批实例表
- DROP TABLE IF EXISTS `approval_instance`;
- CREATE TABLE `approval_instance` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `instance_no` varchar(50) NOT NULL COMMENT '实例编号',
- `workflow_id` bigint(20) NOT NULL COMMENT '流程定义ID',
- `title` varchar(200) NOT NULL COMMENT '审批标题',
- `business_type` varchar(50) NOT NULL COMMENT '业务类型',
- `business_id` bigint(20) NOT NULL COMMENT '业务ID',
- `business_data` text COMMENT '业务数据(JSON格式)',
- `submitter_id` bigint(20) NOT NULL COMMENT '提交人ID',
- `submitter_name` varchar(50) NOT NULL COMMENT '提交人姓名',
- `submit_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '提交时间',
- `current_node_id` bigint(20) DEFAULT NULL COMMENT '当前节点ID',
- `status` varchar(20) DEFAULT 'RUNNING' COMMENT '实例状态(RUNNING:运行中,COMPLETED:已完成,REJECTED:已驳回,CANCELLED:已取消)',
- `completion_time` datetime DEFAULT NULL COMMENT '完成时间',
- `urgent_level` varchar(20) DEFAULT 'NORMAL' COMMENT '紧急程度(LOW:低,NORMAL:普通,HIGH:高,URGENT:紧急)',
- `form_data` json DEFAULT NULL COMMENT '表单数据',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_instance_no` (`instance_no`),
- KEY `idx_workflow_id` (`workflow_id`),
- KEY `idx_submitter_id` (`submitter_id`),
- KEY `idx_business` (`business_type`, `business_id`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批实例表';
- -- 4. 审批任务表
- DROP TABLE IF EXISTS `approval_task`;
- CREATE TABLE `approval_task` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `task_no` varchar(50) NOT NULL COMMENT '任务编号',
- `instance_id` bigint(20) NOT NULL COMMENT '实例ID',
- `node_id` bigint(20) NOT NULL COMMENT '节点ID',
- `task_name` varchar(100) NOT NULL COMMENT '任务名称',
- `assignee_id` bigint(20) NOT NULL COMMENT '处理人ID',
- `assignee_name` varchar(50) NOT NULL COMMENT '处理人姓名',
- `assign_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '分配时间',
- `status` varchar(20) DEFAULT 'PENDING' COMMENT '任务状态(PENDING:待处理,APPROVED:已同意,REJECTED:已驳回,CANCELLED:已取消)',
- `complete_time` datetime DEFAULT NULL COMMENT '完成时间',
- `comment` text COMMENT '审批意见',
- `form_data` json DEFAULT NULL COMMENT '表单数据',
- `timeout_time` datetime DEFAULT NULL COMMENT '超时时间',
- `is_timeout` char(1) DEFAULT '0' COMMENT '是否超时(0否 1是)',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
- `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_task_no` (`task_no`),
- KEY `idx_instance_id` (`instance_id`),
- KEY `idx_node_id` (`node_id`),
- KEY `idx_assignee_id` (`assignee_id`),
- KEY `idx_status` (`status`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批任务表';
- -- 5. 审批历史表
- DROP TABLE IF EXISTS `approval_history`;
- CREATE TABLE `approval_history` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `instance_id` bigint(20) NOT NULL COMMENT '实例ID',
- `task_id` bigint(20) DEFAULT NULL COMMENT '任务ID',
- `node_id` bigint(20) DEFAULT NULL COMMENT '节点ID',
- `node_name` varchar(100) DEFAULT NULL COMMENT '节点名称',
- `action` varchar(50) NOT NULL COMMENT '操作(SUBMIT:提交,APPROVE:同意,REJECT:驳回,CANCEL:取消,COMPLETE:完成)',
- `operator_id` bigint(20) NOT NULL COMMENT '操作人ID',
- `operator_name` varchar(50) NOT NULL COMMENT '操作人姓名',
- `operation_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
- `comment` text COMMENT '操作意见',
- `form_data` json DEFAULT NULL COMMENT '表单数据',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_instance_id` (`instance_id`),
- KEY `idx_task_id` (`task_id`),
- KEY `idx_operator_id` (`operator_id`),
- KEY `idx_operation_time` (`operation_time`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批历史表';
- -- 6. 审批抄送表
- DROP TABLE IF EXISTS `approval_cc`;
- CREATE TABLE `approval_cc` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
- `instance_id` bigint(20) NOT NULL COMMENT '实例ID',
- `cc_user_id` bigint(20) NOT NULL COMMENT '抄送用户ID',
- `cc_user_name` varchar(50) NOT NULL COMMENT '抄送用户姓名',
- `cc_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '抄送时间',
- `is_read` char(1) DEFAULT '0' COMMENT '是否已读(0否 1是)',
- `read_time` datetime DEFAULT NULL COMMENT '阅读时间',
- `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `remark` varchar(500) DEFAULT NULL COMMENT '备注',
- PRIMARY KEY (`id`),
- KEY `idx_instance_id` (`instance_id`),
- KEY `idx_cc_user_id` (`cc_user_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批抄送表';
- -- 初始化审批流程定义数据
- INSERT INTO `approval_workflow_definition` VALUES
- (1, 'PERSONAL_LEVEL', '个人级别审批流程', 'PERSONAL', '被检查级别为个人,无需审批,发送待办通知', '0', 'admin', NOW(), 'admin', NOW(), '个人级别检查流程'),
- (2, 'SECTION_LEVEL', '科级审批流程', 'SECTION', '被检查级别为科级,需经科长节点审批', '0', 'admin', NOW(), 'admin', NOW(), '科级检查流程'),
- (3, 'GROUP_LEVEL', '班组级审批流程', 'GROUP', '被检查级别为班组级,需班组长处理', '0', 'admin', NOW(), 'admin', NOW(), '班组级检查流程'),
- (4, 'SEIZURE_REPORT_STAFF', '查获上报流程(安检员)', 'SEIZURE_REPORT', '安检员提交的查获上报流程', '0', 'admin', NOW(), 'admin', NOW(), '安检员查获上报流程'),
- (5, 'SEIZURE_REPORT_LEADER', '查获上报流程(班组长)', 'SEIZURE_REPORT', '班组长提交的查获上报流程', '0', 'admin', NOW(), 'admin', NOW(), '班组长查获上报流程');
- -- 初始化审批节点定义数据
- -- 个人级别流程节点
- INSERT INTO `approval_node_definition` VALUES
- (1, 1, 'START', '开始', 'START', 1, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '流程开始'),
- (2, 1, 'NOTIFY', '通知确认', 'NOTIFY', 2, 'USER', NULL, '0', '1', 24, '0', 'admin', NOW(), 'admin', NOW(), '发送待办通知给组员'),
- (3, 1, 'END', '归档', 'END', 3, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '流程结束归档');
- -- 科级流程节点
- INSERT INTO `approval_node_definition` VALUES
- (4, 2, 'START', '开始', 'START', 1, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '流程开始'),
- (5, 2, 'SECTION_LEADER', '科长审批', 'APPROVE', 2, 'SECTION_LEADER', NULL, '1', '1', 48, '0', 'admin', NOW(), 'admin', NOW(), '科长选择整改班组'),
- (6, 2, 'GROUP_LEADER_RECTIFY', '班组长整改', 'APPROVE', 3, 'GROUP_LEADER', NULL, '1', '1', 72, '0', 'admin', NOW(), 'admin', NOW(), '班组长填写整改详情'),
- (7, 2, 'SECTION_REVIEW', '科长复审', 'APPROVE', 4, 'SECTION_LEADER', NULL, '1', '1', 48, '0', 'admin', NOW(), 'admin', NOW(), '科长审批整改结果'),
- (8, 2, 'QUALITY_REVIEW', '质检科审批', 'APPROVE', 5, 'DEPT_SECTION_LEADER', 'quality_inspector', '1', '1', 48, '0', 'admin', NOW(), 'admin', NOW(), '质检科最终审批'),
- (9, 2, 'END', '归档', 'END', 6, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '流程结束归档');
- -- 班组级流程节点
- INSERT INTO `approval_node_definition` VALUES
- (10, 3, 'START', '开始', 'START', 1, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '流程开始'),
- (11, 3, 'SECTION_LEADER', '科长审批', 'APPROVE', 2, 'SECTION_LEADER', NULL, '1', '1', 48, '0', 'admin', NOW(), 'admin', NOW(), '科长审批选择班组'),
- (12, 3, 'GROUP_LEADER_RECTIFY', '班组长整改', 'APPROVE', 3, 'GROUP_LEADER', NULL, '1', '1', 72, '0', 'admin', NOW(), 'admin', NOW(), '班组长填写整改详情'),
- (13, 3, 'SECTION_REVIEW', '科长复审', 'APPROVE', 4, 'SECTION_LEADER', NULL, '1', '1', 48, '0', 'admin', NOW(), 'admin', NOW(), '科长最终审批'),
- (14, 3, 'END', '归档', 'END', 5, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '流程结束归档');
- -- 查获上报流程(安检员)节点
- INSERT INTO `approval_node_definition` VALUES
- (15, 4, 'START', '开始', 'START', 1, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '安检员提交'),
- (16, 4, 'GROUP_LEADER', '班组长审批', 'APPROVE', 2, 'GROUP_LEADER', NULL, '1', '1', 24, '0', 'admin', NOW(), 'admin', NOW(), '班组长审批'),
- (17, 4, 'END', '归档', 'END', 3, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '流程结束归档');
- -- 查获上报流程(班组长)节点
- INSERT INTO `approval_node_definition` VALUES
- (18, 5, 'START', '开始', 'START', 1, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '班组长提交'),
- (19, 5, 'SECTION_LEADER', '科长审批', 'APPROVE', 2, 'SECTION_LEADER', NULL, '1', '1', 48, '0', 'admin', NOW(), 'admin', NOW(), '科长审批'),
- (20, 5, 'END', '归档', 'END', 3, NULL, NULL, '0', '1', NULL, '0', 'admin', NOW(), 'admin', NOW(), '流程结束归档');
|