文件
hyb-oa/issues/2026-04-08_r56-expense-standards.csv
T

8 行
10 KiB
CSV
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"A1","R56 执行合同建档与范围冻结","创建并校验 R56 费用标准管控执行合同 CSV,冻结范围仅包含 ExpenseStandard 模型与 CRUD、报销提交与 precheck 标准校验、费用标准管理页、报销与审批侧超标提示;明确本轮允许 1 个 Prisma 迁移,不改报销状态机与 approve/reject 主流程。","issues/2026-04-08_r56-expense-standards.csv 列完整、Dependencies 为 JSON 数组字符串、Test_Method 可复现;范围仅覆盖 R56 A1-A6,不混入城市/职级维度、工作流主流程改造、历史标准版本回放或导出增强。","命令:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-04-08_r56-expense-standards.csv。检查:1) 对照 AGENTS.md 与 issues/README.md 确认 12 列完整;2) A2-A6 依赖链符合 backend/frontend→reviewer→qa 收口;3) 方案明确 global/department 严格唯一、DELETE 仅软删除、费用标准校验不受 budget_precheck_v1 开关影响。","manual","DONE","DONE","DONE","issues/2026-04-08_r56-expense-standards.csv","[]","回滚路径:删除本次 CSV 不影响业务。2026-04-08:Issue CSV 已创建并通过 validate_issues_csv.py 校验,范围与依赖已冻结。"
"A2","ExpenseStandard 模型、迁移与 CRUD 路由","新增 ExpenseStandard Prisma 模型、严格唯一索引迁移、expense standards CRUD 路由与审计日志,支撑费用类型 × 全局/部门标准维护。","schema.prisma 含 ExpenseStandard 与 ExpenseType.standards relation;迁移目录为 20260408090000_r56_expense_standards,含 global/department 严格唯一索引;/api/expense-standards 支持列表、创建、更新、软删除,权限统一 system.settings,冲突返回 409 VALID_001,并记录 EXPENSE_STANDARD_CREATED/UPDATED/DELETED 审计。","命令:export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && cd server && npx prisma validate && npx prisma migrate status && node --check src/routes/expenseStandards.js && npm test -- tests/unit/routes/expenseStandards.test.js。业务:1) 可创建 global 与 department 标准;2) global 重复或同部门重复被拒绝;3) 删除仅将 enabled 置为 false;4) 非 system.settings 用户访问返回 403。","manual","DONE","DONE","DONE","server/prisma/schema.prisma|server/prisma/migrations/20260408090000_r56_expense_standards/*|server/src/routes/expenseStandards.js|server/src/app.js|server/tests/unit/routes/expenseStandards.test.js","[""A1""]","回滚路径:回退路由与注册,并在回滚迁移中 drop expense_standards 表及部分唯一索引。2026-04-08:ExpenseStandard 模型、迁移、CRUD 路由与 10 条路由单测已完成,临时校验库 migrate status up to date。"
"A3","报销费用标准校验接入 precheck 与 submit","在 feeControl 中新增费用标准匹配与超标判断,并接入报销 precheck、submit 与工作流 context_data.standardViolations。","checkExpenseStandards 仅对报销生效,按 department > global 匹配启用标准,并返回 standardChecks;reimbursement precheck 与 fee-control precheck 在 reimbursement 时附带 standardChecks;submit 在 block 超标时返回 400 + standardViolations,warn 超标继续提交并返回 standardWarnings,同时将 exceeded 项写入 workflow_instance.context_data.standardViolations。","命令:export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && cd server && node --check src/routes/reimbursements.js && node --check src/services/feeControl.js && npm test -- tests/unit/services/expenseStandards.check.test.js tests/unit/routes/reimbursements.expense-standards.test.js tests/unit/routes/workflow.task-detail.test.js。业务:1) department 标准覆盖 global;2) warn 超标仅预警不阻断;3) block 超标阻断提交;4) 无标准的明细不受影响;5) warn 提交成功后 workflow task detail 可读到 standardViolations。","manual","DONE","DONE","DONE","server/src/services/feeControl.js|server/src/routes/reimbursements.js|server/src/routes/feeControl.js|server/src/routes/workflow.js|server/tests/unit/services/expenseStandards.check.test.js|server/tests/unit/routes/reimbursements.expense-standards.test.js|server/tests/unit/routes/workflow.task-detail.test.js","[""A1"",""A2""]","回滚路径:删除费用标准检查 helper 与 submit/precheck 增强,保留现有预算 precheck 行为。2026-04-08:费用标准检查已接入 reimbursement precheck/submit/workflow detail,6 条服务单测与 4 条路由级回归通过。"
"A4","费用标准管理页、API、路由与系统设置入口","新增费用标准前端 API、管理页面、系统设置入口与受保护路由。","/system/expense-standards 仅 system.settings 用户可访问;页面包含费用类型/启用状态筛选、标准表格、新增/编辑弹窗与软删除确认;前端通过独立 expenseStandards API 调用后端 CRUD,并在 SystemSettingsPage 显示入口卡片。","命令:export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && cd client && npm run typecheck && npm run build。业务:1) 可在系统设置进入费用标准页;2) 可新增、编辑、软删除标准;3) department 范围可选择部门;4) 列表中 warn/block badge 与适用范围文案正确。","manual","DONE","DONE","DONE","client/src/api/expenseStandards.ts|client/src/pages/ExpenseStandardsPage.tsx|client/src/pages/SystemSettingsPage.tsx|client/src/router/index.tsx|client/src/router/lazy/ExpenseStandardsPage.ts|client/src/router/lazy/index.ts","[""A1"",""A2""]","回滚路径:移除新页面、API、路由和系统设置入口卡片。2026-04-08:费用标准管理页、系统设置入口与路由懒加载已完成,client typecheck/build 通过。"
"A5","报销明细与审批侧超标提示","增强报销明细编辑器、报销详情页和审批任务详情页,展示费用标准提示、超标样式与提交流程确认。","ReimbursementItemEditor 会基于费用类型与部门显示当前有效标准和 warn/block 超标提示;ReimbursementDetailPage 在 draft/rejected 阶段展示 precheck standardChecks、对超标明细加橙/红边框、block 时禁用提交、warn 时展示确认弹窗;WorkflowTaskDetailPage 对 reimbursement 任务展示 standardViolations 高亮信息。","命令:export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && cd client && npm run typecheck && npm run build。业务:1) 编辑明细时可见标准上限与实时超标提示;2) block 超标时提交按钮禁用且提示修改;3) warn 超标时提交前需确认;4) 审批人可在任务详情中看到超标明细、标准与超出金额。","manual","DONE","DONE","DONE","client/src/pages/reimbursement-detail/ReimbursementItemEditor.tsx|client/src/pages/reimbursement-detail/ReimbursementActions.tsx|client/src/pages/ReimbursementDetailPage.tsx|client/src/pages/WorkflowTaskDetailPage.tsx|client/src/api/reimbursements.ts|client/src/api/feeControl.ts|client/src/api/workflow.ts","[""A1"",""A2"",""A3"",""A4""]","回滚路径:移除前端 standardChecks/standardViolations 展示与提交确认逻辑。2026-04-08:编辑器实时提示、详情页阻断/确认交互与审批任务详情展示已完成。"
"A6","Reviewer、QA、CSV 回填与提交收口","执行 reviewer 自检、post-check、远端迁移核验项准备与 CSV 回填,完成提交收口。","review 结论覆盖严格唯一索引、department 优先级、block/warn 行为、context_data.standardViolations 写入、不依赖 budget_precheck_v1、无标准时跳过与迁移回滚;post-check 全部通过;issues/2026-04-08_r56-expense-standards.csv 的 Dev_Status/Review1_Status/Regression_Status 依据实测结果回填;完成 git commit。","命令:export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && cd server && npx prisma validate && npx prisma migrate status && node --check src/routes/reimbursements.js && node --check src/routes/expenseStandards.js && node --check src/services/feeControl.js && npm test -- tests/unit/routes/expenseStandards.test.js tests/unit/services/expenseStandards.check.test.js tests/unit/routes/reimbursements.expense-standards.test.js tests/unit/routes/workflow.task-detail.test.js && cd ../client && npm run typecheck && npm run build。部署准备:记录远端需执行 docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env exec -T server npx prisma migrate status。业务:1) warn/block 标准分别完成提交流程验证;2) 审批任务详情可见超标信息;3) CSV 状态已回填。","manual","DONE","DONE","DONE","issues/2026-04-08_r56-expense-standards.csv|server/prisma/schema.prisma|server/prisma/migrations/20260408090000_r56_expense_standards/*|server/src/routes/expenseStandards.js|server/src/services/feeControl.js|server/src/routes/reimbursements.js|server/src/routes/workflow.js|server/tests/unit/routes/expenseStandards.test.js|server/tests/unit/services/expenseStandards.check.test.js|server/tests/unit/routes/reimbursements.expense-standards.test.js|server/tests/unit/routes/workflow.task-detail.test.js|client/src/api/expenseStandards.ts|client/src/pages/ExpenseStandardsPage.tsx|client/src/pages/ReimbursementDetailPage.tsx|client/src/pages/reimbursement-detail/ReimbursementItemEditor.tsx|client/src/pages/reimbursement-detail/ReimbursementActions.tsx|client/src/pages/WorkflowTaskDetailPage.tsx|client/src/pages/SystemSettingsPage.tsx|client/src/router/index.tsx|client/src/router/lazy/ExpenseStandardsPage.ts|client/src/router/lazy/index.ts|client/src/api/reimbursements.ts|client/src/api/feeControl.ts|client/src/api/workflow.ts","[""A2"",""A3"",""A4"",""A5""]","回滚路径:若 QA 发现关键回归,暂停提交并回退对应代码与迁移。2026-04-08:reviewer 自检确认严格唯一由部分唯一索引保证、department 优先于 global、block 以 400 阻断提交、warn 仅附加 standardWarnings 与 workflow context_data.standardViolations、预算开关关闭时标准校验仍生效、无标准明细自动跳过;post-check 已在临时校验库 hyb_oa_r56_check 上通过,新增 precheck/submit/task detail 路由回归 4 条通过。"