drop table if exists flow_definition; CREATE TABLE `flow_definition` ( `id` bigint unsigned NOT NULL COMMENT '主键id', `flow_code` varchar(40) NOT NULL COMMENT '流程编码', `flow_name` varchar(100) NOT NULL COMMENT '流程名称', `version` varchar(20) NOT NULL COMMENT '流程版本', `is_publish` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否发布(0未发布 1已发布 9失效)', `from_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)', `from_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT NULL COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `flow_code_version` (`flow_code`,`version`) USING BTREE ) ENGINE=InnoDB COMMENT='流程定义表'; INSERT INTO flow_definition VALUES (1, 'Flow-001', '设备录入审核', '1.0.0', 0, 'N', null, '2024-05-30 20:03:07', '2024-05-30 20:05:01', null, null); INSERT INTO flow_definition VALUES (2, 'Flow-002', '核心物料清单审核', '1.0.0', 0, 'N', null, '2024-05-30 20:03:06', '2024-05-30 20:05:01', null, null); INSERT INTO flow_definition VALUES (3, 'Flow-003', '验收单审核', '1.0.0', 0, 'N', null, '2024-05-30 20:03:05', '2024-05-30 20:05:01', null, null); INSERT INTO flow_definition VALUES (4, 'Flow-004', '残件信息审核', '1.0.0', 0, 'N', null, '2024-05-30 20:03:04', '2024-05-30 20:05:01', null, null); INSERT INTO flow_definition VALUES (5, 'Flow-005', '变更申请审核', '1.0.0', 0, 'N', null, '2024-05-27 16:50:03', '2024-05-30 12:54:29', null, null); INSERT INTO flow_definition VALUES (6, 'Flow-006', 'ECO验证审核', '1.0.0', 0, 'N', null, '2024-05-27 16:50:02', '2024-05-30 20:05:01', null, null); INSERT INTO flow_definition VALUES (7, 'Flow-007', 'DEMO申请审核', '1.0.0', 0, 'N', null, '2024-05-27 16:50:01', '2024-05-30 20:05:01', null, null); drop table if exists flow_node; CREATE TABLE `flow_node` ( `id` bigint unsigned NOT NULL COMMENT '主键id', `node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束结点 3互斥网关 4并行网关)', `definition_id` bigint 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 '权限标识(权限类型:权限标识,可以多个,如role:1,role:2)', `coordinate` varchar(100) DEFAULT NULL COMMENT '坐标', `skip_any_node` varchar(100) DEFAULT 'N' COMMENT '是否可以退回任意节点(Y是 N否)', `listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型', `listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径', `version` varchar(20) NOT NULL COMMENT '版本', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT NULL COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `info_id_code` (`definition_id`,`node_code`) USING BTREE COMMENT '保证一个流程中node_code是唯一的' ) ENGINE=InnoDB COMMENT='流程结点表'; drop table if exists flow_skip; CREATE TABLE `flow_skip` ( `id` bigint unsigned NOT NULL COMMENT '主键id', `definition_id` bigint 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 NULL COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB COMMENT='结点跳转关联表'; drop table if exists flow_task; CREATE TABLE `flow_task` ( `id` bigint NOT NULL COMMENT '主键id', `definition_id` bigint NOT NULL COMMENT '对应flow_definition表的id', `instance_id` bigint 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并行网关)', `permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,如role:1,role:2)', `flow_status` tinyint(1) NOT NULL COMMENT '流程状态(0待提交 1审批中 2 审批通过 8已完成 9已退回 10失效)', `approver` varchar(40) DEFAULT NULL COMMENT '审批者', `assignee` varchar(40) DEFAULT NULL COMMENT '转办人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT NULL COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB COMMENT='待办任务表'; drop table if exists flow_his_task; CREATE TABLE `flow_his_task` ( `id` bigint unsigned NOT NULL COMMENT '主键id', `definition_id` bigint NOT NULL COMMENT '对应flow_definition表的id', `instance_id` bigint NOT NULL COMMENT '对应flow_instance表的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(100) DEFAULT NULL COMMENT '目标节点编码', `target_node_name` varchar(100) DEFAULT NULL COMMENT '结束节点名称', `approver` varchar(40) DEFAULT NULL COMMENT '审批者', `permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,如role:1,role:2)', `flow_status` tinyint(1) NOT NULL COMMENT '流程状态(0待提交 1审批中 2 审批通过 8已完成 9已退回 10失效)', `message` varchar(500) DEFAULT NULL COMMENT '审批意见', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT NULL COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB COMMENT='历史任务记录表'; drop table if exists flow_instance; CREATE TABLE `flow_instance` ( `id` bigint NOT NULL COMMENT '主键id', `definition_id` bigint 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` tinyint(1) NOT NULL COMMENT '流程状态(0待提交 1审批中 2 审批通过 8已完成 9已退回 10失效)', `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 NULL COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB COMMENT='流程实例表'; -- flow-user 建表语句 CREATE TABLE `flow_user` ( `id` bigint unsigned NOT NULL COMMENT '主键id', `type` char(1) NOT NULL COMMENT '人员类型(1代办任务的审批人权限 2代办任务的转办人权限 3流程实例的抄送人权限 4待办任务的委托人权限)', `processed_by` varchar(80) DEFAULT NULL COMMENT '权限人', `associated` bigint 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 NULL COMMENT '删除标志', `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id', PRIMARY KEY (`id`) USING BTREE, KEY `user_processed_type` (`processed_by`,`type`) ) ENGINE=InnoDB COMMENT='流程用户表';; -- flow_task 历史数据迁移脚本sql --insert into `flow_user` (id,type,associated,processed_by,create_time,update_time,del_flag,tenant_id) --SELECT -- a.id+CONVERT((@rowNum:=@rowNum+1),SIGNED),'1',a.id, -- substring_index( substring_index( a.permission_flag, ',', b.help_topic_id + 1 ), ',', - 1 ), -- a.create_time,a.update_time,a.del_flag,a.tenant_id --FROM (select id,permission_flag,create_time,update_time,del_flag,tenant_id from flow_task) a --INNER JOIN mysql.help_topic b -- ON b.help_topic_id < (length( a.permission_flag ) - length(REPLACE ( a.permission_flag, ',', '' )) + 1) --left join (Select (@rowNum :=0) ) c ON 1=1; -- 去掉 flow_task 表废弃字段sql ALTER TABLE `flow_task` DROP COLUMN approver; ALTER TABLE `flow_task` DROP COLUMN assignee; ALTER TABLE `flow_task` DROP COLUMN permission_flag; -- 去掉 flow_his_task 表废弃字段sql ALTER TABLE `flow_his_task` DROP COLUMN permission_flag; ALTER TABLE `flow_task` DROP COLUMN assignee; ALTER TABLE `flow_task` DROP COLUMN permission_flag; ALTER TABLE `flow_task` DROP COLUMN flow_status; -- flow_node 增加会签,票签字段 ALTER TABLE `flow_node` ADD COLUMN `handler_type` VARCHAR(100) NULL DEFAULT NULL COMMENT '处理器类型' AFTER `listener_path`, ADD COLUMN `handler_path` VARCHAR(400) NULL DEFAULT NULL COMMENT '处理器路径' AFTER `handler_type`, ADD COLUMN `node_ratio` DECIMAL(6,3) NULL DEFAULT NULL COMMENT '流程签署比例值' AFTER `node_name`; -- flow_his_task 增加task_id ALTER TABLE `flow_his_task` ADD COLUMN `task_id` BIGINT(19) NOT NULL COMMENT '对应flow_task表的id' AFTER `instance_id`, ADD COLUMN `cooperate_type` tinyint(1) NULL DEFAULT 0 COMMENT '协作方式(1或签 2转办 3委派 4会签 5票签 6加签 7减签)' AFTER `approver`, ADD COLUMN `collaborator` VARCHAR(40) NULL DEFAULT NULL COMMENT '协作人' AFTER `cooperate_type`; ALTER TABLE `flow_definition` DROP INDEX `flow_code_version`; ALTER TABLE `flow_node` DROP INDEX `info_id_code`;