Trung tâm nhân sự — Tính năng¶
Ai dùng: toàn bộ nhân viên (xem và xác nhận dữ liệu của chính mình).
Đường vào: /app › Rail TT nhân sự.
Nguồn: Base HRIS (xem base-du-lieu.md).
Menu trái:
| Nhóm | Mục | Quyền cần (cột trên bảng Phân quyền Portal) |
|---|---|---|
| — | Trang chủ | Mọi người |
| — | Dashboard của tôi | Hiện chỉ Tùng (màn mới, chưa có ô quyền) |
| Thông tin cá nhân | Thông tin chính · Học vấn · Vị trí làm việc · Lịch sử làm việc · Hồ sơ · Quan hệ gia đình · Hợp đồng + Quyết định | Thông tin cá nhân (HRM_PROFILE) |
| Công, lương | Chấm công | Chấm công (HRM_ATTENDANCE) |
| Công, lương | Phiếu lương | Phiếu lương (HRM_PAYSLIP) |
| KPI cá nhân | Bảng đánh giá KPI · Báo cáo KPI | KPI Cá nhân (HRM_KPI) |
| — | Học tập | Danh sách trong config/training-access.mjs (xem module Đào tạo) |
Mặc định các vai trò nhân viên, hr, bod, rsm, am, leader ss, ss, quản lý cskh, ksnb, cskh, ktv, stylist đều được bộ HRM_SELF (Chấm công, Phiếu lương, Đơn từ, Thông tin cá nhân, KPI cá nhân) — ROLE_DEFAULT_FEATURES_ trong apps/api/src/portal/role-core/catalog.js.
1. Thông tin cá nhân¶

Hiển thị: họ tên, chức danh, mã NV, thâm niên, trạng thái; phép năm còn lại; phiếu lương mới nhất; ngày sinh, giới tính, số CCCD, điện thoại, email công ty, địa chỉ thường trú, ngày vào làm, quản lý trực tiếp, tài khoản nhận lương; hợp đồng (loại, hiệu lực, hết hạn, trạng thái); người phụ thuộc (họ tên, quan hệ, mã số thuế, giảm trừ từ).
- Thông tin nhạy cảm được che bớt ("Chỉ bạn và HR xem được bản đầy đủ").
- Các tab con: Thông tin chính, Học vấn, Vị trí làm việc (2.4), Lịch sử làm việc (2.3), Hồ sơ (6.1 – tệp hồ sơ qua
getMyProfileFile), Quan hệ gia đình (2.2), Hợp đồng + Quyết định (6.2–6.5). - Nút Yêu cầu cập nhật thông tin: hành vi cụ thể (mở form nào, gửi tới ai) — cần xác nhận.
RPC: getMyEmployeeRecord, getMyProfileDossier, getMyProfileFile, getEmployeeTimeline, getActivePositionChange.

2. Chấm công¶

Màn Chấm công gồm lịch tháng có chú giải màu, khối Phiếu công (Tổng công, Giờ công chuẩn) và các nút ⟳ Cập nhật, ✓ Xác nhận công, Gửi thắc mắc.
- Dữ liệu tự đồng bộ 15 phút/lần trong 07:00–19:45 (job
syncAttendanceCacheBatch→ D1employee_attendance_cache); dòng "Cập nhật lúc …" cho biết lần đồng bộ gần nhất. Bấm ⟳ Cập nhật để đồng bộ ngay (POST /api/me/attendance/sync). - Bấm vào một ngày để xem Chi tiết chấm công: giờ vào, giờ ra, công thực tế, công tính lương, công nghỉ phép, OT ngày thường / ngày nghỉ / Lễ-Tết, nghỉ phép theo đơn, ra ngoài công ty, công WFH, Remote, OT theo đơn, tổng công bổ sung (
getAttendanceDailySupplements). - Bảng Công tổng hợp theo tháng: công chuẩn, tại VP, nghỉ lễ, nghỉ phép, trễ/sớm, chuyên cần, tính lương (
getPayrollAttendanceSummary).
Quy trình xác nhận công (mỗi tháng): Đã tạo phiếu → Nhân sự xác nhận → HR kiểm tra → Chốt tính lương.
1. Mở Chấm công, kiểm tra từng ngày và phiếu công trước thời hạn phản hồi (hiển thị "Trước 17:00 ngày …").
2. Nếu sai: bấm Gửi thắc mắc (gửi yêu cầu kiểm tra tới HR) hoặc tạo đơn xác nhận công từ chi tiết ngày.
3. Nếu đúng: bấm ✓ Xác nhận công → hộp thoại "Bạn chắc chắn muốn xác nhận công tháng này?" → Đồng ý.
4. Trạng thái chuyển "Đã xác nhận · chờ HR kiểm tra". Lượt xác nhận được giữ ở D1 payroll_outbox và đẩy lên Base (bảng 3.0/3.1) bởi job drainPayrollOutbox (15 phút/lần 07–19h và mỗi giờ). Không cần bấm lại nếu Base chậm.

