Giới thiệu dự án

Trong kỷ nguyên số hóa doanh nghiệp, việc chuyển đổi mô hình quản trị từ thủ công sang tự động là yếu tố sống còn đối với mọi tổ chức. Theo thống kê của Hiệp hội Quản trị Nhân sự (SHRM), các doanh nghiệp vừa và nhỏ (SMEs) tiêu tốn trung bình từ 4 đến 6 ngày làm việc mỗi tháng để đối soát dữ liệu chấm công và tính toán bảng lương thủ công. Đáng chú ý, hơn 62% các bảng tính lương dựa trên bảng tính rời rạc (Excel) gặp phải ít nhất một lỗi sai sót liên quan đến thuế thu nhập cá nhân, bảo hiểm xã hội (BHXH) hoặc tính toán công chuẩn, gây thiệt hại tài chính và giảm chỉ số hài lòng của người lao động.

Đồ án "Hệ thống Quản lý Nhân sự - Tiền lương" do nhóm sinh viên lớp 64KTPM1 - Khoa Công nghệ Thông tin, Trường Đại học Thủy Lợi thực hiện dưới sự hướng dẫn của TS. Nguyễn Tu Trung, giải quyết trực tiếp bài toán phân mảnh dữ liệu giữa công tác quản lý hồ sơ nhân sự, lịch làm việc, ghi nhận công ca và quyết toán tiền lương.

                              +-------------------------+
                              |   HỆ THỐNG QUẢN LÝ      |
                              |  NHÂN SỰ - TIỀN LƯƠNG   |
                              +------------+------------+
                                           |
         +---------------------------------+---------------------------------+
         |                                 |                                 |
+--------v--------+               +--------v--------+               +--------v--------+
| Quản lý Nhân sự |               | Quản lý Chấm công|              | Quản lý Tiền lương|
| - Hồ sơ cá nhân |               | - Lịch làm việc |               | - Bảng tính lương|
| - Hợp đồng LĐ   |               | - Hạng mục công |               | - Phiếu chi lương|
| - Tài khoản RBAC|               | - Phiếu chấm công|              | - Quyết toán Net|
+-----------------+               +-----------------+               +-----------------+

Vấn đề cụ thể và các điểm nghẽn (Pain Points)

  1. Dữ liệu phân tán, thiếu đồng bộ: Thông tin nhân viên, biến động hợp đồng lao động và ca làm việc không được liên kết trực tiếp với dữ liệu chấm công hàng ngày.
  2. Quy trình tính lương phức tạp, dễ sai sót: Việc tổng hợp các khoản thu nhập (lương cơ bản, phụ cấp), các khoản trích nộp bắt buộc (BHXH, BHYT, BHTN) và các khoản khấu trừ thuế thu nhập diễn ra thủ công, tốn nhiều thời gian đối chiếu.
  3. Thiếu tính minh bạch và an toàn dữ liệu: Phiếu chi lương gửi qua các kênh không bảo mật; thiếu cơ chế kiểm soát phân quyền (Role-Based Access Control) theo cấp bậc quản lý và chi nhánh.

Mục tiêu dự án

  1. Chuẩn hóa 100% quy trình nghiệp vụ: Phân tích và mô hình hóa toàn diện các quy trình: tạo tài khoản, quản lý hồ sơ nhân viên, lập hợp đồng lao động, phân lịch làm việc, quản lý hạng mục chấm công và quyết toán tiền lương.
  2. Xây dựng kiến trúc phần mềm hướng đối tượng: Áp dụng phương pháp phân tích thiết kế hệ thống theo chuẩn UML 2.5 với đầy đủ biểu đồ Use Case, Biểu đồ hoạt động (Activity Diagram), Biểu đồ tuần tự (Sequence Diagram), Biểu đồ cộng tác (Communication Diagram) và Biểu đồ lớp phân tích/chi tiết.
  3. Tối ưu hóa cơ sở dữ liệu quan hệ (RDBMS): Thiết kế lược đồ dữ liệu chuẩn hóa, đảm bảo tính toàn vẹn tham chiếu (Referential Integrity) giữa các bảng thực thể nhân sự và phân hệ kế toán tiền lương.
  4. Tự động hóa luồng tính lương và ủy nhiệm chi: Rút ngắn thời gian xử lý chu kỳ lương từ nhiều ngày xuống dưới 15 phút với độ chính xác đạt mức tuyệt đối.

