flow.sql 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. drop table if exists flow_definition;
  2. CREATE TABLE `flow_definition`
  3. (
  4. `id` bigint unsigned NOT NULL COMMENT '主键id',
  5. `flow_code` varchar(40) NOT NULL COMMENT '流程编码',
  6. `flow_name` varchar(100) NOT NULL COMMENT '流程名称',
  7. `version` varchar(20) NOT NULL COMMENT '流程版本',
  8. `is_publish` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否发布(0未发布 1已发布 9失效)',
  9. `from_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
  10. `from_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
  11. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  12. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  13. `del_flag` char(1) DEFAULT NULL COMMENT '删除标志',
  14. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  15. PRIMARY KEY (`id`) USING BTREE,
  16. UNIQUE KEY `flow_code_version` (`flow_code`,`version`) USING BTREE
  17. ) ENGINE=InnoDB COMMENT='流程定义表';
  18. 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);
  19. 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);
  20. 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);
  21. 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);
  22. 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);
  23. 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);
  24. 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);
  25. drop table if exists flow_node;
  26. CREATE TABLE `flow_node`
  27. (
  28. `id` bigint unsigned NOT NULL COMMENT '主键id',
  29. `node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束结点 3互斥网关 4并行网关)',
  30. `definition_id` bigint NOT NULL COMMENT '流程定义id',
  31. `node_code` varchar(100) NOT NULL COMMENT '流程节点编码',
  32. `node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称',
  33. `permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,如role:1,role:2)',
  34. `coordinate` varchar(100) DEFAULT NULL COMMENT '坐标',
  35. `skip_any_node` varchar(100) DEFAULT 'N' COMMENT '是否可以退回任意节点(Y是 N否)',
  36. `listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型',
  37. `listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径',
  38. `version` varchar(20) NOT NULL COMMENT '版本',
  39. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  40. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  41. `del_flag` char(1) DEFAULT NULL COMMENT '删除标志',
  42. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  43. PRIMARY KEY (`id`) USING BTREE,
  44. UNIQUE KEY `info_id_code` (`definition_id`,`node_code`) USING BTREE COMMENT '保证一个流程中node_code是唯一的'
  45. ) ENGINE=InnoDB COMMENT='流程结点表';
  46. drop table if exists flow_skip;
  47. CREATE TABLE `flow_skip`
  48. (
  49. `id` bigint unsigned NOT NULL COMMENT '主键id',
  50. `definition_id` bigint NOT NULL COMMENT '流程定义id',
  51. `now_node_code` varchar(100) NOT NULL COMMENT '当前流程节点的编码',
  52. `now_node_type` tinyint(1) DEFAULT NULL COMMENT '当前节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  53. `next_node_code` varchar(100) NOT NULL COMMENT '下一个流程节点的编码',
  54. `next_node_type` tinyint(1) DEFAULT NULL COMMENT '下一个节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  55. `skip_name` varchar(100) DEFAULT NULL COMMENT '跳转名称',
  56. `skip_type` varchar(40) DEFAULT NULL COMMENT '跳转类型(PASS审批通过 REJECT退回)',
  57. `skip_condition` varchar(200) DEFAULT NULL COMMENT '跳转条件',
  58. `coordinate` varchar(100) DEFAULT NULL COMMENT '坐标',
  59. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  60. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  61. `del_flag` char(1) DEFAULT NULL COMMENT '删除标志',
  62. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  63. PRIMARY KEY (`id`) USING BTREE
  64. ) ENGINE=InnoDB COMMENT='结点跳转关联表';
  65. drop table if exists flow_task;
  66. CREATE TABLE `flow_task`
  67. (
  68. `id` bigint NOT NULL COMMENT '主键id',
  69. `definition_id` bigint NOT NULL COMMENT '对应flow_definition表的id',
  70. `instance_id` bigint NOT NULL COMMENT '对应flow_instance表的id',
  71. `node_code` varchar(100) NOT NULL COMMENT '节点编码',
  72. `node_name` varchar(100) DEFAULT NULL COMMENT '节点名称',
  73. `node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  74. `permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,如role:1,role:2)',
  75. `flow_status` tinyint(1) NOT NULL COMMENT '流程状态(0待提交 1审批中 2 审批通过 8已完成 9已退回 10失效)',
  76. `approver` varchar(40) DEFAULT NULL COMMENT '审批者',
  77. `assignee` varchar(40) DEFAULT NULL COMMENT '转办人',
  78. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  79. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  80. `del_flag` char(1) DEFAULT NULL COMMENT '删除标志',
  81. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  82. PRIMARY KEY (`id`) USING BTREE
  83. ) ENGINE=InnoDB COMMENT='待办任务表';
  84. drop table if exists flow_his_task;
  85. CREATE TABLE `flow_his_task`
  86. (
  87. `id` bigint unsigned NOT NULL COMMENT '主键id',
  88. `definition_id` bigint NOT NULL COMMENT '对应flow_definition表的id',
  89. `instance_id` bigint NOT NULL COMMENT '对应flow_instance表的id',
  90. `node_code` varchar(100) DEFAULT NULL COMMENT '开始节点编码',
  91. `node_name` varchar(100) DEFAULT NULL COMMENT '开始节点名称',
  92. `node_type` tinyint(1) DEFAULT NULL COMMENT '开始节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  93. `target_node_code` varchar(100) DEFAULT NULL COMMENT '目标节点编码',
  94. `target_node_name` varchar(100) DEFAULT NULL COMMENT '结束节点名称',
  95. `approver` varchar(40) DEFAULT NULL COMMENT '审批者',
  96. `permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,如role:1,role:2)',
  97. `flow_status` tinyint(1) NOT NULL COMMENT '流程状态(0待提交 1审批中 2 审批通过 8已完成 9已退回 10失效)',
  98. `message` varchar(500) DEFAULT NULL COMMENT '审批意见',
  99. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  100. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  101. `del_flag` char(1) DEFAULT NULL COMMENT '删除标志',
  102. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  103. PRIMARY KEY (`id`) USING BTREE
  104. ) ENGINE=InnoDB COMMENT='历史任务记录表';
  105. drop table if exists flow_instance;
  106. CREATE TABLE `flow_instance`
  107. (
  108. `id` bigint NOT NULL COMMENT '主键id',
  109. `definition_id` bigint NOT NULL COMMENT '对应flow_definition表的id',
  110. `business_id` varchar(40) NOT NULL COMMENT '业务id',
  111. `node_type` tinyint(1) NOT NULL COMMENT '结点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  112. `node_code` varchar(40) NOT NULL COMMENT '流程节点编码',
  113. `node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称',
  114. `variable` text COMMENT '任务变量',
  115. `flow_status` tinyint(1) NOT NULL COMMENT '流程状态(0待提交 1审批中 2 审批通过 8已完成 9已退回 10失效)',
  116. `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  117. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  118. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  119. `ext` varchar(500) DEFAULT NULL COMMENT '扩展字段',
  120. `del_flag` char(1) DEFAULT NULL COMMENT '删除标志',
  121. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  122. PRIMARY KEY (`id`) USING BTREE
  123. ) ENGINE=InnoDB COMMENT='流程实例表';
  124. -- flow-user 建表语句
  125. CREATE TABLE `flow_user`
  126. (
  127. `id` bigint unsigned NOT NULL COMMENT '主键id',
  128. `type` char(1) NOT NULL COMMENT '人员类型(1代办任务的审批人权限 2代办任务的转办人权限 3流程实例的抄送人权限 4待办任务的委托人权限)',
  129. `processed_by` varchar(80) DEFAULT NULL COMMENT '权限人',
  130. `associated` bigint NOT NULL COMMENT '关联表id',
  131. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  132. `create_by` varchar(80) DEFAULT NULL COMMENT '创建人',
  133. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  134. `del_flag` char(1) DEFAULT NULL COMMENT '删除标志',
  135. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  136. PRIMARY KEY (`id`) USING BTREE,
  137. KEY `user_processed_type` (`processed_by`,`type`)
  138. ) ENGINE=InnoDB COMMENT='流程用户表';;
  139. -- flow_task 历史数据迁移脚本sql
  140. --insert into `flow_user` (id,type,associated,processed_by,create_time,update_time,del_flag,tenant_id)
  141. --SELECT
  142. -- a.id+CONVERT((@rowNum:=@rowNum+1),SIGNED),'1',a.id,
  143. -- substring_index( substring_index( a.permission_flag, ',', b.help_topic_id + 1 ), ',', - 1 ),
  144. -- a.create_time,a.update_time,a.del_flag,a.tenant_id
  145. --FROM (select id,permission_flag,create_time,update_time,del_flag,tenant_id from flow_task) a
  146. --INNER JOIN mysql.help_topic b
  147. -- ON b.help_topic_id < (length( a.permission_flag ) - length(REPLACE ( a.permission_flag, ',', '' )) + 1)
  148. --left join (Select (@rowNum :=0) ) c ON 1=1;
  149. -- 去掉 flow_task 表废弃字段sql
  150. ALTER TABLE `flow_task` DROP COLUMN approver;
  151. ALTER TABLE `flow_task` DROP COLUMN assignee;
  152. ALTER TABLE `flow_task` DROP COLUMN permission_flag;
  153. -- 去掉 flow_his_task 表废弃字段sql
  154. ALTER TABLE `flow_his_task` DROP COLUMN permission_flag;
  155. ALTER TABLE `flow_task` DROP COLUMN assignee;
  156. ALTER TABLE `flow_task` DROP COLUMN permission_flag;
  157. ALTER TABLE `flow_task` DROP COLUMN flow_status;
  158. -- flow_node 增加会签,票签字段
  159. ALTER TABLE `flow_node`
  160. ADD COLUMN `handler_type` VARCHAR(100) NULL DEFAULT NULL COMMENT '处理器类型' AFTER `listener_path`,
  161. ADD COLUMN `handler_path` VARCHAR(400) NULL DEFAULT NULL COMMENT '处理器路径' AFTER `handler_type`,
  162. ADD COLUMN `node_ratio` DECIMAL(6,3) NULL DEFAULT NULL COMMENT '流程签署比例值' AFTER `node_name`;
  163. -- flow_his_task 增加task_id
  164. ALTER TABLE `flow_his_task`
  165. ADD COLUMN `task_id` BIGINT(19) NOT NULL COMMENT '对应flow_task表的id' AFTER `instance_id`,
  166. ADD COLUMN `cooperate_type` tinyint(1) NULL DEFAULT 0 COMMENT '协作方式(1或签 2转办 3委派 4会签 5票签 6加签 7减签)' AFTER `approver`,
  167. ADD COLUMN `collaborator` VARCHAR(40) NULL DEFAULT NULL COMMENT '协作人' AFTER `cooperate_type`;
  168. ALTER TABLE `flow_definition` DROP INDEX `flow_code_version`;
  169. ALTER TABLE `flow_node` DROP INDEX `info_id_code`;