01-workflow-module.sql 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. /*
  2. 工作流模块数据库结构
  3. 业务域:工作流引擎相关表
  4. 包含表:flow_category, flow_definition, flow_his_task, flow_instance,
  5. flow_node, flow_skip, flow_task, flow_user
  6. 创建时间:2025-01-08
  7. 维护人员:项目开发团队
  8. */
  9. SET NAMES utf8mb4;
  10. SET FOREIGN_KEY_CHECKS = 0;
  11. -- ----------------------------
  12. -- Table structure for flow_category
  13. -- ----------------------------
  14. DROP TABLE IF EXISTS `flow_category`;
  15. CREATE TABLE `flow_category` (
  16. `category_id` bigint(20) NOT NULL COMMENT '流程分类ID',
  17. `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
  18. `parent_id` bigint(20) DEFAULT '0' COMMENT '父流程分类id',
  19. `ancestors` varchar(500) DEFAULT '' COMMENT '祖级列表',
  20. `category_name` varchar(30) NOT NULL COMMENT '流程分类名称',
  21. `order_num` int(4) DEFAULT '0' COMMENT '显示顺序',
  22. `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
  23. `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
  24. `create_by` bigint(20) DEFAULT NULL COMMENT '创建者',
  25. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  26. `update_by` bigint(20) DEFAULT NULL COMMENT '更新者',
  27. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  28. PRIMARY KEY (`category_id`),
  29. KEY `idx_tenant_id` (`tenant_id`),
  30. KEY `idx_parent_id` (`parent_id`),
  31. KEY `idx_del_flag` (`del_flag`)
  32. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程分类';
  33. -- ----------------------------
  34. -- Table structure for flow_definition
  35. -- ----------------------------
  36. DROP TABLE IF EXISTS `flow_definition`;
  37. CREATE TABLE `flow_definition` (
  38. `id` bigint(20) NOT NULL COMMENT '主键id',
  39. `flow_code` varchar(40) NOT NULL COMMENT '流程编码',
  40. `flow_name` varchar(100) NOT NULL COMMENT '流程名称',
  41. `category` varchar(100) DEFAULT NULL COMMENT '流程类别',
  42. `version` varchar(20) NOT NULL COMMENT '流程版本',
  43. `is_publish` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否发布(0未发布 1已发布 9失效)',
  44. `form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
  45. `form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
  46. `activity_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '流程激活状态(0挂起 1激活)',
  47. `listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型',
  48. `listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径',
  49. `ext` varchar(500) DEFAULT NULL COMMENT '业务详情 存业务表对象json字符串',
  50. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  51. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  52. `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  53. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  54. PRIMARY KEY (`id`) USING BTREE,
  55. UNIQUE KEY `uk_flow_code_version` (`flow_code`, `version`, `tenant_id`, `del_flag`),
  56. KEY `idx_tenant_id` (`tenant_id`),
  57. KEY `idx_del_flag` (`del_flag`),
  58. KEY `idx_flow_code` (`flow_code`)
  59. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程定义表';
  60. -- ----------------------------
  61. -- Table structure for flow_his_task
  62. -- ----------------------------
  63. DROP TABLE IF EXISTS `flow_his_task`;
  64. CREATE TABLE `flow_his_task` (
  65. `id` bigint(20) NOT NULL COMMENT '主键id',
  66. `definition_id` bigint(20) NOT NULL COMMENT '对应flow_definition表的id',
  67. `instance_id` bigint(20) NOT NULL COMMENT '对应flow_instance表的id',
  68. `task_id` bigint(20) NOT NULL COMMENT '对应flow_task表的id',
  69. `node_code` varchar(100) DEFAULT NULL COMMENT '开始节点编码',
  70. `node_name` varchar(100) DEFAULT NULL COMMENT '开始节点名称',
  71. `node_type` tinyint(1) DEFAULT NULL COMMENT '开始节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  72. `target_node_code` varchar(200) DEFAULT NULL COMMENT '目标节点编码',
  73. `target_node_name` varchar(200) DEFAULT NULL COMMENT '结束节点名称',
  74. `approver` varchar(40) DEFAULT NULL COMMENT '审批者',
  75. `cooperate_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)',
  76. `collaborator` varchar(40) DEFAULT NULL COMMENT '协作人',
  77. `skip_type` varchar(10) NOT NULL COMMENT '流转类型(PASS通过 REJECT退回 NONE无动作)',
  78. `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
  79. `form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
  80. `form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
  81. `message` varchar(500) DEFAULT NULL COMMENT '审批意见',
  82. `variable` text COMMENT '任务变量',
  83. `ext` varchar(500) DEFAULT NULL COMMENT '业务详情 存业务表对象json字符串',
  84. `create_time` datetime DEFAULT NULL COMMENT '任务开始时间',
  85. `update_time` datetime DEFAULT NULL COMMENT '审批完成时间',
  86. `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  87. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  88. PRIMARY KEY (`id`) USING BTREE,
  89. KEY `idx_definition_id` (`definition_id`),
  90. KEY `idx_instance_id` (`instance_id`),
  91. KEY `idx_task_id` (`task_id`),
  92. KEY `idx_tenant_id` (`tenant_id`),
  93. KEY `idx_del_flag` (`del_flag`)
  94. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='历史任务记录表';
  95. -- ----------------------------
  96. -- Table structure for flow_instance
  97. -- ----------------------------
  98. DROP TABLE IF EXISTS `flow_instance`;
  99. CREATE TABLE `flow_instance` (
  100. `id` bigint(20) NOT NULL COMMENT '主键id',
  101. `definition_id` bigint(20) NOT NULL COMMENT '对应flow_definition表的id',
  102. `business_id` varchar(40) NOT NULL COMMENT '业务id',
  103. `node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  104. `node_code` varchar(40) NOT NULL COMMENT '流程节点编码',
  105. `node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称',
  106. `variable` text COMMENT '任务变量',
  107. `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
  108. `activity_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '流程激活状态(0挂起 1激活)',
  109. `def_json` text COMMENT '流程定义json',
  110. `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  111. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  112. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  113. `ext` varchar(500) DEFAULT NULL COMMENT '扩展字段,预留给业务系统使用',
  114. `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  115. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  116. PRIMARY KEY (`id`) USING BTREE,
  117. KEY `idx_definition_id` (`definition_id`),
  118. KEY `idx_business_id` (`business_id`),
  119. KEY `idx_tenant_id` (`tenant_id`),
  120. KEY `idx_del_flag` (`del_flag`)
  121. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程实例表';
  122. -- ----------------------------
  123. -- Table structure for flow_node
  124. -- ----------------------------
  125. DROP TABLE IF EXISTS `flow_node`;
  126. CREATE TABLE `flow_node` (
  127. `id` bigint(20) NOT NULL COMMENT '主键id',
  128. `node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  129. `definition_id` bigint(20) NOT NULL COMMENT '流程定义id',
  130. `node_code` varchar(100) NOT NULL COMMENT '流程节点编码',
  131. `node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称',
  132. `permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,用逗号隔开)',
  133. `node_ratio` decimal(6,3) DEFAULT NULL COMMENT '流程签署比例值',
  134. `coordinate` varchar(100) DEFAULT NULL COMMENT '坐标',
  135. `any_node_skip` varchar(100) DEFAULT NULL COMMENT '任意结点跳转',
  136. `listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型',
  137. `listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径',
  138. `handler_type` varchar(100) DEFAULT NULL COMMENT '处理器类型',
  139. `handler_path` varchar(400) DEFAULT NULL COMMENT '处理器路径',
  140. `form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
  141. `form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
  142. `version` varchar(20) NOT NULL COMMENT '版本',
  143. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  144. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  145. `ext` text COMMENT '扩展属性',
  146. `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  147. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  148. PRIMARY KEY (`id`) USING BTREE,
  149. KEY `idx_definition_id` (`definition_id`),
  150. KEY `idx_node_code` (`node_code`),
  151. KEY `idx_tenant_id` (`tenant_id`),
  152. KEY `idx_del_flag` (`del_flag`)
  153. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程节点表';
  154. -- ----------------------------
  155. -- Table structure for flow_skip
  156. -- ----------------------------
  157. DROP TABLE IF EXISTS `flow_skip`;
  158. CREATE TABLE `flow_skip` (
  159. `id` bigint(20) NOT NULL COMMENT '主键id',
  160. `definition_id` bigint(20) NOT NULL COMMENT '流程定义id',
  161. `now_node_code` varchar(100) NOT NULL COMMENT '当前流程节点的编码',
  162. `now_node_type` tinyint(1) DEFAULT NULL COMMENT '当前节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  163. `next_node_code` varchar(100) NOT NULL COMMENT '下一个流程节点的编码',
  164. `next_node_type` tinyint(1) DEFAULT NULL COMMENT '下一个节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  165. `skip_name` varchar(100) DEFAULT NULL COMMENT '跳转名称',
  166. `skip_type` varchar(40) DEFAULT NULL COMMENT '跳转类型(PASS审批通过 REJECT退回)',
  167. `skip_condition` varchar(200) DEFAULT NULL COMMENT '跳转条件',
  168. `coordinate` varchar(100) DEFAULT NULL COMMENT '坐标',
  169. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  170. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  171. `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  172. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  173. PRIMARY KEY (`id`) USING BTREE,
  174. KEY `idx_definition_id` (`definition_id`),
  175. KEY `idx_now_node_code` (`now_node_code`),
  176. KEY `idx_next_node_code` (`next_node_code`),
  177. KEY `idx_tenant_id` (`tenant_id`),
  178. KEY `idx_del_flag` (`del_flag`)
  179. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='节点跳转关联表';
  180. -- ----------------------------
  181. -- Table structure for flow_task
  182. -- ----------------------------
  183. DROP TABLE IF EXISTS `flow_task`;
  184. CREATE TABLE `flow_task` (
  185. `id` bigint(20) NOT NULL COMMENT '主键id',
  186. `definition_id` bigint(20) NOT NULL COMMENT '对应flow_definition表的id',
  187. `instance_id` bigint(20) NOT NULL COMMENT '对应flow_instance表的id',
  188. `node_code` varchar(100) NOT NULL COMMENT '节点编码',
  189. `node_name` varchar(100) DEFAULT NULL COMMENT '节点名称',
  190. `node_type` tinyint(1) NOT NULL COMMENT '节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)',
  191. `flow_status` varchar(20) NOT NULL COMMENT '流程状态(0待提交 1审批中 2审批通过 4终止 5作废 6撤销 8已完成 9已退回 10失效 11拿回)',
  192. `form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
  193. `form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
  194. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  195. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  196. `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  197. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  198. PRIMARY KEY (`id`) USING BTREE,
  199. KEY `idx_definition_id` (`definition_id`),
  200. KEY `idx_instance_id` (`instance_id`),
  201. KEY `idx_node_code` (`node_code`),
  202. KEY `idx_tenant_id` (`tenant_id`),
  203. KEY `idx_del_flag` (`del_flag`)
  204. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='待办任务表';
  205. -- ----------------------------
  206. -- Table structure for flow_user
  207. -- ----------------------------
  208. DROP TABLE IF EXISTS `flow_user`;
  209. CREATE TABLE `flow_user` (
  210. `id` bigint(20) NOT NULL COMMENT '主键id',
  211. `type` char(1) NOT NULL COMMENT '人员类型(1待办任务的审批人权限 2待办任务的转办人权限 3待办任务的委托人权限)',
  212. `processed_by` varchar(80) DEFAULT NULL COMMENT '权限人',
  213. `associated` bigint(20) NOT NULL COMMENT '任务表id',
  214. `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  215. `create_by` varchar(80) DEFAULT NULL COMMENT '创建人',
  216. `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  217. `del_flag` char(1) DEFAULT '0' COMMENT '删除标志',
  218. `tenant_id` varchar(40) DEFAULT NULL COMMENT '租户id',
  219. PRIMARY KEY (`id`) USING BTREE,
  220. KEY `idx_processed_type` (`processed_by`,`type`),
  221. KEY `idx_associated` (`associated`) USING BTREE,
  222. KEY `idx_tenant_id` (`tenant_id`),
  223. KEY `idx_del_flag` (`del_flag`)
  224. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流程用户表';
  225. SET FOREIGN_KEY_CHECKS = 1;