OA 导入自动化操作说明书
你只做一件事:丢最新的 OA 用户清单到 00-Inbox/,说「导入知识库」。剩下 90% 的流程我自动闭环。
1. 你的交付物
| 项目 |
内容 |
| 文件 |
KUBE-OA 导出的最新用户清单(.xlsx 或 .csv) |
| 必含列 |
员工号 / 姓名 / 事业部 / 公司 / 部门 / 职位 / 上级员工号 |
| 去哪 |
00-Inbox/ |
| 触发词 |
「导入知识库」 |
2. 全自动闭环流程
第 1 段 — 数据匹配与增量更新(✅ 全自动)
graph TD
A[新 OA 清单入 Inbox] --> B{按员工号匹配}
B -->|命中| C[逐列比对六列OA字段]
C -->|变了| D[写入新值]
C -->|没变| E[跳过]
B -->|新增员工号| F[插入新行·标记「新导入」]
B -->|旧名单有·新名单无| G[状态→「离职」·保留历史]
D --> H[层级重新计算]
F --> H
H --> I[IT规范名称/A2审批角色不动]
I --> J[输出差异报告]
逐列比对规则:
| 动作 |
策略 |
说明 |
| 已有员工(员工号匹配成功) |
逐列比对,变了才写 |
姓名/事业部/公司/部门/职位/上级 → 和新 OA 差异写入 |
| IT规范名称 / A2审批角色 |
不动 |
从对照表自动匹配,不因 OA 数据变动而改写 |
| 层级 |
重新计算 |
根据上级员工号刷新层级树 |
| 新增员工 |
插入新行 |
标记「新导入」,自动参与对照表角色匹配 |
| 员工消失 |
移出活跃区,标注离职日期 |
核心管理层/职能线走 🔴🟡 在位检测;其他静默处理 |
| 历史数据 |
保留 |
不删行,新增 状态 列标记「在职」/「离职」 |
第 2 段 — 对照表联动更新(✅ 全自动)
| 步骤 |
自动处理 |
| 离职人的 A2 角色「当前在位人」→ 置为「空缺」 |
自动遍历对照表,清除该离职人占的角色位 |
| 复职合并检测 |
姓名+员工号双匹配历史离职记录 → 命中则合并还原为「在职」,保留历史轨迹 |
第 3 段 — 在位检测与差异报告(⚠️ 需要你确认)
每次导入完成后,你收到这样一份报告:
导入 OA 名单 2026-06-19(635 人 → 642 人)
┌────────────────────────────────────────────────────────────┐
│ 🔴 核心管理层:1 人变动 │
│ [胡俊贤] 疑似离职(法务总监角色) │
│ │
│ 🟡 职能线:2 人变动 │
│ [张三] 疑似离职(采购经理角色) │
│ [李四] 疑似离职(财务经理角色) │
│ │
│ 🟢 其他员工:+8 新入, -1 离职(已静默更新) │
│ │
│ ⚠️ 空缺角色:2 个 A2 角色当前无在位人 │
│ · 法务总监(原:胡俊贤) │
│ · 采购经理(原:张三) │
│ │
│ ⚠️ 孤立员工号:1 个 │
│ · 赵六的上级员工号 20100350 指向已离职人员 │
│ │
│ 映射表数据:3 行 OA 字段变动(部门调整/职位升迁) │
└────────────────────────────────────────────────────────────┘
你需要回复的只有 2-3 句:
| # |
我报告的 |
你回复 |
| A |
🔴 胡俊贤疑似离职 |
「对,离职了」或「还在,OA 数据延迟」 |
| B |
🟡 张三/李四疑似离职 |
同上 |
| C |
⚠️ 法务总监/采购经理空缺 |
「王五接任法务总监」或「暂不安排」 |
| D |
⚠️ 孤立员工号 |
「OA 数据没错,赵六的经理确实离职了正在找人接」或「OA 数据有误,我改一下」 |
第 4 段 — 全盘一致性校验(✅ 全自动)
| 校验项 |
检测内容 |
结果 |
| 空缺角色检测 |
遍历对照表「当前在位人」是否还有「空缺」状态 |
检测通过→静默 / 仍有空缺→继续报告 |
| 孤立员工号检测 |
遍历在职人员上级员工号,是否指向活跃区外 |
出报告→你确认后我改或标记异常 |
| 在位人全量校验 |
所有 A2 角色都有人在岗? |
自动过 |
| 追加变动记录 |
写入 entities/人员变动记录.md |
自动 |
| 更新 log.md |
记录本次导入 + 差异摘要 |
自动 |
3. 两表先后关系与约束
岗位名称对照表(~232 行,A2 角色定义层)
↓ 定义了 A2 审批角色和 IT规范名称的标准写法
↓ 定义了每个角色「当前在位人」
关键岗位权限映射表(~635 行,在职人员实例层)
↓ 用对照表的 A2 角色标准 → 匹配到每个具体人
核心原则:增量更新,永不全量覆盖
岗位名称对照表更新规则
| 列 |
更新策略 |
说明 |
| IT 规范名称 |
不动 |
手动映射,OA 数据不碰这里 |
| 各来源写法列(A2/OA/SOP/组织架构) |
不动 |
只有对应来源导入/手动确认时才动 |
| 当前在位人 |
增量更新 |
逐角色匹配员工号,人和上次一样就跳过,变了才写 |
| 新增角色 |
手动确认后插入 |
你明确告知「新增角色」才写 |
关键岗位权限映射表更新规则
| 列/动作 |
策略 |
说明 |
| OA 来源列(姓名/事业部/公司/部门/职位/上级) |
逐列比对,变了才写 |
六列均来自 OA 数据源 |
| IT规范名称 / A2审批角色 |
不动 |
从对照表自动匹配,不由 OA 数据改写 |
| 层级 |
重新计算 |
根据上级员工号刷新层级树 |
| 新增员工(员工号新出现) |
插入新行 |
标记「新导入」,自动参与对照表角色匹配 |
| 员工消失(不在新 OA 清单) |
状态→「离职」 |
核心层/职能线走在位检测;其他静默 |
| 历史数据 |
保留 |
不删行,状态列区分「在职」/「离职」 |
4. 离职员工排除校验与补偿规则
标注为离职的员工,不参与任何在职交叉校验(在位检测、审批链完整性检查、A2 角色匹配验证等),避免假阳性/假阴性。
三条配套补偿校验
| # |
问题 |
补偿校验 |
触发时机 |
| 1 |
A2 角色「在位空缺」被掩盖 — 离职人清掉后无新人补位 |
空缺角色检测:遍历对照表,检查「当前在位人」是否为「空缺」→ 输出清单等你确认接任 |
每次导入完成 + 全盘校验 |
| 2 |
在职员工的上级指向已离职人 — 层级树断裂 |
孤立员工号检测:遍历映射表所有在职员工的「上级员工号」,验证该员工号在活跃区中存在 |
每次导入完成后强制触发 |
| 3 |
离职又复职产生重复记录 — 三个离职七月回来,库里两个张三 |
复职合并检测:姓名+员工号双匹配历史离职记录 → 匹配成功则恢复「复职」,合并历史轨迹 |
每次导入的匹配阶段 |
标记离职的完整流程
标记离职 → ① 对照表「当前在位人」置为「空缺」
→ ② 映射表该人行状态列 → 「离职」,保留历史
→ ③ 孤立员工号检测(在职员工的上司引用)
→ ④ 空缺角色检测(A2 角色无在位人)
→ ⑤ 输出离职影响报告
复职流程
导入新 OA 名单 → 姓名+员工号双匹配历史离职记录
├ 匹配成功 → 恢复为「复职」,状态改回「在职」,合并历史
└ 匹配失败 → 正常「新导入」新增行
5. 需要你介入的点(全量清单)
| 场景 |
触发条件 |
需要你做什么 |
频率 |
| 🔴 核心管理层变动 |
该角色人员不在新 OA 清单 |
确认「离职」或「数据延迟」 |
每次导入(极少出现) |
| 🟡 职能线变动 |
该角色人员不在新 OA 清单 |
确认「离职」或「数据延迟」 |
每次导入(月均 1-2 次) |
| ⚠️ 空缺角色 |
对照表「当前在位人」=「空缺」 |
说「XX 接任」或「暂不安排」 |
有人离职时出现 |
| ⚠️ 孤立员工号 |
在职人员的上司指向已离职员工号 |
确认 OA 数据是否有误 |
有人离职时可能出现 |
| ❌ 数据异常 |
OA 数据冲突/脏数据(非常规) |
暂停导入,你说怎么处理 |
极低概率 |
除此之外全部自动化,不需要你操心。
6. 差异报告模板(交付物标准)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OA 导入完成报告
文件:KUBE-OA_UserList_YYYY-MM-DD
版本:v20260619
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
人员概况
────────
导入前:635 人
导入后:642 人
净变化:+7
🔴 核心管理层变动(需确认)
──────────────────────────
· [姓名] 不在新 OA 名单 → 疑似离职(角色:XXX)
🟡 职能线变动(需确认)
──────────────────────
· [姓名] 不在新 OA 名单 → 疑似离职(角色:XXX)
🟢 其他员工变动(静默处理)
─────────────────────────
· +8 新入职
· -1 离职
⚠️ 空缺角色(需安排接任)
─────────────────────────
· [A2 角色] — 当前在位人:空缺(原:XXX)
⚠️ 孤立员工号(需确认)
───────────────────────
· [在职员工] 的上级员工号 [员工号] 指向已离职人员
映射表更新摘要
──────────────
· 3 行 OA 字段变动(部门/职位升迁)
· 0 行复职合并
· 全盘校验通过 ✅
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━