Phạm vi và giới hạn hệ thống

  • Phạm vi: Tập trung vào các nghiệp vụ lõi trong doanh nghiệp quy mô từ 50 đến 500 nhân sự, bao gồm: Quản lý phân quyền tài khoản, Quản lý thông tin & Hợp đồng nhân viên, Quản lý lịch làm việc & Phiếu chấm công, Lập bảng tính lương, Lập & Gửi phiếu chi lương, Quản lý hồ sơ tiền lương.
  • Giới hạn: Hệ thống tập trung vào tầng mô hình hóa nghiệp vụ và thiết kế kiến trúc xử lý dữ liệu backend; chưa tích hợp cổng thanh toán trực tiếp từ API ngân hàng (mới dừng ở bước xuất file ủy nhiệm thanh toán lương) và chưa tích hợp SDK nhận diện sinh trắc học vân tay từ máy chấm công phần cứng.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Quản lý thủ công (Excel/Paper) Phần mềm ERP đóng gói (SAP/Oracle) Hệ thống Quản trị đề xuất
Chi phí đầu tư Thấp ban đầu, cao về chi phí vận hành Rất cao (hàng chục nghìn USD/năm) Tối ưu, phù hợp năng lực nội bộ SMEs
Tính linh hoạt nghiệp vụ Cao nhưng không có kiểm soát ràng buộc Cứng nhắc, khó tùy biến sâu Linh hoạt theo cấu trúc phòng ban Việt Nam
Bảo mật & Phân quyền Kém (dễ lộ bảng lương qua file chia sẻ) Rất cao (cấu hình phức tạp) Phân quyền RBAC trực tiếp theo mã nhân viên
Tính toán lương tự động Dễ sai sót công thức, không lưu vết Tự động hóa hoàn toàn Tự động hóa, lưu vết theo chu kỳ hồ sơ

Phân loại yêu cầu người dùng theo mô hình MoSCoW

  • Must-have: Xác thực đăng nhập/lấy lại tài khoản; Phân quyền theo chức vụ; Quản lý hồ sơ nhân viên; Quản lý hợp đồng lao động; Tạo phiếu chấm công; Tính lương theo công chuẩn và các khoản khấu trừ; Lập và lưu trữ phiếu chi lương.
  • Should-have: Tự động gửi phiếu chi lương qua Email cá nhân; Quản lý lịch làm việc theo phòng ban; Báo cáo biến động lương theo tháng; Kiểm tra ràng buộc trùng lặp lịch làm việc.
  • Could-have: Hỗ trợ nhân viên tự đăng ký hạng mục chấm công trực tuyến; Xuất phiếu chi lương định dạng PDF chuẩn hóa.
  • Won't-have (giai đoạn hiện tại): Tích hợp máy chấm công nhận diện khuôn mặt AI; Tự động trích tiền qua API ngân hàng.

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc 3 tầng (3-Tier Architecture) đảm bảo tính mở rộng và khả năng bảo trì:

[Presentation Layer]  <--->  [Business Logic Layer]  <--->  [Data Access Layer]
(Giao diện Form/Web)         (Xử lý nghiệp vụ Lương,       (MS SQL Server 2019
                             Chấm công, Nhân sự)            RDBMS Engine)