RPC: getPersonalTimesheetDays, getPersonalAttendanceBundle, getAttendanceDailySupplements, getPayrollAttendanceSummary, ghi: confirmAttendanceSummary.
3. Phiếu lương¶

- Mở Phiếu lương, chọn tháng ở Chọn tháng.
- Phiếu hiển thị: thông tin cá nhân (họ tên, chức danh, bộ phận/cửa hàng), tỉ lệ hoàn thành target, tỷ lệ tính thưởng KPIs, thông tin tài khoản (số TK, tên TK, ngân hàng), thông tin lương và Tổng thực lĩnh (mặc định che
••••••, bấm để hiện). - Kiểm tra; nếu sai bấm Gửi thắc mắc; nếu đúng bấm Xác nhận lương → xác nhận ở hộp thoại.
- Phiếu lương chỉ xem được trên điện thoại cá nhân trong app Lark ("Vì lý do bảo mật, phiếu lương chỉ được xem trên điện thoại cá nhân trong app Lark"). Mở trên máy tính sẽ thấy khối "Yêu cầu thiết bị di động".
- Ghi chú trên màn: "Chu kỳ chấm công hệ thống: 05:00 hàng ngày".
Nguồn: bảng 4.0.1. RPC getPayrollSlip, ghi: confirmPayrollSlip.
4. Quản lý đơn từ (giao diện cũ)¶

Có ở giao diện cũ (?ui=old), cờ don-tu trong giao diện mới đang tắt và chỉ mở cho canary.
- Lịch nghỉ và đơn từ: bấm vào ngày để tạo nhanh đơn nghỉ/WFH; chú thích màu; sự kiện trong tháng; danh sách phiếu (Ngày, Loại phiếu, Nội dung, Số giờ).
- Tạo đơn nghỉ phép: chọn Loại đơn (Nghỉ phép / WFH / Nghỉ ốm / Khác) → Từ ngày → Đến ngày → Lý do → Gửi yêu cầu. Đơn đi đâu (Lark Approval nào, bảng Phiếu nào): cần xác nhận.
- Dữ liệu đơn đọc từ các bảng "Phiếu …_đã tách ngày" (getMyRequests). Loại "Phiếu xin ra ngoài cho việc cá nhân" chưa cấu hình bảng (PERSONAL_OUT_DAILY trống trong Mã.js).
5. KPI cá nhân¶

