4.1 KiB
4.1 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | P20TRAVEL3-0 | P20TRAVEL3执行合同刷新建档 | 创建并校验TRAVEL-3 superseding CSV并冻结批次快照 只读对账与ERP摘要桥边界 | 新CSV通过校验且明确supersede旧roadmap CSV并写清batch-level reconciliation与erp.travel.export边界 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-11_09-57-28-p20-travel-3-l5-reconciliation-erp-bridge-refresh.csv | manual | DONE | DONE | DONE | issues/2026-03-11_09-57-28-p20-travel-3-l5-reconciliation-erp-bridge-refresh.csv | [] | 保留旧roadmap CSV作为首次规划锚点 不再直接改写 |
| 3 | P20TRAVEL3-1 | 对账批次模型与序列基线 | 新增TravelReconciliationBatch TravelReconciliationItem以及travel_reconciliation_batch单号与seed基线 | Prisma模型 索引 单号fallback与document category全部落地且不改写TravelOrder CardTransaction既有状态语义 | cd server && npm run prisma:validate && npm run test | manual | DONE | DONE | DONE | server/prisma/schema.prisma | server/prisma/migrations/*_p20_travel_3_reconciliation_erp_bridge/migration.sql | server/src/services/documentSequence.js | server/src/scripts/seed-config.js | server/tests | ["P20TRAVEL3-0"] | 批次快照冻结后仅允许新建下一批 不刷新旧批次 |
| 4 | P20TRAVEL3-2 | 对账引擎批次接口与人工确认 | 实现travelReconciliation服务与批次创建 查询 明细确认 重开与finalize接口 | 差异发现 人工确认 draft到reconciled冻结与empty scope校验全部成立且不自动修正订单交易原值 | cd server && npm run test | manual | DONE | DONE | DONE | server/src/services/travelReconciliation.js | server/src/routes/travelReconciliation.js | server/src/app.js | server/tests | ["P20TRAVEL3-1"] | 仅覆盖paid travel orders与范围内settled reversed交易 linked_reimbursement_id只读参考 |
| 5 | P20TRAVEL3-3 | ERP travel export与批次轨道 | 实现erp.travel.export payload dedupe binding以及batch级track requeue桥接 | erp.travel.export travel_payable_summary与travel_settlement_batch binding及track requeue全部成立且不影响travel_order_payment journal既有轨道 | cd server && npm run test | manual | DONE | DONE | DONE | server/src/services/integrations/erpTravel.js | server/src/services/integrations/dispatcher.js | server/src/routes/integrations.js | server/tests | ["P20TRAVEL3-2"] | erp.travel.export为集成事件 不是新增公开领域事件名 |
| 6 | P20TRAVEL3-4 | 差旅页对账Tab与前端联动 | 在TravelRequestsPage内新增reconciliation Tab并实现批次列表 详情 KPI 异常表 确认 收口与ERP轨道交互 | 前端可在travel.payment.manage与integration.manage权限下完成批次查看 确认 finalize与requeue且deep link稳定为tab=reconciliation&batchId=<id> | cd client && npm run typecheck && npm run build | manual | DONE | DONE | DONE | client/src/api/travelReconciliation.ts | client/src/pages/TravelRequestsPage.tsx | client/src/components/travel/TravelReconciliationTab.tsx | client/src/components/travel/TravelReconciliationBatchCard.tsx | client/src/components/travel/TravelReconciliationItemTable.tsx | ["P20TRAVEL3-3"] | 不新建独立差旅对账路由 requests页原有支付轨道保持不变 |
| 7 | P20TRAVEL3-5 | P20TRAVEL3文档矩阵同步与回归收口 | 同步边界文档 领域事件说明 Feature Matrix与事实源校验器并完成全量回归 | 文档明确TRAVEL-3为批次快照 只读对账 ERP摘要桥 矩阵更新到254且全部验证命令通过 | cd server && npm run prisma:validate && npm run test && cd ../client && npm run typecheck && npm run build && python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-11_09-57-28-p20-travel-3-l5-reconciliation-erp-bridge-refresh.csv && python3 scripts/validate-feature-matrix.py && git diff --check | manual | DONE | DONE | DONE | docs/integration-boundaries.md | docs/domain-events.md | docs/feature-matrix.md | scripts/validate-feature-matrix.py | issues/2026-03-11_09-57-28-p20-travel-3-l5-reconciliation-erp-bridge-refresh.csv | ["P20TRAVEL3-4"] | 完成后矩阵标题更新为P5-P19+IM-1+ERP-3+R10+MCP-1+AI-1+TRAVEL-1+TRAVEL-2+TRAVEL-3 总数254 |