REQAUD 收口需求完成度复核与考勤边界校正

这个提交包含在:
2026-05-17 13:42:12 +08:00
父节点 22a2bcd205
当前提交 d50b7db143
共修改 9 个文件,包含 70 行新增和 12 行删除
+3
查看文件
@@ -33,6 +33,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
- 2026-05-17 ACCOUNTING-HANDOFF-V1 已固化月度代账交接 SOP:OA 侧导出 AP 台账、报销、票据中心、付款批次/回单附件清单和审计日志;银行流水和银行回单原件由 `wangzhiling` 从银行渠道导出,交给代账人工核对。公网只读/导出核对显示付款批次清单、回单附件列表/下载、AP 导出、报销导出、票据导出和审计日志导出均返回 200;不开发银行流水导入或一键 zip 包。
- 2026-05-17 SYSTEM-COMPLETE-GATE 已完成系统开发完成门禁:公网 `/ready`、public bundle、live smoke `3 passed`、PDF live OCR `1 passed`,只读 flag 核验显示 `payment_batch_v1=force_on`、`erp_sync=force_off`;公网移动/企业微信 UA 矩阵 `14 passed`;结论 `GO_TO_USE`。当前首批正式能力为员工报销、PDF OCR、审批、请假、采购、通知、移动/企业微信入口、财务台账、付款批次、银行回单附件和代账交接。
- 2026-05-17 LAUNCH-OPS-V1 已固定首周正式使用运营口径:`wangshunli` 为上线拍板、管理员复核和回滚决策人,`wangzhiling` 为出纳/付款执行和代账资料准备人;首周问题登记、每日巡检、暂停条件、代账交接节奏和 UX8/可选功能冻结口径已回写现有手册。后续新增功能只按真实反馈和业务频次另建 Issue CSV。
- 2026-05-17 REQ-COMPLETE-AUDIT 已完成需求完成度复核和考勤边界校正:首批正式能力保持 `GO_TO_USE` 结论不变;企业微信打卡作为原始采集和风控底座,OA 不重造定位、人脸、Wi-Fi、排班、设备和防作弊。当前请假为 `DONE`;企业微信打卡 API 同步、员工补卡审批和加班审批为 `NOT_STARTED`;外出申请审批为 `PARTIAL`;历史 OA 极简打卡 `attendance_v1` 为 `NEEDS_DECISION`,后续需另建合同决定隐藏、关闭或保留备用。
## 关键证据索引
@@ -73,6 +74,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
| ACCOUNTING-HANDOFF-V1 | 已收口:月度代账交接 SOP 固化;OA 侧 AP/报销/票据/付款批次/回单附件/审计资料清单可用,公网导出和回单下载状态核对 200;银行流水和回单原件由出纳线下导出给代账 | `issues/2026-05-17_11-40-48-accounting-handoff-v1.csv`、`docs/管理员手册.md` |
| SYSTEM-COMPLETE-GATE | 已收口:系统开发完成门禁通过,结论 `GO_TO_USE`;live smoke 3 passed、PDF live OCR 1 passed、public bundle findings=0、pending OCR 非阻断 SKIP、正式 flag 状态正确、公网移动/企微矩阵 14 passed | `issues/2026-05-17_12-55-49-system-complete-gate.csv`、`artifacts/qa-flow/live-smoke-readiness-20260517-125805/summary.json` |
| LAUNCH-OPS-V1 | 已收口:首周运营保障口径固定;支持人、问题登记、每日巡检、暂停条件、代账交接节奏和可选功能冻结口径已回写手册 | `issues/2026-05-17_12-55-50-launch-ops-v1.csv`、`docs/管理员手册.md`、`docs/员工快速上手.md`、`docs/试运行与自动化验证手册.md` |
| REQ-COMPLETE-AUDIT | 已收口:需求完成度复核和考勤边界校正完成;企微打卡与 OA 考勤解释边界已纠偏,补卡/外出/加班缺口已分级 | `issues/2026-05-17_13-32-26-requirements-completion-audit.csv`、`docs/海音达OA-MVP需求规格说明书.md`、`docs/需求-请假考勤修正规约.md`、`docs/需求-企业微信基础设施规约.md` |
## 当前门禁
@@ -103,6 +105,7 @@ DCL7 已删除本文件中 R70-R91 的长流水历史,避免旧环境、旧开
| ACCOUNTING-HANDOFF-V1 代账交接 | 通过,无需开发一键包 | 现有能力核对:付款批次清单 200,回单附件列表 200,回单下载 200,AP 导出 200,报销导出 200,票据中心导出 200,审计日志导出 200;`docs/管理员手册.md` 已补月度交接 SOP。AP 台账不是银行流水,银行流水和回单原件由出纳从银行侧导出,不导入 OA。 |
| SYSTEM-COMPLETE-GATE 系统完成门禁 | 通过,结论 `GO_TO_USE` | `check-live-smoke-env --strict` PASS;`run-live-smoke-readiness.sh` PASS,报告 `artifacts/qa-flow/live-smoke-readiness-20260517-125805/`;只读 flag 核验 `payment_batch_v1=force_on`、`erp_sync=force_off`;公网移动/企业微信矩阵 14 passed。 |
| LAUNCH-OPS-V1 首周运营保障 | 通过,无新增业务功能 | 管理员手册、员工快速上手和试运行手册已更新正式启用口径;首周问题登记、每日巡检、暂停条件、回滚联系人、代账交接节奏和 UX8/冻结项处理方式已固定。 |
| REQ-COMPLETE-AUDIT 需求完成度复核 | 通过,无运行时变更 | 完成首批能力和考勤边界复核;企业微信打卡为原始采集,OA 不重造打卡风控;请假 `DONE`,员工补卡和加班审批 `NOT_STARTED`,外出申请审批 `PARTIAL`,`attendance_v1` `NEEDS_DECISION`。 |
## R7EP / OPS8 / QAF8 / UX8 / P2T 预检推进
+2 -2
查看文件
@@ -37,7 +37,7 @@
## 6. 审批、请假和报销
- 公司正式审批都在海音达工作台内完成,不在企业微信审批里处理。
- 请假、补卡、外出、加班、报销、采购、差旅等申请都按 OA 页面提交。
- 当前已上线的请假、报销、采购等申请按 OA 页面提交;补卡、外出、加班等考勤修正流程待公司另行通知上线前,按管理员通知的临时口径处理。
- 批准后的请假会自动反映到团队状态。
- 报销状态仍可在系统内查看,不需要额外问行政。
- 发票/OCR 正式入口保持 PDF-only;图片发票不作为当前正式 OCR 能力,图片只按普通附件处理。
@@ -58,7 +58,7 @@
## 9. 从企业微信进入
- 如果公司启用了企业微信工作台入口,优先从企业微信打开海音达工作台。
- 企业微信只是入口、免登和提醒,真正填写、审批和修改仍在海音达工作台页面内完成。
- 企业微信打卡仍按公司要求使用;请假、补卡、外出、加班等修正申请在 OA 内提交。
- 企业微信打卡仍按公司要求使用;当前请假在 OA 内提交和审批,补卡、外出、加班等修正流程待公司另行通知上线前,按管理员通知的临时口径处理。
- 如果企业微信免登失败,直接回到账号密码登录即可。
- 如果你第一次从企业微信进入但看到“尚未绑定”,请不要反复重试,先用账号密码登录,再到 `个人设置 -> 企业微信绑定` 完成绑定。
- 如果看到“登录已失效 / 已超时”,重新从企业微信工作台进入即可。
+4 -3
查看文件
@@ -54,6 +54,7 @@
| `ACCOUNTING-HANDOFF-V1` | `issues/2026-05-17_11-40-48-accounting-handoff-v1.csv` | `EVIDENCE` | 月度代账交接 SOP 已收口;OA 侧导出和回单附件清单可用,银行流水和回单原件由出纳从银行侧导出,不导入 OA |
| `SYSTEM-COMPLETE-GATE` | `issues/2026-05-17_12-55-49-system-complete-gate.csv` | `EVIDENCE` | 系统开发完成门禁已收口;公网 readiness、live smoke、PDF live OCR、flag 状态、移动/企微矩阵和事实源核对通过,结论 `GO_TO_USE` |
| `LAUNCH-OPS-V1` | `issues/2026-05-17_12-55-50-launch-ops-v1.csv` | `EVIDENCE` | 首周正式使用运营保障已收口;支持人、问题登记、每日巡检、暂停条件、回滚联系人、代账交接节奏和冻结项口径已固定 |
| `REQ-COMPLETE-AUDIT` | `issues/2026-05-17_13-32-26-requirements-completion-audit.csv` | `EVIDENCE` | 需求完成度复核和考勤边界校正已收口;首批能力可交付不变,企业微信打卡作为原始采集和风控底座,OA 不重造定位/人脸/Wi-Fi/排班/防作弊;员工补卡/外出/加班审批和企微打卡 API 同步需后续合同 |
旧 Issue CSV 保留为历史审计证据:不删除、不批量回写、不移动到 `docs/archive/` 或其他归档目录。新连续合同如替代旧合同,只在新合同 `Notes` 或文档索引中说明 supersedes。
@@ -61,8 +62,8 @@
| 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` | `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` | `audit-docs` | none | 2026-05-17 | `audit-docs --check-registry` | medium | 判断文档权威性 |
| `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` | `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` | `audit-docs` | none | 2026-05-17 | `audit-docs --check-registry` | medium | 判断文档权威性 |
| `PRD-MVP` | `docs/海音达OA-MVP需求规格说明书.md` | 需求事实源 | PRD 主事实源 | `CURRENT` | product | `REQ8,P2T,GOV8` | Issue CSV | `docs/requirements-specification.md` | 2026-05-13 | `rg` | high | 定义做什么、不做什么和验收口径 |
| `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 后按页面分层和样板选型 |
@@ -167,4 +168,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 首周运营保障均已完成,当前 P0/P1 阻断为 0;P2D 已完成决策分流,P2-ORG 只读巡检已完成且无需写修复合同;当前公网 `payment_batch_v1=force_on`,`erp_sync=force_off`,正式支付接口、ERP、图片 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 需求完成度复核均已完成,当前 P0/P1 阻断为 0;P2D 已完成决策分流,P2-ORG 只读巡检已完成且无需写修复合同;当前公网 `payment_batch_v1=force_on`,`erp_sync=force_off`,正式支付接口、ERP、图片 OCR 和银行流水导入继续冻结。考勤侧当前只确认请假闭环 `DONE` 和企业微信打卡运营使用 `DONE`;企业微信打卡 API 同步、员工补卡审批和加班审批为 `NOT_STARTED`,外出申请审批为 `PARTIAL`,历史 OA 极简打卡 `attendance_v1` 为 `NEEDS_DECISION`。
+3 -1
查看文件
@@ -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。
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。
- R6、PC6、PA6、FL6、AP6、RI6、LP6 已完成并部署。
- ME6 自动化、公网视觉矩阵和 `ME6-3` 代表性企业微信真机门禁已完成。
@@ -48,6 +48,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
- ACCOUNTING-HANDOFF-V1 是月度代账交接 SOP 合同:公司无 ERP/独立财务系统,OA 侧交接资料固定为 AP 台账、报销导出、票据中心导出、付款批次/回单附件清单和审计日志;银行侧流水和回单原件由出纳从银行渠道导出交给代账人工核对,不导入 OA,不开发一键 zip 包。
- SYSTEM-COMPLETE-GATE 是系统开发完成收口合同:公网 readiness、live smoke、PDF live OCR、正式 flag 状态、FINPROD/ACCTH 证据、移动/企业微信矩阵和文档事实源均通过;结论 `GO_TO_USE`,系统按首批正式能力可交付使用。
- LAUNCH-OPS-V1 是正式使用首周运营保障合同:固定 `wangshunli` 为上线拍板、管理员复核和回滚决策人,`wangzhiling` 为出纳/付款执行和代账资料准备人;首周问题登记、每日巡检、暂停条件、代账交接节奏和可选功能冻结口径已回写现有手册。
- REQ-COMPLETE-AUDIT 是系统完成门禁后的需求完成度复核合同:确认首批正式能力仍为报销、PDF OCR、审批、请假、采购、通知、移动/企业微信入口、财务台账、付款批次、银行回单附件和代账交接;考勤边界纠偏为“企业微信打卡做原始采集和风控,OA 不重造定位/人脸/Wi-Fi/排班/防作弊”。请假为 `DONE`,员工补卡申请为 `NOT_STARTED`,外出申请为 `PARTIAL`,加班申请为 `NOT_STARTED`,历史 OA 极简打卡 `attendance_v1` 为 `NEEDS_DECISION`。
## 当前活跃治理流
@@ -82,6 +83,7 @@ R6 -> PC6 -> PA6 -> FL6 -> AP6 -> RI6 -> LP6 -> ME6/QG6 -> DG7/MRF7 -> MIA7 -> M
| `ACCOUNTING-HANDOFF-V1` | `issues/2026-05-17_11-40-48-accounting-handoff-v1.csv` | 已收口:月度代账交接 SOP 固化 | OA 侧 AP/报销/票据/付款批次/回单附件/审计资料清单,银行侧流水和回单原件由出纳线下导出,代账人工核对 | 不开发银行流水导入、不开发一键 zip 包、不保存真实银行资料到仓库 |
| `SYSTEM-COMPLETE-GATE` | `issues/2026-05-17_12-55-49-system-complete-gate.csv` | 已收口:系统开发完成门禁通过,结论 `GO_TO_USE` | 公网 `/ready`、public bundle、live smoke、PDF live OCR、正式 flag 状态、FINPROD/ACCTH 证据、移动/企微矩阵和文档事实源 | 不新增业务功能、不部署、不接真实支付、不接 ERP、不开放图片 OCR、不导入银行流水 |
| `LAUNCH-OPS-V1` | `issues/2026-05-17_12-55-50-launch-ops-v1.csv` | 已收口:首周运营保障口径固定 | 首周支持人、问题登记、每日巡检、暂停条件、回滚联系人、代账月度交接节奏、UX8 真实反馈池和冻结项 | 不做真实恢复演练、不重置数据库、不主动开发可选功能 |
| `REQ-COMPLETE-AUDIT` | `issues/2026-05-17_13-32-26-requirements-completion-audit.csv` | 已收口:需求完成度复核和考勤边界校正完成 | 首批能力完成度、企微打卡边界、请假/补卡/外出/加班缺口、`attendance_v1` 处理建议 | 不改业务代码、不部署、不切换公网开关;后续考勤同步或修正审批必须另建合同 |
旧 Issue CSV 不删除、不批量回写、不移动到归档目录。若新治理流替代旧合同,只在新 CSV 的 `Notes` 或本索引说明 supersedes,旧文件保留历史审计语义。
@@ -229,6 +229,22 @@ OA 是公司唯一正式审批中心。以下审批必须在 OA 内提交、审
- 已批准请假能影响团队状态或日历展示。
- 文档和界面不引导员工去企业微信原生审批提交请假或补卡。
### 7.4 当前完成度校正
REQAUD 复核后,本章当前完成度按以下口径读取:
| 项目 | 当前状态 | 说明 |
| --- | --- | --- |
| 请假申请、审批、撤回、编辑和移动查看 | `DONE` | 已有 `leave_requests`、统一审批、PC/移动页面和回归证据。 |
| 请假影响团队状态/日历 | `DONE` | 已批准请假可进入团队状态和日历展示。 |
| 企业微信入口、免登/绑定、通知 deeplink 回 OA | `DONE` | 企业微信只作为入口、身份和提醒,审批动作仍回 OA。 |
| 企业微信打卡运营使用 | `DONE` | 员工继续按公司要求在企业微信打卡;这是企业微信侧能力,不代表 OA 已同步打卡 API。 |
| 企业微信打卡 API 同步到 OA | `NOT_STARTED` | 当前没有同步企业微信打卡原始记录的运行时能力。 |
| 员工补卡申请审批 | `NOT_STARTED` | 当前只有历史 `attendance_v1` 管理员补卡,不等同于员工提交补卡申请并走 OA 审批。 |
| 外出申请审批 | `PARTIAL` | 团队状态支持手工记录外出,但没有独立外出申请审批闭环。 |
| 加班申请审批 | `NOT_STARTED` | 当前没有独立加班申请、审批和补偿口径记录闭环。 |
| 历史 OA 极简打卡 `attendance_v1` | `NEEDS_DECISION` | 已有 OA 自建上下班打卡、月度统计和管理员补卡;但当前产品口径要求企微承担打卡原始采集与风控底座,后续需单独决定隐藏、关闭或保留为备用。 |
---
## 8. 采购、费用、合同与项目资料
+8 -6
查看文件
@@ -259,8 +259,10 @@ ORDER BY e.employee_no;
- 员工每天可在 `Portal` 或 `团队` 页更新状态:在岗 / 居家 / 外出 / 出差。
- 已批准请假会自动覆盖当天状态为 `请假`。
- 企业微信打卡只作为原始采集工具;定位、人脸、Wi-Fi 和排班规则不在 OA 内重造。
- OA 后续同步企业微信打卡数据后,应结合 OA 请假、补卡、外出、加班审批形成正式考勤口径。
- 请假、补卡、外出、加班等审批仍在 OA 内完成,不使用企业微信原生审批。
- 当前 OA 已完成请假审批和团队状态解释;员工补卡、外出、加班的独立审批闭环尚未上线。
- 历史 `attendance_v1` 是 OA 极简打卡和管理员补卡能力,不等同于企业微信打卡风控;是否关闭、隐藏或保留备用需另建决策合同。
- OA 后续如同步企业微信打卡数据,应结合 OA 请假和后续补卡/外出/加班审批形成正式考勤口径。
- 请假等已上线审批仍在 OA 内完成,不使用企业微信原生审批;未上线的考勤修正流程按公司临时管理口径处理。
## 6. 周报与待办
- 周报固定三段:本周完成 / 当前阻塞 / 下周计划。
@@ -289,7 +291,7 @@ ORDER BY e.employee_no;
1. 先完成账号、角色、部门、企业微信自建应用入口和账号密码回退路径。
2. 再启用 `OA 统一审批中心 + 报销/发票/OCR/附件`,跑通提交、审批、退回、查重、付款和导出闭环。
3. 同步启用付款批次、AP 台账和银行回单附件,付款动作仍由出纳在 OA 外通过银行渠道完成。
4. 同步启用 `请假/补卡/外出/加班`,明确企业微信打卡只是原始采集,正式考勤解释回到 OA 审批结果。
4. 同步启用已完成的 `请假` 审批和团队状态;补卡、外出、加班审批暂不作为已上线能力,企业微信打卡仍作为原始采集和风控底座。
5. 在 P0 稳定后开放 P1:`采购/费用审批`、`合同/附件归档`、`项目轻管理`。
6. 最后按真实需要评估周报、团队状态、公告、人员生命周期、资产、预算、ERP、AI 和完整差旅。
@@ -297,14 +299,14 @@ ORDER BY e.employee_no;
- 全员都能账号密码登录;已绑定员工能从企业微信 `海音达工作台` 进入移动工作台。
- 至少 1 笔报销完成:上传发票或附件 -> OCR/查重 -> 提交 -> OA 审批 -> 财务复核/付款标记 -> 导出。
- 至少 1 个付款批次完成:出纳创建 -> 管理员复核 -> 出纳上传银行回单 -> 执行 OA 已付款标记 -> AP 台账和审计可查。
- 至少 1 条请假或补卡完成:员工提交 -> OA 审批 -> 团队状态或考勤解释口径不破坏。
- 至少 1 条请假完成:员工提交 -> OA 审批 -> 团队状态或考勤解释口径不破坏。补卡、外出、加班审批需待后续合同上线后再纳入验收。
- 至少 1 个审批待办从企业微信提醒 deeplink 回到 OA 页面处理。
- P1 试点时,至少 1 条采购/费用申请、1 条合同台账、1 个项目关联事项可创建、审批或归档。
- 正式使用前至少完成一次备份可用性核对;真实恢复演练必须另建批准合同,并记录恢复后的 `/ready` 结果。
- 普通员工主导航不出现预算、AP、ERP、AI、完整差旅等当前首批不开放的备用模块。
## 11. 4 周观测操作法
1. 每周一进入 `Portal` 和 `审批待办` 查看近 7 天登录覆盖率、审批积压、报销/OCR 异常、请假/补卡审批和企业微信入口错误。
1. 每周一进入 `Portal` 和 `审批待办` 查看近 7 天登录覆盖率、审批积压、报销/OCR 异常、请假审批和企业微信入口错误;补卡、外出、加班先按临时管理口径记录真实频次。
2. 每周五记录本周结论、关键阻塞、是否需要调整审批规则、报销规则、企业微信入口或导航。
3. 若某周出现员工未登录、报销长期停留、发票重复处理不清、审批积压或企业微信绑定异常,优先修正规则和入口,不额外维护表格作为正式记录。
4. 连续 4 周都达到预期后,再扩大到 P1 采购/费用、合同归档和项目轻管理试点。
@@ -313,7 +315,7 @@ ORDER BY e.employee_no;
- 企业微信定位为 `入口 + 免登 + 通知 + 打卡原始采集`,不承载公司正式审批流。
- 公司只维护一个企业微信自建应用,建议命名为 `海音达工作台`。
- 默认工作台入口在企业微信手机端落到 `/mobile`;桌面浏览器和账号密码登录仍进入 `/portal`。员工真正操作仍在 `hyb-oa` 内完成。
- 所有报销、采购、费用、合同、请假、补卡、外出、加班、出差审批都在 OA 内提交和审批;企业微信消息只负责提醒并 deeplink 回 OA。
- 已上线的报销、采购、费用、合同和请假审批都在 OA 内提交和审批;补卡、外出、加班、出差等未上线流程待后续合同完成后再纳入 OA 正式审批。企业微信消息只负责提醒并 deeplink 回 OA。
- 企微免登建议先完成账号绑定,再逐步在试点部门开启;任何时候都保留账号密码回退。
- 若 OA 部署到公网,生产建议同时满足:`HTTPS`、`COOKIE_SECURE=true`、登录失败锁定、限流、审计开启。
@@ -156,6 +156,15 @@ deeplink 必须校验目标地址白名单,避免跳转到非 OA 域名或未
- 后续同步后,OA 应把企业微信打卡原始记录与 OA 请假、补卡、外出、加班审批结果合并,形成正式考勤口径。
- 企业微信打卡异常不直接等于最终考勤异常;最终解释必须结合 OA 审批记录。
REQAUD 复核后,企业微信打卡边界进一步固定为:
| 项目 | 状态 | 当前口径 |
| --- | --- | --- |
| 企业微信打卡运营使用 | `DONE` | 员工继续按公司要求使用企业微信打卡,定位、人脸、Wi-Fi、设备和防作弊由企业微信侧承担。 |
| OA 同步企业微信打卡 API | `NOT_STARTED` | 当前没有企业微信打卡原始记录同步、补偿重试或隐私脱敏存储实现。 |
| OA 历史 `attendance_v1` 极简打卡 | `NEEDS_DECISION` | 该模块是 OA 自建打卡,不具备企微定位/人脸/Wi-Fi/设备风控能力;后续需单独决定是否关闭、隐藏或保留为备用。 |
| 正式考勤解释 | `PARTIAL` | 请假解释已可用;补卡、外出、加班的员工侧审批闭环尚未完成。 |
---
## 8. 验收场景
+15
查看文件
@@ -36,6 +36,21 @@
- 首批不做复杂假期余额、调休余额、薪资计算、排班引擎和法定节假日自动规则。
- 不把企业微信打卡异常直接作为 OA 最终考勤结论。
### 1.4 当前实现状态
REQAUD 复核后,当前运行时完成度如下:
| 能力 | 状态 | 当前口径 |
| --- | --- | --- |
| 请假申请、审批、撤回、编辑、移动查看 | `DONE` | 已接入统一审批中心和 PC/移动页面。 |
| 请假对团队状态/日历的影响 | `DONE` | 已批准请假可作为团队状态和日历依据。 |
| 企业微信打卡作为原始采集 | `DONE` | 由企业微信侧承载定位、人脸、Wi-Fi、设备和防作弊能力;OA 不重造。 |
| 企业微信打卡 API 同步 | `NOT_STARTED` | OA 尚未同步企微打卡原始记录。 |
| 员工补卡申请审批 | `NOT_STARTED` | 当前只有历史 `attendance_v1` 管理员补卡,不能替代员工补卡申请审批。 |
| 外出申请审批 | `PARTIAL` | 团队状态可手工标记外出,但无员工外出审批对象和流程。 |
| 加班申请审批 | `NOT_STARTED` | 尚无独立加班申请、审批和补偿口径记录。 |
| 历史 OA 极简打卡 `attendance_v1` | `NEEDS_DECISION` | 已有 OA 自建打卡和月度统计,但与当前“企微打卡做原始采集”的产品口径不同,后续需决定关闭、隐藏或保留为备用。 |
---
## 2. 角色与权限
@@ -0,0 +1,10 @@
"ID","Title","Description","Acceptance","Test_Method","Tools","Dev_Status","Review1_Status","Regression_Status","Files","Dependencies","Notes"
"REQAUD-0","REQ-COMPLETE-AUDIT 合同建档","建立需求完成度复核与考勤边界校正合同;本轮只做需求文档、代码实现和 Issue 证据审计,不新增 API/schema/UI/feature flag,不部署,不切换公网开关。","1) CSV 校验通过;2) 范围锁定为需求完成度审计和事实源纠偏;3) 结论状态使用 DONE/PARTIAL/NOT_STARTED/FROZEN/NEEDS_DECISION;4) 企微打卡不得误写为 OA 已完成能力。","受影响流程:系统完成门禁 -> 需求完成度复核 -> 后续最小合同决策;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_13-32-26-requirements-completion-audit.csv;人工核对本轮不改业务运行时。","python3|manual","DONE","DONE","DONE","issues/2026-05-17_13-32-26-requirements-completion-audit.csv","[]","完成:合同创建并通过 validate_issues_csv;本轮只改 Issue CSV 与现有文档事实源,不改业务代码,不部署,不切换公网 feature flag;回滚路径:回退本 CSV 和本轮文档回写。"
"REQAUD-1","事实源盘点","读取当前 PRD、产品口径、企业微信基础设施规约、请假考勤修正规约、统一审批规约、管理员/员工手册和最新完成门禁 CSV,建立本轮审计依据。","1) 已列明当前权威事实源;2) 已确认旧 Issue CSV 仅作证据;3) 已识别与考勤/企微相关的直接事实源;4) 不新增综合规划文档。","受影响流程:需求读取 -> 当前事实源判断 -> 审计依据锁定;验证步骤:rg -n '企业微信|打卡|考勤|补卡|外出|加班|SYSTEM-COMPLETE-GATE|LAUNCH-OPS-V1' docs issues。","rg|manual","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md|docs/需求-企业微信基础设施规约.md|docs/需求-请假考勤修正规约.md|docs/需求-统一审批中心规约.md|docs/管理员手册.md|docs/员工快速上手.md|issues/2026-05-17_12-55-49-system-complete-gate.csv|issues/2026-05-17_12-55-50-launch-ops-v1.csv","[""REQAUD-0""]","完成:当前权威事实源为 PRD/产品口径/企业微信规约/请假考勤规约/统一审批规约/管理员手册/员工手册/SCG/LOPS;旧 R59、A4/A5 等 Issue 只作为历史实现和口径证据,不自动生成待办。"
"REQAUD-2","首批能力完成度矩阵","逐项复核报销、PDF OCR、审批、请假、采购、通知、移动/企业微信入口、财务台账、付款批次、银行回单附件和代账交接的完成证据。","1) 每项能力都有 DONE/PARTIAL/NOT_STARTED/FROZEN/NEEDS_DECISION 结论;2) DONE 必须引用当前证据;3) PARTIAL/NOT_STARTED 必须写清缺口;4) 不复活旧 TODO。","受影响流程:首批正式能力 -> 证据链 -> 完成度清单;验证步骤:阅读 SCG/LOPS/FINPROD/ACCTH/CASHV 相关 CSV 和人工试运行报告;rg 核对首批能力关键词。","rg|manual","DONE","DONE","DONE","issues/2026-05-17_12-55-49-system-complete-gate.csv|issues/2026-05-17_12-55-50-launch-ops-v1.csv|issues/2026-05-17_11-40-47-fin-prod-enable-payment-batch.csv|issues/2026-05-17_11-40-48-accounting-handoff-v1.csv|docs/trialrun/人工试运行报告.md","[""REQAUD-1""]","完成:首批正式能力保持 DONE:报销、PDF OCR、审批、请假、采购、通知、移动/企业微信入口、财务台账、付款批次、银行回单附件、代账交接;证据为 SCG/LOPS/FINPROD/ACCTH/CASHV 和人工试运行报告;冻结项未复活。"
"REQAUD-3","考勤与企微打卡边界审计","明确企业微信打卡为原始采集和风控底座;OA 不重造定位、人脸、Wi-Fi、排班、设备和防作弊;OA 只保留审批解释、团队状态和后续同步边界。","1) 企微打卡运营使用与 OA 同步能力分开记录;2) 不把 OA 极简打卡写成企微打卡完成;3) 后续同步边界清楚;4) 当前正式口径不引导企业微信原生审批。","受影响流程:员工企微打卡 -> OA 请假/补卡/外出/加班审批解释 -> 后续考勤口径;验证步骤:核对 PRD、产品口径、企微规约、请假考勤规约、管理员/员工手册中的打卡边界表述。","rg|manual","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md|docs/需求-企业微信基础设施规约.md|docs/需求-请假考勤修正规约.md|docs/管理员手册.md|docs/员工快速上手.md","[""REQAUD-1""]","完成:企业微信打卡运营使用为 DONE;OA 同步企微打卡 API 为 NOT_STARTED;OA 不重造定位、人脸、Wi-Fi、排班、设备和防作弊;企业微信原生审批继续不作为正式审批。"
"REQAUD-4","请假补卡外出加班实现核对","核对请假、员工补卡申请、外出申请、加班申请是否具备完整提交、审批、生效或解释闭环,并按真实实现标注完成度。","1) 请假实现状态有证据;2) 补卡、外出、加班分别有状态结论;3) 缺运行时能力时标 PARTIAL 或 NOT_STARTED;4) 不把管理员补卡等同于员工补卡申请审批。","受影响流程:员工提交考勤修正 -> OA 审批 -> 团队状态/考勤解释;验证步骤:rg -n '补卡|外出|加班|leaveRequest|attendanceRecord|admin/backfill|clock-in|clock-out' server/src client/src server/tests client/tests docs issues。","rg|manual","DONE","DONE","DONE","server/src/routes/leave.js|server/src/routes/attendance.js|client/src/pages/AttendancePage.tsx|client/src/pages/MobilePortalPage.tsx|client/src/pages/LeaveRequestPage.tsx|client/src/pages/MobileLeavePage.tsx|server/tests/unit/routes/attendance.test.js|client/tests/e2e/leave-flow.spec.ts|client/tests/e2e/leave-team-calendar.spec.ts","[""REQAUD-3""]","完成:请假申请/审批/撤回/移动查看/团队日历为 DONE;员工补卡申请审批为 NOT_STARTED;外出申请审批为 PARTIAL(团队状态可手工外出,无独立审批对象);加班申请审批为 NOT_STARTED;管理员补卡只属于历史 attendance_v1 管理能力。"
"REQAUD-5","历史 OA 极简打卡处理建议","审计历史 attendance_v1 极简 OA 打卡模块与当前产品口径的差异,给出 NEEDS_DECISION 或 FROZEN_AS_FALLBACK 建议,不在本轮修改运行时。","1) attendance_v1 的现有能力、入口和开关已识别;2) 与企微打卡口径的冲突已写清;3) 默认不作为正式企微打卡能力;4) 后续隐藏、关闭或保留备用必须另建合同。","受影响流程:历史 OA 打卡入口 -> 当前企微打卡运营口径 -> 后续功能开关决策;验证步骤:核对 server/src/routes/attendance.js、client/src/pages/AttendancePage.tsx、client/src/pages/MobilePortalPage.tsx、server/src/routes/featureFlags.js 和 R59 Issue。","rg|manual","DONE","DONE","DONE","server/src/routes/attendance.js|server/src/routes/featureFlags.js|server/src/services/featureFlags/index.js|client/src/pages/AttendancePage.tsx|client/src/pages/MobilePortalPage.tsx|issues/2026-04-09_r59-attendance-clockin.csv","[""REQAUD-4""]","完成:attendance_v1 已识别为历史 OA 极简打卡,含 AttendanceRecord/AttendancePolicy、clock-in/out、me/today、me/month、team、policy、admin/backfill、PC/移动入口;因不具备企微定位/人脸/Wi-Fi/设备风控,状态标 NEEDS_DECISION;后续建议 ATTENDANCE-FLAG-CLEANUP 决定隐藏/关闭/保留备用。"
"REQAUD-6","未完成和冻结项清单","整理企微打卡 API 同步、考勤月报解释、员工补卡/外出/加班审批、差旅、预算、ERP、真实支付、图片 OCR 等状态,区分未完成、冻结和需决策。","1) 每个候选项都有状态和原因;2) 冻结项不进入当前开发;3) 需决策项有建议后续合同;4) 不遗漏考勤同步与修正审批缺口。","受影响流程:需求缺口 -> 后续合同排序 -> 不增加当前复杂度;验证步骤:rg 核对 PRD、模块规约、索引、人工试运行报告和历史 Issue 中的冻结项与考勤项。","rg|manual","DONE","DONE","DONE","docs/海音达OA-MVP需求规格说明书.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|issues","[""REQAUD-5""]","完成:NOT_STARTED=企微打卡 API 同步、员工补卡审批、加班审批;PARTIAL=外出申请审批、正式考勤解释;NEEDS_DECISION=attendance_v1;FROZEN=真实支付、ERP、图片 OCR、银行流水导入、复杂 BPM、审批设计器、重预算、完整差旅。"
"REQAUD-7","文档事实源回写","把审计结论回写既有事实源和手册:索引、事实源矩阵、人工试运行报告、PRD 和模块规约必要段落;不新建综合规划文档。","1) 文档明确企微打卡与 OA 考勤边界;2) 完成度矩阵或摘要可追溯;3) attendance_v1 处理建议不误导用户;4) audit-docs 通过或仅保留既有 warning。","受影响流程:文档读取 -> 需求判断 -> 后续 Issue 拆分;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;rg -n 'REQAUD|NEEDS_DECISION|FROZEN_AS_FALLBACK|attendance_v1|企业微信打卡' docs issues。","node|rg|manual","DONE","DONE","DONE","docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|docs/海音达OA-MVP需求规格说明书.md|docs/需求-请假考勤修正规约.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md|docs/员工快速上手.md","[""REQAUD-6""]","完成:已回写索引、事实源矩阵、人工试运行报告、PRD、请假考勤规约、企业微信规约、管理员手册和员工手册;未新建综合规划文档。"
"REQAUD-8","收口与后续合同建议","完成 CSV 状态回填、文档门禁和格式检查,输出后续最小合同建议,例如 ATTENDANCE-WECOM-SYNC-DECISION、ATTENDANCE-CORRECTION-V1 或 ATTENDANCE-FLAG-CLEANUP。","1) REQAUD-0..7 均完成;2) CSV validate 通过;3) audit-docs 通过或仅保留既有 warning;4) git diff --check 通过;5) 中文 commit 引用 REQAUD。","受影响流程:需求完成度审计 -> 后续最小合同;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_13-32-26-requirements-completion-audit.csv;node scripts/qa/audit-docs.mjs --check-registry;git diff --check;git status --short。","python3|node|git|manual","DONE","DONE","DONE","issues/2026-05-17_13-32-26-requirements-completion-audit.csv|docs","[""REQAUD-7""]","完成:后续建议按顺序为 ATTENDANCE-FLAG-CLEANUP(先决策 attendance_v1 入口/开关)、ATTENDANCE-CORRECTION-DECISION(补卡/外出/加班是否进入 OA)、ATTENDANCE-WECOM-SYNC-DECISION(仅在需要月度考勤汇总时评估企微打卡 API 同步)。"
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 REQAUD-0 REQ-COMPLETE-AUDIT 合同建档 建立需求完成度复核与考勤边界校正合同;本轮只做需求文档、代码实现和 Issue 证据审计,不新增 API/schema/UI/feature flag,不部署,不切换公网开关。 1) CSV 校验通过;2) 范围锁定为需求完成度审计和事实源纠偏;3) 结论状态使用 DONE/PARTIAL/NOT_STARTED/FROZEN/NEEDS_DECISION;4) 企微打卡不得误写为 OA 已完成能力。 受影响流程:系统完成门禁 -> 需求完成度复核 -> 后续最小合同决策;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_13-32-26-requirements-completion-audit.csv;人工核对本轮不改业务运行时。 python3|manual DONE DONE DONE issues/2026-05-17_13-32-26-requirements-completion-audit.csv [] 完成:合同创建并通过 validate_issues_csv;本轮只改 Issue CSV 与现有文档事实源,不改业务代码,不部署,不切换公网 feature flag;回滚路径:回退本 CSV 和本轮文档回写。
3 REQAUD-1 事实源盘点 读取当前 PRD、产品口径、企业微信基础设施规约、请假考勤修正规约、统一审批规约、管理员/员工手册和最新完成门禁 CSV,建立本轮审计依据。 1) 已列明当前权威事实源;2) 已确认旧 Issue CSV 仅作证据;3) 已识别与考勤/企微相关的直接事实源;4) 不新增综合规划文档。 受影响流程:需求读取 -> 当前事实源判断 -> 审计依据锁定;验证步骤:rg -n '企业微信|打卡|考勤|补卡|外出|加班|SYSTEM-COMPLETE-GATE|LAUNCH-OPS-V1' docs issues。 rg|manual DONE DONE DONE docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md|docs/需求-企业微信基础设施规约.md|docs/需求-请假考勤修正规约.md|docs/需求-统一审批中心规约.md|docs/管理员手册.md|docs/员工快速上手.md|issues/2026-05-17_12-55-49-system-complete-gate.csv|issues/2026-05-17_12-55-50-launch-ops-v1.csv ["REQAUD-0"] 完成:当前权威事实源为 PRD/产品口径/企业微信规约/请假考勤规约/统一审批规约/管理员手册/员工手册/SCG/LOPS;旧 R59、A4/A5 等 Issue 只作为历史实现和口径证据,不自动生成待办。
4 REQAUD-2 首批能力完成度矩阵 逐项复核报销、PDF OCR、审批、请假、采购、通知、移动/企业微信入口、财务台账、付款批次、银行回单附件和代账交接的完成证据。 1) 每项能力都有 DONE/PARTIAL/NOT_STARTED/FROZEN/NEEDS_DECISION 结论;2) DONE 必须引用当前证据;3) PARTIAL/NOT_STARTED 必须写清缺口;4) 不复活旧 TODO。 受影响流程:首批正式能力 -> 证据链 -> 完成度清单;验证步骤:阅读 SCG/LOPS/FINPROD/ACCTH/CASHV 相关 CSV 和人工试运行报告;rg 核对首批能力关键词。 rg|manual DONE DONE DONE issues/2026-05-17_12-55-49-system-complete-gate.csv|issues/2026-05-17_12-55-50-launch-ops-v1.csv|issues/2026-05-17_11-40-47-fin-prod-enable-payment-batch.csv|issues/2026-05-17_11-40-48-accounting-handoff-v1.csv|docs/trialrun/人工试运行报告.md ["REQAUD-1"] 完成:首批正式能力保持 DONE:报销、PDF OCR、审批、请假、采购、通知、移动/企业微信入口、财务台账、付款批次、银行回单附件、代账交接;证据为 SCG/LOPS/FINPROD/ACCTH/CASHV 和人工试运行报告;冻结项未复活。
5 REQAUD-3 考勤与企微打卡边界审计 明确企业微信打卡为原始采集和风控底座;OA 不重造定位、人脸、Wi-Fi、排班、设备和防作弊;OA 只保留审批解释、团队状态和后续同步边界。 1) 企微打卡运营使用与 OA 同步能力分开记录;2) 不把 OA 极简打卡写成企微打卡完成;3) 后续同步边界清楚;4) 当前正式口径不引导企业微信原生审批。 受影响流程:员工企微打卡 -> OA 请假/补卡/外出/加班审批解释 -> 后续考勤口径;验证步骤:核对 PRD、产品口径、企微规约、请假考勤规约、管理员/员工手册中的打卡边界表述。 rg|manual DONE DONE DONE docs/海音达OA-MVP需求规格说明书.md|docs/产品口径.md|docs/需求-企业微信基础设施规约.md|docs/需求-请假考勤修正规约.md|docs/管理员手册.md|docs/员工快速上手.md ["REQAUD-1"] 完成:企业微信打卡运营使用为 DONE;OA 同步企微打卡 API 为 NOT_STARTED;OA 不重造定位、人脸、Wi-Fi、排班、设备和防作弊;企业微信原生审批继续不作为正式审批。
6 REQAUD-4 请假补卡外出加班实现核对 核对请假、员工补卡申请、外出申请、加班申请是否具备完整提交、审批、生效或解释闭环,并按真实实现标注完成度。 1) 请假实现状态有证据;2) 补卡、外出、加班分别有状态结论;3) 缺运行时能力时标 PARTIAL 或 NOT_STARTED;4) 不把管理员补卡等同于员工补卡申请审批。 受影响流程:员工提交考勤修正 -> OA 审批 -> 团队状态/考勤解释;验证步骤:rg -n '补卡|外出|加班|leaveRequest|attendanceRecord|admin/backfill|clock-in|clock-out' server/src client/src server/tests client/tests docs issues。 rg|manual DONE DONE DONE server/src/routes/leave.js|server/src/routes/attendance.js|client/src/pages/AttendancePage.tsx|client/src/pages/MobilePortalPage.tsx|client/src/pages/LeaveRequestPage.tsx|client/src/pages/MobileLeavePage.tsx|server/tests/unit/routes/attendance.test.js|client/tests/e2e/leave-flow.spec.ts|client/tests/e2e/leave-team-calendar.spec.ts ["REQAUD-3"] 完成:请假申请/审批/撤回/移动查看/团队日历为 DONE;员工补卡申请审批为 NOT_STARTED;外出申请审批为 PARTIAL(团队状态可手工外出,无独立审批对象);加班申请审批为 NOT_STARTED;管理员补卡只属于历史 attendance_v1 管理能力。
7 REQAUD-5 历史 OA 极简打卡处理建议 审计历史 attendance_v1 极简 OA 打卡模块与当前产品口径的差异,给出 NEEDS_DECISION 或 FROZEN_AS_FALLBACK 建议,不在本轮修改运行时。 1) attendance_v1 的现有能力、入口和开关已识别;2) 与企微打卡口径的冲突已写清;3) 默认不作为正式企微打卡能力;4) 后续隐藏、关闭或保留备用必须另建合同。 受影响流程:历史 OA 打卡入口 -> 当前企微打卡运营口径 -> 后续功能开关决策;验证步骤:核对 server/src/routes/attendance.js、client/src/pages/AttendancePage.tsx、client/src/pages/MobilePortalPage.tsx、server/src/routes/featureFlags.js 和 R59 Issue。 rg|manual DONE DONE DONE server/src/routes/attendance.js|server/src/routes/featureFlags.js|server/src/services/featureFlags/index.js|client/src/pages/AttendancePage.tsx|client/src/pages/MobilePortalPage.tsx|issues/2026-04-09_r59-attendance-clockin.csv ["REQAUD-4"] 完成:attendance_v1 已识别为历史 OA 极简打卡,含 AttendanceRecord/AttendancePolicy、clock-in/out、me/today、me/month、team、policy、admin/backfill、PC/移动入口;因不具备企微定位/人脸/Wi-Fi/设备风控,状态标 NEEDS_DECISION;后续建议 ATTENDANCE-FLAG-CLEANUP 决定隐藏/关闭/保留备用。
8 REQAUD-6 未完成和冻结项清单 整理企微打卡 API 同步、考勤月报解释、员工补卡/外出/加班审批、差旅、预算、ERP、真实支付、图片 OCR 等状态,区分未完成、冻结和需决策。 1) 每个候选项都有状态和原因;2) 冻结项不进入当前开发;3) 需决策项有建议后续合同;4) 不遗漏考勤同步与修正审批缺口。 受影响流程:需求缺口 -> 后续合同排序 -> 不增加当前复杂度;验证步骤:rg 核对 PRD、模块规约、索引、人工试运行报告和历史 Issue 中的冻结项与考勤项。 rg|manual DONE DONE DONE docs/海音达OA-MVP需求规格说明书.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|issues ["REQAUD-5"] 完成:NOT_STARTED=企微打卡 API 同步、员工补卡审批、加班审批;PARTIAL=外出申请审批、正式考勤解释;NEEDS_DECISION=attendance_v1;FROZEN=真实支付、ERP、图片 OCR、银行流水导入、复杂 BPM、审批设计器、重预算、完整差旅。
9 REQAUD-7 文档事实源回写 把审计结论回写既有事实源和手册:索引、事实源矩阵、人工试运行报告、PRD 和模块规约必要段落;不新建综合规划文档。 1) 文档明确企微打卡与 OA 考勤边界;2) 完成度矩阵或摘要可追溯;3) attendance_v1 处理建议不误导用户;4) audit-docs 通过或仅保留既有 warning。 受影响流程:文档读取 -> 需求判断 -> 后续 Issue 拆分;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;rg -n 'REQAUD|NEEDS_DECISION|FROZEN_AS_FALLBACK|attendance_v1|企业微信打卡' docs issues。 node|rg|manual DONE DONE DONE docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/trialrun/人工试运行报告.md|docs/海音达OA-MVP需求规格说明书.md|docs/需求-请假考勤修正规约.md|docs/需求-企业微信基础设施规约.md|docs/管理员手册.md|docs/员工快速上手.md ["REQAUD-6"] 完成:已回写索引、事实源矩阵、人工试运行报告、PRD、请假考勤规约、企业微信规约、管理员手册和员工手册;未新建综合规划文档。
10 REQAUD-8 收口与后续合同建议 完成 CSV 状态回填、文档门禁和格式检查,输出后续最小合同建议,例如 ATTENDANCE-WECOM-SYNC-DECISION、ATTENDANCE-CORRECTION-V1 或 ATTENDANCE-FLAG-CLEANUP。 1) REQAUD-0..7 均完成;2) CSV validate 通过;3) audit-docs 通过或仅保留既有 warning;4) git diff --check 通过;5) 中文 commit 引用 REQAUD。 受影响流程:需求完成度审计 -> 后续最小合同;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-17_13-32-26-requirements-completion-audit.csv;node scripts/qa/audit-docs.mjs --check-registry;git diff --check;git status --short。 python3|node|git|manual DONE DONE DONE issues/2026-05-17_13-32-26-requirements-completion-audit.csv|docs ["REQAUD-7"] 完成:后续建议按顺序为 ATTENDANCE-FLAG-CLEANUP(先决策 attendance_v1 入口/开关)、ATTENDANCE-CORRECTION-DECISION(补卡/外出/加班是否进入 OA)、ATTENDANCE-WECOM-SYNC-DECISION(仅在需要月度考勤汇总时评估企微打卡 API 同步)。