From c8be92b7246a07b600db8d1b75cac9b74512f7fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Fri, 23 Oct 2026 14:33:34 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0warmflow=E5=8D=87?= =?UTF-8?q?=E7=BA=A7sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/sql/update/update_6.0.0-6.1.0.sql | 61 ++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/script/sql/update/update_6.0.0-6.1.0.sql b/script/sql/update/update_6.0.0-6.1.0.sql index cd5245472..550133f70 100644 --- a/script/sql/update/update_6.0.0-6.1.0.sql +++ b/script/sql/update/update_6.0.0-6.1.0.sql @@ -1,7 +1,8 @@ -- ============================================================ -- RuoYi-Vue-Plus 6.0.0 → 6.1.0 工作流升级脚本(MySQL) --- 对齐 warm-flow 2.1.0:删除废弃的节点版本列、状态字典改为小写英文编码 +-- 对齐 warm-flow 2.1.0:新增节点/定义配置与事件列、迁移状态编码及事件等待表 -- 只给存量库执行;全新建库直接用 script/sql/ry_workflow.sql,无需本脚本 +-- 请在启动已开启 warm-flow.timer-enabled 的 2.1.0 应用之前,按顺序执行本脚本 -- 执行完到「系统管理 → 缓存管理 → 刷新缓存」刷一次字典缓存,否则前端仍显示旧文案 -- ============================================================ @@ -9,7 +10,57 @@ -- 旧全量脚本里该列是 NOT NULL 且无默认值,引擎写节点会报「doesn't have a default value」 ALTER TABLE `flow_node` DROP COLUMN `version`; --- 2. 任务状态字典改为引擎 TaskStatus 的 7 个码,外加撤回归档留痕的 cancel +-- 2. 补齐 2.1.0 的定义、服务任务、抄送与事件节点配置列 +ALTER TABLE `flow_definition` + ADD COLUMN `def_config` text NULL COMMENT '流程定义配置(自动审批等引擎配置与自定义扩展属性json)' AFTER `ext`; + +ALTER TABLE `flow_node` + ADD COLUMN `node_config` text NULL COMMENT '节点配置(服务任务、事件等引擎节点配置json)' AFTER `ext`, + ADD COLUMN `event_type` varchar(40) NULL COMMENT '事件类型' AFTER `node_config`, + ADD COLUMN `event_name` varchar(100) NULL COMMENT '事件名称(消息事件使用)' AFTER `event_type`, + ADD COLUMN `attached_to_node_code` varchar(100) NULL COMMENT '边界事件附着的任务节点编码' AFTER `event_name`, + ADD COLUMN `interrupting` tinyint(1) NULL COMMENT '边界事件是否中断型' AFTER `attached_to_node_code`; + +ALTER TABLE `flow_his_task` + ADD COLUMN `node_config` text NULL COMMENT '节点配置(服务任务、事件等引擎节点配置json)' AFTER `ext`; + +-- 3. 实例、任务和协作状态改用独立的字符串编码 +ALTER TABLE `flow_instance` + MODIFY COLUMN `flow_status` varchar(20) NOT NULL COMMENT '实例状态(draft waiting termination invalid cancel finish back restart)'; +ALTER TABLE `flow_task` + MODIFY COLUMN `flow_status` varchar(20) NOT NULL COMMENT '任务状态(pending pass auto_pass back invalid take_back copy)'; +ALTER TABLE `flow_his_task` + MODIFY COLUMN `flow_status` varchar(20) NOT NULL COMMENT '任务状态(pending pass auto_pass back invalid take_back copy;撤回归档为 cancel)', + MODIFY COLUMN `cooperate_type` varchar(20) NOT NULL DEFAULT 'none' COMMENT '协作方式(none transfer delegate add_signer remove_signer)'; +ALTER TABLE `flow_user` + MODIFY COLUMN `type` char(1) NOT NULL COMMENT '人员类型(1审批人 2转办人 3委托人 4抄送人)', + MODIFY COLUMN `associated` bigint NOT NULL COMMENT '关联id(待办任务id;抄送人记录为 flow_his_task.id)'; + +-- 旧数字码只在命中时转换,已经使用新编码的数据不会改变 +UPDATE flow_instance SET flow_status = CASE flow_status + WHEN '0' THEN 'draft' WHEN '1' THEN 'waiting' WHEN '4' THEN 'termination' + WHEN '5' THEN 'invalid' WHEN '6' THEN 'cancel' WHEN '7' THEN 'waiting' + WHEN '8' THEN 'finish' WHEN '9' THEN 'back' WHEN '12' THEN 'restart' + WHEN '13' THEN 'draft' END +WHERE flow_status IN ('0', '1', '4', '5', '6', '7', '8', '9', '12', '13'); + +UPDATE flow_task SET flow_status = CASE flow_status + WHEN '1' THEN 'pending' WHEN '2' THEN 'pass' WHEN '8' THEN 'pass' + WHEN '9' THEN 'back' WHEN '10' THEN 'invalid' WHEN '11' THEN 'take_back' END +WHERE flow_status IN ('1', '2', '8', '9', '10', '11'); + +UPDATE flow_his_task SET flow_status = CASE flow_status + WHEN '1' THEN 'pending' WHEN '2' THEN 'pass' WHEN '8' THEN 'pass' + WHEN '9' THEN 'back' WHEN '10' THEN 'invalid' WHEN '11' THEN 'take_back' END +WHERE flow_status IN ('1', '2', '8', '9', '10', '11'); + +UPDATE flow_his_task SET cooperate_type = CASE cooperate_type + WHEN '0' THEN 'none' WHEN '1' THEN 'none' WHEN '2' THEN 'transfer' + WHEN '3' THEN 'delegate' WHEN '4' THEN 'none' WHEN '5' THEN 'none' + WHEN '6' THEN 'add_signer' WHEN '7' THEN 'remove_signer' END +WHERE cooperate_type IN ('0', '1', '2', '3', '4', '5', '6', '7'); + +-- 4. 任务状态字典改为引擎 TaskStatus 的 7 个码,外加撤回归档留痕的 cancel DELETE FROM sys_dict_data WHERE dict_type = 'wf_task_status'; INSERT INTO sys_dict_data VALUES (1761600000000000060, 1, '待审批', 'pending', 'wf_task_status', '', 'primary', 'N', 1761000000000000103, 1761100000000000001, sysdate(), NULL, NULL, '待审批'); INSERT INTO sys_dict_data VALUES (1761600000000000049, 2, '通过', 'pass', 'wf_task_status', '', 'success', 'N', 1761000000000000103, 1761100000000000001, sysdate(), NULL, NULL, '通过'); @@ -29,10 +80,10 @@ INSERT INTO sys_dict_data VALUES (1761600000000000067, 12, '减签', 'remove_sig -- add_signer / remove_signer),timeout 是 flow_event_wait 的状态,都不是任务状态。 -- take_back 目前没有写入方,是留给「拿回」功能的占位,别当冗余删掉。 --- 3. 实例状态字典补 restart(引擎 FlowStatus 有,字典缺) +-- 5. 实例状态字典补 restart(引擎 FlowStatus 有,字典缺) INSERT INTO sys_dict_data VALUES (1761600000000000063, 8, '重启', 'restart', 'wf_business_status', '', 'info', 'N', 1761000000000000103, 1761100000000000001, sysdate(), NULL, NULL, '重启'); --- 4. 事件等待表:定时 / 消息等需要「等待」的事件统一落在此表(与全量脚本一致)。 +-- 6. 事件等待表:定时 / 消息等需要「等待」的事件统一落在此表(与全量脚本一致)。 -- 6.0.0 存量库没有这张表,不建表则定时器与定时任务页面全部不可用 -- 注意:建表后还需在 application.yml 打开 warm-flow.timer-enabled: true,引擎才会扫描本表 CREATE TABLE IF NOT EXISTS `flow_event_wait` @@ -73,7 +124,7 @@ CREATE TABLE IF NOT EXISTS `flow_event_wait` KEY `event_wait_def_node_status` (`definition_id`, `node_code`, `status`) USING BTREE ) ENGINE = InnoDB COMMENT ='事件等待表'; --- 5. 「流程监控」下补「定时任务」菜单 + 查询/手动补发按钮(与 script/sql/ry_workflow.sql 全量脚本一致) +-- 7. 「流程监控」下补「定时任务」菜单 + 查询/手动补发按钮(与 script/sql/ry_workflow.sql 全量脚本一致) -- 先删后插保证可重复执行;重新执行后记得给角色重新勾选按钮权限 DELETE FROM sys_menu WHERE menu_id IN (1761400000000011901, 1761400000000011902, 1761400000000011903); insert into sys_menu values (1761400000000011901, '定时任务', 1761400000000011630, 3, 'timer', 'workflow/timer/index', '', 'N', 'N', 'C', '0', '0', 'workflow:eventWait:list', 'time', '', '', 1761000000000000103, 1761100000000000001, sysdate(), null, null, '定时任务与事件等待监控菜单');