1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-- =====================================================================
-- 修复 ACT_RE_MODEL.REV_ 为 NULL 导致流程模型保存报 500「系统异常」
--
-- 现象:
--   流程模型 → 修改 → 保存 / 发布,报「操作流程失败,原因:你不是该流程(xxx)的管理员」,
--   或保存时 500「系统异常」(日志为 FlowableOptimisticLockingException)。
--
-- 根因:
--   1) managerUserIds 为空(NULL / [])时,后端 validateModelManager 任何人都校验不过,
--      模型彻底变成「无主」,谁都无法修改(死锁)→ 由后端代码放宽为「超级管理员始终放行」。
--   2) ACT_RE_MODEL.REV_ 是 Flowable 的乐观锁版本列,为 NULL 时
--      UPDATE ... WHERE REV_ = NULL 永远匹配不到,抛乐观锁异常 → 需要把 NULL 补成 1。
--
-- 影响范围(修复前实测):
--   北方科技 mom-bfkj:21 个模型中 14 个 REV_ 为 NULL
--   蓝羽纸业 mom-lyzy:24 个模型中 14 个 REV_ 为 NULL
--
-- 执行本脚本的库:mom-bfkj、mom-lyzy(两家都要执行)
-- =====================================================================
 
-- 修复乐观锁版本号为 NULL 的记录
UPDATE ACT_RE_MODEL SET REV_ = 1 WHERE REV_ IS NULL;
 
-- 验证:不应再出现 NULL
SELECT ifnull(cast(REV_ as char), '<NULL>') AS REV, COUNT(*) AS 条数
FROM ACT_RE_MODEL
GROUP BY REV_
ORDER BY REV_;