Bảng đánh giá KPI (chọn Năm, Tháng): danh sách tiêu chí với Trọng số, ĐV tính, Mục tiêu, NV tự đánh giá, Tài liệu tham chiếu, Quản lý đánh giá, Ghi chú đánh giá, Kết quả, % HT, Điểm; khối tổng kết (NV tự chấm, Quản lý duyệt, Xếp loại chính thức) và chữ ký Nhân viên / Quản lý trực tiếp / Ban Giám đốc.
- Bấm Sửa, nhập kết quả tự đánh giá và tài liệu tham chiếu cho từng tiêu chí (
saveKpiEmployeeRows). - Bấm Gửi đánh giá (
submitKpiReport). Có thể ↩ Thu hồi khi quản lý chưa chấm (recallKpiReport). - Cảnh báo "KPI chưa được chấm — Quản lý vui lòng thực hiện chấm KPI" hiện khi quản lý chưa chấm.
- Xem lịch sử 12 tháng, In phiếu.
Báo cáo KPI cá nhân: tổng hợp kết quả các tháng. Chi tiết luồng chấm của quản lý: xem KPI.
6. Thông báo tự động liên quan¶
| Job | Lịch (VN) | Việc |
|---|---|---|
runBirthdayNotify |
09:00 hằng ngày | Sinh nhật Leader (tuần + D-1/D0), Base Sinh nhật |
runContractExpiryNotify |
08:30 hằng ngày | Cảnh báo hợp đồng sắp hết hạn (đang dry-run: CONTRACT_EXPIRY_DRY_RUN = "1") |
runHrisPersonnelSync |
08:30 hằng ngày | Bảo đảm 2.3/6.1 + hợp đồng (đang dry-run) |
backfillMonthlyPayrollSheets |
08:30 hằng ngày | Bổ sung dòng tháng 3.0/3.1/4.0.1/5.2 cho nhân sự mới |
seed36StoreGapsDaily / Today |
02:30 / 15:00 | Tạo dòng 3.6 Kiểm tra bảng công ngày |
Trên Mac có thư mục chưa commit apps/api/src/modules/noti-hoso-lan1..3/ (nhắc hồ sơ lần 1–3). Chưa có trên nhánh feat/lich-hop nên không mô tả ở đây — cần xác nhận khi commit.
Ảnh cần chụp¶
Portal: https://one-anna-api.tungpham-hn219.workers.dev/app (đăng nhập Lark). Ảnh đặt vào thư mục images/ của module này, đúng tên file. Che (làm mờ) số tiền lương, CCCD, số tài khoản, số điện thoại khách hàng trước khi đưa vào tài liệu.
| File | Nội dung | Đường dẫn / thao tác | Vai trò đăng nhập | Trạng thái cần chụp |
|---|---|---|---|---|
images/ns-thong-tin.png |
Thông tin cá nhân — Thông tin chính | https://one-anna-api.tungpham-hn219.workers.dev/app › TT nhân sự › Thông tin cá nhân › Thông tin chính | Nhân viên (tài khoản thử) | Dữ liệu đầy đủ; che CCCD/STK |
images/ns-hop-dong.png |
Tab Hợp đồng + Quyết định | https://one-anna-api.tungpham-hn219.workers.dev/app › TT nhân sự › Thông tin cá nhân › Hợp đồng + Quyết định | Nhân viên có ≥1 hợp đồng | Có danh sách hợp đồng |
images/ns-cham-cong.png |
Màn Chấm công tháng hiện tại | https://one-anna-api.tungpham-hn219.workers.dev/app › TT nhân sự › Công, lương › Chấm công | Nhân viên văn phòng | Tháng có dữ liệu, chưa xác nhận công |
images/ns-cham-cong-chi-tiet.png |
Hộp Chi tiết chấm công một ngày | https://one-anna-api.tungpham-hn219.workers.dev/app › Chấm công › bấm một ngày | Nhân viên | Ngày có giờ vào/ra và OT |
images/ns-xac-nhan-cong.png |
Hộp thoại Xác nhận công | https://one-anna-api.tungpham-hn219.workers.dev/app › Chấm công › ✓ Xác nhận công | Nhân viên | Hộp thoại đang mở, CHƯA bấm Đồng ý (hoặc dùng tài khoản thử) |
images/ns-phieu-luong.png |
Phiếu lương cá nhân (chụp trên điện thoại) | App Lark trên điện thoại › Workplace › ONE-ANNA › TT nhân sự › Phiếu lương | Nhân viên (tài khoản thử) | Tháng đã có phiếu; che số tiền |
images/ns-phieu-luong-may-tinh.png |
Thông báo Yêu cầu thiết bị di động | https://one-anna-api.tungpham-hn219.workers.dev/app › TT nhân sự › Phiếu lương (trên máy tính) | Nhân viên | Khối Yêu cầu thiết bị di động hiện ra |
images/ns-don-tu.png |
Quản lý đơn từ (giao diện cũ) | https://one-anna-api.tungpham-hn219.workers.dev/app?ui=old › Trung tâm nhân sự › Quản lý đơn từ | Nhân viên | Lịch tháng có ít nhất 1 phiếu |
images/ns-kpi-danh-gia.png |
KPI cá nhân — Bảng đánh giá KPI | https://one-anna-api.tungpham-hn219.workers.dev/app › TT nhân sự › KPI cá nhân › Bảng đánh giá KPI | Nhân viên thuộc đối tượng KPI | Tháng đang mở, chưa gửi |