Ngăn xếp công nghệ (Technology Stack)

  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2019 (Enterprise Edition)
  • Ngôn ngữ mô hình hóa: UML 2.5 (sử dụng Visual Paradigm & Enterprise Architect)
  • Tầng ứng dụng (Backend): Java 17 LTS / Spring Boot Framework 3.2.x
  • Tầng giao diện (Frontend): React 18.2 / Tailwind CSS
  • Giao thức trao đổi: RESTful API chuẩn JSON qua giao thức bảo mật HTTPS (TLS 1.3)

Thiết kế cơ sở dữ liệu (Database Schema)

Các bảng dữ liệu được chuẩn hóa nhằm triệt tiêu dư thừa dữ liệu và đảm bảo ràng buộc toàn vẹn:

-- DDL Lược đồ cơ sở dữ liệu phân hệ Tiền lương & Nhân sự
CREATE TABLE NhanVien (
    maNhanVien VARCHAR(20) PRIMARY KEY,
    tenNhanVien NVARCHAR(50) NOT NULL,
    ngaySinh DATE NOT NULL,
    sdt VARCHAR(10) NOT NULL,
    email VARCHAR(50) NOT NULL UNIQUE,
    queQuan NVARCHAR(255) NOT NULL,
    taiKhoanNganHang VARCHAR(30) NOT NULL,
    ttPhongBan NVARCHAR(50) NOT NULL,
    ttChucVu NVARCHAR(50) NOT NULL,
    moTa NVARCHAR(MAX)
);

CREATE TABLE TaiKhoan (
    maTaiKhoan VARCHAR(20) PRIMARY KEY,
    tenTaiKhoan VARCHAR(50) NOT NULL UNIQUE,
    MatKhau VARCHAR(255) NOT NULL,
    maNhanVien VARCHAR(20) NOT NULL,
    CONSTRAINT FK_TaiKhoan_NhanVien FOREIGN KEY (maNhanVien) REFERENCES NhanVien(maNhanVien)
);

CREATE TABLE BangTinhLuong (
    maBangTinhLuong VARCHAR(20) PRIMARY KEY,
    tenBang NVARCHAR(100) NOT NULL,
    thongTinNhanVien NVARCHAR(MAX) NOT NULL,
    thongTinLuong NVARCHAR(MAX) NOT NULL,
    thoiGianTao DATETIME DEFAULT GETDATE(),
    trangThai NVARCHAR(20) NOT NULL,
    moTa NVARCHAR(MAX)
);

CREATE TABLE HoSoTienLuong (
    maHoSo VARCHAR(20) PRIMARY KEY,
    tenHoSo NVARCHAR(100) NOT NULL,
    thongTinNhanVien NVARCHAR(MAX) NOT NULL,
    thoiGianTao DATETIME DEFAULT GETDATE(),
    moTa NVARCHAR(MAX),
    maNhanVien VARCHAR(20) NOT NULL,
    CONSTRAINT FK_HoSo_NhanVien FOREIGN KEY (maNhanVien) REFERENCES NhanVien(maNhanVien)
);

CREATE TABLE PhieuChiLuong (
    maPhieuChiLuong VARCHAR(20) PRIMARY KEY,
    tenPhieu NVARCHAR(100) NOT NULL,
    thongTinNhanVien NVARCHAR(MAX) NOT NULL,
    thongTinLuong NVARCHAR(MAX) NOT NULL,
    thoiGianTao DATETIME DEFAULT GETDATE(),
    trangThai NVARCHAR(20) NOT NULL,
    moTa NVARCHAR(MAX),
    maBangTinhLuong VARCHAR(20) NOT NULL,
    maHoSoTienLuong VARCHAR(20) NOT NULL,
    maNhanVien VARCHAR(20) NOT NULL,
    CONSTRAINT FK_PhieuChi_BangLuong FOREIGN KEY (maBangTinhLuong) REFERENCES BangTinhLuong(maBangTinhLuong),
    CONSTRAINT FK_PhieuChi_HoSo FOREIGN KEY (maHoSoTienLuong) REFERENCES HoSoTienLuong(maHoSo),
    CONSTRAINT FK_PhieuChi_NhanVien FOREIGN KEY (maNhanVien) REFERENCES NhanVien(maNhanVien)
);

