feat(P20T3-0): 差旅对账与ERP桥接执行合同建档

这个提交包含在:
2026-03-11 16:55:04 +08:00
父节点 b089a65fa9
当前提交 41a169ea41
@@ -0,0 +1,7 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
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作为首次规划锚点 不再直接改写
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""]",批次快照冻结后仅允许新建下一批 不刷新旧批次
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只读参考
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为集成事件 不是新增公开领域事件名
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页原有支付轨道保持不变
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
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