docs(P17B-0): 建档采购预算闭环执行合同

这个提交包含在:
2026-03-07 21:02:14 +08:00
父节点 25aef578fc
当前提交 019423776e
@@ -0,0 +1,8 @@
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
P17B-0,P17B执行合同建档,创建并校验P17B采购预算闭环与归档执行合同CSV,CSV通过校验且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv,manual,TODO,TODO,TODO,issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv,[],P17B仅补预算预留确认释放与PO合同归档不进入收货入库三单匹配
P17B-1,采购预算预留确认释放语义,为采购申请补齐reserve confirm release三类预算台账语义并维护used_amount占用,提交审批撤回驳回退回均能按规则写预算台账且不破坏报销旧语义,cd server && npm run test && OCR_PROVIDER=mock JOBS_ENABLED=false ./scripts/regression-all.sh,manual,TODO,TODO,TODO,server/prisma/schema.prisma | server/src/routes/purchaseRequests.js | server/src/routes/workflow.js | server/tests,"[""P17B-0""]",采购占用仅作用于purchase_request报销继续沿用既有提交即占用语义
P17B-2,PO合同归档模型与接口,新增PurchaseOrderArchive并提供采购单归档读取写入接口,approved状态采购单可幂等归档且仅procurement.manage或administration可操作,cd server && npm run test,manual,TODO,TODO,TODO,server/prisma/schema.prisma | server/src/routes/purchaseRequests.js | server/tests,"[""P17B-1""]",归档文件先存JSON元数据数组不另起独立页面
P17B-3,工作流联动预算释放,在approve reject return withdraw链路中接入采购预算台账联动与幂等释放助手,采购任务审批退回驳回撤回都能正确更新预算台账且无重复释放,cd server && npm run test && ./scripts/regression-workflow-actions.sh,manual,TODO,TODO,TODO,server/src/routes/workflow.js | server/src/routes/purchaseRequests.js | server/tests,"[""P17B-2""]",禁止新增新的全局权限映射层仅在现有workflow与采购路由内补齐
P17B-4,前端归档入口与E2E,在采购申请页面补归档区块并接入playwright采购主流程,approved采购详情可见PO合同归档且主流程E2E通过,cd client && npm run typecheck && npm run build,manual,TODO,TODO,TODO,client/src/pages/PurchaseRequestsPage.tsx | client/src/api/purchaseRequests.ts | client/tests | playwright,"[""P17B-3""]",不新增独立归档页面仍在采购详情区完成留档
P17B-5,安全文档与接口说明,补齐采购预算闭环与归档的接口说明权限边界与安全校验记录,文档明确IDOR越权风险与归档权限边界且矩阵锚点可追踪,cd server && npm run test && python3 scripts/validate-feature-matrix.py,manual,TODO,TODO,TODO,issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv | docs/feature-matrix.md | server/src/routes/purchaseRequests.js,"[""P17B-4""]",security-best-practices在合并前必须执行一轮
P17B-6,P17B回归与安全收口,执行采购预算闭环归档E2E与全量回归后再允许进入P18A,采购预算预留确认释放与PO归档通过且报销请假主数据采购主流程零回归,cd server && npm run test && OCR_PROVIDER=mock JOBS_ENABLED=false ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build,manual,TODO,TODO,TODO,issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv | server/src/routes/purchaseRequests.js | client/src/pages/PurchaseRequestsPage.tsx,"[""P17B-5""]",P17B不进入收货入库发票核销ERP过账
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
2 P17B-0 P17B执行合同建档 创建并校验P17B采购预算闭环与归档执行合同CSV CSV通过校验且字段完整 python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv manual TODO TODO TODO issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv [] P17B仅补预算预留确认释放与PO合同归档不进入收货入库三单匹配
3 P17B-1 采购预算预留确认释放语义 为采购申请补齐reserve confirm release三类预算台账语义并维护used_amount占用 提交审批撤回驳回退回均能按规则写预算台账且不破坏报销旧语义 cd server && npm run test && OCR_PROVIDER=mock JOBS_ENABLED=false ./scripts/regression-all.sh manual TODO TODO TODO server/prisma/schema.prisma | server/src/routes/purchaseRequests.js | server/src/routes/workflow.js | server/tests ["P17B-0"] 采购占用仅作用于purchase_request报销继续沿用既有提交即占用语义
4 P17B-2 PO合同归档模型与接口 新增PurchaseOrderArchive并提供采购单归档读取写入接口 approved状态采购单可幂等归档且仅procurement.manage或administration可操作 cd server && npm run test manual TODO TODO TODO server/prisma/schema.prisma | server/src/routes/purchaseRequests.js | server/tests ["P17B-1"] 归档文件先存JSON元数据数组不另起独立页面
5 P17B-3 工作流联动预算释放 在approve reject return withdraw链路中接入采购预算台账联动与幂等释放助手 采购任务审批退回驳回撤回都能正确更新预算台账且无重复释放 cd server && npm run test && ./scripts/regression-workflow-actions.sh manual TODO TODO TODO server/src/routes/workflow.js | server/src/routes/purchaseRequests.js | server/tests ["P17B-2"] 禁止新增新的全局权限映射层仅在现有workflow与采购路由内补齐
6 P17B-4 前端归档入口与E2E 在采购申请页面补归档区块并接入playwright采购主流程 approved采购详情可见PO合同归档且主流程E2E通过 cd client && npm run typecheck && npm run build manual TODO TODO TODO client/src/pages/PurchaseRequestsPage.tsx | client/src/api/purchaseRequests.ts | client/tests | playwright ["P17B-3"] 不新增独立归档页面仍在采购详情区完成留档
7 P17B-5 安全文档与接口说明 补齐采购预算闭环与归档的接口说明权限边界与安全校验记录 文档明确IDOR越权风险与归档权限边界且矩阵锚点可追踪 cd server && npm run test && python3 scripts/validate-feature-matrix.py manual TODO TODO TODO issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv | docs/feature-matrix.md | server/src/routes/purchaseRequests.js ["P17B-4"] security-best-practices在合并前必须执行一轮
8 P17B-6 P17B回归与安全收口 执行采购预算闭环归档E2E与全量回归后再允许进入P18A 采购预算预留确认释放与PO归档通过且报销请假主数据采购主流程零回归 cd server && npm run test && OCR_PROVIDER=mock JOBS_ENABLED=false ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build manual TODO TODO TODO issues/2026-03-07_21-00-37-p17b-l5-procurement-budget-archive.csv | server/src/routes/purchaseRequests.js | client/src/pages/PurchaseRequestsPage.tsx ["P17B-5"] P17B不进入收货入库发票核销ERP过账