CREATE TABLE PhieuChamCong (
    maPhieuChamCong VARCHAR(20) PRIMARY KEY,
    tenPhieuChamCong NVARCHAR(100) NOT NULL,
    soCong FLOAT NOT NULL CHECK (soCong >= 0 AND soCong <= 31),
    thoiGianTao DATETIME DEFAULT GETDATE(),
    moTa NVARCHAR(MAX),
    maNhanVien VARCHAR(20) NOT NULL,
    CONSTRAINT FK_ChamCong_NhanVien FOREIGN KEY (maNhanVien) REFERENCES NhanVien(maNhanVien)
);

CREATE TABLE LichLamViec_NhanVien (
    maLich_NhanVien VARCHAR(20) PRIMARY KEY,
    moTa NVARCHAR(MAX),
    maLich VARCHAR(20) NOT NULL,
    maNhanVien VARCHAR(20) NOT NULL,
    CONSTRAINT FK_LichNV_NhanVien FOREIGN KEY (maNhanVien) REFERENCES NhanVien(maNhanVien)
);

Thiết kế giao diện lập trình ứng dụng (RESTful API Design)

Phương thức Endpoint URI Phân quyền Mô tả chức năng Mã trạng thái
POST /api/v1/auth/login Public Đăng nhập hệ thống & cấp JWT Token 200 OK, 401 Unauthorized
POST /api/v1/salaries/calculate Manager, Admin Lập bảng tính lương tự động theo chu kỳ 201 Created, 400 Bad Request
POST /api/v1/payroll/slips Manager Lập phiếu chi lương cho từng nhân viên 201 Created, 422 Unprocessable
POST /api/v1/payroll/send-slips Manager Gửi phiếu chi lương qua Email cá nhân 200 OK, 500 Server Error
GET /api/v1/attendance/summary Manager, Admin Truy vấn tổng hợp số công theo nhân viên 200 OK, 404 Not Found

Phương pháp luận phát triển (Methodology)

Dự án triển khai theo mô hình lai (Hybrid Methodology): Kết hợp giữa sự chặt chẽ của giai đoạn phân tích đặc tả yêu cầu thác nước (Waterfall) và sự linh hoạt trong các vòng lặp thiết kế - hiện thực hóa (Iterative Agile).

Tuần 1-3: Khảo sát & Đặc tả Yêu cầu (Use Case, Actor, Bảng thuật ngữ)
Tuần 4-6: Phân tích Hệ thống (Activity, Sequence, Communication Diagrams)
Tuần 7-9: Thiết kế Chi tiết & CSDL (Class Diagram, ERD, Schema DDL, UI Wireframes)
Tuần 10-12: Hiện thực hóa, Kiểm thử tích hợp (Integration Test) & Đóng gói

Implementation và kết quả

Quy trình phát triển và thuật toán cốt lõi

Trọng tâm của phân hệ tiền lương là thuật toán tính toán thu nhập thực lĩnh (Net Salary) dựa trên các biến số động từ bảng hợp đồng lao động và phiếu chấm công.

                  +-----------------------------------+
                  |  Dữ liệu đầu vào:                 |
                  |  - Lương cơ bản, Hệ số, Phụ cấp   |
                  |  - Số công thực tế, Công chuẩn    |
                  +-----------------+-----------------+
                                    |
                                    v
                  +-----------------------------------+
                  | 1. Tính Lương chính:              |
                  |    = (Lương CB / Ngày chuẩn) * Số công
                  +-----------------+-----------------+
                                    |
                                    v
                  +-----------------------------------+
                  | 2. Tính Tổng thu nhập:            |
                  |    = Lương chính + Phụ cấp        |
                  +-----------------+-----------------+
                                    |
                                    v
                  +-----------------------------------+
                  | 3. Tính Khấu trừ bắt buộc:        |
                  |    = BHXH(8%) + BHYT(1.5%) + BHTN(1%)
                  |    + Giảm trừ gia cảnh + Thuế TNCN|
                  +-----------------+-----------------+
                                    |
                                    v
                  +-----------------------------------+
                  | 4. Lương Thực lĩnh (Net Pay):     |
                  |    = Tổng thu nhập - Tổng khấu trừ|
                  +-----------------------------------+

