/* 工作流模块数据库结构 业务域:工作流引擎相关表 包含表:flow_category, flow_definition, flow_his_task, flow_instance, flow_node, flow_skip, flow_task, flow_user 创建时间:2025-01-08 维护人员:项目开发团队 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for flow_category -- ---------------------------- DROP TABLE IF EXISTS `flow_category`; CREATE TABLE `flow_category` ( `category_id` bigint(20) NOT NULL COMMENT '流程分类ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号', `parent_id` bigint(20) DEFAULT '0' COMMENT '父流程分类id', `ancestors` varchar(500) DEFAULT '' COMMENT '祖级列表', `category_name` varchar(30) NOT NULL COMMENT '流程分类名称', `order_num` int(4) DEFAULT '0' COMMENT '显示顺序', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint(20) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`category_id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_parent_id` (`parent_id`), KEY `idx_del_flag` (`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程分类'; -- ---------------------------- -- Table structure for flow_definition -- ---------------------------- DROP TABLE IF EXISTS `flow_definition`; CREATE TABLE `flow_definition` ( `id` bigint(20) NOT NULL COMMENT '主键id', `flow_code` varchar(40) NOT NULL COMMENT '流程编码', `flow_name` varchar(100) NOT NULL COMMENT '流程名称', `category` varchar(100) DEFAULT NULL COMMENT '流程类别', `version` varchar(20) NOT NULL COMMENT '流程版本', `is_publish` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否发布(0未发布 1已发布 9失效)', `form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)', `form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径', `activity_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '流程激活状态(0挂起 1激活)', `listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型', `listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径', `ext` varchar(500) DEFAULT NULL COMMENT '业务详情 存业务表对象json字符串', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_flow_code_version` (`flow_code`, `version`, `tenant_id`, `del_flag`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_del_flag` (`del_flag`), KEY `idx_flow_code` (`flow_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程定义表'; -- ---------------------------- -- Table structure for flow_his_task -- ---------------------------- DROP TABLE IF EXISTS `flow_his_task`; CREATE TABLE `flow_his_task` ( `id` bigint(20) NOT NULL COMMENT '主键id', `definition_id` bigint(20) NOT NULL COMMENT '对应flow_definition表的id', `instance_id` bigint(20) NOT NULL COMMENT '对应flow_instance表的id', `task_id` bigint(20) NOT NULL COMMENT '对应flow_task表的id', `node_code` varchar(100) DEFAULT NULL COMMENT '开始节点编码', `node_name` varchar(100) DEFAULT NULL COMMENT '开始节点名称', `node_type` tinyint(1) DEFAULT NULL COMMENT '开始节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)', `target_node_code` varchar(200) DEFAULT NULL COMMENT '目标节点编码', `target_node_name` varchar(200) DEFAULT NULL COMMENT '结束节点名称', `approver` varchar(40) DEFAULT NULL COMMENT '审批者', `cooperate_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)', `collaborator` varchar(40) DEFAULT NULL COMMENT '协作人', `skip_type` varchar(10) NOT NULL COMMENT '流转类型(PASS通过 REJECT退回 NONE无动作)', `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)', `form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)', `form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径', `message` varchar(500) DEFAULT NULL COMMENT '审批意见', `variable` text COMMENT '任务变量', `ext` varchar(500) DEFAULT NULL COMMENT '业务详情 存业务表对象json字符串', `create_time` datetime DEFAULT NULL COMMENT '任务开始时间', `update_time` datetime DEFAULT NULL COMMENT '审批完成时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, KEY `idx_definition_id` (`definition_id`), KEY `idx_instance_id` (`instance_id`), KEY `idx_task_id` (`task_id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_del_flag` (`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='历史任务记录表'; -- ---------------------------- -- Table structure for flow_instance -- ---------------------------- DROP TABLE IF EXISTS `flow_instance`; CREATE TABLE `flow_instance` ( `id` bigint(20) NOT NULL COMMENT '主键id', `definition_id` bigint(20) NOT NULL COMMENT '对应flow_definition表的id', `business_id` varchar(40) NOT NULL COMMENT '业务id', `node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)', `node_code` varchar(40) NOT NULL COMMENT '流程节点编码', `node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称', `variable` text COMMENT '任务变量', `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)', `activity_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '流程激活状态(0挂起 1激活)', `def_json` text COMMENT '流程定义json', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `ext` varchar(500) DEFAULT NULL COMMENT '扩展字段,预留给业务系统使用', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, KEY `idx_definition_id` (`definition_id`), KEY `idx_business_id` (`business_id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_del_flag` (`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程实例表'; -- ---------------------------- -- Table structure for flow_node -- ---------------------------- DROP TABLE IF EXISTS `flow_node`; CREATE TABLE `flow_node` ( `id` bigint(20) NOT NULL COMMENT '主键id', `node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)', `definition_id` bigint(20) NOT NULL COMMENT '流程定义id', `node_code` varchar(100) NOT NULL COMMENT '流程节点编码', `node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称', `permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,用逗号隔开)', `node_ratio` decimal(6,3) DEFAULT NULL COMMENT '流程签署比例值', `coordinate` varchar(100) DEFAULT NULL COMMENT '坐标', `any_node_skip` varchar(100) DEFAULT NULL COMMENT '任意结点跳转', `listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型', `listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径', `handler_type` varchar(100) DEFAULT NULL COMMENT '处理器类型', `handler_path` varchar(400) DEFAULT NULL COMMENT '处理器路径', `form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)', `form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径', `version` varchar(20) NOT NULL COMMENT '版本', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `ext` text COMMENT '扩展属性', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, KEY `idx_definition_id` (`definition_id`), KEY `idx_node_code` (`node_code`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_del_flag` (`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程节点表'; -- ---------------------------- -- Table structure for flow_skip -- ---------------------------- DROP TABLE IF EXISTS `flow_skip`; CREATE TABLE `flow_skip` ( `id` bigint(20) NOT NULL COMMENT '主键id', `definition_id` bigint(20) NOT NULL COMMENT '流程定义id', `now_node_code` varchar(100) NOT NULL COMMENT '当前流程节点的编码', `now_node_type` tinyint(1) DEFAULT NULL COMMENT '当前节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)', `next_node_code` varchar(100) NOT NULL COMMENT '下一个流程节点的编码', `next_node_type` tinyint(1) DEFAULT NULL COMMENT '下一个节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)', `skip_name` varchar(100) DEFAULT NULL COMMENT '跳转名称', `skip_type` varchar(40) DEFAULT NULL COMMENT '跳转类型(PASS审批通过 REJECT退回)', `skip_condition` varchar(200) DEFAULT NULL COMMENT '跳转条件', `coordinate` varchar(100) DEFAULT NULL COMMENT '坐标', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, KEY `idx_definition_id` (`definition_id`), KEY `idx_now_node_code` (`now_node_code`), KEY `idx_next_node_code` (`next_node_code`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_del_flag` (`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='节点跳转关联表'; -- ---------------------------- -- Table structure for flow_task -- ---------------------------- DROP TABLE IF EXISTS `flow_task`; CREATE TABLE `flow_task` ( `id` bigint(20) NOT NULL COMMENT '主键id', `definition_id` bigint(20) NOT NULL COMMENT '对应flow_definition表的id', `instance_id` bigint(20) NOT NULL COMMENT '对应flow_instance表的id', `node_code` varchar(100) NOT NULL COMMENT '节点编码', `node_name` varchar(100) DEFAULT NULL COMMENT '节点名称', `node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)', `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)', `form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)', `form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, KEY `idx_definition_id` (`definition_id`), KEY `idx_instance_id` (`instance_id`), KEY `idx_node_code` (`node_code`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_del_flag` (`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='待办任务表'; -- ---------------------------- -- Table structure for flow_user -- ---------------------------- DROP TABLE IF EXISTS `flow_user`; CREATE TABLE `flow_user` ( `id` bigint(20) NOT NULL COMMENT '主键id', `type` char(1) NOT NULL COMMENT '人员类型(1待办任务的审批人权限 2待办任务的转办人权限 3待办任务的委托人权限)', `processed_by` varchar(80) DEFAULT NULL COMMENT '权限人', `associated` bigint(20) NOT NULL COMMENT '任务表id', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `create_by` varchar(80) DEFAULT NULL COMMENT '创建人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, KEY `idx_processed_type` (`processed_by`,`type`), KEY `idx_associated` (`associated`) USING BTREE, KEY `idx_tenant_id` (`tenant_id`), KEY `idx_del_flag` (`del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程用户表'; SET FOREIGN_KEY_CHECKS = 1;