Integration Guide (WMS, HR & Accounting)
Hệ thống Boxme Levelling không hoạt động độc lập mà cần đồng bộ dữ liệu hai chiều với các hệ thống lõi khác: HRMS (Nhân sự), WMS (Vận hành kho), và Accounting/Payroll (Kế toán & Tính lương).
Tài liệu này hướng dẫn Developer cấu trúc các luồng đồng bộ, cách kiểm tra dữ liệu, và phương án tích hợp hệ thống.
1. Inbound: HRMS → Levelling (Master Data)
Dữ liệu nhân sự (nhân viên, phòng ban, phân quyền) luôn lấy HRMS làm gốc (Source of Truth).
1.1 Đồng bộ lần đầu (Initial Sync)
Khi mới triển khai hệ thống, cần đồng bộ theo thứ tự sau để tránh lỗi khóa ngoại (Foreign Key):
- Countries & Warehouses: Đồng bộ danh sách kho từ hệ thống quản lý kho/vùng.
- Staff Groups: Đồng bộ các nhóm nhân sự (Inbound, Outbound, Sorting, etc.).
- Employees: Fetch toàn bộ nhân sự hiện có từ HRMS.
- Users (Login): Khởi tạo tài khoản đăng nhập dựa trên
rolecủa nhân viên.
Phương pháp: Chạy script lấy dữ liệu qua API của HRMS, sau đó insert trực tiếp vào database Supabase của Levelling (Upsert strategy).
1.2 Đồng bộ khi có thay đổi (Event-driven Sync)
Mỗi khi có biến động nhân sự, HRMS cần bắn Webhook hoặc Message Queue (Kafka/RabbitMQ) sang hệ thống Levelling.
- Onboarding (Nhân viên mới): Tạo mới
employeevà cấp tài khoảnuser. - Offboarding (Nghỉ việc): Cập nhật
status = 'inactive'trên bảngemployeesvà vô hiệu hóa tài khoảnuser. - Role/Warehouse Change (Chuyển kho/Thăng chức): Cập nhật
warehouse_id,role, vàmain_staff_group_id.
2. Inbound: WMS → Levelling (Operational Data)
Hệ thống WMS cung cấp dữ liệu hiệu suất (PPH) và lỗi tự động.
2.1 Đồng bộ định kỳ (Periodic Sync)
- Daily PPH (Năng suất ngày):
- Tần suất: Chạy Cron Job vào 01:00 AM mỗi ngày.
- Dữ liệu: Tổng hợp lượng đơn xử lý, số giờ làm việc, và PPH của ngày hôm trước cho toàn bộ nhân viên kho.
- Lưu trữ: Insert hàng loạt vào bảng
pph_daily_rawtrong Levelling. Hệ thống Levelling sẽ tự group data để tính điểm vinh danh tháng/tuần.
2.2 Đồng bộ tức thời (Real-time Events)
- Lỗi tự động từ WMS: (VD: Quét sai mã vạch, đóng gói thiếu hàng được camera AI phát hiện).
- WMS gọi
POST /api/violationsđể ghi nhận lỗi trực tiếp vào hệ thống Levelling. - Hệ thống sẽ thông báo tới Trưởng ca để vào xác nhận (Confirm/Waive).
- WMS gọi
3. Auditing & Monitoring (Kiểm tra dữ liệu)
Làm sao để biết dữ liệu đã đồng bộ đúng và đủ sau mỗi lần chạy script?
3.1 Sau Initial Sync
- Count Check: So sánh tổng số
employeesđang active trên HRMS với database Levelling (SELECT COUNT(*) FROM employees WHERE status = 'active'). - Orphaned Records: Kiểm tra xem có employee nào không có
warehouse_idhợp lệ hay không. - Role Validation: Chạy script select các user có role là
warehouse_managernhưng không mapping quản lý bất kỳ kho nào.
3.2 Monitoring Daily Sync
- Log Webhook/Cronjob: Ghi log số lượng bản ghi PPH được push thành công vào
pph_daily_rawmỗi đêm. - Missing PPH Alerts: Tạo alert (Slack/Telegram) nếu Job Daily PPH chạy xong mà số lượng bản ghi insert = 0.
- Data Quality Queries:
-- Tìm nhân viên đi làm trên HRMS nhưng không có data PPH từ WMS
SELECT e.employee_code, e.full_name
FROM employees e
LEFT JOIN pph_daily_raw p ON e.id = p.employee_id AND p.date = CURRENT_DATE - 1
WHERE p.id IS NULL AND e.status = 'active';
4. Outbound: Levelling → HR & Accounting
Hệ thống Levelling là nơi xử lý chấm điểm, tuy nhiên để ra quyết định trả lương hoặc thưởng, dữ liệu cần được export ngược về HRMS và Kế toán.
4.1 Payroll & Accounting (Hàng tháng)
Vào kỳ chốt lương (e.g. ngày 5 hàng tháng), Kế toán sử dụng các API Export:
- Net Penalty / Khấu trừ: Lấy tổng số điểm trừ còn lại (sau recovery) qua API
GET /api/scores/period?period=2026-02. Mỗi điểm trừ tương ứng với số tiền phạt cấu hình trong hệ thống nhân sự. - Bonus Payout / Thưởng: Export các điểm thưởng (
total_bonus_points) cho sáng kiến, chứng chỉ để quy đổi ra tiền thưởng. - Lương tháng 13: Sử dụng API
POST /api/benefits/thirteenth-month/calculatevà export kết quả để kế toán chi trả vào dịp cuối năm.
4.2 HRMS (Phúc lợi & Quyền lợi)
- Phía HRMS gọi API
GET /api/benefits/eligibilityđể lấy kết quả tính toán phúc lợi từ Levelling (Ví dụ: Ai đủ điều kiện nhận thẻ BHYT VIP, ai được đi du lịch Company Trip). - HR dựa vào dữ liệu này để ra quyết định mua bảo hiểm hoặc lập danh sách phúc lợi tự động thay vì phải tổng hợp Excel thủ công.
4.3 WMS (Điều phối vận hành)
- WMS gọi API Levelling để lấy
pph_levelcủa nhân sự. - Ứng dụng (Use case): WMS tự động điều phối các nhân viên có năng suất cao (Level:
excellent) vào các zone gom hàng có độ ưu tiên cao hoặc xử lý đơn hỏa tốc (SLA ngắn). Ngược lại, nhân viênneeds_improvementsẽ được assign các task ít áp lực thời gian hơn để làm quen.