Просмотр исходного кода

chore(s8): rebind S1 exception flow to handler role

- Create role ROLE_S1_EXCEPTION_HANDLER (S1异常处理员) and account s1_exception_handler.
- Bind handler account to the role (password = system sys_password, SM2-encrypted, no plaintext; change before go-live).
- Rebind TB001 EXCEPTION_REPORT "异常提报" node approverIds from sys_admin(1300000000101) to the handler role.
- Idempotent migration (NOT EXISTS guards + unique-substring FlowJson REPLACE).
- Keep existing running instances/tasks unchanged (FlowJsonSnapshot only affects new instances; exception 391 tasks untouched).
- Do not change S8 rules, scheduler, exceptions, notification_log, or DepartmentMaster; sys_admin/Demo01/Demo02 retained.

chore: bump version server 1.0.193
YY968XX 1 день назад
Родитель
Сommit
a63c26d144

+ 6 - 3
server/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj

@@ -11,9 +11,9 @@
     <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
     <Copyright>Admin.NET</Copyright>
     <Description>Admin.NET 通用权限开发平台</Description>
-    <AssemblyVersion>1.0.192</AssemblyVersion>
-    <FileVersion>1.0.192</FileVersion>
-    <Version>1.0.192</Version>
+    <AssemblyVersion>1.0.193</AssemblyVersion>
+    <FileVersion>1.0.193</FileVersion>
+    <Version>1.0.193</Version>
   </PropertyGroup>
 
   <ItemGroup>
@@ -172,6 +172,9 @@
     <None Update="UpdateScripts\1.0.190.sql">
       <CopyToOutputDirectory>Always</CopyToOutputDirectory>
     </None>
+    <None Update="UpdateScripts\1.0.193.sql">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
 
   <ItemGroup>

+ 44 - 0
server/Admin.NET.Web.Entry/UpdateScripts/1.0.193.sql

@@ -0,0 +1,44 @@
+-- =============================================================================
+-- 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';