ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes P17A-0,P17A执行合同建档,创建并校验P17A轻采购核心执行合同CSV,CSV通过校验且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_19-33-09-p17a-l5-procurement-core.csv,manual,DONE,DONE,DONE,issues/2026-03-07_19-33-09-p17a-l5-procurement-core.csv,[],P17A仅交付采购申请主流程不进入预算真实占用与PO归档 P17A-1,采购核心Prisma模型与迁移,新增PurchaseRequest PurchaseRequestItem PurchaseAttachment并为工作流实例补齐采购实体引用,Prisma schema与迁移通过校验且不破坏现有报销请假主流程,cd server && npm run prisma:validate && npx prisma migrate dev --name p17a_procurement_core && npm run prisma:generate,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/prisma/migrations | server/src/prismaClient.js,"[""P17A-0""]",request_no提交时生成 budget_pool_id草稿可空且本轮不写预算台账reserve P17A-2,采购权限与系统种子补齐,新增procurement权限域 角色映射与系统单据分类种子PR_STANDARD,默认角色权限与seed-config保持一致且不误授予finance审批权限,cd server && npm run test,manual,DONE,DONE,DONE,server/src/constants/permissions.js | server/src/routes/workflow.js | server/prisma/seed-config.js | server/prisma/seed-dev.js,"[""P17A-1""]",仅支持approve reject return不引入transfer且不复用expense权限 P17A-3,采购申请后端API与工作流接入,实现采购申请列表 详情 草稿更新 提交 撤回接口并接入现有workflow实体鉴权链路,员工可创建编辑提交撤回草稿 经理可审批 且采购任务能进入待办列表,cd server && npm run test && ./scripts/regression-workflow-actions.sh,manual,DONE,DONE,DONE,server/src/routes/purchaseRequests.js | server/src/routes/workflow.js | server/src/services/documentSequence.js | server/src/app.js,"[""P17A-2""]",提交时必须校验supplier legalEntity costCenter documentCategory草稿态允许不完整 P17A-4,采购前端入口与申请页,新增采购申请页面 API封装 菜单与路由并支持列表 草稿编辑 提交 撤回,采购申请页面可用且菜单显隐与procurement权限一致,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/PurchaseRequestsPage.tsx | client/src/api/purchaseRequests.ts | client/src/router/index.tsx | client/src/components/navigation/NavLinks.tsx,"[""P17A-3""]",不新增采购管理后台仅交付员工申请页与基础列表筛选 P17A-5,OpenAPI与合同文档同步,补齐采购接口文档 路由标签 审计动作码并为后续P17B保留预算与归档扩展锚点,/api/docs/json可见采购接口且合同文件锚点与代码落点一致,cd server && npm run test && node --check src/routes/purchaseRequests.js,manual,DONE,DONE,DONE,server/src/routes/purchaseRequests.js | server/src/app.js | issues/2026-03-07_19-33-09-p17a-l5-procurement-core.csv,"[""P17A-4""]",只冻结接口与审计边界不提前实现PO archive reserve confirm release P17A-6,P17A回归与验收收口,执行后端前端回归并确认报销 请假 主数据零回归后再允许进入P17B,采购草稿提交撤回审批通过且既有报销请假主流程零回归,cd server && npm run test && OCR_PROVIDER=mock JOBS_ENABLED=false ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,issues/2026-03-07_19-33-09-p17a-l5-procurement-core.csv | server/src/routes/purchaseRequests.js | client/src/pages/PurchaseRequestsPage.tsx,"[""P17A-5""]",P17A不做预算真实占用 不做收货入库三单匹配 不做ERP过账