feat(P20T2-0): 差旅对公支付执行合同建档
这个提交包含在:
@@ -0,0 +1,7 @@
|
|||||||
|
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||||
|
P20TRAVEL2-0,P20TRAVEL2执行合同刷新建档,创建并校验TRAVEL-2 superseding CSV并冻结混合双轨 对公支付闭环 发票绑定与ERP payment journal边界,新CSV通过校验且明确supersede旧roadmap CSV并写清CardAuthorization CardTransaction与mark-paid双主轴,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-10_21-05-59-p20-travel-2-l5-corporate-payments-refresh.csv,manual,DONE,DONE,DONE,issues/2026-03-10_21-05-59-p20-travel-2-l5-corporate-payments-refresh.csv,[],保留旧roadmap CSV作为首次规划锚点 不再直接改写
|
||||||
|
P20TRAVEL2-1,统付模型支付权限与双账轨基线,新增CardAuthorization CardTransaction TravelOrder支付字段 InvoicePool.travel_order_id与travel.payment.manage并冻结authorize settle reverse支付预算语义,Prisma模型 权限映射 发票绑定字段与预算轨道基线全部落地且不改写TRAVEL-1既有reserve confirm release语义,cd server && npm run prisma:validate && npm run test,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/prisma/migrations/*_p20_travel_2_corporate_payments/migration.sql | server/src/constants/permissions.js | client/src/auth/permissions.ts | server/src/services/travelPayments.js | server/tests,"[""P20TRAVEL2-0""]",支付预算账轨与申请预算账轨并存 不回改travel_request审批确认点
|
||||||
|
P20TRAVEL2-2,授权交易导入与订单确认语义,实现travelAuthorizations与travelTransactions导入列表 freeze suggestion并在精确匹配时把TravelOrder推进到confirmed,授权交易导入具备幂等 跳过原因清晰 异常交易仅影响支付轨道不阻断差旅申请主流程,cd server && npm run test,manual,DONE,DONE,DONE,server/src/routes/travelAuthorizations.js | server/src/routes/travelTransactions.js | server/src/routes/travelOrders.js | server/src/routes/travelRequests.js | server/src/app.js | server/tests,"[""P20TRAVEL2-1""]",导入接口继续由integration.manage保护
|
||||||
|
P20TRAVEL2-3,发票绑定标记已支付与ERP journal出站,扩展invoice-pool绑定travelOrderId并实现POST /api/travel-orders/:id/mark-paid与travel_order.paid到erp.journal.export出站链路,订单支付幂等成功 发票排他绑定成立 ERP payment journal可按erp_sync门禁入Outbox,cd server && npm run test,manual,DONE,DONE,DONE,server/src/routes/invoicePool.js | server/src/routes/travelOrders.js | server/src/services/integrations/erpJournal.js | server/src/services/integrations/dispatcher.js | server/tests,"[""P20TRAVEL2-2""]",mark-paid不自动归档发票 travel_order.paid为本期唯一新增稳定公共事件
|
||||||
|
P20TRAVEL2-4,差旅前端支付轨道与发票绑定交互,在差旅详情页新增对公支付轨道卡片并支持mark-paid bind invoice freeze suggestion与ERP stage展示,前端能按travel.payment.manage控制操作按钮 普通查看者只读查看且接口失败不阻断主页面,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/api/travelPayments.ts | client/src/api/travelRequests.ts | client/src/api/invoicePool.ts | client/src/components/travel/TravelPaymentTrackCard.tsx | client/src/components/travel/TravelOrderMarkPaidDialog.tsx | client/src/pages/TravelRequestsPage.tsx | client/src/pages/InvoicePoolPage.tsx | client/src/pages/invoice-pool/InvoiceBindCard.tsx,"[""P20TRAVEL2-3""]",优先复用现有发票池选择器 不新增travel专用票据页面
|
||||||
|
P20TRAVEL2-5,P20TRAVEL2文档矩阵同步与回归收口,同步ADR 边界文档 领域事件 Feature Matrix与事实源校验器并完成全量回归,文档明确TRAVEL-2为混合双轨+订单支付闭环 矩阵更新到248且全部验证命令通过,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-10_21-05-59-p20-travel-2-l5-corporate-payments-refresh.csv && python3 scripts/validate-feature-matrix.py && git diff --check,manual,DONE,DONE,DONE,docs/adr/adr-enterprise-card-control.md | docs/integration-boundaries.md | docs/domain-events.md | docs/feature-matrix.md | scripts/validate-feature-matrix.py | issues/2026-03-10_21-05-59-p20-travel-2-l5-corporate-payments-refresh.csv,"[""P20TRAVEL2-4""]",完成后矩阵标题更新为P5-P19+IM-1+ERP-3+R10+MCP-1+AI-1+TRAVEL-1+TRAVEL-2 总数248
|
||||||
|
在新工单中引用
屏蔽一个用户