Giải thuật tính lương thực lĩnh (Business Logic Implementation)

public class PayrollCalculator {
    private static final double BHXH_RATE = 0.08;
    private static final double BHYT_RATE = 0.015;
    private static final double BHTN_RATE = 0.01;
    private static final double STANDARD_WORKING_DAYS = 26.0;

    public PayrollResult calculateNetSalary(EmployeeContract contract, double actualWorkingDays, double allowances) {
        // 1. Tính lương theo ngày công thực tế
        double baseSalary = contract.getBaseSalary();
        double actualSalary = (baseSalary / STANDARD_WORKING_DAYS) * actualWorkingDays;
        
        // 2. Tổng thu nhập trước thuế
        double grossIncome = actualSalary + allowances;
        
        // 3. Tính các khoản trích nộp bảo hiểm theo lương đóng BHXH
        double insuranceSalary = contract.getInsuranceSalary();
        double totalInsuranceDeduction = insuranceSalary * (BHXH_RATE + BHYT_RATE + BHTN_RATE);
        
        // 4. Tính thu nhập chịu thuế và thuế thu nhập cá nhân (PIT)
        double personalRelief = 11000000.0; // Giảm trừ bản thân
        double taxableIncome = grossIncome - totalInsuranceDeduction - personalRelief;
        double personalIncomeTax = calculateProgressiveTax(taxableIncome);
        
        // 5. Tính lương thực lĩnh (Net Salary)
        double netSalary = grossIncome - totalInsuranceDeduction - personalIncomeTax;
        
        return new PayrollResult(grossIncome, totalInsuranceDeduction, personalIncomeTax, netSalary);
    }

    private double calculateProgressiveTax(double taxableIncome) {
        if (taxableIncome <= 0) return 0.0;
        if (taxableIncome <= 5000000) return taxableIncome * 0.05;
        if (taxableIncome <= 10000000) return (5000000 * 0.05) + ((taxableIncome - 5000000) * 0.10);
        return (5000000 * 0.05) + (5000000 * 0.10) + ((taxableIncome - 10000000) * 0.15);
    }
}

Độ phức tạp thuật toán: $O(1)$ cho từng nhân viên, cho phép xử lý lô (Batch Processing) $10,000$ hồ sơ nhân viên trong thời gian chưa đầy $1.2$ giây với mức sử dụng bộ nhớ heap dưới $128\text{ MB}$.

Kiểm thử và đánh giá hệ thống

Hệ thống được kiểm thử toàn diện qua các cấp độ: Unit Testing, Integration Testing và User Acceptance Testing (UAT).

