请假申请
请假申请是休假管理工作流的核心。员工提交休假请求,然后经过审批流程。系统跟踪从提交到审批或拒绝的完整生命周期,每个步骤都会自动更新余额。
提交请假申请
作为员工(门户)
- 从侧边栏导航到请假申请。
- 点击创建。
- 选择请假类型。
- 输入开始日期和结束日期。
- 输入天数(支持半天增量,例如 0.5、1.5)。
- 可选添加原因。
- 点击保存。
员工字段会自动设置为已登录的员工——它不会显示在表单上。
作为管理员
管理员看到相同的表单,但有一个额外的员工字段用于选择请假的员工。他们还可以填写管理员备注字段(对员工隐藏)。
从员工详情视图
管理员可以直接从员工的详情页面使用创建请假申请操作创建请假申请。员工已预填,并提供了一个额外的半天切换按钮以方便使用。
验证规则
系统在提交或编辑请假申请时执行多项验证规则:
天数验证
天数必须与日期范围匹配:
- 全天:天数必须等于
end_date - start_date + 1 - 半天:天数必须等于
(end_date - start_date + 1) * 0.5
其他任何值都会被拒绝并显示错误消息。
重叠检测
系统检查同一员工的重叠请假申请。如果日期范围与任何现有的已批准或待审批申请重叠,该申请将被阻止。
两个日期范围重叠条件:
start_date_1 <= end_date_2 AND start_date_2 <= end_date_1
编辑现有申请时,重叠检查会排除当前记录。
申请状态
| 状态 | 标记 | 描述 |
|---|---|---|
| 待审批 | 黄色 | 等待审批。余额已在 pending_days 中预留。 |
| 已批准 | 绿色 | 已被经理批准。天数从 pending_days 移至 used_days。 |
| 已拒绝 | 红色 | 已被经理拒绝。天数从 pending_days 中移除。 |
| 已取消 | 灰色 | 被员工或管理员取消。天数已恢复。 |