# 本特勒临时运维脚本 ## 入职主部门补偿 `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 或宜搭: ```bash 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 ``` 确认预览结果后,执行所有当前失败明细: ```bash node /Users/malk/server/cur/mjava-ai/mjava-benteler/scripts/retry-onboarding-departments.js --execute --scan-failed ``` 也可以指定一个或多个流程实例,适合精确补偿或重复验收: ```bash node /Users/malk/server/cur/mjava-ai/mjava-benteler/scripts/retry-onboarding-departments.js \ --process-id \ --process-id ``` 在上述命令中增加 `--execute` 才会真正更新。若账户已属于目标主部门,EIAM 更新会跳过,但宜搭结果仍会重新验收和回写,因此脚本可安全重试。 ### 安全边界 - 子表恰好返回 50 行时停止,避免误用被截断的数据覆盖宜搭子表; - 同一账户出现多个目标主部门时停止,不执行任何 EIAM 更新; - EIAM 更新失败时,对应宜搭明细保持或改为失败,不伪造成功; - 输出仅展示遮蔽后的账户标识,不输出手机号、EIAM/Yida 凭据。