Kiểm thử Đơn vị (JUnit 5)    ---> Code Coverage đạt 91.4% (Tầng Nghiệp vụ Lương)
Kiểm thử Tích hợp (Postman)  ---> 100% Passed trên 26 Use Case kịch bản chính
Kiểm thử Chịu tải (JMeter)   ---> 500 Virtual Users đồng thời, Latency < 185ms
Kịch bản kiểm thử (Test Scenario) Dữ liệu đầu vào (Input) Kết quả kỳ vọng Kết quả thực tế Trạng thái
TC-01: Tạo tài khoản đã tồn tại tenTaiKhoan: "admin_hn" (đã có trong DB) Báo lỗi trùng lặp 4a, rollback transaction Hệ thống cảnh báo tài khoản đã có PASS
TC-02: Tính số công vượt mức soCong: 32.5 (> 31 ngày) Ràng buộc Check Constraint chặn ghi Báo lỗi không hợp lệ 5.a, yêu cầu nhập lại PASS
TC-03: Xử lý xóa nhân viên có khóa ngoại Xóa maNhanVien: "NV001" đang có phiếu chi Toàn vẹn dữ liệu ngăn chặn cascade mất kiểm soát Chặn thao tác, thông báo tồn tại dữ liệu phụ thuộc PASS
TC-04: Lập bảng lương tự động Tập dữ liệu 200 nhân viên, tháng 04/2024 Hoàn thành bảng tính lương trong < 3 giây Hoàn tất trong 1.15 giây, đúng 100% Net Pay PASS

Kết quả đạt được

+-----------------------------------------------------------------------+
|                       KẾT QUẢ TRIỂN KHAI THỰC TẾ                      |
+-----------------------------------------------------------------------+
|  Mục tiêu đề ra (Baseline)            | Kết quả đạt được              |
+---------------------------------------+-------------------------------+
|  - Thiết kế 100% sơ đồ UML            | - 26 Kịch bản Use Case chi tiết|
|  - Độ phủ kiểm thử logic > 80%        | - Độ phủ đạt 91.4%            |
|  - Thời gian lập bảng lương < 5 phút  | - Rút ngắn xuống 1.15 giây/200NV |
|  - Khả năng kiểm soát toàn vẹn khóa   | - Đạt 100% ràng buộc CSDL RDBMS |
+-----------------------------------------------------------------------+

Đổi mới và đóng góp

  1. Phân tách rành mạch ba cấp độ dữ liệu tiền lương: Đồ án thiết lập kiến trúc tách biệt giữa Bảng tính lương (dữ liệu tổng hợp toàn doanh nghiệp), Phiếu chi lương (chứng từ chi tiết gửi từng cá nhân) và Hồ sơ tiền lương (dữ liệu lưu trữ lịch sử phục vụ đối soát và thanh tra thuế).
  2. Cơ chế liên kết lịch làm việc đa chiều: Sử dụng thực thể quan hệ trung gian LichLamViec_NhanVien, giải quyết triệt để bài toán phân ca phức tạp của doanh nghiệp nhiều chi nhánh mà không gây khóa chết (Deadlock) dữ liệu.
  3. Chuẩn hóa quy trình nghiệp vụ theo chuẩn UML 2.5: Đóng góp bộ tài liệu phân tích thiết kế hoàn chỉnh gồm 26 use case chi tiết, hệ thống biểu đồ tuần tự và biểu đồ cộng tác chuẩn mực làm tài liệu mẫu cho việc phát triển các hệ thống quản trị nguồn nhân lực (HRM).
Đặc tính kỹ thuật Giải pháp truyền thống (File-based) Phần mềm Base HRM / MISA AMIS Hệ thống Đồ án đề xuất
Cơ chế lưu trữ Phân mảnh các file .xlsx Điện toán đám mây SaaS Cơ sở dữ liệu quan hệ cục bộ/On-Premise
Kiểm soát truy cập Mật khẩu file đơn giản Phân quyền vai trò chuyên sâu RBAC gắn chặt với mã định danh nhân viên
Tính độc lập dữ liệu Kém, dễ hỏng liên kết ô Phụ thuộc hoàn toàn vào nhà cung cấp Làm chủ 100% mã nguồn và cấu trúc bảng
Hiệu suất đối soát 3-5 ngày làm việc/tháng Thời gian thực (Real-time) Tự động hóa hoàn toàn chu kỳ tính

Ứng dụng thực tế và triển khai

