3.0 KiB
3.0 KiB
| 1 | ID | Title | Description | Acceptance | Test_Method | Tools | Dev_Status | Review1_Status | Regression_Status | Files | Dependencies | Notes |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | P15B-0 | P15B执行合同建档 | 创建并校验P15B(Leave V1)执行合同CSV | CSV通过校验且字段完整 | python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv | manual | DONE | DONE | DONE | issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv | [] | 需在P15A完成后建档 |
| 3 | P15B-1 | 国际化四层模型扩展 | Prisma 建立 LeaveType/LeavePolicy/LeaveLedger 和增强的 LeaveRequest 字段(am-pm设计与天数计算) | Migration完成且结构符合国际HR内控原则 | npx prisma migrate dev --name init_leave_v1_models | manual | DONE | DONE | DONE | server/prisma/schema.prisma | ["P15B-0"] | 日历与配额前置计算不纳入V1 |
| 4 | P15B-2 | HR业务基础类型维表API | 支持HR增删改查 LeaveType 及绑定策略 (API CRUD) | 请求返回200并录入数据库 | manual | manual | DONE | DONE | DONE | server/src/routes/leave-types.js | ["P15B-1"] | 新建路由 |
| 5 | P15B-2A | Leave申请列表接口 | 补齐员工端与HR端的 Leave 列表查询接口支持按本人或全量视角查看历史申请 | 列表接口返回200且权限边界正确 | manual | manual | DONE | DONE | DONE | server/src/routes/leave.js | ["P15B-1"] | 员工自助可用性的必要补齐 |
| 6 | P15B-3 | 天数预检与隔离碰撞强设闸 | 提交 Leave 时进行可用配额强设闸,并做同员工同时间段的日期重叠阻断 | 接口明确返回 HTTP 422 Conflict Range | 测试脚本 POST 日期交叉单拦截 | manual | DONE | DONE | DONE | server/src/routes/leave.js | ["P15B-1"] | 核心规则引擎 |
| 7 | P15B-4 | 状态机与冻结账本流转闭环 | 在 workflow.js 中的实体业务分支(875/1005处)追加针对 leave实体的账本扣减/释放逻辑 | 数据库余额按工作流事件准确变更 | vitest transaction测试校验冻结数与已用数 | manual | DONE | DONE | DONE | server/src/routes/leave.js | server/src/routes/workflow.js | ["P15B-3"] | 避免造不存在的hook |
| 8 | P15B-4A | Leave撤回与冻结释放接口 | 补齐 POST /leave-requests/:id/withdraw 以允许申请人在未被审批人处理前撤回并释放冻结账本 | 撤回后状态回到 draft 且冻结账本被释放 | manual | manual | DONE | DONE | DONE | server/src/routes/leave.js | server/src/routes/workflow.js | ["P15B-4"] | 与报销撤回语义保持一致 |
| 9 | P15B-5 | Leave申请前端模块集成 | 实装半天粒度携带附件类型规则校验的跨天请假界面与剩余账本卡片视图并注册列表与发起入口 | 联调通过并可创建/查看/撤回请假申请 | manual | manual | DONE | DONE | DONE | client/src/pages/LeaveRequestPage.tsx | client/src/router/index.tsx | client/src/components/navigation/NavLinks.tsx | ["P15B-2","P15B-2A","P15B-4","P15B-4A"] | 基于UI8设计结构 |
| 10 | P15B-6 | P15B验收联调测试 | P15B 全量集成流转,测试休假申请能否走通工作流并闭环实扣配额与撤回释放 | 回归测试并且手工创建/提交/撤回/审批请假流转完成 | cd server && ./scripts/regression-all.sh | manual | DONE | DONE | DONE | none | ["P15B-5"] | 重中之重 |