feat(P20T1-0): 差旅申请受理执行合同建档

这个提交包含在:
2026-03-10 19:58:46 +08:00
父节点 efe33b3add
当前提交 427ae2db53
@@ -0,0 +1,7 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
P20TRAVEL1-0,P20TRAVEL1执行合同刷新建档,创建并校验差旅申请与行程入站整合的 superseding 执行合同CSV,refresh CSV通过校验并明确 supersede 旧 roadmap CSV 且冻结 TRAVEL-1 权限预算工作流边界,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv,manual,DONE,DONE,DONE,issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv,[],差旅一期只做申请审批与行程入站关联 不做ERP出站与对公支付
P20TRAVEL1-1,差旅模型权限与seed基线,新增TravelRequest TravelRequestSegment travel_orders.travel_request_id及travel.*权限与默认seed,Prisma模型 权限映射 文档编号与默认workflow/document category seed全部齐备且与采购请假模式对称,cd server && npm run prisma:validate && npm run test,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/prisma/migrations | server/src/constants/permissions.js | server/src/services/documentSequence.js | server/src/scripts/seed-config.js | server/tests | issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv,"[""P20TRAVEL1-0""]",travel_request一期开启独立travel.*命名空间 且workflow采用直属经理单层审批
P20TRAVEL1-2,差旅申请接口工作流与预算语义,实现差旅申请CRUD submit withdraw接口并扩展workflow travel分支与travel orders关联导入,创建 提交 审批 驳回 退回 撤回 预算reserve confirm release与订单关联全部成立且不触发ERP事件,cd server && npm run test,manual,DONE,DONE,DONE,server/src/routes/travelRequests.js | server/src/routes/travelOrders.js | server/src/routes/workflow.js | server/src/constants/notificationTypes.js | server/src/app.js | server/tests | issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv,"[""P20TRAVEL1-1""]",withdraw与return均回到draft并释放预算 但不新增withdrawn持久状态
P20TRAVEL1-3,差旅前端入口详情与待办联动,新增差旅申请页面API与路由导航并扩展workflow task detail/mobile approvals显示差旅实体,差旅页可创建提交撤回查看关联订单 审批待办与通知入口可处理travel_request任务且权限边界正确,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/api/travelRequests.ts | client/src/api/workflow.ts | client/src/auth/permissions.ts | client/src/pages/TravelRequestsPage.tsx | client/src/pages/WorkflowTasksPage.tsx | client/src/pages/WorkflowTaskDetailPage.tsx | client/src/pages/MobileApprovalsPage.tsx | client/src/pages/NotificationChannelsPage.tsx | client/src/components/navigation/NavLinks.tsx | client/src/router/index.tsx | issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv,"[""P20TRAVEL1-2""]",差旅页采用采购式列表+详情/表单布局 并支持travel-requests?id=<id>深链
P20TRAVEL1-4,差旅事件边界与矩阵同步,同步差旅一期集成边界 领域事件 Feature Matrix与事实源校验器,文档明确TRAVEL-1只做申请审批预算与travel_orders关联 travel_order.imported仅为内部事实且矩阵更新到242,python3 scripts/validate-feature-matrix.py,manual,DONE,DONE,DONE,docs/integration-boundaries.md | docs/domain-events.md | docs/feature-matrix.md | scripts/validate-feature-matrix.py | issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv,"[""P20TRAVEL1-3""]",新增travel_request.submitted approved rejected withdrawn 但不新增ERP travel事件
P20TRAVEL1-5,P20TRAVEL1回归与验收收口,完成差旅申请 工作流 预算 订单关联 前端构建与文档矩阵回归后收口,差旅一期happy path与reject return withdraw import permission场景通过且既有报销采购资产AI集成主流程零回归,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_17-32-21-p20-travel-1-l5-request-intake-refresh.csv && python3 scripts/validate-feature-matrix.py && git diff --check,manual,DONE,DONE,DONE,issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv | server/tests | client/src/pages/TravelRequestsPage.tsx | client/src/pages/WorkflowTaskDetailPage.tsx,"[""P20TRAVEL1-4""]",重点核对travel.approve待办可见性 预算释放 幂等导入关联与无ERP出站
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 P20TRAVEL1-0 P20TRAVEL1执行合同刷新建档 创建并校验差旅申请与行程入站整合的 superseding 执行合同CSV refresh CSV通过校验并明确 supersede 旧 roadmap CSV 且冻结 TRAVEL-1 权限预算工作流边界 python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv manual DONE DONE DONE issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv [] 差旅一期只做申请审批与行程入站关联 不做ERP出站与对公支付
3 P20TRAVEL1-1 差旅模型权限与seed基线 新增TravelRequest TravelRequestSegment travel_orders.travel_request_id及travel.*权限与默认seed Prisma模型 权限映射 文档编号与默认workflow/document category seed全部齐备且与采购请假模式对称 cd server && npm run prisma:validate && npm run test manual DONE DONE DONE server/prisma/schema.prisma | server/prisma/migrations | server/src/constants/permissions.js | server/src/services/documentSequence.js | server/src/scripts/seed-config.js | server/tests | issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv ["P20TRAVEL1-0"] travel_request一期开启独立travel.*命名空间 且workflow采用直属经理单层审批
4 P20TRAVEL1-2 差旅申请接口工作流与预算语义 实现差旅申请CRUD submit withdraw接口并扩展workflow travel分支与travel orders关联导入 创建 提交 审批 驳回 退回 撤回 预算reserve confirm release与订单关联全部成立且不触发ERP事件 cd server && npm run test manual DONE DONE DONE server/src/routes/travelRequests.js | server/src/routes/travelOrders.js | server/src/routes/workflow.js | server/src/constants/notificationTypes.js | server/src/app.js | server/tests | issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv ["P20TRAVEL1-1"] withdraw与return均回到draft并释放预算 但不新增withdrawn持久状态
5 P20TRAVEL1-3 差旅前端入口详情与待办联动 新增差旅申请页面API与路由导航并扩展workflow task detail/mobile approvals显示差旅实体 差旅页可创建提交撤回查看关联订单 审批待办与通知入口可处理travel_request任务且权限边界正确 cd client && npm run typecheck && npm run build manual DONE DONE DONE client/src/api/travelRequests.ts | client/src/api/workflow.ts | client/src/auth/permissions.ts | client/src/pages/TravelRequestsPage.tsx | client/src/pages/WorkflowTasksPage.tsx | client/src/pages/WorkflowTaskDetailPage.tsx | client/src/pages/MobileApprovalsPage.tsx | client/src/pages/NotificationChannelsPage.tsx | client/src/components/navigation/NavLinks.tsx | client/src/router/index.tsx | issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv ["P20TRAVEL1-2"] 差旅页采用采购式列表+详情/表单布局 并支持travel-requests?id=<id>深链
6 P20TRAVEL1-4 差旅事件边界与矩阵同步 同步差旅一期集成边界 领域事件 Feature Matrix与事实源校验器 文档明确TRAVEL-1只做申请审批预算与travel_orders关联 travel_order.imported仅为内部事实且矩阵更新到242 python3 scripts/validate-feature-matrix.py manual DONE DONE DONE docs/integration-boundaries.md | docs/domain-events.md | docs/feature-matrix.md | scripts/validate-feature-matrix.py | issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv ["P20TRAVEL1-3"] 新增travel_request.submitted approved rejected withdrawn 但不新增ERP travel事件
7 P20TRAVEL1-5 P20TRAVEL1回归与验收收口 完成差旅申请 工作流 预算 订单关联 前端构建与文档矩阵回归后收口 差旅一期happy path与reject return withdraw import permission场景通过且既有报销采购资产AI集成主流程零回归 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_17-32-21-p20-travel-1-l5-request-intake-refresh.csv && python3 scripts/validate-feature-matrix.py && git diff --check manual DONE DONE DONE issues/2026-03-10_17-32-21-p20-travel-1-l5-request-intake-refresh.csv | server/tests | client/src/pages/TravelRequestsPage.tsx | client/src/pages/WorkflowTaskDetailPage.tsx ["P20TRAVEL1-4"] 重点核对travel.approve待办可见性 预算释放 幂等导入关联与无ERP出站