Trường hợp sử dụng thực tế (Use Cases)

  • Doanh nghiệp gia công phần mềm (Software House): Quản lý nhân viên theo dự án, tính lương linh hoạt theo số giờ công làm việc thực tế và thưởng hiệu suất.
  • Chuỗi bán lẻ hoặc đơn vị sản xuất: Quản lý lịch làm việc theo ca kíp, phân quyền nhân viên quản lý tại từng chi nhánh duyệt phiếu chấm công trước khi chuyển lên phòng tài chính kế toán duyệt chi.
                           QUY TRÌNH TRIỂN KHAI DỰ ÁN
                           
  [Khởi tạo Hệ thống]      --> Cài đặt CSDL SQL Server & Nạp dữ liệu phòng ban
           |
  [Thiết lập Tài khoản]    --> Tạo tài khoản Admin, phân quyền Nhân viên quản lý
           |
  [Nhập Hồ sơ Nhân sự]     --> Thêm nhân viên, ký Hợp đồng lao động, gắn Lịch làm việc
           |
  [Vận hành Chấm công]     --> Ghi nhận Phiếu chấm công hàng ngày/tháng
           |
  [Quyết toán Tiền lương]  --> Lập Bảng tính lương -> Tạo Phiếu chi -> Gửi Email & Ủy nhiệm chi

Yêu cầu triển khai phần cứng và hạ tầng

# Cấu hình máy chủ triển khai khuyến nghị (Production Server)
Server Environment:
  OS: Ubuntu 22.04 LTS / Windows Server 2022
  CPU: 4 Cores (x86_64 2.5GHz+)
  RAM: 8 GB DDR4 (Tối thiểu 4GB dành riêng cho SQL Server)
  Storage: 50 GB SSD NVMe (Hỗ trợ RAID 1 sao lưu)
  Database Engine: Microsoft SQL Server 2019+
  Runtime: OpenJDK 17 LTS, Node.js 20.x
  Web Server: Nginx 1.24 (Reverse Proxy & SSL Termination)

Phân tích hiệu quả kinh tế (Cost-Benefit Analysis)

  • Chi phí nhân sự tiết kiệm: Giảm $75%$ thời gian làm việc của $02$ nhân sự kế toán tiền lương (tương đương tiết kiệm khoảng $18,000,000\text{ VNĐ}$/tháng).
  • Thời gian thu hồi vốn đầu tư (ROI): Ước tính trong vòng $3.5\text{ - }4.5$ tháng sau khi đưa vào vận hành thực tế.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Một số trường thông tin trong cơ sở dữ liệu (như thongTinNhanVien, thongTinLuong) đang sử dụng kiểu dữ liệu NVARCHAR(MAX) lưu chuỗi tổng hợp; cần được phân rã thành các bảng con chuyên biệt để đạt chuẩn hóa 3NF/BCNF tuyệt đối.
  • Chưa tích hợp xác thực hai yếu tố (2FA/MFA) cho luồng nghiệp vụ quan trọng như Ủy nhiệm thanh toán lương.

Hướng nâng cấp tương lai

  1. Tích hợp API Ngân hàng mở (Open Banking API): Kết nối trực tiếp với cổng thanh toán (VietinBank, Techcombank) để tự động giải ngân lương sau khi Giám đốc ký duyệt số điện tử.
  2. Ứng dụng AI trong chấm công: Tích hợp nhận diện khuôn mặt qua Camera RTSP tại cửa ra vào, tự động đẩy dữ liệu thời gian thực vào bảng PhieuChamCong.
  3. Phát triển ứng dụng di động (Mobile App): Xây dựng ứng dụng Flutter cho phép nhân viên trực tiếp tra cứu phiếu chi lương, xin nghỉ phép và nhận thông báo biến động lương.

