3.Tóm tắt nội dung Tìm hiểu công nghệ Spring boot để ứng dụng xây dựng phần mềm quản lý nhân sự cho công ty FintechViet với mục đích nhắm giúp cho việc quản lý nhân sự trong công ty dễ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
TÊN ĐỀ TÀI XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÂN SỰ
Sinh viên thực hiện : Nguyễn Chí Thịnh
Trang 22
BỘ GIÁO DỤC VÀ ĐÀO TẠO
BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP
TÊN ĐỀ TÀI XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÂN SỰ
GIẢNG VIÊN HƯỚNG DẪN: Th.S Hà Trọng Thắng
Họ và tên sinh viên: Nguyễn Chí Thịnh
Ngày sinh: 01/06/1999 Khóa: 8
Lớp: DCCNTT8.10 Ngành: Công nghệ thông tin Điểm báo cáo Bằng số: Bằng chữ:
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
DANH MỤC HÌNH ẢNH 2
MỞ ĐẦU 4
Chương 1 Giới thiệu về công nghệ 5
1.1 Cấu trúc của dự án sử dụng Spring boot, Angular, Hibernate 5
1.2 Giới thiệu về Spring Boot 6
1.2.1 Spring Boot là gì? 6
1.2.2 Ưu điểm của Spring boot 7
1.2.3 Tạo dự án Spring boot 8
1.2.4 Chạy dự án Spring boot đơn giản trên Eclipse 13
1.2.5 Các thành phần trong một dự án Spring boot thực tế 19
1.3 Giới thiệu về Angular 23
1.3.1 Angular là gì? 23
1.3.2 Kiến trúc của Angular 25
1.4 Giới thiệu về Hibernate Framework 27
1.4.1 Hibernate Framework là gì? 27
1.4.2 Kiến trúc của Hibernate 28
Chương 2 Mô tả các yêu cầu của hệ thống 30
2.1 Khảo sát hệ thống 30
2.2 Hoạt động của hệ thống 32
2.2.1 Hoạt động quản lý thông tin nhân viên 32
2.2.2 Hoạt động chấm công, tính lương 32
2.2.3 Tài liệu thu thập được 33
2.3 Các yêu cầu hệ thống 36
2.3.1 Yêu cầu chức năng 36
2.3.2 Yêu cầu phi chức năng 36
Chương 3 Phân tích các yêu cầu chức năng của hệ thống 38
3.1 Biểu đồ usecase 38
Trang 42
3.1.2 Biểu đồ usecase chính 39
3.1.3 Biểu đồ usecase quản lý nhân viên 40
3.1.4 Biểu đồ usecase quản lý tài khoản 41
3.1.5 Biểu đồ usecase quản lý chấm công 41
3.1.6 Biểu đồ usecase quản lý tính lương 42
3.2 Mô tả chi tiết các usecase 43
3.2.1 Đăng nhập 43
3.2.2 Cập nhật thông tin cá nhân 43
3.2.3 Xem thông tin cá nhân 47
3.2.4 Quản lý chấm công 48
3.2.5 Quản lý nhân viên 50
3.2.6 Quản lý tài khoản 52
3.2.7 Quản lý tính lương 54
3.3 Sơ đồ khối các luồng sự kiện 57
3.3.1 Sơ đồ khối thêm nhân viên 57
3.3.2 Sơ đồ khối sửa thông tin nhân viên 58
3.3.3 Sơ đồ khối xóa nhân viên 59
3.3.4 Sơ đồ khối thêm tài khoản 60
3.3.5 Sơ đồ khối sửa thông tin tài khoản 61
3.3.6 Sơ đồ khối xóa tài khoản 62
3.3.7 Sơ đồ khối import bảng chấm công 63
3.3.8 Sơ đồ khối thống kê lương nhân viên 64
3.3.9 Sơ đồ khối export bảng lương 65
Chương 4 Thiết kế cơ sở dữ liệu 66
4.1 Mô hình hóa dữ liệu 66
4.1.1 Biểu đồ thực thể liên kết 66
4.1.2 Mô tả vắn tắt các thực thể 67
4.1.3 Các quy tắc nghiệp vụ 68
4.2 Thiết kế bảng 70
4.2.1 Bảng nhân viên 70
4.2.2 Bảng phòng ban 70
4.2.3 Bảng chấm công 70
Trang 54.2.4 Bảng lương 71
4.2.5 Bảng tài khoản 71
4.2.6 Bảng thông tin gia đình 71
4.2.7 Bảng quá trình công tác 71
4.2.8 Bảng quá trình đào tạo 72
4.2.9 Bảng bằng cấp chứng chỉ 72
4.2.10 Bảng đánh giá nhân viên 72
.2.11 Bảng tính lương tháng 72
4.3 Quan hệ giữa các bảng trong hệ quản trị CSDL 73
Chương 5 Thiết kế các chức năng của hệ thống 74
5.1 Usecase quản lý tài khoản 74
5.1.1 Biểu đồ trình tự 74
5.1.2 Biểu đồ lớp 77
5.2 Usecase cập nhật thông tin cá nhân 78
5.2.1 Biểu đồ trình tự 78
5.2.2 Biểu đồ lớp 79
5.3 Usecase quản lý chấm công 80
5.3.1 Biểu đồ trình tự 80
5.3.2 Biểu đồ lớp 82
5.4 Usecase quản lý tính lương 83
5.4.1 Biểu đồ trình tự 83
5.4.2 Biểu đồ lớp 85
5.5 Usecase quản lý nhân viên 86
5.5.1 Biểu đồ trình tự 86
5.5.2 Biểu đồ lớp 88
Chương 6 Thiết kế giao diện và cài đặt 89
6.1 Màn hình đăng nhập 89
6.2 Màn hình quản lý nhân viên 89
6.3 Màn hình nhập hồ sơ nhân viên 90
6.4 Màn hình xem thông tin nhân viên 90
6.5 Màn hình quản lý tài khoản 93
Trang 64
6.7 Màn hình xem thông tin tài khoản 94
6.8 Màn hình tạo tài khoản 94
6.9 Màn hình thông kê lương tháng 95
6.10 Màn hình quản lý tiền lương 95
6.11 Mẫu xuất báo cáo danh sách nhân sự 96
Chương 7 Quy trình sử dụng hệ thống 98
B1: Đăng nhập hệ thống 98
B2: Nhập hồ sơ nhân viên 98
B3:Tạo tài khoản cho nhân viên 99
B4: Nhập lương cho nhân viên 100
B5: Import file chấm công của nhân viên (file chấm công xuất từ máy chấm công và theo file như mẫu ) 100
B6: Thống kê lương tháng của nhân viên Danh sách chi tiết bảng lương nhân viên và có thể export bảng lưởng nhân viên 102
TỔNG KẾT VÀ ĐÁNH GIÁ 103
1 Tổng kết và đánh giá 103
2 Hướng phát triển của đề tài 103
TÀI LIỆU THAM KHẢO 104
Trang 7LỜI CẢM ƠN
Để hoàn thành chuyên đề báo cáo đồ án này trước tiên em xin gửi lời cảm
ơn chân thành đến các thầy, cô khoa Công nghệ thông tin - trường Đại học Công Nghệ Đông Á đã truyền dạy cho em những kiến thức quý báu trong suốt bốn năm học vừa qua Đặc biệt, em xin gửi lời cảm ơn sâu sắc nhất đến giảng viên hướng dẫn – Th.S Hà Trọng Thắng – người đã tận tình hướng dẫn, chỉ bảo
và đưa ra định hướng đúng đắn cho em trong suốt thời gian thực hiện đồ án vừa qua để em có thể hoàn thành đồ án của mình với một kết quả tốt nhất
Mặc dù bản thân em đã rất cố gắng nhưng do thời gian có hạn, vốn kiến thức vẫn còn nhiều hạn chế và thiếu sót nên bài báo cáo của em khó có thể tránh khỏi những sai sót và những phần chưa được chính xác Em rất mong nhận được sự thông cảm và đóng góp ý kiến của cô để em có thể hoàn thiện đồ án của mình tốt hơn
Cuối cùng, em kính chúc thầy và gia đình thật dồi dào sức khỏe, đạt được nhiều thành công trong cuộc sống!
Em xin chân thành cảm ơn!
Trang 82
DANH MỤC HÌNH ẢNH
Hình 1 Mô hình dự án Spring boot, Angular, Hibernate 5
Hình 2 Spring boot trong kiến trúc Spring 6
Hình 3 Giao diện công cụ Spring initializr 8
Hình 4 Cấu trúc thư mục một sự án Spring thực tế 19
Hình 5 Kiến trúc cơ bản của angular 25
Hình 6 Sơ đồ ánh xạ đối tượng vào dữ liệu được lưu trong cơ sở dữ liệu 27
Hình 7 Kiến trúc của Hibernate 28
Hình 8 Sơ đồ tổ chức bộ máy công ty 30
Hình 9 Mẫu thống kê bảng chấm công tháng 33
Hình 10 Mẫu sơ yếu lý lịch nhân viên 35
Hình 11 Biểu đồ usecase chính 39
Hình 12 Biểu đồ usecase quản lý nhân viên 40
Hình 13 Biểu đồ usecase quản lý tài khoản 41
Hình 14 Biểu đồ usecase quản lý chấm công 41
Hình 15 Biểu đồ usecase quản lý tính lương 42
Hình 16 Sơ đồ khối thêm nhân viên 57
Hình 17 Sơ đồ khối sửa thông tin nhân viên 58
Hình 18 Sơ đồ khối xóa nhân viên 59
Hình 19 Sơ đồ khối thêm tài khoản 60
Hình 20 Sơ đồ khối sửa tài khoản 61
Hình 21 Sơ đồ khối xóa tài khoản 62
Hình 22 Sơ đồ khối import chấm công 63
Hình 23 Sơ đồ khối thống kê lương 64
Hình 24 Sơ đồ khối export bảng lương 65
Hình 25 Biểu đồ thực thể liên kết 66
Hình 26 Bảng nhân viên 70
Hình 27 Bảng phòng ban 70
Hình 28 Bảng chấm công 70
Hình 29 Bảng lương 71
Hình 30 Bảng tài khoản 71
Trang 9Hình 31 Bảng thông tin gia đình 71
Hình 32 Bảng quá trình công tác 71
Hình 33 Bảng quá trình đào tạo 72
Hình 34 Bảng bằng cấp chứng chỉ 72
Hình 35 Bảng đánh giá nhân viên 72
Hình 36 Bảng tính lương tháng 72
Hình 37 Sơ đồ quan hệ giữa các bảng 73
Hình 38 Biểu đồ trình tự Usecase Quản lý tài khoản 76
Hình 39 Biểu đồ lớp usecase quản lý tài khoản 77
Hình 40 Biểu đồ trình tự usecase cập nhật thông tin cá nhân 78
Hình 41 Biều đồ lớp usecase cập nhật thông tin cá nhân 79
Hình 42 Biểu đồ trình tự usecase quản lý chấm công 81
Hình 43 Biểu đồ lớp usecase quản lý chấm công 82
Hình 44 Biểu đồ usecase quản lý tính lương 84
Hình 45 Biểu đồ lớp usecase quản lý tính lương 85
Hình 46 Biểu đồ trình tự usecase quản lý nhân viên 87
Hình 47 Biểu đồ lớp usecase quản lý nhân viên 88
Hình 48 Màn hình đăng nhập 89
Hình 49 Màn hình danh sách nhân viên 89
Hình 50 Màn hình nhập hồ sơ nhân viên 90
Hình 51 Màn hình xem thông tin nhân viên 92
Hình 52 Màn hình quản lý tài khoản 93
Hình 53 Màn hình quản lý chấm công 93
Hình 54 Màn hình xem thông tin tài khoản 94
Hình 55 Màn tạo tài khoản 94
Hình 56 Màn hình thông kê lương tháng 95
Hình 57 Màn quản lý tiền lương 95
Hình 58 Mẫu xuất báo cáo danh sách nhân sự 96
Hình 59 Mẫu xuất bảng lương nhiều nhân viên 96
Hình 60 Mẫu xuất báo cáo lương 1 nhân viên 97
Trang 10Xuất phát từ thực tế, cũng như nhu cầu quản lý nhân sự hiện nay tại công
ty cổ phần FintechViet Em nhận thấy việc quản lý của công ty không còn phù hợp với quy mô và công nghệ hiện nay do đó em muốn xây dựng một hệ thống giúp cho việc quản lý nhân sự của công ty trở lên dễ dàng, thuận tiện hơn, đạt hiệu quả tốt hơn Đồng thời giúp tiết kiệm chi phí một cách tối đa mà vẫn đảm bảo những chức năng quan trọng, cần thiết và hệ thống hoạt động một cách ổn định, hiệu năng cao nhất Qua quá trình tìm hiểu, xác định công nghệ để xây dựng hệ thống, em nhận thấy Spring boot là một công nghệ mạnh mẽ, hiệu quả, rất phù hợp với xu hướng hiện nay Do đó, em đã quyết định theo đuổi, tìm hiểu sâu về công nghệ này để xây dựng lên hệ thống quản lý nhân sự
3.Tóm tắt nội dung
Tìm hiểu công nghệ Spring boot để ứng dụng xây dựng phần mềm quản
lý nhân sự cho công ty FintechViet với mục đích nhắm giúp cho việc quản lý nhân sự trong công ty dễ dàng hiệu quả hơn, thay thế cách thức quản lý hiện tại
đã lạc hậu, không đáp ứng tốt nhu cầu
Nội dung chính gồm 6 chương:
Chương 1 Giới thiệu về công nghệ
Chương 2 Mô tả các yêu cầu của hệ thống
Chương 3 Phân tích các yêu cầu chức năng của hệ thống
Chương 4 Thiết kế cơ sở dữ liệu
Chương 5 Thiết kế các chức năng của hệ thống
Chương 6 Thiết kế giao diện và cài đặt
Trang 11Chương 1 Giới thiệu về công nghệ
1.1 Cấu trúc của dự án sử dụng Spring boot, Angular, Hibernate
Hình 1 Mô hình dự án Spring boot, Angular, Hibernate
Trang 12 Spring Boot được đóng gói với rất nhiều thư viện phụ thuộc các module nền tảng của Spring Framework nhưng được giảm thiểu đi các mã nguồn dài dòng, phức tạp nhằm cung cấp sự thuận tiện và phù hợp với từng mục đích khi phát triển ứng dụng
Spring boot cung cấp tính năng RAD(Rapid Application Development) - có nghĩa là phát triển ứng dụng một cách nhanh chóng, giúp tăng cao năng suất cho lập trình viên
Spring Boot Framework được sử dụng rộng rãi để phát triển các REST APIs
Hình 2 Spring boot trong kiến trúc Spring
Trang 131.2.2 Ưu điểm của Spring boot
Spring boot ra đời nhằm khắc phục điểm hạn chế của Spring là các bước cấu hình rất phức tạp, mất rất nhiều thời gian để ứng dụng có thể chạy được Do đó, Spring boot có những ưu điểm sau:
Có các tính năng của Spring Framework
Tạo ứng dụng độc lập, có thể chạy bằng java -jar (cho cả java web)
Nhúng trực tiếp các ứng dụng server (Tomcat, Jetty…) do đó không cần phải triển khai file WAR, không cần cấu hình server
Cấu hình ít, tự động cậu hình bất kì khi nào có thể (Giảm thời gian viết code, tăng năng suất)
Không yêu cầu cầu hình XML, xây dựng các bean dự trên annotation
Cung cấp nhiều plugin
Chuẩn cho Microservices (Cloud support; giảm việc setup, config; các thư viện
hỗ trợ…)
Ví dụ ưu điểm của dự án sử dụng cấu hình của Spring boot
Cấu hình một model tương ứng với một bảng trong cơ sở dữ liệu
+ Với Spring MVC thông thường: cần cấu hình file xml phức tạp khi muốn khai báo một package chứa các model
+ Với Spring boot: sử dụng anotation @Entity, @Table ngắn gọn đơn giản, Spring boot sẽ xác định đây là một class tương ứng với bảng bang_luong trong
cơ sở dữ liệu
Trang 148
1.2.3 Tạo dự án Spring boot
Trên website của Spring có một công cụ giúp chúng ta nhanh chóng khởi tạo project Spring boot gọi là Spring Initializr Spring Initializr có thể truy cập trên website tại địa chỉ http://start.spring.io/
Hình 3 Giao diện công cụ Spring initializr
Mô tả về các thành phần của công cụ:
Project: Chọn loại chương trình dùng để quản lý, build dự án
Language: Chọn loại ngôn ngữ để viết code dự án
Dependencies: Thêm các thư viện vào dự án để sử dụng
Spring boot: Chọn phiên bản Spring boot cho dự án
Trang 15Project Metadata: Gồm các thông tin về tên các package của dự án và phiên bản
của ngôn ngữ được sử dụng
Các bước tạo dự án Spring boot với Spring initializr:
Bước1 Khai báo thông tin dự án
Loại project: là chọn loại package manager nào, Maven hoặc Gradle
Language: chọn ngôn ngữ code, chọn Java
Phiên bản Spring Boot: Các version có SNAPSHOT là bản chưa ổn định, không nên chọn
Loại file build ra: với Spring Boot thì nên chọn JAR để đỡ cấu hình Tomcat server
Phiên bản Java: chọn phiên bản java theo phiên bản đã được cấu hình trong máy tính của mình
Bước 2 Chọn dependency
Click vào Add Dependencies
Chọn dependencies cần thiết cho dự án
Trang 1610
Đây là một số dependencies cơ bản để tạo một dự án web spring boot
Trang 17Bước 3: Chọn GENERATE để tạo và download dự án về máy
Trang 18
12 Bước 4: Giải nén file vừa tải về
Đây là thư mục dự án Spring boot
Trang 191.2.4 Chạy dự án Spring boot đơn giản trên Eclipse
Bước 1: Cài đặt Spring tool
Để chạy được dự án Spring boot trên Eclipse, trước tiên chúng ta cần cài đặt Spring tool
Tại giao diện Eclipse Chọn Help -> Eclipse MarketPlace
Tìm kiếm Spring tool -> chọn install, nếu màn hiển hiển thị Installed có nghĩa là Spring tool đã được cài đặt
Trang 2014 Bước 2: Import dự án Spring boot
Chọn file -> Import
Trang 21 Chọn Maven -> Existing Maven Projects
Chọn Next
Chọn Browse và tìm đến folder dự án
Trang 2216
Chọn Select Folder -> Chọn Finish
Đây là cấu trúc thư mục của dự án
Bước 3: Chạy dự án Spring boot
Spring boot cung cấp một ApplicationClass để khởi động ứng dụng từ hàm main()
sử dụng phương thức static SpringApplication.run, anotation
@SpringBootApplication giúp chương trình hiểu rằng đây là nơi khởi chạy ứng dụng
Trang 23 Để chạy dự án Spring boot, click chuột phải vào dự án -> chọn Run as -> Chọn Spring boot app
Trang 2418
Build thành công, dự án chạy tại cổng 8080
Truy cập http://localhost:8080/ , đây là kết quả
Trang 251.2.5 Các thành phần trong một dự án Spring boot thực tế
Cấu trúc dự án
Hình 4 Cấu trúc thư mục một sự án Spring thực tế
Src/main/java là nơi chứa các package viết các class mã nguồn java
+ Src/main/resources là nơi chứa các file html, css, javascript để hiển thị lên giao diện website, trong đồ án này em sử dụng Angular
+ Application.properties: Nơi cấu hình dự án, trong đó có cấu hình để kết nối với cơ sở dữ liệu
Trang 26 Controller: nơi viết các api xử lý, điều khiển luồn hoạt động của chương trình
Ví dụ: Đây là lớp sẽ sử lý những request từ client mà có uri bắt đầu bằng “/api”,
+ @RestController và @RequestMapping là anotation của Spring boot giúp
cho chương trình nhận biết đây là lớp xử lý khi có bất cứ request nào từ
Client mà có URI bắt đầu là “/api”
+ Trong lớp NhanVienController còn có nhiều phương thức để xử lý từng
request có URI cụ thể hơn, ví dụ như:
Trang 27+ Đây là 2 phương thức để xử lý request tới 2 URI là “/api/nhan-vien” và
“api/nhan-vien/{id}”, bên trong là các hàm xử lý và trả về giá trị với từng request cụ thể của client
+ @RequestBody là anotation giúp cho chương trình hiểu đây là dữ liệu từ client gửi về phía server
Model: chứa các class tương ứng với từng bảng trong cơ sở dữ liệu, sử dụng Hibernate để mapping Object trong java với Table trong cơ sở dữ liệu
Ví dụ: Tạo class NhanVien mapping với bảng nhan_vien trong sơ sở dữ liệu
+ @Id: Anotation quy định thuộc tính này là khóa chính
+ @GeneratedValue: Anotation quy định giá trị của cột này trong cơ sở dữ liệu sẽ được tạo tự động khi thêm bản ghi mới
+ @Column: Anotation quy định thuộc tính này được map tương ứng với cột nào của bảng
Service: chứa các class service để truy xuất, thao tác với dữ liệu trong cơ sở dữ liệu
Ví dụ: tạo class NhanVienService để thao tác với bảng nhân viên trong cơ sở dữ liệu
Trang 2822 + @Service: Anotation quy định đây là một class service của spring boot
Trang 291.3 Giới thiệu về Angular
2 tính năng nổi bật của Angular là Data binding và Dependency injection có thể loại bỏ phần lớn code mà người lập trình thường xuyên phải viết Điều này xảy
ra trong mọi trình duyệt và giúp nó trở thành đối tác lý tưởng của mọi công nghệ Server
Có thể tái sử dụng component dễ dàng hơn
Hỗ trợ cho các lập trình viên có thể viết code được ít hơn với nhiều chức năng hơn
Có thể chạy Angular trên nhiều loại trình duyệt khác nhau lẫn PC hoặc mobile
Nhược điểm:
Bảo mật kém: Thông thường, bản chất của Angular là một trong những các Front End, mà front end này thường vốn không thể bảo mật bằng Back End
Trang 311.3.2 Kiến trúc của Angular
Hình 5 Kiến trúc cơ bản của angular
Trang 32Directive được sử dụng trong template của Component nhằm để mở rộng các hành
vi của Html
Databinding
Dữ liệu có thể được hiển thị tương ứng với các file html trong component Angular cung cấp cơ chế gắn kết dữ dữ liệu với giao diện (template) của component cơ chế đó được gọi là databinding
Thông qua cơ chế Databinding, bất kỳ thay đổi dữ liệu trong Angular, thì giao điện tương tác sẽ tự động cập nhật các thay đổi dữ liệu đó Tương tác về sự thay đổi dữ liệu trong Angular với phía giao diện (UI) có thể theo hướng 1 chiều hoặc
2 chiều
Trang 331.4 Giới thiệu về Hibernate Framework
1.4.1 Hibernate Framework là gì?
Hibernate là 1 ORM(Object – Relational – Mapping) Framework Nó dùng để
thực hiện mapping cơ sở dữ liệu quan hệ sang các Object trong phần ngôn ngữ hướng đối tượng
Hibernate là một Framework cho persistence layer thực hiện giao tiếp giữa các
tầng dữ liệu với các phần ứng dụng như kết nối, truy xuất, lưu trữ Nó là một kỹ thuật ORM mã nguồn mở, gọn nhẹ Hibernate hỗ trợ các API để lưu trữ và lấy các đối tượng java trực tiếp từ database
Hibernate được ra mắt vào năm 2001 do nhà sáng lập có tên Gavin King đưa ra
Nó giống như một sự thay thế cho EJB2 kiểu thực hể bean Hiện nay, phiên bản mới nhất của Hibernate là 6.0
Hình 6 Sơ đồ ánh xạ đối tượng vào dữ liệu được lưu trong cơ sở dữ liệu
Ưu điểm:
Là Framework mã nguồn mở
Dễ sử dụng: dễ dàng quản lí các kết nối database và dễ fix bug, cung cấp sẵn nhiều API truy vấn
Sử dụng đầy đủ các hàm truy vấn từ dạng object tới native Sql
Tính độc lập: không cần quan tâm tới cơ sở dữ liệu sử dụng khi viết câu lệnh SQL
Trang 341.4.2 Kiến trúc của Hibernate
Kiến trúc Hibernate bao gồm nhiều đối tượng như đối tượng persistent, sessionfactory, transactionfactory, connection factory, session,transaction
Có 4 tầng trong kiến trúc hibernate đó là java application, hibernate framework, tầng backend API và database Dưới đây là sơ đồ kiến trúc hibernate:
Hình 7 Kiến trúc của Hibernate
Hibernate cung cấp các API Java hiện có, như JDBC, Java Transaction API (JTA)
và Java Naming and Directory Interface (JNDI) JDBC cung cấp một mức độ trừu tượng cơ sở của các chức năng thường dùng trên CSDL quan hệ, cho phép
Trang 35hầu hết các cơ sở dữ liệu có trình điều khiển JDBC được hỗ trợ bởi JDBC Driver JNDI và JTA cho phép Hibernate được tích hợp với J2EE application servers
Trang 36 Công ty chuyên cung cấp các dịch vụ CNTT chuyên nghiệp, tư vấn các giải pháp chiến lược về CNTT, tích hợp hệ thống và gia công phần mềm
Sơ đồ tổ chức bộ máy:
Hình 8 Sơ đồ tổ chức bộ máy công ty
Giám đốc: Là người có quyền hạn cao nhất, quyết định các vấn đề liên quan
đến công việc hàng ngày và những hoạt động của công ty, là người chịu trách nghiệm trước nhà nước, trước tập thể cán bộ nhân viên trong công ty
Phòng hành chính nhân sự: Chịu trách nhiệm về việc tổ chức, quản lý nhân
sự và công tác tuyển dụng, thay đổi nhân sự Xây dựng các quy chế làm việc, quy chế tiền lương, khen thưởng, kỷ luật
Phòng hệ thống: Chịu trách nhiệm về việc quản lý hạ tầng công nghệ thông
tin của công ty, gồm: kết nối internet, wifi, các ứng dụng, máy chủ, database, Đảm bảo hệ thống mạng, các thiết bị kỹ thuật hoạt động ổn định, an toàn
Trang 37 Phòng kinh doanh: Chịu trách nhiệm về mảng kinh doanh, tìm kiếm, thu hút
khách hàng
Phòng phát triền phần mềm: Có nhiệm vụ đưa ra các giải pháp, quy trình
phát triển phần mềm cho khách hàng Phân tích và xác nhận các yêu cầu từ phía khách hàng Trực tiếp tham gia nghiên cứu, thiết kế, lập trình, tạo ra sản phẩm theo dự án
Quy mô: khoảng 30 cán bộ, nhân viên
Hình thức quản lý nhân sự hiện tại:
Dữ liệu về thông tin của nhân viên sẽ được người quản lý nhân sự nhập và quản lý trên Excel
Việc chấm công, tính lương phải thực hiện nhiều thao tác thủ công để tính toán dễ gây sai sót
Nhược điểm:
Cần nhiều thao tác thủ công làm tốn thời gian, công sức, dễ gây sai sót
Tìm kiếm, xử lý dữ liệu chậm
Khả năng mở rộng thấp
Hướng phát triển hiện tại: Cần xây dựng một phần mềm để:
Quản lý thông tin cán bộ nhân viên trong công ty, gồm các thông tin: mã nhân viên, họ tên, ngày sinh, CMND, giới tính, quê quán, địa chỉ hiện tại, lương cơ bản, chức vụ, phòng ban, số điện thoại, email, học vấn, thông tin sơ yếu lý lịch,
Quản lý chấm công, tính lương tự động cho nhân viên
Nhân viên có thể truy cập vào hệ thống để cập nhật một số thông tin của mình
Trang 3832
2.2 Hoạt động của hệ thống
2.2.1 Hoạt động quản lý thông tin nhân viên
Khi có nhân viên mới vào làm việc tại công ty, người quản lý nhân sự sẽ nhập thông tin nhân viên theo hồ sơ của nhân viên lên hệ thống
Người quản lý nhân sự, giám đốc có thể tạo tài khoản và cấp cho nhân viên mới
để người đó có thể truy cập vào hệ thống và có thể tự cập nhật một số thông tin của mình khi cần thiết
Người quản lý nhân sự, giám đốc có thể cập nhật thông tin nhân viên, xóa thông tin nhân viên khỏi hệ thống
Mỗi nhân viên chỉ được phép sử dụng một số chức năng nhất định được giới hạn theo phân quyền tài khoản của mình
2.2.2 Hoạt động chấm công, tính lương
Dữ liệu chấm công theo từng ngày của nhân viên sẽ được lưu vào máy chấm công bằng vân tay, người quản lý nhân sự có thể xuất dữ liệu chấm công từ máy chấm công ra 1 file Excel và Import, nhập dữ liệu vào hệ thống
Mỗi cuối tháng, người quản lý nhân sự sẽ dựa vào dữ liệu chấm công từng ngày
để thống kê tổng số công, số ngày nghỉ, số giờ làm thêm của nhân viên và thực hiện tính lương cho từng nhân viên
Những ngày nghỉ lễ sẽ vẫn được tính công như bình thường
Số ngày tính công tối đa mỗi tháng là 24
Thời gian làm việc một ngày từ 8h đến 17h30(bao gồm 1h30p nghỉ trưa), làm việc sau 18h30 sẽ được tính vào giờ làm thêm
Phạt tiền theo số ngày đi muộn: 2 ngày đi muộn: -50k ; 3 ngày đi muộn: -100k;
4 ngày đi muộn: -200k, từ 5 ngày trở lên: -500k
Cách tính lương:
Lương làm thêm giờ = lương cơ bản/24/8 * số giờ làm thêm
Trang 39 Lương tổng = lương cơ bản/24 * số ngày công + Lương làm thêm giờ + thưởng – khấu trừ (chưa bao gồm thuế thu nhập cá nhân)
2.2.3 Tài liệu thu thập được
Mẫu bảng thống kê chấm công:
Hình 9 Mẫu thống kê bảng chấm công tháng
Trang 4034
Mẫu sơ yếu lý lịch của nhân viên