# 历史 TODO 清账映射(A/C -> B/D/F) **日期**:2026-03-13 **范围**: - `issues/2026-02-07-p2-kickoff.csv` - `issues/2026-02-08_14-20-25-p2-ci-and-tests.csv` **目标**:对历史 `TODO` 项逐条给出去向:`implemented | superseded | still-open`,并以“后续执行合同 + 当前代码路径”形成可审计证据链。 ## 1. 2026-02-07-p2-kickoff.csv | Legacy ID | 标题 | 清账状态 | 对应实现 / 去向证据 | | --- | --- | --- | --- | | A1 | 付款凭证扩展与pay幂等冲突判定 | implemented | `issues/2026-02-08_11-02-30-p2-stabilization.csv:B1`(DONE)承接付款幂等收口;当前代码在 `server/src/routes/reimbursements.js` 的 `/api/reimbursements/:id/pay` 已支持 `paymentVoucherNo/paymentDate/paymentChannel` 幂等重试,并在冲突时返回 `already_paid_conflict`。 | | A2 | 委派有效期与自动回收 | implemented | `issues/2026-02-08_11-02-30-p2-stabilization.csv:B2/B3`(DONE)收口委派有效期与并发回收;当前代码在 `server/src/routes/delegations.js` 支持 `validFrom/validTo`,`server/src/jobs/delegationRevokeJob.js` 负责过期授权自动回收与审计。 | | A5 | Sprint1回归护栏前置 | superseded | 该目标已被后续统一回归体系取代:`issues/2026-02-08_17-05-00-p3-full-delivery.csv:D12`(DONE)与 `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D4`(DONE)已将回归入口与 CI 补强收口;当前脚本 `server/scripts/regression-workflow-actions.sh` 与 `server/scripts/regression-all.sh` 持续承接原“护栏前置”职责。 | | A3 | OCR真对接与异步处理 | implemented | `issues/2026-02-09_13-39-02-p5-blueprint-v3.csv:F11` 与 `issues/2026-02-09_13-39-02-p5-blueprint-v3.csv:F19b`(DONE)已将 OCR provider、异步处理与回归闭环收口;当前代码在 `server/src/services/ocr/tencent.js` 提供腾讯云 VAT OCR 对接,在 `server/src/scripts/run-ocr-once.js` 与 `server/src/jobs/ocrJob.js` 提供异步扫描执行能力。 | | A3-LOCK | OCR多实例并发幂等锁 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D3`(DONE)已把 OCR mock 回归与并发锁验收纳入主线;当前代码在 `server/src/jobs/ocrJob.js` 使用 `FOR UPDATE SKIP LOCKED` + `ocr_locked_at/ocr_lock_owner` 进行唯一认领,表结构见 `server/prisma/schema.prisma`。 | | A4 | 审计工作台只读能力 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D2`(DONE)承接审计接口与回归;当前代码在 `server/src/routes/audit.js` 已提供 `/api/audit-logs`,前端 `client/src/pages/AuditLogsPage.tsx` 已实现分页、筛选、导出与权限控制。 | ## 2. 2026-02-08_14-20-25-p2-ci-and-tests.csv | Legacy ID | 标题 | 清账状态 | 对应实现 / 去向证据 | | --- | --- | --- | --- | | C2 | 审计接口自动化测试 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D2`(DONE)直接承接;当前回归脚本 `server/scripts/regression-audit.sh` 已覆盖权限、分页、筛选与参数非法场景。 | | C3 | OCR 自动化测试(Mock优先) | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D3`(DONE)直接承接;当前回归脚本 `server/scripts/regression-ocr.sh` 已覆盖 mock provider、状态流转、失败重试与并发唯一认领。 | | C4 | P3-a 待办列表页落地 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D6`(DONE)直接承接;当前页面 `client/src/pages/WorkflowTasksPage.tsx` 已实现真实待办列表、分页、状态筛选与详情入口。 | | C5 | P3-a 审批详情与动作联调 | implemented | `issues/2026-02-08_17-05-00-p3-full-delivery.csv:D6`(DONE)直接承接;当前页面 `client/src/pages/WorkflowTaskDetailPage.tsx` 已联通 `approve/reject/return/transfer` 动作、候选审批人、错误提示与数据刷新。 | ## 3. 汇总结论 - `implemented`:9 - `superseded`:1 - `still-open`:0 ## 4. 治理口径 - 历史 `issues/*.csv` 继续保持快照不可变,不回写旧状态。 - 清账结论由本文件和后续治理合同承接,作为“旧 TODO 已被后续迭代覆盖”的审计证据。 - 若后续代码与旧合同文案冲突,以当前运行时代码和已完成执行合同为准。