malk b42ef4a363 fix(benteler): add onboarding department retry script 1 月之前
..
README.md b42ef4a363 fix(benteler): add onboarding department retry script 1 月之前
retry-onboarding-departments.js b42ef4a363 fix(benteler): add onboarding department retry script 1 月之前

README.md

本特勒临时运维脚本

入职主部门补偿

retry-onboarding-departments.js 用于以下场景:入职账户已在 EIAM 创建,但因宜搭入职单中的 iDaaS 部门错误,主部门未正确同步。

脚本执行流程:

  1. 查询宜搭入职流程的最新人员子表和 iDaaS 部门 ID;
  2. 按手机号精确查询 EIAM 账户,并校验同一账户不存在目标部门冲突;
  3. 幂等调用 setUserPrimaryOrganizationalUnit
  4. 仅在部门更新成功后,将宜搭人员明细、成功/失败统计及失败说明回写;
  5. 重新查询流程数据完成验收。

前置条件

  • 在已登录 OpenYida 的本特勒资料目录执行命令;
  • 本机能免密 SSH 到 root@120.55.113.155
  • 服务器 /home/server/benteler/application-prod.yml 保持可用,脚本只在远端进程内读取现有 EIAM 配置,不输出凭据。

使用方式

默认只预览,不修改 EIAM 或宜搭:

cd '/Users/malk/Desktop/Tech/1. malk/后端/2 one/本特勒/iDaaS 同步'
node /Users/malk/server/cur/mjava-ai/mjava-benteler/scripts/retry-onboarding-departments.js --scan-failed

确认预览结果后,执行所有当前失败明细:

node /Users/malk/server/cur/mjava-ai/mjava-benteler/scripts/retry-onboarding-departments.js --execute --scan-failed

也可以指定一个或多个流程实例,适合精确补偿或重复验收:

node /Users/malk/server/cur/mjava-ai/mjava-benteler/scripts/retry-onboarding-departments.js \
  --process-id <processInstanceId> \
  --process-id <processInstanceId>

在上述命令中增加 --execute 才会真正更新。若账户已属于目标主部门,EIAM 更新会跳过,但宜搭结果仍会重新验收和回写,因此脚本可安全重试。

安全边界

  • 子表恰好返回 50 行时停止,避免误用被截断的数据覆盖宜搭子表;
  • 同一账户出现多个目标主部门时停止,不执行任何 EIAM 更新;
  • EIAM 更新失败时,对应宜搭明细保持或改为失败,不伪造成功;
  • 输出仅展示遮蔽后的账户标识,不输出手机号、EIAM/Yida 凭据。