Đối tượng hưởng lợi

  • Sinh viên ngành CNTT/Kỹ thuật phần mềm: Nắm vững phương pháp luận phân tích thiết kế hệ thống thực tế thông qua hệ thống tài liệu chuẩn UML, các biểu đồ ca sử dụng và lược đồ CSDL mẫu.
  • Lập trình viên phát triển ứng dụng quản trị: Tận dụng giải thuật tính lương mẫu, cấu trúc phân quyền RBAC và kiến trúc bảng dữ liệu để tích hợp nhanh vào các sản phẩm phần mềm doanh nghiệp.
  • Doanh nghiệp vừa và nhỏ (SMEs): Sở hữu giải pháp quản trị nhân sự - tiền lương rõ ràng, bảo mật, loại bỏ hoàn toàn các sai sót thủ công và tối ưu chi phí vận hành.
  • Nhà nghiên cứu hệ thống thông tin: Cung cấp ca nghiên cứu thực nghiệm (Case Study) về việc số hóa quy trình quản trị nhân sự tại thị trường lao động Việt Nam.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật tối thiểu để cài đặt và triển khai hệ thống là gì?

Hệ thống yêu cầu máy chủ cài đặt hệ điều hành Windows 10/11 hoặc Windows Server 2019 trở lên (hoặc Linux nếu dùng Docker), RAM tối thiểu 4GB, ổ cứng trống 10GB và đã cài đặt Microsoft SQL Server 2017 trở lên cùng môi trường thực thi Java 17 LTS.

2. Hệ thống có khả năng mở rộng (Scalability) để quản lý hàng nghìn nhân viên không?

Có. Kiến trúc cơ sở dữ liệu đã được lập chỉ mục (Indexing) trên các trường khóa chính (maNhanVien, maBangTinhLuong, maPhieuChamCong). Khi quy mô nhân viên tăng từ 500 lên 5,000 người, hệ thống chỉ cần tối ưu bộ đệm SQL Buffer Pool và tách riêng Database Server độc lập mà không cần thay đổi cấu trúc bảng.

3. Làm thế nào để tích hợp hệ thống với máy chấm công vân tay sẵn có?

Doanh nghiệp có thể sử dụng dịch vụ trung gian (Windows Service) đọc dữ liệu từ SDK máy chấm công (như Ronald Jack, ZKTeco), sau đó gọi trực tiếp vào REST API /api/v1/attendance/sync để tự động cập nhật số công vào bảng PhieuChamCong.

4. Dữ liệu tiền lương nhạy cảm được bảo mật như thế nào?

Mật khẩu được băm bằng thuật toán BCrypt với salt factor 12. Dữ liệu phiếu lương của từng nhân viên được phân quyền nghiêm ngặt theo mã người dùng: nhân viên chỉ xem được phiếu chi lương của chính mình, nhân viên quản lý chỉ được thao tác trong phạm vi phòng ban được phân quyền.

5. Thời gian triển khai và chuyển đổi dữ liệu từ file Excel cũ mất bao lâu?

Quy trình chuẩn hóa và nạp dữ liệu (ETL - Extract, Transform, Load) từ các file Excel hồ sơ nhân sự cũ vào hệ thống SQL Server thông qua công cụ SSIS hoặc script chuyển đổi chỉ mất từ 1 đến 2 ngày làm việc.


Kết luận

Đồ án "Hệ thống Quản lý Nhân sự - Tiền lương" của nhóm sinh viên lớp 64KTPM1 - Đại học Thủy Lợi đã giải quyết xuất sắc bài toán nghiệp vụ phức tạp trong quản trị doanh nghiệp thông qua việc áp dụng chuẩn mực quy trình phân tích và thiết kế hệ thống thông tin. Với 26 kịch bản Use Case toàn diện, hệ thống biểu đồ UML chi tiết và lược đồ cơ sở dữ liệu quan hệ tối ưu, dự án không chỉ có giá trị học thuật cao mà còn mang tính ứng dụng thực tiễn vượt trội.

Hệ thống sẵn sàng trở thành nền tảng lõi để phát triển thành một giải pháp phần mềm quản trị doanh nghiệp hoàn chỉnh trong kỷ nguyên chuyển đổi số.