文件
hyb-oa/issues/2026-05-18_18-43-19-wecom-hr-master-sync-v1.csv

7.9 KiB

1IDTitleDescriptionAcceptanceTest_MethodToolsDev_StatusReview1_StatusRegression_StatusFilesDependenciesNotes
2WHMS-0合同建档建立 WECOM-HR-MASTER-SYNC-V1 执行合同,锁定本轮为企业微信/人事助手只读主数据同步到 OA;不做考勤/审批镜像、审批回调、恢复回写、RuleOps、HR 写企微接口、采购/合同/财务迁移。1) CSV 校验通过;2) 范围限定为 HR 主数据读取、dry-run、apply、同步记录、管理入口、QA runner、文档和 skill 回写;3) 新增 feature flag 默认 force_off;4) 结论不得误写为考勤/审批镜像已完成。受影响流程:WCPC GO_TO_HR_MASTER_SYNC -> WHMS 合同 -> 后端/前端/QA/文档实现;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_18-43-19-wecom-hr-master-sync-v1.csv。python3|manualDONEDONEDONEissues/2026-05-18_18-43-19-wecom-hr-master-sync-v1.csv[]回滚路径:删除本 CSV 或回退 WHMS 相关提交;不涉及生产配置或部署。
3WHMS-1企微主数据读取服务新增企微 HR 主数据读取服务,使用通讯录成员列表和人事助手 hr/get_staff_info 读取花名册详情,并做字段归一化和脱敏。1) 能按 userids 或 limit 拉取候选员工;2) 支持 WECOM_HR_ASSISTANT_SECRET,必要时记录 WECOM_AGENT_SECRET fallback token source;3) 不打印完整手机号、邮箱、userid、token、secret 或原始 payload;4) 缺配置返回 SKIP/BLOCKED_BY_EXTERNAL_CONFIG 类状态。受影响流程:企微通讯录/人事助手 -> OA HR 主数据同步;验证步骤:cd server && node --check src/services/integrations/wecomHrMaster.js;后端 focused 测试覆盖字段归一化、脱敏和缺配置。node|vitestDONEDONEDONEserver/src/services/integrations/wecomHrMaster.js|server/src/config.js["WHMS-0"]回滚路径:回退新增服务和配置读取;不删除既有企微目录同步能力。
4WHMS-2同步 dry-run新增 dry-run 批次能力,生成将创建、更新、绑定、跳过和冲突的员工/部门差异报告,不写 OA 员工主数据。1) dry-run 不创建或更新 Employee/User/Department/Binding;2) 差异报告记录脱敏 externalUserId、动作、字段差异、跳过原因;3) 缺 OA 必填字段默认 SKIP missing_required_field;4) 企微不在职状态记录 needs_offboarding_confirmation,不自动禁用 OA 账号。受影响流程:管理员发起 dry-run -> 系统读取企微主数据 -> 输出差异 -> 不写库;验证步骤:后端 focused 测试执行 dry-run 后比对员工、账号、部门、绑定数量不变;cd server && npm run prisma:validate。node|vitest|prismaDONEDONEDONEserver/prisma/schema.prisma|server/src/services/integrations/wecomHrMaster.js["WHMS-1"]涉及 Prisma 迁移;回滚路径:回退迁移和新增模型,或在部署前不执行迁移。
5WHMS-3同步 apply新增 apply 批次能力,管理员确认后写入 OA 员工档案、部门、主管、职位、手机号、邮箱、默认角色和企业微信绑定。1) apply 幂等;2) 匹配优先级为 WecomIdentityBinding.external_user_id -> 企微 userid -> 手机号 -> 邮箱;3) 新建账号默认 employee 角色、随机不可见密码、must_change_password=true;4) 只更新安全主数据字段,不覆盖银行账户、身份证、工资、合同附件或历史审批。受影响流程:管理员确认 apply -> 创建/更新员工与账号 -> 绑定企微 userid -> 审计留痕;验证步骤:后端 focused 测试覆盖新建、更新、绑定、幂等、冲突检测和不在职确认项。node|vitest|prismaDONEDONEDONEserver/src/services/integrations/wecomHrMaster.js|server/src/routes/employees.js|server/prisma/schema.prisma["WHMS-2"]生产真实员工批量 apply 需单独确认;本轮实现能力但不部署、不做生产批量写入。
6WHMS-4同步记录与审计新增同步批次和逐员工结果模型/API 输出,记录统计、状态、操作人、失败原因、重试次数、字段差异和审计事件。1) WecomHrMasterSyncRun 和 WecomHrMasterSyncItem 可记录 dry-run/apply 结果;2) 管理员可查询最近批次和批次详情;3) 审计覆盖 dry_run、apply、create、update、bind、skip、conflict;4) 普通员工不可访问同步状态和触发同步。受影响流程:同步执行 -> 批次结果查询 -> 审计追踪;验证步骤:权限负例返回 403;GET runs 和 GET runs/:id 返回脱敏数据;审计日志不含 secret/token/full userid/full phone/email。node|vitest|prismaDONEDONEDONEserver/prisma/schema.prisma|server/src/routes/employees.js|server/src/services/integrations/wecomHrMaster.js["WHMS-3"]涉及权限模型和审计;回滚路径:回退新增路由、服务和迁移。
7WHMS-5管理端入口在 People/人员管理页增加企微 HR 主数据同步卡片,支持管理员/HR 执行 dry-run、apply、查看最近同步和失败项;普通员工不可见。1) 管理员/HR 可看到同步卡片、执行 dry-run、查看最近批次与失败项;2) apply 按显式确认触发;3) 普通员工不可见入口;4) 页面明确展示企微镜像、OA 主办和待确认状态,不误导为考勤/审批镜像已完成。受影响流程:管理员打开人员管理 -> 执行 dry-run -> 查看差异 -> 执行 apply -> 查看批次;验证步骤:cd client && npm run typecheck && npm run build;必要时 Playwright/手工说明覆盖 People 页面同步卡片。npm|react|playwrightDONEDONEDONEclient/src/**["WHMS-4"]前端只调用本轮新增管理 API,不新增独立页面体系。
8WHMS-6QA-only runner 与测试新增 QA-only runner,支持 live 只读、dry-run、测试 userid apply 验证、权限负例和脱敏 JSON 报告。1) runner 默认不做公网写入;2) apply 只允许显式 userids 和显式批准参数;3) 报告只输出脱敏 userid 前缀、统计、状态和错误码;4) 不输出 secret、token、完整手机号、邮箱或原始 payload。受影响流程:QA runner -> 企微只读读取 -> OA dry-run/apply 测试账号 -> 报告生成;验证步骤:node --check scripts/qa/check-wecom-hr-master-sync.mjs;本地无 live env 时输出可解释 SKIP,不伪造成 PASS。node|qa-onlyDONEDONEDONEscripts/qa/check-wecom-hr-master-sync.mjs|server/test/**["WHMS-5"]生产写入、真实员工批量 apply、部署均不在本 Issue 自动执行。
9WHMS-7文档与 skill 回写更新 PRD、企业微信规约、管理员手册、路线图、文档索引、事实源矩阵、人工试运行报告和项目 skill,记录 WHMS 能力边界、测试证据和下一阶段限制。1) 事实源记录 wecom_hr_master_sync_v1 已实现或阶段结论;2) 明确考勤/审批镜像仍未完成,下一阶段才是 wecom_attendance_approval_mirror_v1;3) 文档索引和事实源矩阵指向本合同;4) audit-docs、quick_validate 和 git diff --check 通过。受影响流程:后续 agent/人工读取事实源 -> 判断当前能力和下一步;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;python3 /home/shunli/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/hyb-oa-delivery;git diff --check;rg -n 'WHMS|wecom_hr_master_sync_v1|企微 HR 主数据|GO_TO_ATTENDANCE_APPROVAL_MIRROR|needs_offboarding_confirmation' docs issues .agents/skills/hyb-oa-delivery/SKILL.md。node|python3|git|rgDONEDONEDONEdocs/企微优先开发路线图.md|docs/需求-企业微信基础设施规约.md|docs/海音达OA-MVP需求规格说明书.md|docs/管理员手册.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|.agents/skills/hyb-oa-delivery/SKILL.md["WHMS-6"]本轮不部署;若后续部署和公网 apply 测试,另建上线/复检合同。