ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes P25-0,P25执行合同刷新建档与范围收缩,创建并校验费控闭环 refresh 合同 CSV 并冻结本轮只做预算规则 precheck 付款批次和最小 AP 运营的边界,refresh CSV 通过校验且明确本期优先解决财务真实痛点 不做重型 AP 平台化或银企直连,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-21_10-30-00-p25-fee-control-ap-refresh.csv,manual,TODO,TODO,TODO,issues/2026-03-21_10-30-00-p25-fee-control-ap-refresh.csv|issues/2026-03-21_09-10-00-p25-fee-control-ap.csv|server/src/services/budgetPool.js|server/src/routes/reimbursements.js,[],supersede 2026-03-21_09-10-00-p25-fee-control-ap.csv 并合并重型 AP 运营设计为最小可运营版本 P25-1,预算控制规则中心轻量落地,新增按法体 部门 成本中心 费用类型配置 warn block manual_review 的预算规则中心与 seed 基线,预算规则可查询 新增 更新 停用并在报销 采购 差旅三域按统一优先级生效,cd server && npm run prisma:validate && npm test -- tests/unit/budgetPool.service.test.js tests/unit/services/featureFlags.test.js,manual,TODO,TODO,TODO,server/prisma/schema.prisma|server/prisma/migrations|server/src/routes/budgetControlRules.js|server/src/services/budgetPool.js|server/src/scripts/seed-config.js|server/tests/unit/budgetPool.service.test.js,"[""P25-0""]",优先扩展现有 budgetPool 能力 不新引入独立预算服务 P25-2,统一 precheck API 前置提交风险,为报销 采购 差旅补齐统一 precheck API 在提交前返回预算 判重 绑定和必填风险摘要,precheck 仅返回风险和建议动作 不写业务终态 三个业务域接口返回结构一致,cd server && npm test -- tests/unit/routes/travelRequests.test.js tests/unit/routes/purchase.archive-erp.test.js tests/unit/routes/invoicePool.travel-bind.test.js,manual,TODO,TODO,TODO,server/src/routes/reimbursements.js|server/src/routes/purchaseRequests.js|server/src/routes/travelRequests.js|server/src/services/budgetPool.js|server/tests/unit/routes,"[""P25-1""]",返回结构固定包含 result riskHints blockingReasons nextActions budgetSnapshot P25-3,付款批次与 maker-checker,将付款从单笔动作提升为批次创建 复核 执行 导出模型并对高风险支付启用 maker-checker,付款批次支持 create review execute export requeue 且复核人与发起人不可为同一人 执行保持幂等,cd server && npm run prisma:validate && npm test -- tests/unit/routes/travelRequests.payment-track.test.js tests/unit/routes/travelAuthorizations.test.js && cd ../client && npm run typecheck && npm run build,manual,TODO,TODO,TODO,server/prisma/schema.prisma|server/prisma/migrations|server/src/routes/paymentBatches.js|server/src/routes/reimbursements.js|server/src/routes/travelRequests.js|client/src/api/travelPayments.ts|client/src/pages/TravelRequestsPage.tsx,"[""P25-2""]",先实现最小批次付款运营 不做自动代付或自动冲销 P25-4,最小 AP 运营视图与风险预警,提供未付 部分匹配 异常交易 待导出 失败重试的最小运营视图并接入 Dashboard 预警,财务可查看最小 AP 摘要 异常列表和重试入口 预算超用与长时间未付款可进入看板或通知,cd server && npm test -- tests/unit/routes/travelReconciliation.test.js tests/unit/services/travelReconciliation.test.js tests/unit/routes/notifications.test.js && ./scripts/regression-dashboard.sh && cd ../client && npm run typecheck && npm run build,manual,TODO,TODO,TODO,server/src/routes/paymentBatches.js|server/src/routes/travelReconciliation.js|server/src/routes/dashboard.js|server/src/routes/notifications.js|client/src/pages/DashboardPage.tsx|client/src/pages/ApOperationsPage.tsx,"[""P25-3""]",只做最小可运营视图和告警 不做重型 AP 工作台平台化 P25-5,P25回归与验收收口,完成预算规则 precheck 付款批次和最小 AP 运营后的整体验收收口,预算三模式 precheck 前置 批次付款与最小 AP 运营通过验收且报销 采购 差旅零回归,cd server && npm run prisma:validate && npm test && ./scripts/regression-budget.sh && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build,manual,TODO,TODO,TODO,issues/2026-03-21_10-30-00-p25-fee-control-ap-refresh.csv|server/scripts/regression-budget.sh|server/scripts/regression-all.sh|server/tests|client/src/pages/DashboardPage.tsx,"[""P25-4""]",P25-lite 为当前内部 OA 主线第一优先级