Đặc tả Tính năng: Luồng Quản lý Nghỉ phép
1. Tổng quan & Tầm nhìn
Hệ thống Quản lý Nghỉ phép xử lý việc gửi, phê duyệt và theo dõi thời gian nghỉ của nhân viên. Nó nhằm mục đích loại bỏ việc theo dõi dựa trên bảng tính, đảm bảo tuân thủ pháp luật và cung cấp khả năng hiển thị về sự sẵn có của nhóm cho các quản lý.
2. Các Vai trò & Bên liên quan
| Vai trò | Mục tiêu |
|---|---|
| Nhân viên | Yêu cầu nghỉ phép, theo dõi số dư còn lại và lập kế hoạch kỳ nghỉ. |
| Quản lý | Xem xét các yêu cầu nghỉ phép của nhóm và quản lý sự bao phủ của bộ phận. |
| Quản trị viên HR | Cấu hình các chính sách nghỉ phép, hạn mức chuyển tiếp và cộng dồn. |
3. Câu chuyện Người dùng (User Stories)
- Với tư cách là nhân viên, tôi muốn biết số dư nghỉ phép năm của mình để có thể lên kế hoạch cho chuyến đi cuối năm.
- Với tư cách là quản lý, tôi muốn xem lịch của nhóm để không phê duyệt quá nhiều người nghỉ cùng một lúc trong giai đoạn cao điểm.
- Với tư cách là Quản trị viên HR, tôi muốn tự động cấp phép nghỉ ốm cho tất cả nhân viên mỗi năm.
4. Yêu cầu Chức năng (FR)
- REQ-LV-001: Hỗ trợ nhiều loại nghỉ phép (Nghỉ phép năm, Nghỉ ốm, Nghỉ không lương, v.v.).
- REQ-LV-002: Tự động khấu trừ số dư khi yêu cầu được phê duyệt.
- REQ-LV-003: Luồng phê duyệt/từ chối của quản lý với nhận xét.
- REQ-LV-004: Tính toán ngày làm việc (loại trừ cuối tuần/ngày lễ).
5. Yêu cầu Phi chức năng (NFR)
- Độ chính xác: Việc cập nhật số dư phải mang tính nguyên tử (Transaction cơ sở dữ liệu).
- Tính nhất quán: Trạng thái nghỉ phép phải luôn phản ánh quyết định của quản lý trong thời gian thực.
6. Logic & Quy tắc Nghiệp vụ
- Cộng dồn: Nghỉ phép năm tiêu chuẩn là 12 ngày/năm (cộng dồn 1 ngày mỗi tháng).
- Chuyển tiếp: Tối đa 5 ngày có thể được chuyển sang năm dương lịch tiếp theo.
- Xác thực: Nghỉ phép năm không thể được gửi nếu số dư không đủ.
7. Giao diện Người dùng (UI/UX)
- Bảng điều khiển: Các thẻ số dư (Tổng số, Đã dùng, Còn lại).
- Biểu mẫu yêu cầu: Trình chọn phạm vi ngày với thời lượng tự động tính toán.
- Hộp thư Quản lý: Danh sách các yêu cầu đang chờ xử lý với các nút "Phê duyệt" và "Từ chối".
8. Kiến trúc Thông tin
- Phần "Nghỉ phép của tôi" cho nhân viên.
- "Lịch nhóm" và "Phê duyệt" cho quản lý.
9. Mô hình Dữ liệu & Lưu trữ
- Các bảng:
leave_balances,leave_requests. - Ràng buộc: Ràng buộc duy nhất đối với các ngày nghỉ phép chồng chéo cho mỗi nhân viên.
10. Lớp API & Dịch vụ
POST /leave-requestsPOST /leave-requests/:id/approveLeaveServicexử lý các xác thực chồng chéo phức tạp.
11. Các Mẫu Tích hợp
- Thông báo: Gửi thông báo trong ứng dụng cho quản lý qua bus của Shell.
- Lịch: Đồng bộ các ngày nghỉ đã phê duyệt vào "Lịch nhóm" (FullCalendar).
12. Bảo mật & Quyền hạn
- RBAC:
leave_requests:createcho tất cả;leave_requests:approvecho quản lý. - Quyền sở hữu: Người dùng chỉ có thể xem và hủy các yêu cầu của chính họ.
13. Xử lý Lỗi & Khả năng Phục hồi
- Không đủ số dư: Chặn gửi yêu cầu với giải thích rõ ràng.
- Phát hiện chồng chéo: Ngăn chặn việc đặt lịch trùng ngày.
14. Hiệu năng & Khả năng Mở rộng
- Tra cứu số dư được đánh chỉ mục cho thời gian phản hồi < 10ms.
- Các công việc nền xử lý việc đặt lại cộng dồn cuối năm cho các tổ chức lớn.
15. Toàn cầu hóa & Bản địa hóa
- Hỗ trợ các ngày lễ công cộng cụ thể của tổ chức.
- Hỗ trợ đa ngôn ngữ cho tên các loại nghỉ phép.
16. Khả năng Tiếp cận (a11y)
- Trình chọn ngày có thể tiếp cận (thân thiện với bàn phím).
- Trạng thái nghỉ phép được mã hóa bằng màu sắc (Đã duyệt = Xanh lá, Chờ duyệt = Vàng, Từ chối = Đỏ).
17. Khả năng Quan sát & Phân tích
- Theo dõi "Tỷ lệ vắng mặt" theo bộ phận.
- Phân tích "Các tháng nghỉ phép cao điểm" để lập kế hoạch nguồn lực.
18. Kiểm thử & Chất lượng
- Kiểm thử đơn vị cho logic tính toán ngày làm việc.
- Kiểm thử tích hợp cho luồng khấu trừ số dư nguyên tử.
19. Các Ràng buộc & Giả định
- Giả định các tổ chức hoạt động theo tuần làm việc tiêu chuẩn từ Thứ Hai đến Thứ Sáu (có thể cấu hình trong v1.2).
20. Các Cải tiến Tương lai
- Hỗ trợ nghỉ nửa ngày.
- Chuỗi phê duyệt nhiều cấp (ví dụ: Team Lead -> Manager -> HR).