WFOC 重构企微优先与OA接管需求口径

这个提交包含在:
2026-05-18 10:44:30 +08:00
父节点 bd601a6987
当前提交 f75bc1bbdc
共修改 16 个文件,包含 283 行新增和 185 行删除
+1 -1
查看文件
@@ -104,7 +104,7 @@ Final responses should include:
- R6 scope defaults to reimbursement, leave, procurement, approval, Enterprise WeChat entry/notification, finance payment/export.
- Do not expand to budget, ERP, AI, full travel, or complex BPM during R6; record those as follow-up Issues.
- Enterprise WeChat personal app message is the formal approval notification channel after R5; mock and group bots are not acceptance evidence for R6 business notification.
- After HRWD/HCLT, ERP is not a future OA integration target, Enterprise WeChat native approval is not the formal workflow, and OA-driven Enterprise WeChat directory create/update/disable is live verified. For later HR/WeCom directory issues, first check configuration, permission, department, and data-specific causes before treating the capability as unfinished. After WCFB, Enterprise WeChat check-in sync uses an authorized custom app Secret: `WECOM_CHECKIN_SECRET` is an explicit override for a dedicated check-in app, and when it is empty OA can reuse the authorized workbench app `WECOM_AGENT_SECRET`.
- After WFOC, ERP is not a future OA integration target. HR/attendance/admin approvals should reuse mature Enterprise WeChat capabilities first, while OA provides complete mirror, manual takeover, recovery writeback, finance closeout, and audit. Reimbursement, payment batches, AP, accounting handoff, procurement, contracts, and projects remain OA-primary unless a later Issue changes that domain explicitly. OA-driven Enterprise WeChat directory create/update/disable is live verified; for later HR/WeCom directory issues, first check configuration, permission, department, and data-specific causes before treating the capability as unfinished. After WCFB, Enterprise WeChat check-in sync uses an authorized custom app Secret: `WECOM_CHECKIN_SECRET` is an explicit override for a dedicated check-in app, and when it is empty OA can reuse the authorized workbench app `WECOM_AGENT_SECRET`.
- Approval-chain correctness can be proven by PC or automation, while Enterprise WeChat validates entry, binding,免登录, notification, deeplink, and mobile layout.
- If real-device mobile validation is paused after automation passes, record the gate as `PAUSED`; do not close RS6/UI6/R6 mobile blockers until representative real-device confirmation is recorded.
- Role-specific pages should use one shared OA/mobile framework and tailor summaries, entries, actions, and sensitive fields by role. Do not create unrelated UI systems for employee, approver, finance, admin, or CEO views.
+2
查看文件
@@ -40,6 +40,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
- 2026-05-17 HR-WECOM-DIRECTORY-V1 已完成并部署公网:产品口径已调整为 ERP 未来不接入 OA;人事生命周期和考勤同属 HR 大域但分模块实现。OA 继续作为员工、权限、审批和审计主事实源;企业微信作为通讯录、入口、通知和打卡采集基础设施。HRWD 新增企业微信通讯录同步 flag、配置、同步记录、入职创建/资料更新/离职禁用钩子和员工管理重试入口。本地后端/前端/Playwright 通过,部署后公网 readiness、PDF live OCR、HRWD 端点 SKIP 检查和公网移动/企微矩阵通过;部署过程中发现 `seed-config` 会覆盖正式 feature flag,已修正为只创建缺失开关并复部署验证,最终 `payment_batch_v1=force_on`、`erp_sync=force_off`。
- 2026-05-17 HRWD-CONTACT-LIVE-TEST 已完成公网企业微信通讯录真实写入闭环:使用 `HRWDTEST-20260517214548` 测试员工,验证 OA 创建员工后由 onboarding 触发企微 create、资料更新触发企微 update、离职 checklist 完成后禁用 OA 账号并触发企微 disable;三次企微同步均为 `wecom_contact_synced` 且 `errcode=0`。普通员工查看/重试他人同步状态被拒绝,审计日志包含 `WECOM_DIRECTORY_CREATE/UPDATE/DISABLE`;测试成员按约定保留离职/禁用状态,不删除。
- 2026-05-17 WCFB 已完成企微打卡同步 Secret 兼容修正的本地验证:用户确认「工作台」就是 OA 企业微信入口应用,且该应用已在企业微信打卡 API「可调用接口的应用」中授权。OA 后端调整为 `WECOM_CHECKIN_SECRET` 显式优先,未配置时复用已授权工作台应用的 `WECOM_AGENT_SECRET`,避免重复维护同一个 Secret;本地语法检查、focused 单测、文档和项目 skill 校验通过。该修正尚未部署到公网,部署后需复检企微打卡同步。
- 2026-05-18 WFOC 已完成“企微优先 + OA 无痛接管”需求重构:用户确认能用企业微信成熟能力就优先使用企业微信,第一批聚焦 HR/考勤/行政审批;OA 目标调整为完整镜像、人工接管、恢复回写、RuleOps、财务闭环和审计中台。员工主数据后续以企微/人事助手为主,OA 同步镜像;企微故障时由管理员人工开启 OA 应急模式;企微恢复后 OA 对应急数据 dry-run 并自动回写。本轮只更新需求事实源、手册、索引和 Issue CSV,不改业务代码、不部署、不改公网配置;后续实现需另拆 `wecom_hr_master_sync_v1`、`wecom_native_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1`、`wecom_ruleops_v1`。
## 关键证据索引
@@ -122,6 +123,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
| AUTO-REMAINING-CLOSEOUT 剩余自动化收口 | 通过,结论 `GO_TO_OPERATE` | 新增 QA-only flag 恢复脚本并受控恢复 `payment_batch_v1=force_on`;`run-launch-auto-ops.sh` 报告 `artifacts/qa-flow/launch-auto-ops-20260517-193317/`,本地门禁、live readiness、PDF live OCR、正式 flag、统一考勤、付款批次常开闭环、公网移动矩阵 6 passed、企业微信渲染矩阵 8 passed;测试报销 `BX-20260517-0027` paid,票据 archived,AP 台账 paid;企微打卡同步缺后台配置按 `SKIP wecom_checkin_sync_disabled` 记录。 |
| HRWD-CONTACT-LIVE-TEST 企微通讯录公网闭环 | 通过,结论 `PASS` | 新增 QA-only runner `scripts/qa/run-hrwd-contact-live-test.mjs`;公网创建 `HRWDTEST-20260517214548` 测试员工,onboarding 触发企微 create、资料变更触发 update、offboarding checklist 触发 disable,三次同步均 `errcode=0`;OA 账号最终 archived/inactive,离职后登录 403 `AUTH_003`,普通员工同步状态权限负例和审计动作均通过;报告 `artifacts/qa-flow/hrwd-contact-live-test-20260517T134548Z/summary.json`。 |
| WCFB 企微打卡 Secret 复用 | 本地通过,待部署复检 | Issue `issues/2026-05-17_22-57-39-wecom-checkin-agent-secret-fallback.csv`;`WECOM_CHECKIN_SECRET` 显式优先,未配置时复用已授权工作台应用的 `WECOM_AGENT_SECRET`;本地 `node --check`、`attendance.test.js`、Issue CSV 校验、文档审计和 skill 校验通过。 |
| WFOC 企微优先 + OA 无痛接管需求重构 | 通过,无运行时变更 | Issue `issues/2026-05-18_10-25-18-wecom-first-oa-continuity-requirements.csv`;PRD、企业微信基础设施规约、统一审批规约、请假考勤规约、管理员手册、员工快速上手、文档索引和事实源矩阵已回写。结论只代表需求方向冻结,不代表企微审批镜像、OA 接管或恢复回写已实现。 |
## R7EP / OPS8 / QAF8 / UX8 / P2T 预检推进
+1 -1
查看文件
@@ -16,7 +16,7 @@
- 当前状态:本地门禁已闭环;R4 部署预检、D3 受控同步、D4 只读复检、R5 公网 live smoke、真实 PDF OCR、PC/自动化审批链、企业微信真机入口、个人应用消息和 deeplink 均已完成。
- 当前最大缺口:MIF7-7 已收口;若要启动 R7,必须另建 R7E 执行合同,固定试运行名单、时间窗口、回滚联系人和问题登记规则后再开始。
首轮路线保持不变:OA 是唯一业务主系统和正式审批中心;企业微信只做入口、身份、通知、deeplink 和打卡原始采集边界;不接飞书,不接企业微信原生审批。
本清单中的 A1-A8/R5/R6/R7E 证据保留当时路线:OA 是首轮主业务系统和正式审批中心,企业微信只做入口、身份、通知、deeplink 和打卡原始采集边界。当前最新产品口径已由 WFOC 覆盖:HR/考勤/行政审批优先复用企业微信,OA 做镜像、人工接管、恢复回写、财务闭环和审计中台;财务、报销、付款批次、AP 和代账交接仍由 OA 主办。
## 2. 已完成证据
+8 -8
查看文件
@@ -7,17 +7,17 @@
## 平台边界
### P0-1 OA 唯一审批中心
- `hyb-oa` 是公司唯一业务主系统和唯一审批中心。
- 报销、采购、费用、合同、请假、补卡、外出、加班、出差等正式审批,都必须在 OA 内提交、审批、留痕、归档。
- 企业微信原生审批不作为公司正式审批入口;不得出现一部分审批在企业微信、一部分审批在 OA 的割裂口径。
- 企业微信只作为基础设施:手机工作台入口、免登/绑定、通讯录身份、消息通知、打卡原始采集。
### P0-1 企微优先 + OA 镜像/接管
- WFOC 起,能用企业微信成熟能力的 HR/考勤/行政审批优先使用企业微信;OA 做完整镜像、人工接管、恢复回写、财务闭环和审计中台。
- 报销、采购、费用、合同、财务付款、AP 台账和代账交接仍由 OA 主办,在 OA 内提交、审批、留痕、归档。
- 请假、补卡、外出、加班等 HR/考勤审批优先在企业微信原生审批中提交和处理,OA 同步完整镜像;企业微信不可用时由管理员人工开启 OA 应急模式。
- 企业微信作为手机工作台入口、免登/绑定、通讯录身份、消息通知、打卡、人事助手和 HR/考勤/行政审批主操作端。
### P0-2 企业微信打卡与 OA 考勤口径
- 企业微信打卡用于原始采集,保留其定位、人脸、Wi-Fi、规则与设备能力。
- OA 后续可同步企业微信打卡原始记录,并结合 OA 内的请假、补卡、外出、加班审批形成正式考勤口径。
- 请假、补卡、外出、加班等考勤修正审批仍在 OA 完成,不走企业微信审批。
- 第一阶段不新增打卡 API 同步实现,先冻结边界,避免在审批中心收口时扩大战线。
- OA 后续同步企业微信打卡规则、排班、记录、日报、月报和 HR/考勤审批镜像,形成正式考勤口径。
- 请假、补卡、外出、加班等考勤修正正常在企业微信完成;OA 只在应急模式下接管,并在企微恢复后 dry-run 和自动回写。
- 后续实现必须另建 `wecom_hr_master_sync_v1`、`wecom_native_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1` 或 `wecom_ruleops_v1` 合同。
---
+13 -13
查看文件
@@ -1,13 +1,12 @@
# hyb-oa 员工快速上手(10 人以下团队版)
**当前状态(2026-05-17 / ATTV1)**:公网正式地址为 `https://oa.hyinda.com`。系统开发完成门禁结论为 `GO_TO_USE`,当前首批正式能力包括报销、PDF 发票 OCR、审批、请假、补卡/外出/加班考勤修正、采购、通知、移动/企业微信入口、财务台账、付款批次、银行回单附件和代账交接。
**当前状态(2026-05-18 / WFOC)**:公网正式地址为 `https://oa.hyinda.com`。系统开发完成门禁结论为 `GO_TO_USE`。WFOC 已冻结新的产品方向:能用企业微信成熟能力的 HR/考勤/行政审批优先使用企业微信,OA 做完整镜像、人工接管、恢复回写、财务闭环和审计中台。本轮只是需求口径调整,不代表页面入口已全部迁移完成。
## 1. 你每周主要会用到什么
- `Portal`:看公告、我的待办、我的资产、本周周报入口。
- `审批`:处理分配给你的报销、请假、采购、差旅等审批。
- `审批`:在 OA 处理报销、采购、合同、财务等 OA 主办审批;请假、补卡、外出、加班后续优先在企业微信处理。
- `团队`:更新今天是在岗、居家、外出还是出差。
- `请假`:提交并查看请假记录。
- `考勤`:查看企业微信打卡摘要、提交补卡/外出/加班修正并跟踪审批。
- `请假 / 考勤`:正常在企业微信提交请假、补卡、外出、加班并打卡;OA 后续用于查看镜像、历史和应急入口。
- `报销`:继续提交和跟踪报销。
- `周报`:每周写一次三段式周报。
- `待办`:记录和跟进个人事项。
@@ -16,7 +15,7 @@
## 2. 第一次登录后建议先做三件事
1. 检查个人资料是否正确。
2. 打开 `团队` 更新今天状态。
3. 打开 `考勤` 页面,确认日常打卡在企业微信,补卡/外出/加班解释在 OA。
3. 确认日常打卡和 HR/考勤申请优先在企业微信完成;OA 中的考勤页面后续主要用于镜像查看、历史查询和应急入口。
## 3. 今日状态怎么填
- `在岗`:今天主要在办公室。
@@ -37,33 +36,34 @@
- 完成后及时点完成,避免 Portal 一直堆积。
## 6. 审批、请假和报销
- 公司正式审批都在海音达工作台内完成,不在企业微信审批里处理。
- 当前已上线的请假、报销、采购、补卡、外出、加班等申请按 OA 页面提交;补卡只解释企业微信缺卡,不会写回企业微信。
- 报销、采购、合同和财务类事项在海音达工作台内完成。
- 请假、补卡、外出、加班等 HR/考勤事项后续优先在企业微信审批中提交和处理,OA 会同步镜像和历史。
- 如果管理员通知企业微信不可用并开启 OA 应急模式,才在 OA 中提交请假、补卡、外出或加班应急单;应急单会带 `EMERGENCY` 标记并在企微恢复后回写。
- 批准后的请假会自动反映到团队状态。
- 报销状态仍可在系统内查看,不需要额外问行政。
- 发票/OCR 正式入口保持 PDF-only;图片发票不作为当前正式 OCR 能力,图片只按普通附件处理。
- 如果报销已付款,系统会显示付款状态;银行实际付款由出纳在线下银行渠道完成。
## 7. 入职 / 离职时你会看到什么
- 入职时会有账号初始化、资产发放、制度确认等事项。
- 离职前需要归还资产并完成交接,系统会提示阻塞项。
- 入职时 HR 会优先在企业微信/人事助手维护人员资料,OA 后续同步生成账号、角色和绑定。
- 离职前需要归还资产并完成交接;企业微信和 OA 的账号状态会按流程同步停用或禁用。
## 8. 使用建议
- 每天登录先看 `Portal`
- 每周五提交周报
- 状态有变化时及时更新 `团队`
- 有通知先看站内消息,IM 只是补充提醒
- 收到企业微信审批提醒时,点开后回到 OA 页面处理。
- 收到 OA 主办审批提醒时,点开后回到 OA 页面处理;收到企业微信 HR/考勤原生审批待办时,在企业微信内处理。
- 首周遇到问题时,记录角色、页面、操作步骤和影响,不要在截图或文字里包含密码、完整票面、银行回单或敏感报价。
## 9. 从企业微信进入
- 如果公司启用了企业微信工作台入口,优先从企业微信打开海音达工作台。
- 企业微信只是入口、免登和提醒,真正填写、审批和修改仍在海音达工作台页面内完成。
- 企业微信打卡仍按公司要求使用;请假、补卡、外出、加班等解释和审批都在 OA 内提交和审批。
- 企业微信不只是入口:后续请假、补卡、外出、加班、打卡和部分人事资料优先在企业微信完成。
- OA 保留报销、财务、采购、合同、项目、镜像查询和应急接管。企业微信不可用时,以管理员通知为准临时改用 OA 应急入口。
- 如果企业微信免登失败,直接回到账号密码登录即可。
- 如果你第一次从企业微信进入但看到“尚未绑定”,请不要反复重试,先用账号密码登录,再到 `个人设置 -> 企业微信绑定` 完成绑定。
- 如果看到“登录已失效 / 已超时”,重新从企业微信工作台进入即可。
- 日常建议:手机从企业微信打开海音达工作台,PC 直接登录 OA;审批、项目更新、报销与周报都在工作台页面里完成。
- 日常建议:手机从企业微信打开海音达工作台,PC 直接登录 OA;报销、项目更新、采购和财务事项在 OA 里完成,HR/考勤事项优先在企业微信完成。
## 10. 项目怎么用
- 如果你是项目成员,优先在 `项目` 页面查看自己的里程碑、任务、风险和交付记录。
+1 -1
查看文件
@@ -84,7 +84,7 @@
- 每次只做当前 Issue 范围内的事,不顺手重构无关模块。
- 跨后端和前端的任务,先稳定后端 API / 数据契约,再接前端。
- 涉及权限、状态机、审批规则、财务状态、Prisma migration 的改动,必须写明回滚策略。
- 不在当前 MVP 首批范围内扩展预算、ERP、AI、飞书、企业微信原生审批、复杂 BPM 或重型项目管理。
- 不在当前 MVP 首批范围内扩展预算、ERP、AI 自动处理、飞书、复杂 BPM 或重型项目管理;企业微信原生审批只按 WFOC 口径用于 HR/考勤/行政审批优先复用,不迁移报销、财务、采购、合同或项目等 OA 主办流程。
- 未经确认不得重置数据库、编辑迁移历史、修改生产配置、暴露真实密钥或处理真实敏感数据。
## 3.1 只读审计和排障边界
+9 -8
查看文件
@@ -61,6 +61,7 @@
| `HR-WECOM-DIRECTORY-V1` | `issues/2026-05-17_20-00-40-hr-wecom-directory-v1.csv` | `EVIDENCE` | 人事生命周期与企业微信通讯录同步已部署并收口:ERP 未来不接入 OA;HR 大域拆分为人事生命周期和考勤两个模块;OA 驱动企微通讯录创建/更新/禁用,失败不回滚 OA 人事动作;公网端点检查显示缺通讯录配置时重试记录 `SKIP wecom_contact_sync_disabled`,不阻断 OA 人事闭环;seed-config 已改为不覆盖已有正式 feature flag,复部署后 `payment_batch_v1=force_on`、`erp_sync=force_off` |
| `HRWD-CONTACT-LIVE-TEST` | `issues/2026-05-17_21-41-43-hrwd-contact-live-test.csv` | `EVIDENCE` | 公网企微通讯录真实写入闭环已收口:`HRWDTEST-20260517214548` 测试员工完成 create/update/disable,企微 `errcode=0`,OA 员工最终 archived/inactive,登录负例、普通员工权限负例和审计动作均通过;报告 `artifacts/qa-flow/hrwd-contact-live-test-20260517T134548Z/summary.json` |
| `WCFB` | `issues/2026-05-17_22-57-39-wecom-checkin-agent-secret-fallback.csv` | `LOCAL_VERIFIED` | 企微打卡同步 Secret 兼容修正:`WECOM_CHECKIN_SECRET` 显式优先,未配置时复用已授权工作台应用的 `WECOM_AGENT_SECRET`;本地语法和 focused 单测通过,待部署后公网复检 |
| `WFOC` | `issues/2026-05-18_10-25-18-wecom-first-oa-continuity-requirements.csv` | `CURRENT` | 企微优先 + OA 无痛接管需求重构已收口:HR/考勤/行政审批优先复用企业微信,OA 做完整镜像、人工接管、恢复回写、RuleOps、财务闭环和审计中台;本轮只改需求事实源,不改运行时代码、不部署、不切换公网配置 |
旧 Issue CSV 保留为历史审计证据:不删除、不批量回写、不移动到 `docs/archive/` 或其他归档目录。新连续合同如替代旧合同,只在新合同 `Notes` 或文档索引中说明 supersedes。
@@ -68,9 +69,9 @@
| Doc_ID | Path | Category | Authority | Status | Owner | Related_Issues | Evidence | Supersedes | Last_Audited | Audit_Method | Risk | Notes |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `IDX` | `docs/文档索引.md` | 入口索引 | 最高文档入口 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION,P2-FIN-LIVE,PRELAUNCH,CASHIER-VOUCHER-V1,LAUNCH-DEPLOY-FINANCE,FIN-PROD-ENABLE,ACCOUNTING-HANDOFF-V1,SYSTEM-COMPLETE-GATE,LAUNCH-OPS-V1,REQ-COMPLETE-AUDIT,ATTV1,LAUNCH-AUTO-OPS-V1,AUTO-REMAINING-CLOSEOUT,HR-WECOM-DIRECTORY-V1` | `rg` | none | 2026-05-17 | `node scripts/qa/audit-docs.mjs --check-registry` | medium | 判断当前该读什么 |
| `REG` | `docs/文档事实源状态矩阵.md` | 文档台账 | 文档分类和状态事实源 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION,P2-FIN-LIVE,PRELAUNCH,CASHIER-VOUCHER-V1,LAUNCH-DEPLOY-FINANCE,FIN-PROD-ENABLE,ACCOUNTING-HANDOFF-V1,SYSTEM-COMPLETE-GATE,LAUNCH-OPS-V1,REQ-COMPLETE-AUDIT,ATTV1,LAUNCH-AUTO-OPS-V1,AUTO-REMAINING-CLOSEOUT,HR-WECOM-DIRECTORY-V1` | `audit-docs` | none | 2026-05-17 | `audit-docs --check-registry` | medium | 判断文档权威性 |
| `PRD-MVP` | `docs/海音达OA-MVP需求规格说明书.md` | 需求事实源 | PRD 主事实源 | `CURRENT` | product | `REQ8,P2T,GOV8,HR-WECOM-DIRECTORY-V1` | Issue CSV | `docs/requirements-specification.md` | 2026-05-17 | `rg` | high | 定义做什么、不做什么和验收口径;ERP 未来不接入 OA |
| `IDX` | `docs/文档索引.md` | 入口索引 | 最高文档入口 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION,P2-FIN-LIVE,PRELAUNCH,CASHIER-VOUCHER-V1,LAUNCH-DEPLOY-FINANCE,FIN-PROD-ENABLE,ACCOUNTING-HANDOFF-V1,SYSTEM-COMPLETE-GATE,LAUNCH-OPS-V1,REQ-COMPLETE-AUDIT,ATTV1,LAUNCH-AUTO-OPS-V1,AUTO-REMAINING-CLOSEOUT,HR-WECOM-DIRECTORY-V1,WFOC` | `rg` | none | 2026-05-18 | `node scripts/qa/audit-docs.mjs --check-registry` | medium | 判断当前该读什么 |
| `REG` | `docs/文档事实源状态矩阵.md` | 文档台账 | 文档分类和状态事实源 | `CURRENT` | product/dev | `GOV8,QAOPS9,P2D,P2-ORG,P2-FIN-DECISION,P2-FIN-V1,P2-OCR-SAMPLE,P2Q,P2AUTO,P2AF,P2-FIN-LIVE-DECISION,P2-FIN-LIVE,PRELAUNCH,CASHIER-VOUCHER-V1,LAUNCH-DEPLOY-FINANCE,FIN-PROD-ENABLE,ACCOUNTING-HANDOFF-V1,SYSTEM-COMPLETE-GATE,LAUNCH-OPS-V1,REQ-COMPLETE-AUDIT,ATTV1,LAUNCH-AUTO-OPS-V1,AUTO-REMAINING-CLOSEOUT,HR-WECOM-DIRECTORY-V1,WFOC` | `audit-docs` | none | 2026-05-18 | `audit-docs --check-registry` | medium | 判断文档权威性 |
| `PRD-MVP` | `docs/海音达OA-MVP需求规格说明书.md` | 需求事实源 | PRD 主事实源 | `CURRENT` | product | `REQ8,P2T,GOV8,HR-WECOM-DIRECTORY-V1,WFOC` | Issue CSV | `docs/requirements-specification.md` | 2026-05-18 | `rg` | high | WFOC 后定义企微优先 + OA 无痛接管;ERP 未来不接入 OA |
| `PRODUCT-SCOPE` | `docs/产品口径.md` | 需求事实源 | 产品边界事实源 | `CURRENT` | product | `REQ8,P2T` | `rg` | none | 2026-05-13 | `rg` | high | 记录已拍板产品边界 |
| `DESIGN-UI` | `docs/产品设计规则.md` | 设计事实源 | PC/移动/企业微信设计事实源 | `CURRENT` | design/frontend | `MIA7,MIF7,GOV8,DG8,DG9` | Playwright/视觉审查/DG8/DG9 | none | 2026-05-13 | `rg` | high | 页面改动必须读取;DG8 后飞书为主 UI/布局参考;DG9 后按页面分层和样板选型 |
| `DELIVERY` | `docs/开发交付与变更管理规约.md` | 开发治理 | 开发交付事实源 | `CURRENT` | dev/qa | `GOV8` | `rg` | none | 2026-05-13 | `rg` | high | Issue、review、commit 和交付规则 |
@@ -78,13 +79,13 @@
| `AGENT-PRACTICE` | `docs/Agent开发交付实践.md` | Agent 治理 | Agent 协作事实源 | `CURRENT` | dev | `GOV8,DG8` | Skill 校验 | none | 2026-05-13 | `rg` | medium | Agent 协作开发实践和设计主参考层级 |
| `AGENTS` | `AGENTS.md` | 执行硬约束 | 项目硬规则 | `CURRENT` | lead | `GOV8` | 人工核对 | none | 2026-05-13 | `rg` | high | 不可违反约束 |
| `SKILL-HYB` | `.agents/skills/hyb-oa-delivery/SKILL.md` | Skill | 项目交付 Skill | `CURRENT` | dev | `GOV8,DG8` | quick_validate | none | 2026-05-13 | `quick_validate.py` | medium | 每轮交付操作入口,UI 任务读取设计主参考层级 |
| `REQ-WF` | `docs/需求-统一审批中心规约.md` | 需求事实源 | 审批模块规约 | `CURRENT` | product/backend | `AP6,WF8` | workflow 回归 | none | 2026-05-13 | `rg` | high | 审批、催办、通知和状态流 |
| `REQ-WF` | `docs/需求-统一审批中心规约.md` | 需求事实源 | 审批模块规约 | `CURRENT` | product/backend | `AP6,WF8,WFOC` | workflow 回归 | none | 2026-05-18 | `rg` | high | OA 主办审批和企微主办 HR/考勤审批镜像边界 |
| `REQ-OCR` | `docs/需求-报销发票OCR规约.md` | 需求事实源 | OCR 模块规约 | `CURRENT` | product/backend | `RI6,OCR8,BIZ8` | OCR 回归 | none | 2026-05-13 | `rg` | high | OCR 和发票边界 |
| `RULE-REIMB` | `docs/报销发票附件规则.md` | 需求事实源 | 报销发票附件规则 | `CURRENT` | product/finance | `RI6,BIZ8` | 报销回归 | none | 2026-05-13 | `rg` | high | 报销、发票、附件细则 |
| `REQ-WECOM` | `docs/需求-企业微信基础设施规约.md` | 需求事实源 | 企业微信边界规约 | `CURRENT` | product/backend | `R7E,ORG8,WF8,ATTV1,HR-WECOM-DIRECTORY-V1` | live smoke/真机反馈/Issue CSV | none | 2026-05-17 | `rg` | high | 企业微信只做通讯录、入口、身份、通知和打卡采集基础设施,不做原生审批 |
| `REQ-WECOM` | `docs/需求-企业微信基础设施规约.md` | 需求事实源 | 企业微信边界规约 | `CURRENT` | product/backend | `R7E,ORG8,WF8,ATTV1,HR-WECOM-DIRECTORY-V1,WFOC` | live smoke/真机反馈/Issue CSV | none | 2026-05-18 | `rg` | high | 企微优先承担 HR/考勤/行政审批和人事/打卡能力,OA 镜像、接管、恢复回写和财务主办 |
| `RUNBOOK-TRIAL` | `docs/试运行与自动化验证手册.md` | 操作手册 | 试运行验证手册 | `CURRENT` | qa/ops | `R7E,QAOPS8` | live readiness | none | 2026-05-13 | `rg` | medium | 本地、公网、企业微信和真实 OCR 验证 |
| `MANUAL-ADMIN` | `docs/管理员手册.md` | 操作手册 | 管理员手册 | `CURRENT` | ops/admin | `ORG8,R7E` | 人工验收 | none | 2026-05-13 | `rg` | medium | 管理员上线和配置 |
| `MANUAL-EMPLOYEE` | `docs/员工快速上手.md` | 操作手册 | 员工手册 | `CURRENT` | product | `R7E` | 人工验收 | none | 2026-05-13 | `rg` | low | 员工侧使用说明 |
| `MANUAL-ADMIN` | `docs/管理员手册.md` | 操作手册 | 管理员手册 | `CURRENT` | ops/admin | `ORG8,R7E,WFOC` | 人工验收 | none | 2026-05-18 | `rg` | medium | 管理员上线、企微优先边界、OA 应急接管和恢复回写 |
| `MANUAL-EMPLOYEE` | `docs/员工快速上手.md` | 操作手册 | 员工手册 | `CURRENT` | product | `R7E,WFOC` | 人工验收 | none | 2026-05-18 | `rg` | low | 员工侧使用说明,HR/考勤优先企业微信 |
| `R7-DRAFT` | `docs/trialrun/R7扩大试运行草案.md` | 草案 | R7 准备材料 | `DRAFT` | product/qa | `R7E` | R7EP 报告 | none | 2026-05-13 | `rg` | medium | 不代表当前 R7E 执行状态 |
| `OPS-RUNBOOK` | `docs/trialrun/OPS7运维交接Runbook.md` | 运维草案 | OPS 准备材料 | `DRAFT` | ops | `OPS8,QAOPS8` | 只读检查 | none | 2026-05-13 | `rg` | medium | 不代表恢复演练已执行 |
| `TRIAL-REPORT` | `docs/trialrun/人工试运行报告.md` | 证据材料 | 试运行证据入口 | `EVIDENCE` | qa | `R7EP,OPS8,QAF8` | artifacts/qa-flow | none | 2026-05-13 | `rg` | medium | 只证明发生过,不直接派工 |
@@ -174,4 +175,4 @@
- `ME6-3` 代表性企业微信真机门禁已关闭。
- MIF7-1..7 与 MIF7T 已完成本地整改、公网部署、公网匿名复检和带凭据 live smoke/OCR 复检。
- R7E 真实扩大试运行阶段验收、P2 排序、R7E 收口、QAOPS8 上线硬化阶段收口、QAOPS9 上线硬化连续合同、PRELAUNCH 正式启用前公网预回归、CASHIER-VOUCHER-V1 财务闭环与银行回单附件、LAUNCH-DEPLOY-FINANCE 部署复检、FIN-PROD-ENABLE 正式常开、ACCOUNTING-HANDOFF-V1 代账交接 SOP、SYSTEM-COMPLETE-GATE 系统完成门禁、LAUNCH-OPS-V1 首周运营保障、REQ-COMPLETE-AUDIT 需求完成度复核、ATTV1 考勤统一入口、AUTO-REMAINING-CLOSEOUT 剩余自动化收口和 HRWD-CONTACT-LIVE-TEST 公网企微通讯录真实写入闭环均已完成,当前 P0/P1 阻断为 0;P2D 已完成决策分流,P2-ORG 只读巡检已完成且无需写修复合同。LAUNCH-AUTO-OPS-V1 发现的公网 `payment_batch_v1=force_off` 漂移已由 AUTOREM 恢复为 `force_on`,正式自动巡检结论为 `GO_TO_OPERATE`;`erp_sync=force_off`,ERP 未来不接入 OA,正式支付接口、图片 OCR 和银行流水导入继续不进入当前路线。ATTV1 已部署:历史 OA 自建打卡 `attendance_v1` 关闭,OA 补卡/外出/加班审批和月度考勤解释已纳入统一考勤主线;企微打卡 live 同步能力使用已授权调用打卡 API 的自建应用 Secret,`WECOM_CHECKIN_SECRET` 显式优先,未配置时可复用已授权工作台应用的 `WECOM_AGENT_SECRET`,缺配置时记录 `SKIP`。HRWD 已完成 OA 驱动企业微信通讯录同步,并通过 `HRWDTEST-20260517214548` 真实公网 create/update/disable 验证;测试成员按审计要求保留离职/禁用状态。
- R7E 真实扩大试运行阶段验收、P2 排序、R7E 收口、QAOPS8 上线硬化阶段收口、QAOPS9 上线硬化连续合同、PRELAUNCH 正式启用前公网预回归、CASHIER-VOUCHER-V1 财务闭环与银行回单附件、LAUNCH-DEPLOY-FINANCE 部署复检、FIN-PROD-ENABLE 正式常开、ACCOUNTING-HANDOFF-V1 代账交接 SOP、SYSTEM-COMPLETE-GATE 系统完成门禁、LAUNCH-OPS-V1 首周运营保障、REQ-COMPLETE-AUDIT 需求完成度复核、ATTV1 考勤统一入口、AUTO-REMAINING-CLOSEOUT 剩余自动化收口、HRWD-CONTACT-LIVE-TEST 公网企微通讯录真实写入闭环和 WFOC 需求重构均已完成,当前 P0/P1 阻断为 0;P2D 已完成决策分流,P2-ORG 只读巡检已完成且无需写修复合同。LAUNCH-AUTO-OPS-V1 发现的公网 `payment_batch_v1=force_off` 漂移已由 AUTOREM 恢复为 `force_on`,正式自动巡检结论为 `GO_TO_OPERATE`;`erp_sync=force_off`,ERP 未来不接入 OA,正式支付接口、图片 OCR 和银行流水导入继续不进入当前路线。WFOC 后 HR/考勤/行政审批优先复用企业微信,OA 目标是完整镜像、人工接管、恢复回写和 RuleOps;该方向尚未实现运行时迁移,后续必须另拆 `wecom_hr_master_sync_v1`、`wecom_native_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1`、`wecom_ruleops_v1`。HRWD 已完成 OA 驱动企业微信通讯录同步,并通过 `HRWDTEST-20260517214548` 真实公网 create/update/disable 验证;测试成员按审计要求保留离职/禁用状态。
+7 -5
查看文件
@@ -20,7 +20,7 @@
## 最近事实源链
R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> MIF7/MIF7T(公网部署与带凭据公网复检已收口) -> DG8 -> DG9 -> R7E -> FBA -> QAOPS9/P2D -> P2-ORG -> P2-FIN-DECISION -> P2-FIN-V1 -> P2-OCR-SAMPLE -> P2Q -> P2AUTO -> P2AF -> P2-FIN-LIVE-DECISION -> P2-FIN-LIVE -> PRELAUNCH -> CASHIER-VOUCHER-V1 -> LAUNCH-DEPLOY-FINANCE -> FIN-PROD-ENABLE -> ACCOUNTING-HANDOFF-V1 -> SYSTEM-COMPLETE-GATE -> LAUNCH-OPS-V1 -> REQ-COMPLETE-AUDIT -> ATTV1 -> LAUNCH-AUTO-OPS-V1 -> AUTO-REMAINING-CLOSEOUT -> HR-WECOM-DIRECTORY-V1 -> HRWD-CONTACT-LIVE-TEST -> WCFB。
R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> MIF7/MIF7T(公网部署与带凭据公网复检已收口) -> DG8 -> DG9 -> R7E -> FBA -> QAOPS9/P2D -> P2-ORG -> P2-FIN-DECISION -> P2-FIN-V1 -> P2-OCR-SAMPLE -> P2Q -> P2AUTO -> P2AF -> P2-FIN-LIVE-DECISION -> P2-FIN-LIVE -> PRELAUNCH -> CASHIER-VOUCHER-V1 -> LAUNCH-DEPLOY-FINANCE -> FIN-PROD-ENABLE -> ACCOUNTING-HANDOFF-V1 -> SYSTEM-COMPLETE-GATE -> LAUNCH-OPS-V1 -> REQ-COMPLETE-AUDIT -> ATTV1 -> LAUNCH-AUTO-OPS-V1 -> AUTO-REMAINING-CLOSEOUT -> HR-WECOM-DIRECTORY-V1 -> HRWD-CONTACT-LIVE-TEST -> WCFB -> WFOC。
- R6、PC6、PA6、FL6、AP6、RI6、LP6 已完成并部署。
- ME6 自动化、公网视觉矩阵和 `ME6-3` 代表性企业微信真机门禁已完成。
@@ -55,6 +55,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
- HR-WECOM-DIRECTORY-V1 是 HRWD 当前合同:ERP 从冻结待办改为未来不接入 OA;人事生命周期和考勤同属 HR 大域但分模块实现;OA 为员工、权限、审批和审计主事实源,企业微信作为通讯录、入口、通知和打卡采集基础设施。新增 `hr_wecom_directory_sync_v1`、企业微信通讯录同步记录、入职创建/调岗更新/离职禁用和管理员重试;缺通讯录 Secret 或 API 权限时 OA 人事闭环照常完成,同步记录为可解释 SKIP/失败。
- HRWD-CONTACT-LIVE-TEST 已完成公网企微通讯录真实写入闭环:使用 `HRWDTEST-20260517214548` 测试员工验证 OA 创建员工后由 onboarding 触发企微成员创建、资料更新触发企微 update、离职 checklist 完成后禁用 OA 账号并触发企微 disable;同步均返回 `wecom_contact_synced`、`errcode=0`,普通员工同步记录权限负例和审计动作核验通过。测试成员按约定保留离职/禁用状态,不删除。
- WCFB 是企微打卡同步 Secret 兼容修正合同:用户确认工作台应用已作为企微入口应用配置且已授权调用打卡 API;OA 后端调整为 `WECOM_CHECKIN_SECRET` 显式优先,未配置时复用已授权工作台应用的 `WECOM_AGENT_SECRET`,避免重复维护同一个 Secret。本地语法和考勤 focused 单测通过;公网需部署后复检企微打卡同步。
- WFOC 是企微优先 + OA 无痛接管需求重构合同:用户已确认 HR/考勤/行政审批优先复用企业微信成熟能力,OA 做完整镜像、人工接管、恢复回写、财务闭环和审计中台。本轮只冻结需求和事实源,不改业务代码、不部署、不切换公网配置;后续实现需拆 `wecom_hr_master_sync_v1`、`wecom_native_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1`、`wecom_ruleops_v1`。
## 当前活跃治理流
@@ -93,9 +94,10 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| `ATTV1` | `issues/2026-05-17_14-59-28-attendance-unified-wecom-sync-v1.csv` | 已收口:考勤统一入口与企微打卡同步 V1 已部署并复检通过 | 关闭历史 OA 自建打卡;新增企微打卡摘要同步、补卡/外出/加班 OA 修正审批、月度解释页和移动入口;公网移动/企微矩阵 14 passed | 不用企业微信原生审批;不重造定位/人脸/Wi-Fi/设备风控;不保存完整位置、原始 payload 或人脸信息 |
| `LAUNCH-AUTO-OPS-V1` | `issues/2026-05-17_17-47-45-launch-auto-ops-v1.csv` | 阶段收口:自动化完成,结论 `PAUSE_FOR_FIX` | 正式启用后自动 runner、live flag 只读校验、考勤统一入口 live 检查、移动/企微矩阵和证据回填;报告 `artifacts/qa-flow/launch-auto-ops-20260517-175548/` | 不切换正式 flag、不部署、不接真实支付、不接 ERP;`payment_batch_v1` 当前 force_off 漂移需单独决策恢复 |
| `AUTO-REMAINING-CLOSEOUT` | `issues/2026-05-17_19-30-44-auto-remaining-closeout.csv` | 已收口:剩余自动化运营门禁通过,结论 `GO_TO_OPERATE` | 恢复正式 `payment_batch_v1=force_on`、复跑 `run-launch-auto-ops.sh`、付款批次常开闭环、移动/企微矩阵、企微同步 SKIP 证据;报告 `artifacts/qa-flow/launch-auto-ops-20260517-193317/` | 不部署、不改业务代码、不接真实支付、不接 ERP、不开放图片 OCR、不导入银行流水;企微打卡同步外部配置仍需后台配置 |
| `HR-WECOM-DIRECTORY-V1` | `issues/2026-05-17_20-00-40-hr-wecom-directory-v1.csv` | 已收口:人事生命周期与企业微信通讯录同步闭环已部署公网 | ERP 永不接入 OA;入职/调岗/资料变更/离职驱动企微通讯录创建、更新、禁用;员工管理和详情展示同步状态与重试;部署后 live smoke、HRWD 端点 SKIP 检查、公网移动/企微矩阵通过;seed 已改为不覆盖正式 flag | 不使用企业微信原生审批、不接真实支付、不开放图片 OCR、不导入银行流水;企微通讯录真实写入依赖后台 Secret、默认部门和 API 权限 |
| `HR-WECOM-DIRECTORY-V1` | `issues/2026-05-17_20-00-40-hr-wecom-directory-v1.csv` | 已收口:人事生命周期与企业微信通讯录同步闭环已部署公网 | ERP 永不接入 OA;入职/调岗/资料变更/离职驱动企微通讯录创建、更新、禁用;员工管理和详情展示同步状态与重试;部署后 live smoke、HRWD 端点 SKIP 检查、公网移动/企微矩阵通过;seed 已改为不覆盖正式 flag | 该合同不涉及企业微信原生审批迁移、不接真实支付、不开放图片 OCR、不导入银行流水;企微通讯录真实写入依赖后台 Secret、默认部门和 API 权限 |
| `HRWD-CONTACT-LIVE-TEST` | `issues/2026-05-17_21-41-43-hrwd-contact-live-test.csv` | 已收口:公网企微通讯录真实写入闭环通过 | `HRWDTEST-20260517214548` 测试员工完成 OA 创建、onboarding 企微 create、资料 update、offboarding 企微 disable、OA 禁用、登录负例、权限负例和审计核验;报告 `artifacts/qa-flow/hrwd-contact-live-test-20260517T134548Z/summary.json` | 不删除企业微信测试成员、不重置数据库、不改业务 API/schema/UI、不部署;测试成员最终保留离职/禁用状态 |
| `WCFB` | `issues/2026-05-17_22-57-39-wecom-checkin-agent-secret-fallback.csv` | 本地通过:企微打卡同步 Secret 兼容修正 | `WECOM_CHECKIN_SECRET` 显式优先;未配置时复用已授权工作台应用的 `WECOM_AGENT_SECRET`,避免重复维护同一个 Secret;本地语法、focused 单测和文档/skill 校验通过 | 不新增业务 API/schema/UI;不改变企微权限边界;部署后需公网复检打卡同步 |
| `WFOC` | `issues/2026-05-18_10-25-18-wecom-first-oa-continuity-requirements.csv` | 已收口:企微优先 + OA 无痛接管需求重构 | HR/考勤/行政审批企微优先,OA 完整镜像、人工接管、恢复回写、RuleOps 和财务主办边界;PRD、模块规约、手册、索引和事实源矩阵已回写 | 不改业务代码、不新增 API/schema/UI、不部署、不改公网配置;不代表镜像、接管或回写运行时已完成 |
旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。
@@ -119,11 +121,11 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| [文档事实源状态矩阵](./文档事实源状态矩阵.md) | 文档分类、删除恢复和冲突规则 |
| [产品设计规则](./产品设计规则.md) | PC、移动、企业微信 WebView 设计事实源;DG8 后飞书工作台/飞书审批为唯一主 UI/布局参考;DG9 后按页面分层和样板选型 |
| [产品口径](./产品口径.md) | 已拍板产品边界和业务规则 |
| [需求 - 统一审批中心规约](./需求-统一审批中心规约.md) | 审批、催办、超时提醒、审批效率 |
| [需求 - 统一审批中心规约](./需求-统一审批中心规约.md) | OA 主办审批、企微主办 HR/考勤审批镜像、催办、超时提醒、审批效率 |
| [报销发票附件规则](./报销发票附件规则.md) | 报销、发票、OCR、附件细则 |
| [需求 - 报销发票 OCR 规约](./需求-报销发票OCR规约.md) | 报销发票 OCR 模块规约 |
| [需求 - 企业微信基础设施规约](./需求-企业微信基础设施规约.md) | 企业微信入口、身份、消息、deeplink |
| [需求 - 请假考勤修正规约](./需求-请假考勤修正规约.md) | 请假、补卡、考勤修正 |
| [需求 - 企业微信基础设施规约](./需求-企业微信基础设施规约.md) | 企业微信入口、身份、消息、deeplink、HR/考勤审批、打卡、人事助手、OA 接管和恢复回写 |
| [需求 - 请假考勤修正规约](./需求-请假考勤修正规约.md) | 企微请假/补卡/外出/加班、考勤镜像、OA 应急接管和恢复回写 |
| [需求 - 采购费用审批规约](./需求-采购费用审批规约.md) | 采购、费用、附件、审批规则 |
| [需求 - 合同附件归档规约](./需求-合同附件归档规约.md) | 合同台账和附件归档边界 |
| [需求 - 项目轻管理规约](./需求-项目轻管理规约.md) | 项目轻管理边界 |
+1 -1
查看文件
@@ -2,7 +2,7 @@
**文档状态**:当前测试事实源。
**适用范围**:hyb-oa MVP 首轮开发 A3-A8,以及后续所有非微小改动。
**路线口径**:hyb-oa 是唯一业务主系统和唯一审批中心;企业微信只做入口、身份、通知和打卡原始采集;飞书和企业微信原生审批不进入当前路线。
**路线口径**:WFOC 后,HR/考勤/行政审批优先复用企业微信成熟能力,OA 做完整镜像、人工接管、恢复回写、财务闭环和审计中台;报销、PDF OCR、付款批次、AP 台账、代账交接等财务主线继续由 OA 主办;飞书不进入当前路线。
本文回答“什么时候测试、测什么、怎么判定通过、怎么记录跳过”。具体业务验收仍以主 PRD、模块规约和最新 Issue CSV 为准。
+48 -36
查看文件
@@ -27,13 +27,13 @@
### 1.1 背景
海音达需要一套适合 10 人以下科技公司的轻量 OA,用来把报销、请假、采购、费用、合同、项目资料、审批和基础行政动作集中到一个可审计、可回归、可持续迭代的系统中。系统不追求一次性替代所有办公平台,而是先解决公司内部最容易割裂、最需要留痕的业务流程。
海音达需要一套适合 10 人以下科技公司的轻量 OA,用来把报销、采购、费用、合同、项目资料、财务闭环、审计和关键行政数据集中到一个可审计、可回归、可持续迭代的系统中。WFOC 起产品方向调整为“企微优先 + OA 无痛接管”:能复用企业微信成熟功能的员工行政场景优先使用企业微信,OA 保留完整镜像、人工接管、恢复回写、财务闭环和审计中台能力。
### 1.2 总目标
- `hyb-oa` 是唯一业务主系统和唯一正式审批中心。
- 所有正式审批在 OA 内提交、审批、留痕、归档。
- 企业微信只作为基础设施:手机工作台入口、免登/绑定、通讯录身份、消息通知、打卡原始采集。
- HR/考勤/行政审批优先复用企业微信成熟能力;OA 同步完整镜像并保留人工接管和恢复回写能力。
- 报销、PDF 发票 OCR、发票查重、付款批次、银行回单、AP 台账、代账交接和财务审计继续由 OA 主办。
- 企业微信作为手机工作台入口、免登/绑定、通讯录身份、消息通知、打卡、人事助手和 HR/考勤/行政审批主操作端。
- PC 用户可直接访问 OA;手机端优先从企业微信工作台进入 OA 移动端。
- 后续开发必须先有需求事实源和 Issue CSV 执行合同,避免边想边做。
@@ -41,10 +41,22 @@
| 平台 | 定位 | 首批使用方式 | 不承担 |
| --- | --- | --- | --- |
| `hyb-oa` | 唯一业务主系统和审批中心 | 审批、报销、发票、OCR、请假、采购、合同台账、项目资料、审计归档 | 聊天、会议、在线文档协作 |
| 企业微信 | 基础设施 | 手机入口、免登/绑定、通知 deeplink、通讯录身份、打卡原始采集 | 正式审批流、财务附件主库、业务单据主库 |
| `hyb-oa` | 财务主系统、数据镜像、接管和审计中台 | 报销、发票、OCR、付款批次、银行回单、AP 台账、代账交接、采购/合同/项目轻台账、企微数据镜像和应急接管 | 重造企业微信成熟打卡、人事和 HR/考勤审批能力 |
| 企业微信 | HR/考勤/行政审批主操作端和移动入口 | 通讯录、人事助手花名册、打卡规则/排班/日报/月报、请假/补卡/外出/加班审批、假期余额、工作台入口和消息 | 财务附件主库、报销 OCR、付款批次、代账交接、OA 审计主库 |
| 飞书 | 已废弃路线 | 不进入首批实现 | 不接入身份、审批、通知、文档或项目主线 |
### 1.4 WFOC 需求分层
| 层级 | 主办方 | 目标 |
| --- | --- | --- |
| 企微主办层 | 企业微信 | 通讯录、人事助手花名册、打卡规则/排班/日报/月报、请假/补卡/外出/加班审批、假期余额。 |
| OA 镜像层 | OA | 同步企微人员、部门、审批单、打卡、规则、附件、回调和操作日志,形成可查询、可导出、可审计的完整副本。 |
| OA 接管层 | OA | 企微不可用时由管理员人工开启 `oa_hr_emergency_mode_v1`,员工通过 OA 账号密码提交 HR/考勤类应急申请。 |
| 恢复回写层 | OA + 企业微信 API | 企微恢复后由 `wecom_recovery_writeback_v1` 对应急数据执行 dry-run、自动回写、失败重试和冲突清单。 |
| 财务主办层 | OA | 报销、PDF 发票 OCR、发票查重、付款批次、银行回单、AP 台账、代账交接继续 OA 主办,不迁移到企微。 |
无痛切换是长期目标,不代表本轮已实现完整替代。后续必须按 `wecom_hr_master_sync_v1`、`wecom_native_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1` 和 `wecom_ruleops_v1` 分阶段拆 Issue CSV。
---
## 2. 软件开发项目流程
@@ -83,7 +95,7 @@
| 当前已实现 / 已收口 | R6 小范围试运行主链路;PC6/PA6/FL6/AP6/RI6/LP6;ME6 自动化、公网和代表性真机门禁;MIF7/MIF7T 移动信息架构与真机反馈整改;MIF7TD 公网部署、匿名复检和带凭据 live smoke/OCR。 |
| R7 必需 | 用户确认参与人、角色、时间窗口、回滚联系人、问题登记负责人和每日收口节奏;R7E 公网健康、public bundle、带凭据 live readiness、公网移动矩阵、核心业务流和账号角色只读门禁通过;阻断问题为 0。 |
| R7 后优化 | UX8 真实反馈池、iPhone 12 间距观察项、详情字段扫读性二次优化、移动采购创建能力评估、组织账号主数据治理、图片 OCR 能力、转审扩展和邮件通道完整验收。 |
| 明确不做 / 当前冻结 | ERP 未来不接入 OA;AI 自动处理、完整差旅、复杂 BPM、审批设计器、预算重型控制、企业微信原生审批继续不进入当前路线;任何一项业务扩张都必须另建里程碑和 Issue CSV。 |
| 明确不做 / 当前冻结 | ERP 未来不接入 OA;真实支付、图片 OCR、银行流水导入、完整差旅、复杂 BPM、审批设计器、预算重型控制继续不进入当前路线;AI 只允许草拟规则和 dry-run,人工确认后才能写入企微配置。企业微信原生审批从整体冻结调整为 HR/考勤/行政审批优先复用,财务和报销仍由 OA 主办。 |
### 2.3 P2T 候选优先级
@@ -91,13 +103,13 @@ P2T 只做排序和边界确认,不进入当前实现。候选项按 R7 真实
| 优先级 | 候选 | 当前边界 |
| --- | --- | --- |
| P2-1 | 人事生命周期与账号主数据治理 | 已覆盖入职、转正、调岗、离职、OA 账号和企业微信通讯录/绑定闭环;HCLT 已验证公网企微通讯录 create/update/disable 真实写入;不使用企业微信原生审批 |
| P2-1 | 企微 HR 主数据与 OA 镜像治理 | WFOC 后改为企微/人事助手为员工主数据源,OA 同步员工档案、账号、角色、绑定和审计;HCLT 仍作为 OA 写企微能力证据,后续方向是先企微后 OA |
| P2-2 | 审批与通知扩展 | 转审扩展到请假/采购/差旅拆 `W2F`;邮件通道和三渠道完整验收另决策;不引入复杂 BPM |
| P2-3 | OCR 与票据增强 | 当前试运行继续 PDF-only;图片 OCR、批量样票和异步体验需另补样票、隐私处理和 provider 回归 |
| P2-4 | 费用/预算/项目轻量增强 | 可评估费用提示和项目关联增强;预算重型控制和正式成本核算继续冻结,ERP 不再作为后续接入项 |
| P2-5 | 运维上线增强 | 备份恢复演练、SLO 门禁和正式上线准备需单独窗口;不在 R7E 预检中做真实恢复 |
ERP 已从“冻结待办”调整为“未来不接入 OA”。其他冻结项不是永久删除,而是当前 MVP/R7 不启动:AI 自动处理、完整差旅、复杂 BPM、审批设计器、预算重型控制、企业微信原生审批。
ERP 已从“冻结待办”调整为“未来不接入 OA”。其他冻结项不是永久删除,而是当前 MVP/R7 不启动:AI 自动处理、完整差旅、复杂 BPM、审批设计器、预算重型控制。企业微信原生审批不再整体冻结,HR/考勤/行政审批按 WFOC 口径优先复用。
---
@@ -118,11 +130,11 @@ ERP 已从“冻结待办”调整为“未来不接入 OA”。其他冻结项
| 优先级 | 模块 | 目标 | 主入口 | 验收口径 |
| --- | --- | --- | --- | --- |
| P0 | 统一审批中心 | 所有正式审批在 OA 内处理 | PC 审批待办、移动审批 | 能提交、审批、驳回、退回、转审、留痕 |
| P0 | 企业微信基础设施 | 手机入口、免登、通知、打卡原始采集 | 企业微信自建应用 `海音达工作台` | 手机进入 `/mobile`,通知 deeplink 回 OA |
| P0 | 人事生命周期 | 入职、转正、调岗、离职、OA 账号、权限和企业微信通讯录状态闭环 | 人员管理、员工档案 | OA 为员工主事实源;HCLT 已验证公网企微通讯录真实写入,其他环境缺配置时同步可解释 SKIP/失败并可重试 |
| P0 | 统一审批和镜像中心 | 财务、报销、采购、合同等 OA 主办审批继续在 OA;HR/考勤/行政审批改为企微主办、OA 镜像 | PC 审批待办、移动审批、企微审批镜像 | OA 主办审批可处理;企微主办审批可同步、查询、审计和应急接管 |
| P0 | 企业微信基础设施 | 手机入口、免登、通知、打卡、人事助手、HR/考勤/行政审批主操作端 | 企业微信自建应用 `海音达工作台`、企微打卡、企微审批、人事助手 | 员工优先在企微完成成熟流程,OA 获得完整镜像和审计 |
| P0 | 人事生命周期 | 企微/人事助手主源,OA 同步员工、账号、权限、绑定和离职停用 | 企业微信人事/通讯录、OA 人员管理 | 先企微后 OA;OA 可审计、可接管、可在恢复后回写 |
| P0 | 报销/发票/OCR | 员工自助报销,财务可查重和导出 | 报销、移动报销、票据中心 | 上传、OCR、查重、绑定、审批、付款闭环 |
| P0 | 请假与考勤修正审批 | 请假、补卡、外出、加班等修正都在 OA 内审批 | 请假、移动审批、团队状态 | 审批后团队状态和考勤口径不破坏 |
| P0 | 请假与考勤镜像/接管 | 请假、补卡、外出、加班优先企微审批,OA 同步完整镜像并保留应急提交 | 企业微信审批、OA 考勤镜像、OA 应急模式 | 企微正常时员工走企微;企微不可用时管理员人工开启 OA 接管 |
| P1 | 采购/费用审批 | 小团队采购和费用事项留痕 | 采购、审批待办 | 申请、附件、审批、状态更新可用 |
| P1 | 合同与附件归档 | 管合同编号、责任人、归档位置和非涉密附件 | 合同/项目资料或项目页 | 能登记、查询、关联项目和审批记录 |
| P1 | 项目轻管理 | 把费用、采购、差旅、周报挂到项目 | 项目、Portal、周报 | 能看项目事项、风险、费用摘要,不做重型排产 |
@@ -136,15 +148,14 @@ ERP 已从“冻结待办”调整为“未来不接入 OA”。其他冻结项
### 5.1 范围
OA 是公司唯一正式审批中心。以下审批必须在 OA 内提交、审批、留痕、归档:
WFOC 后审批分为两类:OA 主办审批和企微主办审批。OA 主办审批仍在 OA 内提交、审批、留痕、归档;企微主办审批在企业微信内发起和处理,OA 同步完整镜像、附件、审批历史、回调和审计,并在企微不可用时人工接管。
- 报销、费用、采购。
- 合同相关审批和合同台账维护。
- 请假、补卡、外出、加班、出差。
- 资产领用、归还、调拨、盘点中的需要留痕动作。
- 后续新增业务审批,默认也进入 OA 审批中心。
- 后续新增财务、采购、合同、项目类业务审批,默认进入 OA 审批中心。
企业微信原生审批不作为公司正式审批入口,不允许形成“一部分审批在企业微信、一部分审批在 OA”的双轨口径。
请假、补卡、外出、加班等 HR/考勤/行政审批优先复用企业微信原生审批,OA 不再重复开发成熟员工日常流程;旧 OA 提交能力只作为 `oa_hr_emergency_mode_v1` 应急入口保留。
### 5.2 审批能力
@@ -165,7 +176,7 @@ OA 是公司唯一正式审批中心。以下审批必须在 OA 内提交、审
- 审批人可在 PC 和移动端看到待办。
- 审批动作完成后,业务单据状态、审批历史、通知和审计记录一致。
- 企业微信提醒点击后回到 OA 页面处理,不能在企业微信原生审批里完成正式审批。
- OA 主办审批的企业微信提醒点击后回到 OA 页面处理;企微主办审批由企业微信处理,OA 同步结果和审计镜像。
---
@@ -212,23 +223,24 @@ OA 是公司唯一正式审批中心。以下审批必须在 OA 内提交、审
### 7.1 边界
- 企业微信打卡用于原始采集,保留其定位、人脸、Wi-Fi、排班和设备能力。
- OA 不在首批重造打卡规则、定位、人脸识别或排班引擎。
- 请假、补卡、外出、加班等考勤修正申请在 OA 内提交和审批。
- 后续可同步企业微信打卡原始记录,再结合 OA 审批形成正式考勤口径。
- 企业微信打卡用于原始采集和规则执行,保留其定位、人脸、Wi-Fi、排班、设备和防作弊能力。
- OA 不重造企业微信打卡规则、定位、人脸识别、排班或防作弊引擎。
- 请假、补卡、外出、加班等考勤修正申请优先在企业微信原生审批中提交和处理。
- OA 通过 `wecom_native_approval_mirror_v1` 同步企微审批、打卡记录、规则、日报、月报和异常摘要,形成完整镜像和考勤解释。
- 企业微信不可用时,管理员可人工开启 `oa_hr_emergency_mode_v1`,临时开放 OA 提交和审批;应急单据带 `EMERGENCY` 标记并进入恢复回写队列。
### 7.2 用户流程
- 员工在 OA 提交请假、补卡、外出或加班申请。
- 主管或 HR 在 OA 审批。
- 审批通过后,团队状态、日历和后续考勤统计使用 OA 的审批结果。
- 企业微信打卡异常不直接等于最终考勤异常,最终口径以 OA 汇总为准。
- 员工正常在企业微信提交请假、补卡、外出或加班申请。
- 主管或 HR 正常在企业微信审批;OA 同步审批详情、审批历史、附件、状态回调和假期余额。
- 审批通过后,OA 使用企微审批和打卡数据更新团队状态、日历和考勤镜像。
- 企微故障时,管理员人工开启 OA 应急模式;企微恢复后,OA 通过 `wecom_recovery_writeback_v1` dry-run 后自动回写,冲突进入人工确认。
### 7.3 验收
- 请假提交、审批、撤回、驳回后状态正确。
- 已批准请假能影响团队状态或日历展示。
- 文档和界面不引导员工去企业微信原生审批提交请假或补卡。
- 企微正常时员工优先在企业微信提交请假、补卡、外出和加班;OA 展示同步记录和应急入口状态。
### 7.4 当前完成度校正
@@ -238,7 +250,7 @@ REQAUD 复核后,ATTV1 已按“企业微信打卡、OA 审批解释”口径
| --- | --- | --- |
| 请假申请、审批、撤回、编辑和移动查看 | `DONE` | 已有 `leave_requests`、统一审批、PC/移动页面和回归证据。 |
| 请假影响团队状态/日历 | `DONE` | 已批准请假可进入团队状态和日历展示。 |
| 企业微信入口、免登/绑定、通知 deeplink 回 OA | `DONE` | 企业微信只作为入口、身份和提醒,审批动作仍回 OA。 |
| 企业微信入口、免登/绑定、通知和 HR/考勤审批 | `REPLANNED_BY_WFOC` | 企业微信继续作为入口、身份和提醒;HR/考勤/行政审批优先在企微处理,OA 同步镜像;OA 主办审批仍回 OA。 |
| 企业微信打卡运营使用 | `DONE` | 员工继续按公司要求在企业微信打卡;这是企业微信侧能力,不代表 OA 已同步打卡 API。 |
| 企业微信打卡 API 同步到 OA | `PARTIAL` | 已新增 `attendance_unified_v1` 同步批次和打卡摘要表;有已授权调用打卡 API 的自建应用 Secret/API 权限时可同步,缺配置时按 `SKIP` 记录,不伪造通过。`WECOM_CHECKIN_SECRET` 显式优先,未配置时复用已授权工作台应用的 `WECOM_AGENT_SECRET`。 |
| 员工补卡申请审批 | `DONE` | 已新增 OA 考勤修正申请,补卡只解释企微缺卡,不向企业微信写回。 |
@@ -300,16 +312,16 @@ REQAUD 复核后,ATTV1 已按“企业微信打卡、OA 审批解释”口径
### 9.3 消息通知
- 企业微信消息只做提醒,审批动作必须回到 OA 页面完成。
- OA 主办审批的企业微信消息只做提醒,审批动作回到 OA 页面完成;企微主办 HR/考勤审批在企业微信内处理,OA 同步镜像。
- 消息内容最小化:标题、业务编号、状态、处理入口。
- 发送失败应可重试,不阻断主业务提交或审批。
- 不在消息中发送合同正文、完整发票、敏感报价、银行卡、身份证等敏感内容。
### 9.4 打卡原始采集
- 企业微信打卡数据是 OA 同步的原始来源。
- `attendance_unified_v1` 只同步打卡摘要、批次、脱敏错误码和 raw hash,不保存完整位置、人脸、设备明文或原始 payload。
- 正式考勤统计必须结合 OA 的请假、补卡、外出、加班审批结果。
- 企业微信打卡数据、打卡规则、日报和月报是 OA 考勤镜像的原始来源。
- `attendance_unified_v1` 当前只同步打卡摘要、批次、脱敏错误码和 raw hash;WFOC 后续目标是扩展为打卡规则、排班、记录、日报、月报和异常摘要完整镜像。
- 正式考勤统计必须结合企微请假/补卡/外出/加班审批、OA 应急单和恢复回写结果。
---
@@ -357,7 +369,7 @@ REQAUD 复核后,ATTV1 已按“企业微信打卡、OA 审批解释”口径
首批 MVP 不做以下事项:
- 不接入飞书,不保留飞书登录、通知、审批、文档或项目管理路线。
- 不使用企业微信原生审批作为正式审批流。
- 不把企业微信原生审批用于报销、财务付款、采购、合同、项目等 OA 主办流程;HR/考勤/行政审批按 WFOC 口径优先复用企微。
- 不开发复杂 BPM 流程设计器,不做并行会签建模。
- 不依赖付费低代码平台、付费第三方应用或付费项目管理套件。
- 不重造企业微信打卡的定位、人脸识别、Wi-Fi、排班规则。
@@ -371,11 +383,11 @@ REQAUD 复核后,ATTV1 已按“企业微信打卡、OA 审批解释”口径
### 12.1 产品验收
- 老板能在 OA 中看到审批待办、项目/费用摘要和关键风险。
- 员工能在 PC 或手机端完成报销、请假、采购等核心申请。
- 审批人能在 PC 和移动端处理待办。
- 员工能在 OA 完成报销、采购等 OA 主办申请,并在企业微信完成请假、补卡、外出、加班等 HR/考勤申请。
- 审批人能在 OA 处理 OA 主办待办,并在企业微信处理 HR/考勤原生审批;OA 能同步镜像。
- 财务能完成发票查重、付款标记和导出。
- 管理员能维护人员、权限、企业微信入口和基础配置。
- 企业微信只作为入口和提醒,不产生正式审批分叉。
- 企业微信作为 HR/考勤/行政审批主操作端,OA 作为镜像和应急接管;不得产生无法对账的双轨审批。
### 12.2 流程验收
+43 -18
查看文件
@@ -1,20 +1,20 @@
# hyb-oa 管理员手册(10 人以下团队版)
**当前状态(2026-05-17 / HCLT)**:R7E、PRELAUNCH、CASHIER-VOUCHER-V1、LAUNCH-DEPLOY-FINANCE、FIN-PROD-ENABLE、ACCOUNTING-HANDOFF-V1、ATTV1、HR-WECOM-DIRECTORY-V1 和 HRWD-CONTACT-LIVE-TEST 均已收口;SYSTEM-COMPLETE-GATE 结论为 `GO_TO_USE`。公网 `payment_batch_v1=force_on`,`erp_sync=force_off`。企业微信通讯录同步已完成公网 create/update/disable 真实写入验证。公司当前无 ERP/独立财务系统,且 ERP 未来不接入 OA;财务闭环以 OA 内审批、台账、付款批次、银行对公付款回单和月度代账交接为准。
**当前状态(2026-05-18 / WFOC)**:R7E、PRELAUNCH、CASHIER-VOUCHER-V1、LAUNCH-DEPLOY-FINANCE、FIN-PROD-ENABLE、ACCOUNTING-HANDOFF-V1、ATTV1、HR-WECOM-DIRECTORY-V1 和 HRWD-CONTACT-LIVE-TEST 均已收口;SYSTEM-COMPLETE-GATE 结论为 `GO_TO_USE`。WFOC 已冻结“企微优先 + OA 无痛接管”需求方向:HR/考勤/行政审批优先复用企业微信,OA 做完整镜像、人工接管、恢复回写、财务闭环和审计中台。本轮只更新需求口径,不代表运行时代码已完成迁移。公网 `payment_batch_v1=force_on`,`erp_sync=force_off`。公司当前无 ERP/独立财务系统,且 ERP 未来不接入 OA;财务闭环以 OA 内审批、台账、付款批次、银行对公付款回单和月度代账交接为准。
## 1. 适用范围
- 适用于 `small_team_internal` 工作区模式。
- 适用于单公司、少部门、全员账号密码登录的小团队。
- 目标是把内部高频管理动作收口到 `hyb-oa`;企业微信只作为入口、通讯录账号、身份、通知和打卡底座。
- 目标是把财务、报销、审计、镜像和接管能力收口到 `hyb-oa`;企业微信优先承担通讯录、人事助手、打卡、HR/考勤/行政审批和移动入口。
## 2. 管理员每周固定动作
- 周一:查看 `审批待办`、报销/OCR 异常、请假/补卡/外出/加班审批、项目风险和本周关键付款/归档事项。
- 周一:查看 `审批待办`、报销/OCR 异常、企微 HR/考勤审批镜像、项目风险和本周关键付款/归档事项。
- 周中:处理报销退回、重复发票例外、企业微信绑定异常、人员权限和审批规则缺口。
- 周五:复核未完成审批、未付款报销、待归档合同/附件、采购/费用申请和下周请假安排。
## 3. 首次上线最小配置
1. 进入 `工作区设置`,确认产品模式为 `small_team_internal`。
2. 首批主路径优先保留:`Portal`、`审批待办`、`报销`、`票据/OCR`、`请假`、`项目`、`采购/费用`、`合同/附件`。
2. 首批主路径优先保留:`Portal`、`审批待办`、`报销`、`票据/OCR`、`项目`、`采购/费用`、`合同/附件`、企微 HR/考勤镜像和 OA 应急接管状态。请假、补卡、外出、加班的正常提交入口后续迁往企业微信。
3. `团队状态`、`周报`、`待办`、`公告`、`人员`、`资产` 可按真实试运行需要开启;`支付批次` 和 `AP 运营` 已作为财务闭环正式能力面向出纳、财务和管理员开放,普通员工不显示该入口;`预算`、`AI`、完整差旅能力仍作为备用或历史能力,ERP 不再规划接入。
4. 在 `用户管理` 中按推荐预设配置:老板 / 管理员 / 主管 / 员工。
- 正式审批组织口径:`majianyong` 配置为员工可见直属主管和 `manager`;`wangshunli` 配置为后台公司负责人 `ceo + admin`,不配置为普通 `manager`。
@@ -24,11 +24,12 @@
5. 检查功能开关:
- 建议开启:`portal_home_v1`、企业微信入口相关开关、报销/OCR、审批待办、请假、项目基础能力和 `payment_batch_v1`。
- 按需开启:`announcements_v1`、`presence_board_v1`、`weekly_report_v1`、`employee_lifecycle_v1`、`hr_wecom_directory_sync_v1`、`todo_board_v1`、`global_search_v1`。
- 后续按独立合同评估:`wecom_hr_master_sync_v1`、`wecom_native_approval_mirror_v1`、`oa_hr_emergency_mode_v1`、`wecom_recovery_writeback_v1`、`wecom_ruleops_v1`。
- 建议保留备用:`cutover_console_v1`、预算、AI 和完整差旅相关开关;`erp_sync` 保持关闭且不再作为后续接入目标。
### 3.1 ORG8 组织账号与角色边界
OA 员工账号是权限、审批、业务数据和审计的主事实源;企业微信作为通讯录账号、入口、免登、通知和打卡采集基础设施。管理员维护组织账号时,先保证 OA 员工主数据完整,再配置角色、企业微信通讯录同步和绑定状态。
WFOC 后,企微/人事助手是员工主数据源,OA 是员工镜像、账号权限、财务业务、接管状态和审计事实源。管理员维护组织账号时,先确认企微通讯录、人事助手和员工绑定状态,再检查 OA 员工镜像、角色、账号状态和应急接管配置。
最小必填主数据:
@@ -163,7 +164,31 @@ WHERE e.status = 'active'
ORDER BY e.employee_no;
```
### 3.2 正式财务闭环与代账交接
### 3.2 WFOC 企微优先与 OA 接管
正常运行时:
1. HR 先在企业微信通讯录或人事助手维护员工、部门、主管、职位、手机号、邮箱和在职状态。
2. OA 后续通过 `wecom_hr_master_sync_v1` 同步员工镜像,自动生成或更新 OA 员工档案、账号、角色、企业微信绑定和审计记录。
3. 员工请假、补卡、外出、加班优先在企业微信原生审批中提交和处理。
4. OA 后续通过 `wecom_native_approval_mirror_v1` 同步审批详情、审批历史、附件、状态回调、打卡规则、排班、记录、日报、月报和异常摘要。
5. 报销、PDF OCR、付款批次、银行回单、AP 台账和代账交接仍在 OA 内完成,不迁移到企业微信。
企微不可用时:
1. 管理员人工判断故障后开启 `oa_hr_emergency_mode_v1`,不得因短时 API 异常完全自动切换。
2. 开启时必须填写原因、影响范围、预计结束时间和责任人。
3. OA 临时开放请假、补卡、外出、加班提交和审批,所有单据带 `EMERGENCY` 标记。
4. 故障结束后关闭应急入口,执行恢复对账。
5. `wecom_recovery_writeback_v1` 先 dry-run,再对无冲突应急数据自动回写企微;冲突、权限不足、API 不支持或风险过高时进入人工确认。
RuleOps:
- `wecom_ruleops_v1` 允许 AI 草拟企微审批模板、打卡规则、排班、假期余额和人事字段配置建议。
- 正式写入前必须人工确认;每次写入保存前后快照、确认人、API `errcode`、失败原因、回滚建议和审计记录。
- 不得在报告、日志或截图中暴露 Secret、access token、完整位置、人脸数据、身份证号、完整手机号或原始密钥材料。
### 3.3 正式财务闭环与代账交接
公司当前没有 ERP 或独立财务系统,OA 不生成 ERP 实时凭证,也不接真实支付接口。正式财务闭环如下:
@@ -195,7 +220,7 @@ ORDER BY e.employee_no;
- 代账如发现金额、收款方、日期或票据状态不一致,先回查 OA 报销单、付款批次、银行回单和审计日志,再决定是否由出纳补充说明。
- 若代账方后续要求一键交接包,再另建开发合同,明确包内文件、权限、脱敏、审计和下载回滚规则。
### 3.3 首周正式使用运营
### 3.4 首周正式使用运营
首周支持分工:
@@ -249,23 +274,23 @@ ORDER BY e.employee_no;
### 4.2 转正 / 调岗
- `转正`:记录事件并将员工状态改为 `active`。
- `调岗`:记录部门、直属上级、职位调整,同时生成调岗交接 checklist;若通讯录同步已开启,会尝试更新企业微信成员资料。
- `调岗`:当前记录部门、直属上级、职位调整,同时生成调岗交接 checklist;WFOC 后目标是从企微/人事助手同步到 OA,OA 管理员修复需写原因和审计。
- 这两个动作只做管理留痕,不引入复杂审批流。
### 4.3 离职
1. 发起 `离职` 后,系统自动生成离职 checklist:资产归还、权限回收、费用与审批清理、交接说明。
2. 若员工仍有名下资产或待处理审批任务,系统不会自动完成离职。
3. checklist 完成且阻塞清零后,OA 账号会被停用并吊销现有会话,主业务入口对该账号不可再用。
4. 离职完成后系统默认尝试禁用企业微信成员,不删除企业微信成员;同步失败时保留记录并允许管理员重试。
4. 当前离职完成后系统默认尝试禁用企业微信成员,不删除企业微信成员;WFOC 后目标是企微离职/禁用状态同步到 OA,OA 禁用账号并吊销会话。
## 5. 团队状态与考勤口径
- 员工每天可在 `Portal` 或 `团队` 页更新状态:在岗 / 居家 / 外出 / 出差。
- 已批准请假会自动覆盖当天状态为 `请假`。
- 企业微信打卡只作为原始采集工具;定位、人脸、Wi-Fi 和排班规则不在 OA 内重造。
- 当前 OA 已完成请假审批、补卡/外出/加班修正审批和月度考勤解释。
- 企业微信打卡作为原始采集和规则执行工具;定位、人脸、Wi-Fi、设备和排班规则不在 OA 内重造。
- 当前 OA 已完成请假审批、补卡/外出/加班修正审批和月度考勤解释;WFOC 后这些能力默认作为历史查询和应急接管基础。
- 历史 `attendance_v1` 是 OA 极简打卡和管理员补卡能力,不等同于企业微信打卡风控;该入口已关闭,旧写接口返回可解释 409,历史表保留。
- OA 同步企业微信打卡摘要后,应结合 OA 请假、补卡、外出、加班审批形成正式考勤口径;缺企微打卡 Secret 或 API 权限时,同步批次按 `SKIP` 记录。
- 请假和考勤修正审批均在 OA 内完成,不使用企业微信原生审批,也不向企业微信写回补卡或加班结果。
- OA 后续同步企业微信打卡规则、排班、记录、日报、月报和 HR/考勤审批镜像,形成正式考勤口径;缺企微打卡 Secret 或 API 权限时,同步批次按 `SKIP` 记录。
- 请假、补卡、外出、加班正常在企业微信内完成;OA 仅在管理员开启应急模式时接管,恢复后 dry-run 并自动回写企微。
## 6. 周报与待办
- 周报固定三段:本周完成 / 当前阻塞 / 下周计划。
@@ -284,7 +309,7 @@ ORDER BY e.employee_no;
- 审批待办
## 8. 备用模块治理
- 采购/费用、合同/附件和项目轻管理属于 P1 轻量能力,可在 P0 审批、报销/OCR、请假和企业微信入口稳定后逐步开放。
- 采购/费用、合同/附件和项目轻管理属于 P1 轻量能力,可在 P0 报销/OCR、财务闭环、企微 HR/考勤镜像和企业微信入口稳定后逐步开放。
- 支付批次和 AP 运营已作为正式财务闭环开放给出纳、财务和管理员;普通员工仍不显示财务运营入口。
- 预算、AI、完整差旅、资产深度管理等保留代码和历史数据,但不作为当前 MVP 首批主路径;ERP 保持关闭,不再规划接入。
- 若短期完全不用,保持管理员可见即可,不必删除。
@@ -294,15 +319,15 @@ ORDER BY e.employee_no;
1. 先完成账号、角色、部门、企业微信自建应用入口和账号密码回退路径。
2. 再启用 `OA 统一审批中心 + 报销/发票/OCR/附件`,跑通提交、审批、退回、查重、付款和导出闭环。
3. 同步启用付款批次、AP 台账和银行回单附件,付款动作仍由出纳在 OA 外通过银行渠道完成。
4. 同步启用已完成的 `请假`、补卡、外出、加班 OA 审批和月度考勤解释;企业微信打卡仍作为原始采集和风控底座。
4. 先以企业微信作为请假、补卡、外出、加班和打卡主操作端;OA 侧按后续合同逐步启用 HR 主数据镜像、企微审批/考勤镜像、人工接管和恢复回写。
5. 在 P0 稳定后开放 P1:`采购/费用审批`、`合同/附件归档`、`项目轻管理`。
6. 最后按真实需要评估周报、团队状态、公告、人员生命周期、资产、预算、AI 和完整差旅;ERP 不进入评估队列。
6. 最后按真实需要评估周报、团队状态、公告、资产、预算、AI 和完整差旅;ERP 不进入评估队列。
## 10. 试点验收口径
- 全员都能账号密码登录;已绑定员工能从企业微信 `海音达工作台` 进入移动工作台。
- 至少 1 笔报销完成:上传发票或附件 -> OCR/查重 -> 提交 -> OA 审批 -> 财务复核/付款标记 -> 导出。
- 至少 1 个付款批次完成:出纳创建 -> 管理员复核 -> 出纳上传银行回单 -> 执行 OA 已付款标记 -> AP 台账和审计可查。
- 至少 1 条请假和 1 条考勤修正完成:员工提交 -> OA 审批 -> 月度考勤解释可查;日常打卡仍在企业微信。
- 后续 WFOC POC 至少 1 条企微请假和 1 条企微考勤修正完成:员工在企微提交 -> 企微审批 -> OA 镜像可查;应急模式另以测试窗口验证,不默认常开。
- 至少 1 个审批待办从企业微信提醒 deeplink 回到 OA 页面处理。
- P1 试点时,至少 1 条采购/费用申请、1 条合同台账、1 个项目关联事项可创建、审批或归档。
- 正式使用前至少完成一次备份可用性核对;真实恢复演练必须另建批准合同,并记录恢复后的 `/ready` 结果。
@@ -337,7 +362,7 @@ ORDER BY e.employee_no;
- `WECOM_ALLOWED_RETURN_HOSTS=oa.hyinda.com`
5. 先让管理员用账号密码登录,在 `个人设置` 完成一次绑定,再测试企业微信工作台直达;已绑定用户从手机企业微信进入时应直接看到移动工作台。
6. 若启用 OA 同步企业微信打卡数据,在企业微信打卡 API「可调用接口的应用」中授权 `海音达工作台`。OA 默认可复用 `WECOM_AGENT_SECRET`;只有单独创建考勤同步应用时才额外配置 `WECOM_CHECKIN_SECRET`。
7. 不配置企业微信原生审批模板作为正式流程;审批提醒使用企业微信消息,审批动作回到 OA 页面完成。
7. HR/考勤/行政审批后续配置企业微信原生审批模板作为主流程;报销、财务、采购、合同和项目类 OA 主办审批仍使用企业微信消息提醒并回到 OA 页面完成。
### 员工会看到的典型状态
- 未绑定:登录页会提示“当前企业微信账号尚未绑定”,回退到账号密码登录。
+1 -1
查看文件
@@ -4,7 +4,7 @@
**快照日期**:2026-03-12
**当前基线**:`P19+IM-1`、`P19+ERP-1`、`P19+ERP-2`、`P19+ERP-3`、`P19+MCP-1`、`P19+AI-1`、`P20+TRAVEL-1`、`P20+TRAVEL-2`、`P20+TRAVEL-3`、`P21+PWA-1` 与 `P21+PWA-2` 已完成;当前运行时已落地企微群机器人 + 深链 + Outbox 异步派发的一期协同适配,以及 ERP 主数据 Pull、报销付款凭证切片、采购双阶段 journal / 归档摘要出站、资产台账摘要出站、Postgres MCP 只读工具基线、报销 / 采购 / 资产详情页 AI 只读建议挂件、差旅申请主单 / 行程段 / 审批预算锁定 / `travel_orders` 关联入站、混合双轨对公支付闭环与批次级对账摘要桥的三期差旅基线,以及浏览器 PWA 下的移动资产扫码、盘点快捷录入与离线队列重放、移动审批 deep link 直达、本地会话快照离线守卫与审批草稿重放。
**目标**:在保持核心域稳定的前提下,冻结 ERP / IM / AI / MCP / TRAVEL / PWA 的长期边界,并记录 IM 一期、ERP 三期、AI 一期、差旅三期与 PWA 两期的已实现范围、禁入规则以及 R10 主线闭环后的固定收口结论。
**当前路线说明**:2026-05-17 HRWD 后,ERP 从“冻结待办”调整为“未来不接入 OA”;财务闭环固定为 OA 内审批/台账/付款批次/银行回单 + 月度代账交接。2026-05-09 之后首批 MVP 固定为 `hyb-oa` 唯一审批中心 + 企业微信基础设施。飞书路线已废弃;钉钉、小程序、外部 IM 回调审批和付费第三方套件不进入首批。
**当前路线说明**:2026-05-17 HRWD 后,ERP 从“冻结待办”调整为“未来不接入 OA”;财务闭环固定为 OA 内审批/台账/付款批次/银行回单 + 月度代账交接。2026-05-18 WFOC 后,HR/考勤/行政审批优先复用企业微信成熟能力,OA 做完整镜像、人工接管、恢复回写、财务闭环和审计中台;财务、报销、付款批次、AP 和代账交接继续由 OA 主办。飞书路线已废弃;钉钉、小程序、外部 IM 回调审批和付费第三方套件不进入首批。
**不得误读**:本文是技术参考和历史证据,不作为当前 MVP 扩大 ERP、AI、TRAVEL、PWA 或外部 IM 适配范围的依据;ERP 相关历史实现和接口不代表后续路线,不再规划对接外部 ERP。
## 1. 总体原则
+56 -27
查看文件
@@ -6,7 +6,7 @@
**上级事实源**:[海音达OA-MVP需求规格说明书](./海音达OA-MVP需求规格说明书.md)
**相关事实源**:[需求 - 统一审批中心规约](./需求-统一审批中心规约.md)
本规约细化企业微信在 `hyb-oa` 中的基础设施边界、入口、免登/绑定、通讯录身份、消息通知、deeplink 和打卡原始采集要求。后续企业微信相关开发必须先从本规约拆分 Issue CSV,再进入技术方案和代码实现。
本规约细化企业微信在 `hyb-oa` 中的基础设施边界、入口、免登/绑定、通讯录身份、消息通知、deeplink、打卡、人事助手、原生审批、OA 镜像、人工接管和恢复回写要求。WFOC 起产品方向调整为“企微优先 + OA 无痛接管”:能用企业微信成熟能力的 HR/考勤/行政审批优先使用企业微信,OA 做完整镜像、备份接管、财务闭环和审计中台。后续企业微信相关开发必须先从本规约拆分 Issue CSV,再进入技术方案和代码实现。
---
@@ -14,19 +14,33 @@
### 1.1 目标
- 企业微信作为 `hyb-oa` 的手机工作台入口、通讯录账号、身份辅助、消息通知和打卡原始采集底座。
- 企业微信作为 `hyb-oa` 的手机工作台入口、通讯录账号、身份辅助、消息通知、打卡、人事助手和 HR/考勤/行政审批主操作端。
- 员工在手机企业微信中进入唯一自建应用 `海音达工作台`,默认落到 OA 移动端。
- 企业微信消息只做提醒和跳转,审批动作、业务填写、附件查看和正式留痕都在 OA 内完成。
- 企业微信打卡只作为原始采集来源,后续结合 OA 请假、补卡、外出、加班审批形成正式考勤口径。
- OA 主办的报销、财务、采购、合同和项目类审批仍由企业微信消息提醒并 deeplink 回 OA 处理。
- HR/考勤/行政审批优先复用企业微信原生审批和打卡能力,OA 同步完整镜像、附件、审批历史、规则快照和审计记录。
- 企业微信不可用时,由管理员人工开启 OA HR/考勤应急模式;企微恢复后,OA 对应急数据执行 dry-run、自动回写、失败重试和冲突清单。
### 1.2 不做范围
- 不使用企业微信原生审批作为公司正式审批流。
- 不把企业微信聊天、文件或审批记录作为财务附件主库、业务单据主库或正式审计事实源。
- 不把企业微信聊天、文件或审批记录作为财务附件主库、报销 OCR 主库、付款批次主库或代账交接主库。
- OA 不重造企业微信打卡采集和风控;ATTV1 起只同步企微打卡摘要并做 OA 考勤解释。
- 首批不在 OA 内重造企业微信打卡的定位、人脸识别、Wi-Fi、排班、设备和防作弊规则。
- 首批不在 OA 内重造企业微信打卡的定位、人脸识别、Wi-Fi、排班、设备和防作弊规则;长期无痛接管目标也不要求复刻所有企微风控细节。
- 不接入飞书、钉钉或其他办公平台作为首批入口。
### 1.3 WFOC 能力分层
| 能力 | 企微能力 | OA 使用程度 | 当前状态 |
| --- | --- | --- | --- |
| 通讯录 | 成员创建、读取、更新、禁用或删除 | 近期已验证 OA 写企微;后续改为企微主源同步 OA,OA 保留修复和审计 | `CAN_REUSE` |
| 人事助手 | 员工字段配置、花名册读取、花名册更新 | 作为员工主数据源,驱动 OA 员工、账号、角色、绑定和状态镜像 | `NEEDS_API_POC` |
| 打卡 | 打卡记录、员工规则、日报、月报、排班、补卡、规则管理 | 企微主办规则和采集,OA 同步完整镜像和应急对账 | `CAN_REUSE` |
| 审批 | 模板详情、提交审批、审批状态回调、审批详情、模板创建/更新、假期余额 | HR/考勤/行政审批企微主办,OA 同步镜像;OA 主办财务和报销审批不迁移 | `NEEDS_API_POC` |
| 工作台和消息 | 自建应用入口、应用消息、deeplink | 继续作为 OA 移动入口和通知渠道 | `CAN_REUSE` |
| 财务/报销 | 企微不提供本项目需要的 PDF OCR、付款批次、银行回单和代账闭环 | OA 主办 | `KEEP_OA_PRIMARY` |
| 真实支付、ERP、图片 OCR、银行流水导入 | 非本路线目标 | 不进入当前路线 | `NOT_IN_SCOPE` |
官方能力依据包括企业微信开发者中心及文档路径:通讯录创建成员 `90195`,打卡概述 `90261`,获取打卡记录 `90262`,获取员工打卡规则 `90263`,审批概述 `91854`,提交审批申请 `91853`,获取审批详情 `91983`,人事助手概述 `99130`,员工字段配置 `99131`,花名册读取 `99132`,花名册更新 `99133`。真实接口权限、回调配置和可调用应用范围必须在后续 POC 合同中以 `NEEDS_CONFIG` 或 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG` 记录。
---
## 2. 角色与权限
@@ -34,12 +48,12 @@
| 角色 | 使用目标 | 可做动作 | 权限边界 |
| --- | --- | --- | --- |
| 员工 | 从手机进入 OA、接收提醒、完成绑定 | 进入移动工作台、绑定企业微信身份、点击消息 deeplink、查看本人相关业务 | 不能通过企业微信绕过 OA 权限 |
| 审批人 | 在手机端收到待办提醒并回 OA 处理 | 点击通知进入 OA 审批页、在 OA 内审批 | 不能在企业微信原生审批里完成正式审批 |
| 管理员/HR | 管理入口、人员、通讯录同步、绑定异常和离职停用 | 配置可见范围、协助绑定、触发通讯录创建/更新/禁用、处理离职停用、查看通知失败 | 不得手工把一个企业微信身份绑定到多个员工;通讯录同步失败不得回滚 OA 人事主数据 |
| 系统管理员 | 维护企业微信应用配置和消息通道 | 配置 CorpID、AgentID、回调、可信域名、消息开关和重试策略 | 不处理业务审批,不暴露 secret |
| 审批人 | 在手机端处理企微主办审批或从消息回 OA 处理 OA 主办审批 | HR/考勤/行政审批在企微处理;财务、报销、采购、合同等 OA 主办审批回 OA 处理 | 不得把企微 HR 审批结果当作财务付款或报销依据,必须等 OA 镜像和财务规则确认 |
| 管理员/HR | 管理入口、人员、通讯录同步、绑定异常、离职停用和应急接管 | 配置可见范围、协助绑定、同步企微主数据、查看镜像状态、人工开启/关闭 OA 应急模式 | 不得手工把一个企业微信身份绑定到多个员工;不得无审计开启应急入口或静默覆盖企微数据 |
| 系统管理员 | 维护企业微信应用配置、消息通道、回调和 RuleOps | 配置 CorpID、AgentID、Secret、回调、可信域名、消息开关、重试策略和规则写入权限 | 不处理业务审批,不暴露 secret;AI 规则建议必须人工确认后才能写入企微 |
| 财务/老板 | 接收关键待办或状态提醒 | 点击 deeplink 回 OA 查看或处理 | 消息中不得出现完整发票、合同正文、敏感报价、银行卡、身份证 |
OA 是员工、账号、角色、数据范围、审批任务和审计的主事实源。企业微信身份和通讯录账号服务于入口、通知、打卡采集和移动工作台,不替代 OA 权限判断。
WFOC 后,企微/人事助手是 HR 员工主数据源;OA 是员工镜像、账号权限、财务业务、接管状态、审计和导出事实源。企业微信身份和通讯录账号服务于入口、通知、打卡采集、HR/考勤审批和移动工作台,但 OA 仍负责自己的权限判断、财务动作和审计边界。
---
@@ -122,7 +136,8 @@ OA 是员工、账号、角色、数据范围、审批任务和审计的主事
| 业务场景 | Deeplink 目标 | 要求 |
| --- | --- | --- |
| 审批待办 | `/mobile/approvals` 或具体任务详情 | 点击后在 OA 内处理审批 |
| OA 主办审批待办 | `/mobile/approvals` 或具体任务详情 | 点击后在 OA 内处理报销、采购、合同和财务类审批 |
| 企微主办 HR 审批 | 企业微信原生审批页 | 请假、补卡、外出、加班优先在企业微信处理,OA 同步镜像 |
| 报销提醒 | 移动报销详情或审批任务 | 展示脱敏摘要,附件和发票需按 OA 权限加载 |
| 请假/补卡/外出/加班 | 移动申请详情或审批任务 | 支持查看状态和处理待办 |
| 移动工作台 | `/mobile` | 作为兜底入口 |
@@ -132,8 +147,8 @@ deeplink 必须校验目标地址白名单,避免跳转到非 OA 域名或未
### 5.3 通知验收
- 待办产生后,目标审批人能收到脱敏提醒。
- 点击消息后进入 OA 对应移动页面,而不是企业微信原生审批。
- OA 主办待办产生后,目标审批人能收到脱敏提醒。
- OA 主办消息点击后进入 OA 对应移动页面;企微主办 HR/考勤审批在企业微信处理,OA 后续同步结果。
- 未登录或会话过期时,完成登录后应尽量回到原 deeplink 目标。
- 通知失败时业务流程仍成功,管理员可查看失败原因和重试状态。
@@ -141,9 +156,9 @@ deeplink 必须校验目标地址白名单,避免跳转到非 OA 域名或未
## 6. 通讯录身份边界
- HRWD 起,OA 驱动企业微信通讯录成员创建、更新和禁用;OA 员工表仍是权限、审批、业务数据和审计的主事实源。
- HRWD 已证明 OA 驱动企业微信通讯录成员创建、更新和禁用可行;WFOC 起后续主方向调整为企微/人事助手作为员工主数据源,OA 同步员工镜像、账号、角色、绑定和审计。
- HCLT 已完成公网真实写入验证:测试员工 `HRWDTEST-20260517214548` 已完成企业微信通讯录 create/update/disable,三次同步均为 `wecom_contact_synced` 且 `errcode=0`。
- 新员工在 OA 创建账号和入职记录后,可在 `hr_wecom_directory_sync_v1` 开启且配置完整时同步创建企业微信成员,并写入 `wecom_identity_bindings.external_user_id`。
- 新员工后续目标流程为先在企微/人事助手创建,OA 通过 `wecom_hr_master_sync_v1` 同步后自动生成员工档案、账号、默认角色和 `wecom_identity_bindings.external_user_id`。OA 创建企微成员能力保留为管理员修复或迁移工具,不作为默认入职入口。
- OA 调岗、部门、职位、手机号、邮箱变化后,可触发企业微信成员更新;历史审批和历史业务单据不因调岗被改写。
- 离职完成后默认禁用企业微信成员,不删除成员;绑定关系和历史业务记录保留审计。
- 企业微信通讯录同步使用独立通讯录 Secret:`WECOM_CONTACT_SYNC_ENABLED`、`WECOM_CONTACT_SECRET`、`WECOM_CONTACT_DEFAULT_DEPARTMENT_ID`。不得默认复用应用消息 Secret,除非企业微信后台明确该 Secret 具备通讯录写权限。
@@ -156,17 +171,18 @@ deeplink 必须校验目标地址白名单,避免跳转到非 OA 域名或未
| --- | --- | --- |
| OA 员工生命周期 | `DONE` | 支持入职、转正、调岗、离职 checklist、账号禁用、会话失效和审计。 |
| OA 驱动企微通讯录创建/更新/禁用 | `DONE_LIVE_VERIFIED` | 代码、同步记录、员工管理状态和重试入口已部署;HCLT 公网真实写入闭环通过,`HRWDTEST-20260517214548` create/update/disable 均返回 `errcode=0`。其他环境缺 Secret、默认部门或通讯录 API 权限时仍按 `SKIP/BLOCKED_BY_EXTERNAL_CONFIG` 或失败可重试处理。 |
| 企业微信原生审批 | `FROZEN` | 不作为正式审批流,入离职、请假、补卡、外出、加班审批均在 OA 内留痕。 |
| 企微 HR 主数据同步 OA | `PLANNED_BY_WFOC` | 后续以 `wecom_hr_master_sync_v1` 拆实现合同,员工主数据从企微/人事助手同步到 OA。 |
| 企业微信原生审批 | `PARTIAL_REUSE_BY_WFOC` | HR/考勤/行政审批优先复用企业微信,OA 同步完整镜像;报销、财务、采购、合同等 OA 主办审批不迁移。 |
---
## 7. 打卡原始采集边界
- 企业微信打卡用于原始采集,保留其定位、人脸识别、Wi-Fi、排班和设备能力。
- OA 首批不重造打卡定位、人脸识别、Wi-Fi、排班、设备绑定、防作弊和异常判断引擎。
- ATTV1 新增企微打卡摘要同步、同步批次和 raw hash 留痕;缺已授权自建应用 Secret 或 API 权限时同步批次记录 `SKIP`。若工作台应用已在企业微信打卡 API「可调用接口的应用」中授权,OA 可复用现有 `WECOM_AGENT_SECRET`;`WECOM_CHECKIN_SECRET` 仅作为单独考勤同步应用的显式覆盖。
- OA 把企业微信打卡摘要与 OA 请假、补卡、外出、加班审批结果合并,形成正式考勤解释。
- 企业微信打卡异常不直接等于最终考勤异常;最终解释必须结合 OA 审批记录。
- 企业微信打卡用于原始采集和规则执行,保留其定位、人脸识别、Wi-Fi、排班、设备和防作弊能力。
- OA 不重造打卡定位、人脸识别、Wi-Fi、排班、设备绑定、防作弊和异常判断引擎;长期无痛接管目标优先保障关键申请和审计,不复刻企微所有风控能力。
- ATTV1 新增企微打卡摘要同步、同步批次和 raw hash 留痕;WFOC 后后续目标扩展为打卡规则、排班、记录、日报、月报和异常摘要完整镜像。
- 请假、补卡、外出、加班优先走企业微信原生审批;OA 同步企微审批结果并形成考勤解释。
- 企业微信不可用时,管理员人工开启 `oa_hr_emergency_mode_v1`,OA 应急单据带 `EMERGENCY` 标记;企微恢复后由 `wecom_recovery_writeback_v1` 执行 dry-run、自动回写和冲突清单。
REQAUD 复核后,ATTV1 已完成统一入口实现,企业微信打卡边界进一步固定为:
@@ -175,7 +191,15 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,企业微信打卡边界
| 企业微信打卡运营使用 | `DONE` | 员工继续按公司要求使用企业微信打卡,定位、人脸、Wi-Fi、设备和防作弊由企业微信侧承担。 |
| OA 同步企业微信打卡 API | `PARTIAL` | 同步表、批次、摘要和脱敏错误码已实现;公网真实同步取决于已授权调用打卡 API 的自建应用 Secret 和企微打卡 API 权限。默认显式 `WECOM_CHECKIN_SECRET` 优先;未配置时复用已授权工作台应用的 `WECOM_AGENT_SECRET`。 |
| OA 历史 `attendance_v1` 极简打卡 | `FROZEN_CLOSED` | 该模块已从正式入口关闭;旧表保留,旧写接口返回 409,不作为企微打卡能力。 |
| 正式考勤解释 | `DONE` | OA 已支持请假、补卡、外出、加班审批和月度解释;不向企业微信原生审批或补卡接口写回。 |
| 正式考勤解释 | `REPLANNED_BY_WFOC` | 当前 OA 已支持请假、补卡、外出、加班审批和月度解释;后续目标改为企微审批主办、OA 完整镜像、应急接管和恢复回写。 |
## 7.5 接管、回写和 RuleOps
- `oa_hr_emergency_mode_v1` 默认关闭。企微不可用时,只允许管理员人工开启,并填写原因、范围、预计结束时间和责任人;系统不得因短时 API 异常完全自动切换。
- 应急模式只临时开放 HR/考勤类申请:请假、补卡、外出、加班。报销、PDF OCR、付款批次、银行回单、AP 台账和代账交接不受企微故障影响,继续由 OA 主办。
- `wecom_recovery_writeback_v1` 在企微恢复后先 dry-run,生成即将回写的审批、补卡、打卡或假期调整清单;无冲突项可自动回写,冲突、权限不足、API 不支持或风险过高时进入人工确认。
- `wecom_ruleops_v1` 允许 AI 读取 OA 制度和企微规则后生成建议配置、差异报告和风险提示;正式写入企微审批模板、打卡规则、排班、假期余额或人事字段前必须人工确认。
- 每次 RuleOps 写入必须保存前后快照、确认人、API `errcode`、失败原因、回滚建议和审计记录;不得保存 Secret、access token、完整位置、人脸数据或原始密钥材料。
---
@@ -187,7 +211,10 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,企业微信打卡边界
| 未绑定回退 | 未绑定员工从企业微信进入 | 提示未绑定,可使用账号密码登录后绑定 |
| 重复绑定阻断 | 管理员或员工尝试把同一企业微信身份绑定多个员工 | 操作失败并留下审计记录 |
| 离职停用拦截 | 已停用员工从企业微信入口进入 | 不能进入 OA 业务页面 |
| 审批通知回 OA | 审批待办产生后发送企业微信提醒 | 点击消息进入 OA 审批页,审批动作在 OA 完成 |
| OA 主办审批通知回 OA | 报销、采购、合同或财务待办产生后发送企业微信提醒 | 点击消息进入 OA 审批页,审批动作在 OA 完成 |
| 企微主办 HR 审批镜像 | 员工在企业微信提交请假、补卡、外出或加班 | OA 同步审批单、审批历史、附件、状态回调和审计镜像 |
| OA 应急接管 | 管理员人工开启应急模式后,员工在 OA 提交 HR/考勤应急申请 | 单据带 `EMERGENCY` 标记,进入恢复回写队列 |
| 恢复回写 | 企业微信恢复后执行 dry-run 和回写 | 成功、失败、冲突和人工确认项均可审计 |
| 报销通知脱敏 | 报销状态变化发送提醒 | 消息只有标题、编号、状态和入口,不含完整发票或附件 |
| 通知失败不阻断 | 模拟企业微信消息发送失败 | 主业务成功,通知进入失败可重试 |
| 打卡边界确认 | 员工使用企业微信打卡,OA 查看考勤相关说明 | 文档和界面不暗示 OA 已重造定位、人脸或排班 |
@@ -202,8 +229,10 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,企业微信打卡边界
- A4:离职停用、组织权限和绑定异常拦截。
- A5:企业微信通知 provider 和失败重试,不阻断主业务。
- A6:deeplink 白名单和移动目标页回跳。
- A7:通讯录辅助字段和后续同步边界。
- A8:企业微信打卡 live 同步配置和权限稳定化,缺配置时继续按 `SKIP` 记录。
- A9:企业微信真机 smoke 清单,覆盖工作台入口、绑定、通知和回跳。
- A7:`wecom_hr_master_sync_v1`,企微/人事助手员工主数据同步 OA。
- A8:`wecom_native_approval_mirror_v1`,企微请假、补卡、外出、加班审批和打卡数据完整镜像。
- A9:`oa_hr_emergency_mode_v1`,OA 人工接管 HR/考勤应急提交。
- A10:`wecom_recovery_writeback_v1`,企微恢复后 dry-run、自动回写、失败重试和冲突清单。
- A11:`wecom_ruleops_v1`,AI 草拟、人工确认、API 写入和配置快照审计。
涉及真实企业微信凭据、回调域名、可信域名、生产配置或真机验证的 Issue,必须在技术方案中写明配置项、回滚路径和无法自动化时的人工验收步骤。
+35 -24
查看文件
@@ -5,7 +5,7 @@
**状态**:模块级开发规约
**上级事实源**:[海音达OA-MVP需求规格说明书](./海音达OA-MVP需求规格说明书.md)
本规约细化 `hyb-oa` 统一审批中心的产品边界、角色权限、状态模型、异常规则、留痕要求和验收场景。后续审批相关开发必须先从本规约拆分 Issue CSV,再进入技术方案和代码实现。
本规约细化 `hyb-oa` 审批中心和企业微信原生审批镜像的产品边界、角色权限、状态模型、异常规则、留痕要求和验收场景。WFOC 起,审批按主办方分层:报销、财务、采购、合同和项目类审批继续由 OA 主办;HR/考勤/行政审批优先由企业微信主办,OA 同步完整镜像并保留人工接管和恢复回写能力。后续审批相关开发必须先从本规约拆分 Issue CSV,再进入技术方案和代码实现。
---
@@ -13,31 +13,41 @@
### 1.1 目标
- `hyb-oa` 是公司唯一业务主系统和唯一正式审批中心。
- 所有正式审批在 OA 内提交、审批、留痕、归档。
- PC、移动端和企业微信入口看到的是同一批审批任务和同一套审批记录。
- 企业微信只做入口、身份、通知和 deeplink;审批动作必须回到 OA 页面完成。
- R5 已在公网验证企业微信工作台入口、免登录、个人应用消息通知和移动审批回流;R6 之后继续沿用“OA 内审批、企业微信提醒回流”的正式口径。
- `hyb-oa` 是财务审批、报销、采购、合同、项目和审计镜像中心。
- HR/考勤/行政审批优先复用企业微信原生审批;OA 同步审批单、审批历史、附件、状态回调和审计镜像。
- PC、移动端和企业微信入口应能区分 OA 主办审批、企微主办审批镜像和 OA 应急接管单据。
- 企业微信消息继续作为 OA 主办审批的提醒和 deeplink;企微主办审批在企业微信内完成,OA 负责镜像和恢复对账。
- 企微不可用时,管理员可人工开启 `oa_hr_emergency_mode_v1`,临时由 OA 接管 HR/考勤应急审批;企微恢复后通过 `wecom_recovery_writeback_v1` 回写和对账。
### 1.2 适用对象
首批及后续默认纳入 OA 审批中心的正式审批包括:
首批及后续默认纳入 OA 主办审批中心的正式审批包括:
- 报销审批。
- 请假、补卡、外出、加班、出差等考勤相关审批。
- 采购审批。
- 费用审批。
- 合同审批、合同变更审批和合同归档相关审批。
- 资产领用、归还、调拨、盘点中需要正式留痕的动作。
- 后续新增业务审批,除非另有明确产品决策,否则默认接入统一审批中心。
- 后续新增财务、采购、合同、项目和高风险业务审批,除非另有明确产品决策,否则默认接入 OA 主办审批中心。
企业微信主办审批第一批包括:
- 请假。
- 补卡。
- 外出。
- 加班。
- 与上述事项关联的假期余额和考勤解释。
OA 中既有请假、补卡、外出、加班能力转为历史只读、镜像展示和应急接管能力;正常情况下不再作为员工日常提交入口。
### 1.3 暂不做范围
- 不使用企业微信原生审批作为公司正式审批流。
- 不接入飞书登录、飞书审批、飞书通知或飞书项目管理。
- 首批不做复杂 BPM 设计器、自由拖拽流程、并行会签、条件分支可视化建模。
- 首批不做跨公司多租户审批市场化配置。
- 首批不做审批动作离线处理;移动端必须在线提交动作。
- 不把企业微信 HR/考勤审批结果直接用于报销付款、财务复核或 AP 台账;财务动作必须在 OA 内完成。
- 不让 AI 直接改正式审批模板;`wecom_ruleops_v1` 只能先草拟和 dry-run,人工确认后才允许写入企微。
---
@@ -48,9 +58,9 @@
| 申请人 | 普通员工、主管、财务、HR | 创建草稿、提交、查看自己的单据、撤回允许撤回的单据、按退回意见修改后重提 | 只能编辑草稿、已退回、已驳回且规则允许重提的本人单据;当前不允许审批自己的待办;未来如需自审例外,必须另拆规则并强审计 |
| 审批人 | 主管、项目负责人、老板、被转审人 | 查看分配给自己的待办,通过、驳回、退回、转审、查看审批历史 | 只能处理当前分配给自己的任务;不能越权处理他人待办 |
| 财务 | 财务人员、财务主管 | 处理报销复核、付款标记、财务导出、重复发票例外审批中与财务相关的动作 | 不默认拥有系统管理权限;财务例外动作必须留痕 |
| HR/行政 | HR、行政负责人 | 处理请假、补卡、外出、加班等行政审批或复核;维护基础人员与组织配置 | 不能绕过审批流直接改业务结果,必要修正必须审计 |
| HR/行政 | HR、行政负责人 | 在企业微信处理请假、补卡、外出、加班等行政审批;在 OA 查看镜像、处理应急接管和恢复对账 | 不能绕过审批流直接改业务结果,必要修正必须审计 |
| 老板/总经理 | 公司负责人 | 处理大额、高风险或最终节点审批,查看公司级待办和摘要 | 操作仍需写入审批历史和审计日志 |
| 系统管理员 | 运维或后台系统负责人 | 配置角色、权限、企业微信入口、通知、基础字典和功能开关 | `admin` 只代表系统管理权限,不自动获得业务单据审批权;直接数据修复必须另有运维流程和审计 |
| 系统管理员 | 运维或后台系统负责人 | 配置角色、权限、企业微信入口、通知、基础字典、功能开关、应急模式和 RuleOps | `admin` 只代表系统管理权限,不自动获得业务单据审批权;应急模式、回写和规则写入必须有审计 |
权限判定以服务端为准,前端按钮显隐只是体验优化,不作为授权依据。
@@ -104,7 +114,7 @@
| PC 审批待办 | `/workflow/tasks` | 审批人集中处理待办、已办、抄送或历史任务 | 应在 PC 主导航清晰可达 |
| 移动审批 | `/mobile/approvals` | 手机端处理待办和查看审批历史 | 应适配企业微信 WebView 和普通手机浏览器 |
| 业务详情页 | 报销、请假、采购、合同等详情页 | 从具体单据查看审批流和执行动作 | 状态、当前节点、历史记录必须与待办一致 |
| 企业微信消息 | deeplink 到 OA 页面 | 只做提醒和跳转 | 不在企业微信原生审批里完成正式审批 |
| 企业微信消息 | deeplink 到 OA 页面或企微原生审批 | OA 主办审批回 OA,HR/考勤企微主办审批在企业微信处理 | 必须区分主办方,不把企微 HR 审批当作财务审批 |
| Portal 待办摘要 | `/portal` 或首页卡片 | 提醒当前待处理数量 | 点击后进入 `/workflow/tasks` 或对应详情页 |
### 3.2 任务列表要求
@@ -149,11 +159,10 @@
| 采购 | `<=1000` 元 | 直属主管 | 视费用类型抽查 | 老板/总经理 | 审批完成前允许撤回 | 允许转给项目负责人或上级 |
| 采购 | `1000-5000` 元 | 直属主管 -> 老板/总经理 | 视付款方式财务复核 | 老板/总经理 | 老板审批前允许撤回 | 允许转审但不得绕过老板节点 |
| 采购 | `>5000` 元 | 直属主管 -> 老板/总经理 | 财务复核,建议关联合同或附件 | 老板/总经理 | 老板审批前允许撤回 | 允许转审但必须保留原因 |
| 请假 | `<=1` 天 | 直属主管 | 无 | HR/行政 | 开始时间前允许撤回 | 允许转给上级或 HR/行政 |
| 请假 | `>1` 天 | 直属主管 | HR/行政复核 | 老板/总经理 | HR 复核前允许撤回 | 允许转给上级或 HR/行政 |
| 补卡 | 所有 | 直属主管 | HR/行政复核 | HR/行政 | 审批完成前允许撤回 | 允许转给 HR/行政 |
| 外出 | 所有 | 直属主管 | HR/行政按需复核 | HR/行政 | 审批完成前允许撤回 | 允许转给上级或 HR/行政 |
| 加班 | 所有 | 直属主管 | HR/行政复核 | HR/行政 | 审批完成前允许撤回 | 允许转给上级或 HR/行政 |
| 请假 | 由企微模板配置 | 企业微信原生审批 | 按企微模板和公司制度 | OA 应急时按管理员临时规则 | 按企微能力或 OA 应急规则 | 企微正常时在企微处理,OA 只同步镜像 |
| 补卡 | 由企微模板配置 | 企业微信原生审批 | 按企微模板和公司制度 | OA 应急时按管理员临时规则 | 按企微能力或 OA 应急规则 | 企微正常时在企微处理,OA 只同步镜像 |
| 外出 | 由企微模板配置 | 企业微信原生审批 | 按企微模板和公司制度 | OA 应急时按管理员临时规则 | 按企微能力或 OA 应急规则 | 企微正常时在企微处理,OA 只同步镜像 |
| 加班 | 由企微模板配置 | 企业微信原生审批 | 按企微模板和公司制度 | OA 应急时按管理员临时规则 | 按企微能力或 OA 应急规则 | 企微正常时在企微处理,OA 只同步镜像 |
| 合同 | 所有 | 负责人主管 -> 老板/总经理 | 财务按金额或付款条款复核 | 老板/总经理 | 老板审批前允许撤回 | 允许转审但不得绕过老板节点 |
规则匹配优先级为:业务类型 -> 金额或天数阈值 -> 项目/部门特殊规则 -> 默认规则。若找不到审批人、缺直属主管、主管链断裂、审批人停用或节点解析为申请人本人,提交必须阻断并提示管理员修正组织或审批规则,不得生成半截流程。
@@ -249,7 +258,7 @@ WF8 阶段只做轻量转审扩展,不进入复杂 BPM、审批设计器、并
- 首批覆盖报销、请假、采购三类已接入统一审批中心的待办。
- 合同、差旅、资产等后续业务沿用同一原则,但必须另走对应连续 Issue 验收。
- 企业微信只做通知和 deeplink 回 OA,不在企业微信原生审批中完成转审。
- OA 主办审批通过企业微信通知和 deeplink 回 OA;HR/考勤企微主办审批允许在企业微信原生审批中完成转审或流转,OA 同步最终详情。
发起人规则:
@@ -340,7 +349,7 @@ WF8-3、WF8-4、WF8-5 实现前必须基于本设计给技术方案;实现后
- 企业微信消息只发送脱敏提醒:标题、业务编号、状态、处理入口。
- 企业微信 deeplink 必须指向 OA 审批页或业务详情页。
- 用户点击消息后,在 OA 内查看详情并执行审批动作。
- 企业微信原生审批不参与正式审批流,不生成公司认可的正式审批记录。
- 企业微信原生审批参与 HR/考勤/行政审批正式流程,OA 通过 `wecom_native_approval_mirror_v1` 同步为可查询、可导出、可审计的镜像记录。报销、财务、采购、合同和项目类 OA 主办审批仍不得在企业微信原生审批中替代完成。
- 若企业微信返回 `invaliduser`、`unlicenseduser`、不可见范围或权限类错误,业务提交和审批动作不应回滚,但通知记录必须可审计、可重试,并提示管理员修正企业微信应用可见范围或账号绑定。
- 真机验收以企业微信手机端收到应用消息并可点击回流为准;系统级弹窗是否出现受客户端通知权限影响,不作为 OA 通知链路硬门槛。
@@ -367,9 +376,11 @@ WF8 当前正式验收通道为站内通知和企业微信个人应用消息。
| 场景 | 步骤 | 预期结果 |
| --- | --- | --- |
| 正常审批通过 | 申请人提交报销或请假;审批人在 PC 通过;查看业务详情 | 单据从草稿到审批中再到已通过;历史、当前状态、通知记录一致 |
| OA 主办审批通过 | 申请人提交报销、采购或合同事项;审批人在 PC 通过;查看业务详情 | 单据从草稿到审批中再到已通过;历史、当前状态、通知记录一致 |
| 移动端审批 | 申请人提交单据;审批人从 `/mobile/approvals` 打开待办并通过 | 移动端可完成审批;PC 待办同步消失或进入已办 |
| 企业微信通知回 OA | 待办产生后发送企业微信提醒;审批人点击 deeplink | 打开 OA 对应审批页;不能在企业微信原生审批完成动作 |
| 企业微信通知回 OA | OA 主办待办产生后发送企业微信提醒;审批人点击 deeplink | 打开 OA 对应审批页;审批动作在 OA 完成 |
| 企微 HR 审批镜像 | 员工在企业微信提交请假、补卡、外出或加班;审批人在企业微信处理 | OA 通过 `wecom_native_approval_mirror_v1` 同步审批详情、历史、附件和状态 |
| OA 应急 HR 审批 | 管理员人工开启 `oa_hr_emergency_mode_v1` 后,员工在 OA 提交 HR/考勤应急单 | 单据带 `EMERGENCY` 标记,进入恢复回写队列 |
| 企业微信个人应用消息 | 触发待办后向绑定企业微信成员发送个人应用消息 | delivery 为成功且无 `invaliduser`;手机端可收到消息并点击回到 OA 移动审批 |
| 驳回重提 | 审批人填写原因驳回;申请人查看原因后复制或重建申请 | 原流程留痕完整;新流程有新的提交记录 |
| 退回修改 | 审批人退回;申请人修改后重提 | 保留同一业务单号和退回历史;重新进入审批中 |
@@ -394,8 +405,8 @@ WF8 当前正式验收通道为站内通知和企业微信个人应用消息。
- A2:通用状态转换与并发保护,覆盖提交、通过、驳回、退回、撤回、转审。
- A3:审批权限与当前处理人校验,覆盖越权、自审、停用账号和角色待办。
- A4:审批历史、审计日志和通知记录一致性。
- A5:企业微信通知 deeplink 回 OA 验证,不新增企业微信原生审批。
- A6:报销、请假、采购等业务模块逐个接入统一审批验收。
- A5:企业微信通知 deeplink 回 OA 验证,覆盖 OA 主办审批回 OA 和企微主办 HR/考勤审批镜像。
- A6:报销、采购、合同等 OA 主办业务逐个接入统一审批验收;请假、补卡、外出、加班按 `wecom_native_approval_mirror_v1` 单独接入镜像。
- A7:审批回归脚本与 Playwright PC/移动/企业微信 UA 验证。
- A8:审批规则配置矩阵落地,覆盖金额阈值、天数阈值、兜底审批人、转审和撤回。
- A9:权限与数据范围矩阵落地,覆盖附件下载、导出、例外处理和系统管理员最小授权。
+48 -41
查看文件
@@ -7,7 +7,7 @@
**相关事实源**:[需求 - 统一审批中心规约](./需求-统一审批中心规约.md)、[需求 - 企业微信基础设施规约](./需求-企业微信基础设施规约.md)
**体验总依据**:[产品设计规则基线](./产品设计规则.md)
本规约细化请假、补卡、外出、加班与考勤修正的产品要求。正式审批记录以 OA 为准;企业微信打卡只作为原始采集来源,不直接决定最终考勤结论。PC 和移动页面体验以产品设计规则基线为依据,不重复定义通用审批链和移动导航规则。
本规约细化请假、补卡、外出、加班与考勤修正的产品要求。WFOC 起,企业微信作为 HR/考勤/行政审批和打卡规则主操作端;OA 负责完整镜像、应急接管、恢复回写、查询导出和审计。PC 和移动页面体验以产品设计规则基线为依据,不重复定义通用审批链和移动导航规则。
---
@@ -15,10 +15,11 @@
### 1.1 目标
- 员工能在 OA PC 或移动端提交请假、补卡、外出、加班申请。
- 主管、HR/管理员在 OA 内审批并留痕。
- 已通过的考勤修正影响团队状态、日历展示和后续正式考勤口径。
- 企业微信打卡原始记录由 OA 按摘要同步,必须结合 OA 审批结果解释。
- 员工正常在企业微信提交请假、补卡、外出、加班申请,并继续使用企业微信打卡。
- 主管、HR/管理员正常在企业微信处理 HR/考勤审批;OA 同步审批单、审批历史、附件、状态回调、假期余额和打卡数据。
- OA 保存完整原始归档和规范化镜像,用于团队状态、日历展示、考勤解释、审计和导出。
- 企业微信不可用时,管理员可人工开启 OA 应急模式,临时开放请假、补卡、外出、加班提交和审批。
- 企微恢复后,OA 对应急单据执行 dry-run、自动回写、失败重试和冲突清单。
### 1.2 适用对象
@@ -30,11 +31,11 @@
### 1.3 不做范围
- 不使用企业微信原生审批处理请假、补卡、外出、加班。
- 不在企微正常可用时引导员工绕开企业微信到 OA 提交 HR/考勤新单。
- 首批不重造企业微信打卡的定位、人脸识别、Wi-Fi、排班和防作弊规则。
- 不在 OA 内重造企业微信打卡采集和风控;OA 只同步摘要并做审批解释。
- 不在 OA 内重造企业微信打卡采集和风控;OA 同步记录、规则、日报、月报和异常摘要并做镜像解释。
- 首批不做复杂假期余额、调休余额、薪资计算、排班引擎和法定节假日自动规则。
- 不把企业微信打卡异常直接作为 OA 最终考勤结论。
- 不把企业微信打卡异常直接作为 OA 最终考勤结论;最终解释需结合企微审批、OA 应急单和恢复对账结果。
### 1.4 当前实现状态
@@ -42,14 +43,17 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,当前运行时完成度
| 能力 | 状态 | 当前口径 |
| --- | --- | --- |
| 请假申请、审批、撤回、编辑、移动查看 | `DONE` | 已接入统一审批中心和 PC/移动页面。 |
| 请假申请、审批、撤回、编辑、移动查看 | `DONE_AS_OA_FALLBACK` | 当前已接入统一审批中心和 PC/移动页面;WFOC 后默认转为历史查询和应急接管能力。 |
| 请假对团队状态/日历的影响 | `DONE` | 已批准请假可作为团队状态和日历依据。 |
| 企业微信打卡作为原始采集 | `DONE` | 由企业微信侧承载定位、人脸、Wi-Fi、设备和防作弊能力;OA 不重造。 |
| 企业微信打卡 API 同步 | `PARTIAL` | 已新增同步批次和企微打卡摘要表;有已授权调用打卡 API 的自建应用 Secret 和企微权限时同步,缺配置时记录 `SKIP`。`WECOM_CHECKIN_SECRET` 可作为单独考勤同步应用的显式覆盖;未配置时复用已授权工作台应用的 `WECOM_AGENT_SECRET`。 |
| 员工补卡申请审批 | `DONE` | 员工可在 OA 提交补卡修正,进入统一审批;通过后用于月度考勤解释,不写回企业微信。 |
| 外出申请审批 | `DONE` | 员工可在 OA 提交外出修正,记录地点摘要和事由,审批后用于月度解释。 |
| 加班申请审批 | `DONE` | 员工可在 OA 提交加班修正,记录时间、原因和补偿口径,审批后用于月度解释。 |
| 企微 HR/考勤审批镜像 | `PLANNED_BY_WFOC` | 后续通过 `wecom_native_approval_mirror_v1` 同步企微请假、补卡、外出、加班审批详情、历史、附件和状态。 |
| 员工补卡申请审批 | `DONE_AS_OA_FALLBACK` | 当前 OA 能提交补卡修正;WFOC 后正常入口迁往企微,OA 仅在应急模式开放并进入恢复回写。 |
| 外出申请审批 | `DONE_AS_OA_FALLBACK` | 当前 OA 能提交外出修正;WFOC 后正常入口迁往企微,OA 仅在应急模式开放并进入恢复回写。 |
| 加班申请审批 | `DONE_AS_OA_FALLBACK` | 当前 OA 能提交加班修正;WFOC 后正常入口迁往企微,OA 仅在应急模式开放并进入恢复回写。 |
| 历史 OA 极简打卡 `attendance_v1` | `FROZEN_CLOSED` | 自建上下班打卡、管理员补卡和自建月度统计已关闭正式入口;旧表保留,旧写接口返回可解释 409。 |
| OA 应急模式 | `PLANNED_BY_WFOC` | `oa_hr_emergency_mode_v1` 默认关闭,企微不可用时由管理员人工开启。 |
| 恢复回写 | `PLANNED_BY_WFOC` | `wecom_recovery_writeback_v1` 在企微恢复后 dry-run 并自动回写应急数据,冲突转人工确认。 |
---
@@ -57,9 +61,9 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,当前运行时完成度
| 角色 | 可做动作 | 权限边界 |
| --- | --- | --- |
| 申请人 | 新建草稿、提交、撤回、查看自己的申请、按退回意见修改重提 | 只能编辑本人草稿、已退回或允许重提的申请 |
| 主管/审批人 | 查看分配给自己的待办,通过、驳回、退回、转审 | 只能处理当前分配给自己的 OA 审批任务 |
| HR/管理员 | 复核请假、补卡、外出、加班,维护基础假别和考勤口径 | 不能绕过流程直接改审批结果;必要修正必须审计 |
| 申请人 | 正常在企业微信提交和查看请假、补卡、外出、加班;应急模式下在 OA 提交 | OA 应急提交必须在管理员开启窗口内,且单据带 `EMERGENCY` 标记 |
| 主管/审批人 | 正常在企业微信处理 HR/考勤审批;OA 主办或应急待办在 OA 处理 | 只能处理分配给自己的待办;企微和 OA 结果必须可对账 |
| HR/管理员 | 配置企微 HR/考勤规则,查看 OA 镜像,开启/关闭应急模式,处理恢复回写冲突 | 不能绕过流程直接改业务结果;应急开启、回写和人工修正必须审计 |
| 老板/总经理 | 处理长假、高风险或特殊事项 | 操作仍需写入审批历史和审计日志 |
| 系统管理员 | 维护权限、通知、入口、基础配置 | 默认不具备业务审批权 |
@@ -71,9 +75,9 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,当前运行时完成度
| 入口 | 场景 | 要求 |
| --- | --- | --- |
| PC 请假/考勤修正页 | 批量查看、较复杂申请、管理员复核 | 可查看完整字段、审批历史和团队影响 |
| 移动工作台 | 员工日常提交请假、补卡、外出、加班 | 操作路径短,适合手机填写 |
| 移动审批 | 主管或 HR 处理待办 | 进入 OA 审批页处理,不进入企业微信原生审批 |
| PC 请假/考勤修正页 | 查看企微镜像、历史 OA 单据、应急单和恢复回写状态 | 默认不作为新单日常入口;应急模式开启时才开放提交 |
| 移动工作台 | 查看镜像状态、历史和应急入口提示 | 企微正常时引导员工到企业微信处理日常 HR/考勤申请 |
| 移动审批 | 主管或 HR 处理 OA 主办或应急待办 | 企微主办 HR 审批在企业微信处理,OA 只显示镜像 |
| 团队状态页 | 查看今天谁在岗、请假、外出、出差 | 使用已批准申请影响展示 |
| 日历视图 | 查看请假和外出安排 | 首批可轻量展示,不做复杂排班 |
| 企业微信 deeplink | 通知提醒和跳转 | 点击后回 OA 页面 |
@@ -115,7 +119,7 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,当前运行时完成度
### 5.1 审批规则
以下是 10 人以下公司试运行建议值,不等于最终公司制度。正式制度可由管理员配置调整。
WFOC 后,正常审批规则优先以企业微信审批模板和打卡/假期配置为准;OA 中以下规则保留为应急接管建议值,不等于最终公司制度。正式制度可由管理员配置调整,并通过 `wecom_ruleops_v1` 先 dry-run、人工确认后写入企微。
| 类型 | 阈值 | 默认审批链 | HR/管理员复核 | 兜底审批人 |
| --- | --- | --- | --- | --- |
@@ -148,9 +152,9 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,当前运行时完成度
### 6.1 基本原则
- 企业微信打卡记录是原始采集事实。
- OA 请假、补卡、外出、加班审批是考勤解释事实。
- 最终正式考勤口径应由企业微信打卡原始记录加 OA 审批结果共同形成。
- 企业微信打卡记录、打卡规则和 HR/考勤审批是正常情况下的原始业务事实。
- OA 镜像记录、历史 OA 单据和应急单据是审计、查询、接管和恢复对账事实。
- 最终正式考勤口径应由企业微信打卡原始记录、企微审批结果、OA 应急单和恢复回写结果共同形成。
- 企业微信打卡异常不直接等于最终考勤异常。
- OA 首批不重造定位、人脸识别、Wi-Fi、排班和防作弊规则。
@@ -158,10 +162,11 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,当前运行时完成度
| 场景 | 原始打卡 | OA 审批 | 正式解释 |
| --- | --- | --- | --- |
| 已批准请假 | 无打卡或不完整 | 请假已通过 | 按请假处理,不直接记异常 |
| 忘打卡 | 缺少上班或下班卡 | 补卡已通过 | 按补卡修正解释 |
| 客户现场 | 打卡地点异常或无办公室打卡 | 外出已通过 | 按外出处理 |
| 晚间工作 | 正常下班后继续工作 | 加班已通过 | 记录加班事实,补偿另按制度处理 |
| 已批准请假 | 无打卡或不完整 | 企微请假已通过,OA 已同步镜像 | 按请假处理,不直接记异常 |
| 忘打卡 | 缺少上班或下班卡 | 企微补卡已通过,OA 已同步镜像 | 按补卡修正解释 |
| 客户现场 | 打卡地点异常或无办公室打卡 | 企微外出已通过,OA 已同步镜像 | 按外出处理 |
| 晚间工作 | 正常下班后继续工作 | 企微加班已通过,OA 已同步镜像 | 记录加班事实,补偿另按制度处理 |
| 企微故障应急 | 无法提交企微审批 | OA `EMERGENCY` 应急单已通过,恢复后已回写或待对账 | 按 OA 应急单和回写结果解释 |
| 无审批异常 | 缺卡或迟到 | 无有效 OA 审批 | 保持异常待处理或人工复核 |
---
@@ -188,7 +193,7 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,当前运行时完成度
| 权限不足 | 服务端拒绝 | “无权处理该申请” |
| 团队状态更新失败 | 审批保持成功,生效状态进入失败可重试 | “申请已审批通过,状态同步稍后重试” |
| 已生效后取消 | 仅授权 HR/管理员处理,必须填写原因 | “已生效申请取消需管理员处理” |
| 企业微信打卡未同步 | 不影响 OA 申请审批 | “打卡原始记录暂未同步,审批结果已在 OA 留痕” |
| 企业微信打卡或审批未同步 | 不影响企微已完成事实;OA 镜像进入可重试或待配置状态 | “企业微信数据暂未同步,稍后重试或联系管理员” |
---
@@ -196,26 +201,28 @@ REQAUD 复核后,ATTV1 已完成统一入口实现,当前运行时完成度
| 场景 | 步骤 | 预期结果 |
| --- | --- | --- |
| 请假主管审批 | 员工提交 `0.5` 天请假;主管通过 | 申请已通过,并影响团队状态 |
| 长假 HR 复核 | 员工提交 `2` 天请假;主管通过;HR 复核 | 审批链完整,HR 复核后生效 |
| 补卡审批 | 员工提交缺失下班卡补卡;主管和 HR 通过 | 补卡记录影响考勤解释 |
| 外出审批 | 员工提交客户现场外出;主管通过 | 团队状态显示外出或相关摘要 |
| 加班审批 | 员工提交晚间加班;主管和 HR 通过 | 加班记录留痕,补偿口径被记录 |
| 退回修改 | 审批人退回申请;员工修改后重提 | 保留退回历史,重新进入审批 |
| 企微请假镜像 | 员工在企业微信提交 `0.5` 天请假;主管通过;OA 同步 | OA 可查看审批详情、历史、附件和团队状态影响 |
| 企微补卡镜像 | 员工在企业微信提交缺失下班卡补卡;主管或 HR 通过;OA 同步 | 补卡记录影响考勤解释 |
| 企微外出镜像 | 员工在企业微信提交客户现场外出;主管通过;OA 同步 | 团队状态显示外出或相关摘要 |
| 企微加班镜像 | 员工在企业微信提交晚间加班;主管或 HR 通过;OA 同步 | 加班记录留痕,补偿口径被记录 |
| OA 应急提交 | 管理员开启 `oa_hr_emergency_mode_v1` 后员工在 OA 提交 HR/考勤应急单 | 单据带 `EMERGENCY` 标记并进入恢复回写队列 |
| 恢复回写 | 企业微信恢复后,OA 对应急单 dry-run 并回写 | 成功、失败、冲突和人工确认项均可追溯 |
| 退回修改 | 企微审批或 OA 应急审批退回后,员工按对应入口修改重提 | 保留退回历史,重新进入审批 |
| 撤回 | 员工在审批完成前撤回 | 审批待办失效,历史保留 |
| 无审批人阻断 | 删除或缺失主管后提交 | 提交失败,不生成半截流程 |
| 企业微信提醒回 OA | 待办产生后发送企业微信提醒 | 点击 deeplink 回 OA 审批页处理 |
| 无审批人阻断 | 企业微信模板或 OA 应急规则找不到审批人 | 提交失败,不生成半截流程 |
| OA 主办提醒回 OA | 报销、采购、合同或财务待办产生后发送企业微信提醒 | 点击 deeplink 回 OA 审批页处理 |
| 团队状态失败不破坏审批 | 模拟团队状态更新失败 | 审批保持已通过,生效状态可重试 |
---
## 10. 后续开发拆分建议
- 已完成:补卡/外出/加班申请对象、统一审批接入、月度考勤解释页、移动入口和企业微信 deeplink 回 OA。
- 后续 A1:企微打卡 live 同步配置稳定化,覆盖 Secret/API 权限、短窗口同步、错误码和脱敏证据。
- 后续 A2:团队状态和日历生效逻辑增强,按真实使用反馈决定是否把外出/加班进一步展示到团队状态或日历。
- 后续 A3:移动端提交与审批体验优化,覆盖普通手机和企业微信 WebView 的真实反馈。
- 后续 A4:请假考勤主链路回归脚本和人工验收数据集。
- 后续 A5:出差完整流程专项,不进入当前正式首批能力。
- 已完成:OA 侧补卡/外出/加班申请对象、统一审批接入、月度考勤解释页、移动入口和企业微信 deeplink 回 OA;WFOC 后这些能力默认作为历史查询和应急接管基础。
- 后续 A1:`wecom_native_approval_mirror_v1`,同步企微请假、补卡、外出、加班审批、附件、历史和状态回调。
- 后续 A2:企微打卡规则、排班、记录、日报、月报完整镜像,覆盖 Secret/API 权限、短窗口同步、错误码和脱敏证据。
- 后续 A3:`oa_hr_emergency_mode_v1`,管理员人工接管、应急提交、应急审批和恢复队列。
- 后续 A4:`wecom_recovery_writeback_v1`,企微恢复后 dry-run、自动回写、失败重试和冲突清单。
- 后续 A5:团队状态和日历按企微镜像、OA 应急单和回写结果统一解释。
- 后续 A6:出差完整流程专项,不进入当前正式首批能力。
涉及审批状态、团队状态、生效记录或后续打卡同步的 Issue,必须写明失败重试、回滚策略和人工修正路径。
@@ -0,0 +1,9 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"WFOC-0","合同建档与边界冻结","建立企微优先 + OA 无痛接管需求重构合同,锁定本轮只整理需求和边界,不改业务代码、不部署、不改公网配置。","1) Issue CSV 校验通过;2) 范围限定为需求事实源、模块规约、管理员手册、员工手册、文档索引和事实源矩阵;3) 明确企微优先、OA 镜像/接管/财务/审计;4) 明确 ERP 未来不接入,真实支付、图片 OCR、银行流水导入不进入当前路线。","受影响流程:需求确认 -> 执行合同 -> 后续分阶段实现;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_10-25-18-wecom-first-oa-continuity-requirements.csv。","python3|manual","DONE","DONE","DONE","issues/2026-05-18_10-25-18-wecom-first-oa-continuity-requirements.csv","[]","回滚路径:回退本 CSV 和文档口径回写;不涉及运行时。"
"WFOC-1","PRD 和产品边界重构","把旧口径从 OA 唯一正式审批中心调整为 HR/考勤/行政审批企微优先,OA 做完整镜像、人工接管、恢复回写、财务闭环和审计中台。","1) PRD 明确企微主办层、OA 镜像层、OA 接管层、恢复回写层和财务主办层;2) HR/考勤/行政审批第一批迁移范围清晰;3) 报销、PDF OCR、付款批次、AP、代账交接继续 OA 主办;4) 不再把企业微信原生审批整体写成冻结项。","受影响流程:产品边界 -> 后续需求拆分;验证步骤:rg -n '企微优先|OA 镜像|人工接管|恢复回写|wecom_hr_master_sync_v1|wecom_native_approval_mirror_v1' docs/海音达OA-MVP需求规格说明书.md docs/产品口径.md。","rg","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md","[""WFOC-0""]","仅改需求口径,不声明运行时已实现。"
"WFOC-2","企微官方能力纳入规约","在企业微信基础设施规约中登记可复用官方能力:通讯录、人事助手、打卡、审批、假期余额、工作台、消息和 RuleOps 可写配置边界。","1) 规约包含官方文档路径 90195、90261、90262、90263、91854、91853、91983、99130、99131、99132、99133;2) 能力分为可复用、需 POC、需配置、OA 主办和不进入范围;3) 不打印或保存 Secret、token、完整位置、人脸信息。","受影响流程:企微能力调研 -> 后续 API POC;验证步骤:rg -n '90195|90261|91854|99130|CAN_REUSE|NEEDS_API_POC|NEEDS_CONFIG|KEEP_OA_PRIMARY|NOT_IN_SCOPE' docs/需求-企业微信基础设施规约.md。","rg","DONE","DONE","DONE","docs/需求-企业微信基础设施规约.md","[""WFOC-1""]","官方能力作为需求依据,真实配置和 API 调用另建 POC 合同。"
"WFOC-3","企微人事主源与 OA 员工镜像","明确企微/人事助手为员工主数据源,OA 同步员工、部门、主管、职位、手机号、邮箱、在职状态,并生成账号、角色、绑定和审计。","1) PRD、企微规约和管理员手册均写明先企微后 OA;2) 保留当前 HRWD/HCLT 证据作为已验证的 OA 写企微能力,但后续主方向改为企微主源同步 OA;3) OA 管理员修复入口必须有来源、原因和审计。","受影响流程:新员工入职 -> 企微主数据 -> OA 镜像账号;验证步骤:rg -n '先企微后 OA|企微/人事助手为主|wecom_hr_master_sync_v1|员工主数据源|HRWD|HCLT' docs/海音达OA-MVP需求规格说明书.md docs/需求-企业微信基础设施规约.md docs/管理员手册.md。","rg","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md","[""WFOC-2""]","后续实现需单独迁移现有 OA 主源假设。"
"WFOC-4","企微审批和考勤完整镜像","明确请假、补卡、外出、加班第一批改为企微主办,OA 同步审批单、审批历史、附件、打卡规则、排班、记录、日报、月报和异常摘要。","1) 统一审批规约说明报销/采购/合同/财务仍走 OA,HR/考勤行政审批企微主办;2) 请假考勤规约说明 OA 默认只读镜像,旧 OA 新单入口转为应急模式;3) 敏感原文完整归档但按权限隔离。","受影响流程:员工 HR 考勤申请 -> 企微审批 -> OA 镜像查询/审计;验证步骤:rg -n 'wecom_native_approval_mirror_v1|完整镜像|请假、补卡、外出、加班|企微主办|只读镜像|完整原始归档' docs/需求-统一审批中心规约.md docs/需求-请假考勤修正规约.md。","rg","DONE","DONE","DONE","docs/需求-统一审批中心规约.md|docs/需求-请假考勤修正规约.md","[""WFOC-3""]","完整原始归档不等于可向普通员工展示敏感原文。"
"WFOC-5","OA 人工接管模式","定义企微不可用时由管理员人工开启 OA HR/考勤应急模式,临时开放请假、补卡、外出、加班提交和审批,并标记 EMERGENCY。","1) 规约写明不自动切换,必须管理员人工开启;2) 开启需填写原因、范围、预计结束时间和责任人;3) 应急单据进入恢复对账队列;4) 员工手册说明正常优先企微,应急按管理员通知走 OA。","受影响流程:企微故障 -> 管理员开启应急 -> OA 提交/审批 -> 恢复对账;验证步骤:rg -n 'oa_hr_emergency_mode_v1|人工接管|EMERGENCY|应急模式|管理员人工开启' docs/海音达OA-MVP需求规格说明书.md docs/需求-请假考勤修正规约.md docs/管理员手册.md docs/员工快速上手.md。","rg","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/需求-请假考勤修正规约.md|docs/管理员手册.md|docs/员工快速上手.md","[""WFOC-4""]","不自动切换,避免误切和双轨数据污染。"
"WFOC-6","恢复后自动回写和 RuleOps","定义企微恢复后 OA 对应急数据执行 dry-run 和自动回写,同时规划 AI 草拟规则、人工确认后写入企微的 RuleOps。","1) 文档说明 wecom_recovery_writeback_v1 默认先 dry-run,再自动回写;2) 冲突、权限不足、API 不支持或风险过高进入人工确认;3) wecom_ruleops_v1 只允许 AI 草拟和 dry-run,人工确认后写入;4) 每次写入保存前后快照、确认人、errcode 和回滚建议。","受影响流程:企微恢复 -> 应急数据回写 -> 规则配置治理;验证步骤:rg -n 'wecom_recovery_writeback_v1|wecom_ruleops_v1|dry-run|自动回写|人工确认|前后快照' docs/海音达OA-MVP需求规格说明书.md docs/需求-企业微信基础设施规约.md docs/管理员手册.md。","rg","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md","[""WFOC-5""]","正式写入企微配置必须另建实现合同和权限门禁。"
"WFOC-7","事实源索引和收口","回填文档索引、事实源矩阵和人工试运行报告,记录本轮只完成需求重构,不实施运行时改造。","1) 文档索引最近事实源链包含 WFOC;2) 事实源矩阵登记 WFOC 和更新后的文档口径;3) 人工试运行报告记录需求方向变化但不误写为已实现;4) audit-docs 和 git diff --check 通过。","受影响流程:需求口径 -> 文档事实源 -> 后续实施合同;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;git diff --check;rg -n 'WFOC|企微优先|OA 无痛接管|wecom_first|oa_hr_emergency_mode_v1' docs issues。","node|git|rg","DONE","DONE","DONE","docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|docs/测试规约与回归门禁.md|docs/开发交付与变更管理规约.md|docs/集成边界.md|docs/trialrun/发布试运行准备清单.md|.agents/skills/hyb-oa-delivery/SKILL.md","[""WFOC-6""]","收口后后续实现应拆 wecom_hr_master_sync_v1、wecom_native_approval_mirror_v1、oa_hr_emergency_mode_v1、wecom_recovery_writeback_v1、wecom_ruleops_v1;已同步全局测试/交付/集成口径和项目 skill,历史试运行清单保留证据但标明由 WFOC 覆盖。"
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 WFOC-0 合同建档与边界冻结 建立企微优先 + OA 无痛接管需求重构合同,锁定本轮只整理需求和边界,不改业务代码、不部署、不改公网配置。 1) Issue CSV 校验通过;2) 范围限定为需求事实源、模块规约、管理员手册、员工手册、文档索引和事实源矩阵;3) 明确企微优先、OA 镜像/接管/财务/审计;4) 明确 ERP 未来不接入,真实支付、图片 OCR、银行流水导入不进入当前路线。 受影响流程:需求确认 -> 执行合同 -> 后续分阶段实现;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_10-25-18-wecom-first-oa-continuity-requirements.csv。 python3|manual DONE DONE DONE issues/2026-05-18_10-25-18-wecom-first-oa-continuity-requirements.csv [] 回滚路径:回退本 CSV 和文档口径回写;不涉及运行时。
3 WFOC-1 PRD 和产品边界重构 把旧口径从 OA 唯一正式审批中心调整为 HR/考勤/行政审批企微优先,OA 做完整镜像、人工接管、恢复回写、财务闭环和审计中台。 1) PRD 明确企微主办层、OA 镜像层、OA 接管层、恢复回写层和财务主办层;2) HR/考勤/行政审批第一批迁移范围清晰;3) 报销、PDF OCR、付款批次、AP、代账交接继续 OA 主办;4) 不再把企业微信原生审批整体写成冻结项。 受影响流程:产品边界 -> 后续需求拆分;验证步骤:rg -n '企微优先|OA 镜像|人工接管|恢复回写|wecom_hr_master_sync_v1|wecom_native_approval_mirror_v1' docs/海音达OA-MVP需求规格说明书.md docs/产品口径.md。 rg DONE DONE DONE docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md ["WFOC-0"] 仅改需求口径,不声明运行时已实现。
4 WFOC-2 企微官方能力纳入规约 在企业微信基础设施规约中登记可复用官方能力:通讯录、人事助手、打卡、审批、假期余额、工作台、消息和 RuleOps 可写配置边界。 1) 规约包含官方文档路径 90195、90261、90262、90263、91854、91853、91983、99130、99131、99132、99133;2) 能力分为可复用、需 POC、需配置、OA 主办和不进入范围;3) 不打印或保存 Secret、token、完整位置、人脸信息。 受影响流程:企微能力调研 -> 后续 API POC;验证步骤:rg -n '90195|90261|91854|99130|CAN_REUSE|NEEDS_API_POC|NEEDS_CONFIG|KEEP_OA_PRIMARY|NOT_IN_SCOPE' docs/需求-企业微信基础设施规约.md。 rg DONE DONE DONE docs/需求-企业微信基础设施规约.md ["WFOC-1"] 官方能力作为需求依据,真实配置和 API 调用另建 POC 合同。
5 WFOC-3 企微人事主源与 OA 员工镜像 明确企微/人事助手为员工主数据源,OA 同步员工、部门、主管、职位、手机号、邮箱、在职状态,并生成账号、角色、绑定和审计。 1) PRD、企微规约和管理员手册均写明先企微后 OA;2) 保留当前 HRWD/HCLT 证据作为已验证的 OA 写企微能力,但后续主方向改为企微主源同步 OA;3) OA 管理员修复入口必须有来源、原因和审计。 受影响流程:新员工入职 -> 企微主数据 -> OA 镜像账号;验证步骤:rg -n '先企微后 OA|企微/人事助手为主|wecom_hr_master_sync_v1|员工主数据源|HRWD|HCLT' docs/海音达OA-MVP需求规格说明书.md docs/需求-企业微信基础设施规约.md docs/管理员手册.md。 rg DONE DONE DONE docs/海音达OA-MVP需求规格说明书.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md ["WFOC-2"] 后续实现需单独迁移现有 OA 主源假设。
6 WFOC-4 企微审批和考勤完整镜像 明确请假、补卡、外出、加班第一批改为企微主办,OA 同步审批单、审批历史、附件、打卡规则、排班、记录、日报、月报和异常摘要。 1) 统一审批规约说明报销/采购/合同/财务仍走 OA,HR/考勤行政审批企微主办;2) 请假考勤规约说明 OA 默认只读镜像,旧 OA 新单入口转为应急模式;3) 敏感原文完整归档但按权限隔离。 受影响流程:员工 HR 考勤申请 -> 企微审批 -> OA 镜像查询/审计;验证步骤:rg -n 'wecom_native_approval_mirror_v1|完整镜像|请假、补卡、外出、加班|企微主办|只读镜像|完整原始归档' docs/需求-统一审批中心规约.md docs/需求-请假考勤修正规约.md。 rg DONE DONE DONE docs/需求-统一审批中心规约.md|docs/需求-请假考勤修正规约.md ["WFOC-3"] 完整原始归档不等于可向普通员工展示敏感原文。
7 WFOC-5 OA 人工接管模式 定义企微不可用时由管理员人工开启 OA HR/考勤应急模式,临时开放请假、补卡、外出、加班提交和审批,并标记 EMERGENCY。 1) 规约写明不自动切换,必须管理员人工开启;2) 开启需填写原因、范围、预计结束时间和责任人;3) 应急单据进入恢复对账队列;4) 员工手册说明正常优先企微,应急按管理员通知走 OA。 受影响流程:企微故障 -> 管理员开启应急 -> OA 提交/审批 -> 恢复对账;验证步骤:rg -n 'oa_hr_emergency_mode_v1|人工接管|EMERGENCY|应急模式|管理员人工开启' docs/海音达OA-MVP需求规格说明书.md docs/需求-请假考勤修正规约.md docs/管理员手册.md docs/员工快速上手.md。 rg DONE DONE DONE docs/海音达OA-MVP需求规格说明书.md|docs/需求-请假考勤修正规约.md|docs/管理员手册.md|docs/员工快速上手.md ["WFOC-4"] 不自动切换,避免误切和双轨数据污染。
8 WFOC-6 恢复后自动回写和 RuleOps 定义企微恢复后 OA 对应急数据执行 dry-run 和自动回写,同时规划 AI 草拟规则、人工确认后写入企微的 RuleOps。 1) 文档说明 wecom_recovery_writeback_v1 默认先 dry-run,再自动回写;2) 冲突、权限不足、API 不支持或风险过高进入人工确认;3) wecom_ruleops_v1 只允许 AI 草拟和 dry-run,人工确认后写入;4) 每次写入保存前后快照、确认人、errcode 和回滚建议。 受影响流程:企微恢复 -> 应急数据回写 -> 规则配置治理;验证步骤:rg -n 'wecom_recovery_writeback_v1|wecom_ruleops_v1|dry-run|自动回写|人工确认|前后快照' docs/海音达OA-MVP需求规格说明书.md docs/需求-企业微信基础设施规约.md docs/管理员手册.md。 rg DONE DONE DONE docs/海音达OA-MVP需求规格说明书.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md ["WFOC-5"] 正式写入企微配置必须另建实现合同和权限门禁。
9 WFOC-7 事实源索引和收口 回填文档索引、事实源矩阵和人工试运行报告,记录本轮只完成需求重构,不实施运行时改造。 1) 文档索引最近事实源链包含 WFOC;2) 事实源矩阵登记 WFOC 和更新后的文档口径;3) 人工试运行报告记录需求方向变化但不误写为已实现;4) audit-docs 和 git diff --check 通过。 受影响流程:需求口径 -> 文档事实源 -> 后续实施合同;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;git diff --check;rg -n 'WFOC|企微优先|OA 无痛接管|wecom_first|oa_hr_emergency_mode_v1' docs issues。 node|git|rg DONE DONE DONE docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|docs/测试规约与回归门禁.md|docs/开发交付与变更管理规约.md|docs/集成边界.md|docs/trialrun/发布试运行准备清单.md|.agents/skills/hyb-oa-delivery/SKILL.md ["WFOC-6"] 收口后后续实现应拆 wecom_hr_master_sync_v1、wecom_native_approval_mirror_v1、oa_hr_emergency_mode_v1、wecom_recovery_writeback_v1、wecom_ruleops_v1;已同步全局测试/交付/集成口径和项目 skill,历史试运行清单保留证据但标明由 WFOC 覆盖。