-- ============================================================================= -- S8-S1-EXCEPTION-FLOW-ROLE-REBIND-1 -- 目的:为 S1 产销协同/订单交付异常建立真实待办接收角色与账号,并把 -- TB001 / EXCEPTION_REPORT「异常提报」节点 approverIds 从 sys_admin(1300000000101) -- 改绑到 ROLE_S1_EXCEPTION_HANDLER(1329908000150)。 -- 安全:全幂等(NOT EXISTS 守卫 + FlowJson 唯一子串 REPLACE); -- 不删 sys_admin / Demo01 / Demo02;不动历史 ApprovalFlowInstance / ApprovalFlowTask -- (StartFlow 用 FlowJsonSnapshot,改定义只影响之后新发起的实例,异常 391 既有 2 待办不变)。 -- 密码:sys_password(=系统默认密码) 的 SM2 密文(与 App.json 内 committed 公私钥一致,跨环境可解); -- 绝不写明文。账号默认密码=系统 sys_password,业务上线前必须修改。 -- 组织/岗位:OrgId=运营中心(789819155853381)、PosId=部门经理(1300000000106),均为现有有效值。 -- ============================================================================= -- 1) 新建角色 ROLE_S1_EXCEPTION_HANDLER / S1异常处理员(幂等) INSERT INTO SysRole (Id, Name, Code, OrderNo, DataScope, Remark, Status, TenantId, CreateTime) SELECT 1329908000150, 'S1异常处理员', 'ROLE_S1_EXCEPTION_HANDLER', 800, 4, 'S8 S1 异常待办承接角色(S8-S1-EXCEPTION-FLOW-ROLE-REBIND-1)', 1, 1300000000001, '2026-06-22 00:00:00' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM SysRole WHERE Id = 1329908000150 OR Code = 'ROLE_S1_EXCEPTION_HANDLER'); -- 2) 新建账号 s1_exception_handler / S1异常处理员(密码=sys_password 的 SM2 密文;幂等) INSERT INTO SysUser (Id, Account, Password, RealName, NickName, Sex, Age, CardType, CultureLevel, OrderNo, Status, AccountType, PosId, OrgId, LangCode, TenantId, Remark, CreateTime) SELECT 1329908000151, 's1_exception_handler', '0479c50cccb95b65f1f9429a5a8f771c0774b4b9061418e15704f92dd3c2fc2a52d67865d2f869ab672110bc5969529cc5b7e8c67fd6b9b28de6a238021ddf8e89cf99482ac696fcc21110fa23a5d00390d8f5e466877240c3fd94a30334114eb5cc0761f4a1706be52bd83f3229', 'S1异常处理员', 'S1异常处理员', 0, 0, 0, 0, 100, 1, 777, 1300000000106, 789819155853381, 'zh-CN', 1300000000001, 'S8 S1 异常待办接收账号(S8-S1-EXCEPTION-FLOW-ROLE-REBIND-1);默认密码=系统 sys_password,上线前必须修改', '2026-06-22 00:00:00' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM SysUser WHERE Id = 1329908000151 OR Account = 's1_exception_handler'); -- 3) 绑定 账号 → 角色(幂等) INSERT INTO SysUserRole (Id, UserId, RoleId) SELECT 1329908000152, 1329908000151, 1329908000150 FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM SysUserRole WHERE UserId = 1329908000151 AND RoleId = 1329908000150); -- 4) TB001「异常提报」节点改绑:approverIds 1300000000101→1329908000150;approverNames 系统管理员→S1异常处理员 -- 唯一子串 REPLACE:第二次执行时原串已不存在 → 自然 no-op(幂等)。approverType 保持 Role,multiApproveMode 不变。 UPDATE ApprovalFlow SET FlowJson = REPLACE( REPLACE(FlowJson, '"approverIds":"1300000000101"', '"approverIds":"1329908000150"'), '"approverNames":"系统管理员"', '"approverNames":"S1异常处理员"') WHERE Id = 799217842180165 AND Code = 'TB001' AND BizType = 'EXCEPTION_REPORT';