Các chức năng cần xây dựng trong hệ thống:

Một phần của tài liệu Xây dựng hệ thống quản lý phương tiện vận tải (khóa luận tốt nghiệp) (Trang 49)

4.1.1.1 Quản trị vai trò người dùng:

- Xem danh sách các vai trò hiện có trong hệ thống.

- Xây dựng danh mục các quyền truy cập có trong hệ thống.

- Xây dựng chức năng thêm mới, chỉnh sửa vai trò người dung như: tên vai trò, phần phối các quyền truy cập tương ứng với vai trò.

4.1.1.2 Quản trị người dùng

- Xem danh sách người có trong hệ thống, có chức năng phân trang khi dữ liệu lớn, cho phép xuất file excel danh sách người dung khi cần thiết.

- Xây dựng chức năng thêm mới, chỉnh sửa thông tin người dùng gồm các thông tin: Họ tên, địa chỉ, số điện thoại, vai trò, cơ cấu tổ chức.

- Xem thông tin chi tiết của người dùng.

- Cho phép tìm kiếm người dùng theo vai trò, quyền truy cập, họ tên của người dùng.

4.1.1.3 Quản trị giờ làm việc

- Xem danh sách giờ làm việc của tenant.

- Xây dựng chức năng thêm mới, chỉnh sửa giờ làm việc gồm các thông tin: giờ bắt đầu, giờ kết thúc làm việc.

4.1.1.4 Quản trị xe

49

- Xây dựng chức năng thêm mới, chỉnh sửa thông tin xe gồm các thông tin: biển số xe, tên xe, nhà cung cấp, ngày nghỉ, giờ làm việc, số km/tháng, phí cơ bản, phí ngoài giờ, phí ngày lễ, phí vượt km, phí lưu đêm, tài xế, trạng thái xem người dùng chính.

- Xây dựng chức năng tìm kiếm theo tên xe, số xe, số điện thoại tài xế, nhà cung cấp xe.

Cho phép xuất file excel khi cần thiết.

4.1.1.5 Quản trị ngày lễ/tết

- Xây dựng chức năng xếp mới ngày lễ/tết theo thông tin: tên, mô tả, ngày bắt đầu, ngày kết thúc. Ngày lễ/tết trong hệ thống được sử dụng để tính các chi phí cho tài xế khi làm việc vào những ngày này.

- Xem danh sách các ngày lễ/tết, cho phép xóa ngày lễ/tết trên danh mục.

4.1.1.6 Quản trị phương tiện vận tải

- Xây dựng danh sách các yêu cầu điều động xe và có chức năng phân trang với dữ liệu lớn.

- Xây dựng danh sách các yêu cầu điều động xe dưới dạng lịch. Cho phép xem danh sách theo dòng thời gian, ngày, tháng, năm.

- Xây dựng chức năng thêm mới, chỉnh sửa yêu cầu điều động với các thông tin: địa điểm đón, địa điểm thả xuống, người yêu cầu, mục đích yêu cầu, thời gian sử dụng, xe được điều động.

- Cho phép tra cứu thông tin yêu cầu điều động theo tên xe, số xe, tài xế, người yêu cầu, ngày yêu cầu.

- Cho phép xem thông tin chi tiết của một yêu cầu điều động. - Xây dựng chức năng xem lộ trình di chuyển của phương tiện.

4.1.1.7 Quản trị báo cáo

- Xây dựng chức năng xuất báo cáo, cho phép xuất file excel theo thời gian và xe.

50

4.1.2 Phân hệ tài xế

4.1.2.1 Danh sách yêu cầu điều động

- Xem danh sách các yêu cầu điều động của xe do tài xế quản lý, có chức năng phân trang với dữ liệu lớn.

- Cho phép cập nhật yêu cầu điều động gồm các thông tin: Thời gian thực đi, số km bắt đầu, số km kết thúc.

- Xây dựng chức năng xem lộ trình di chuyển của yêu cầu điều động

4.1.2.2 Báo cáo

- Xây dựng chức năng xuất file báo cáo chi tiết các yêu cầu của xe do tài xế quản lý theo thời gian.

4.1.3 Phân hệ người dùng 4.1.4.1 Yêu cầu điều động xe 4.1.4.1 Yêu cầu điều động xe

- Xây dựng chức năng tạo yêu cầu điều động, gợi ý vị trí điều động dựa trên thông tin nhập vào.

- Xây dựng chức năng xuất báo cáo, cho phép xuất file excel theo thời gian và xe.

4.1.4.2 Báo cáo

- Xây dựng chức năng xuất file báo báo chi tiết. - Xây dựng chức năng báo cáo chi phí

4.2Xây dựng hệ thống quản lý phương tiện vận tải:

Qua việc tìm hiểu và nghiên cứu các bộ thư viện, framework hỗ trợ xây dựng Website, nhóm quyết định lựa chọn Angular kết hợp với Asp.net core làm nền tảng xây dựng Website.

Angular cung cấp một cấu trúc rõ ràng để xây dựng từng tính năng cho ứng dụng của bạn. Các dependency mạnh mẽ được sử dụng trong ứng dụng khi cần thiết, và khi cần tích hợp bất kì dependency nào, như HTTP hay Router, chúng ta chỉ cần thêm nó vào bên trong constructor của class.

51

Mô hình MVVM cũng giúp Angular chiếm lợi thế trong xây dựng ứng dụng client-side, thường ta sẽ có 3 điều cần quan tâm chính: đó là giao diện người dùng, mã nguồn điều khiển giao diện và mô hình dữ liệu (data) cho giao diện.

Angular được viết bằng Typescript trên nền tảng Javascript nên nếu đã biết về JS thì tiếp cận với Angular rất dễ dàng. Project Angular của framework tích hợp sẵn thư viện Primeface để viết Html nhanh hơn.

Angular với MVVM phân biệt hoàn toàn rõ ràng các yếu tố trên nhờ mô hình MVVM:

Phần giao diện (view) được định nghĩa trong một template bao hàm html dành cho một component nhất định. Template có thể là toàn bộ Layout hoặc bất cứ mảnh ghép nào trong Layout đó.

Model được định nghĩa như là các thuộc tính của component class. Có thể hiểu là dữ liệu, dựa vào đó để phần View sử dụng để thực thi.

View/model là class quản lý cả view cũng như model. Là phần code sẽ xử lý việc truy xuất dữ liệu, đồng thời thực thi các tương tác của người dùng trên view.

Với việc ứng dụng các điểm tích cực của các thành phần trên, Angular khiến việc phát triển ứng dụng trở nên dễ dàng và hiệu quả hơn.

Sơ đồ hoạt động của Asp.net core và Angular

52

Một project Angular sẽ được thiết kế để có thể triển khai một cách riêng biệt so với phần backend của Asp.net core, khi được triển khai đây thực sự là một ứng dụng HTML+CSS đơn giản có thể phục vụ trên mọi hệ điều hành và mọi máy chủ web.

Angular Solution

Hình 4.2 Sơ đồ Angular solution

Root chịu trách nhiệm Bootstrap ứng dụng.

- AccountModule cung cấp các phương thức đăng nhập, đăng ký, xác thực hai yếu tố, quên mật khẩu…

- AppModule chứa hai thành phần con Main và Admin trong đó:

● AdminModule: chứa các thành phần phục vụ quản trị website như Người dùng, quyền, đa ngôn ngữ, cài đặt…

● MainModule: là nơi chứa các component phát triển ứng dụng

4.3Thiết kế hệ thống:

4.3.1 Thiết kế Cơ sở dữ liệu cho hệ thống:

Bởi hệ thống sẽ xây dựng theo kiến trục Multitenancy chính vì vậy các bảng dữ liệu trong hệ thống đều có trường Tenant_Id, trường dữ liệu này sẽ giúp chúng ta dễ dàng quản lý dữ liệu đối với các tenant khác nhau.

Danh sách các ý nghĩa các tiền tố của các phân hệ trong CSDL:

STT Tiền tố Ý nghĩa Ghi chú

1 DM_ Phân hệ các trường danh mục chung 2 SYS_ Các bảng liên quan đến hệ thống

53

Danh sách các bảng dữ liệu trong hệ thống quản trị:

STT Tên bảng Ý nghĩa Ghi

chú 1 SYS_CarType Bảng lưu trữ thông tin các loại xe quản lý 2 SYS_CodeMasters Bảng lưu trữ thông tin các trường khởi tạo ID tự động

3 SYS_Prefix Lưu trữ các tiền

tố của ID của các bảng để phát sinh tự động

4 SYS_Schedule Bảng lưu trữ

thông tin thời gian sử dụng xe

5 SYS_WorkHour Bảng lưu trữ

thông tin giờ làm việc hành chính của xe 6 DM_Booking Bảng lưu trữ thông tin đặt xe của user 7 DM_Car Bảng lưu trữ thông tin xe

54

8 DM_Holiday Bảng lưu trữ

thông tin ngày lễ 9 DM_MileageHistory Bảng lưu trữ các thông tin số kilometres đầu cuối của xe 10 DM_Vendor Bảng lưu trữ

thông tin danh mục nhà cung cấp xe

Bảng 5 Danh sách các bảng dữ liệu của các phân hệ

4.3.2 Mô hình thiết kế cơ sở dữ liệu

55

4.3.3 Mô tả chi tết cơ sở dữ liệu

AbpTenants

Giá trị Kiểu dữ liệu Mô tả

Id INT Khóa chính

CreationTime DATETIME2 Ngày tạo

CreatorUserId BIGINT User tạo

DeleterUserId BIGINT User xóa

DeletionTime DATETIME2 Thời gian xóa

IsActive BIT Trạng thoái hoạt động

IsDeleted BIT Trạng thái xóa

LastModificationTime DATETIME2 Thời gian chỉnh sửa cuối LastModifierUserId BIGINT User chỉnh sửa cuối

Name NVARCHAR Tên hiển thị Tenant

TenancyName NVARCHAR Tên Tenant

Bảng 6 Bảng thông tin tenant AbpUsers

Giá trị Kiểu dữ liệu Mô tả

Id BIGINT ID User

CreationTime DATETIME2 Thời gian tạo User

CreatorUserId BIGINT ID User tạo

DeleterUserId BIGINT ID User xóa

DeletionTime DATETIME2 Thời gian xóa

EmailAddress NVARCHAR Địa chỉ Email

56

isDeleted BIT Trạng thái xóa của User

LastModificationTime DATETIME2 Thời gian chỉnh sửa lần cuối LockoutEndDateUtc DATETIME2 Thời gian User bị khóa

Name NVARCHAR Tên User

Password NVARCHAR Mật khẩu User

PhoneNumber NVARCHAR Số điện thoại User

Sumname NVARCHAR Họ User

TenantId BIGINT Id Tenant của User

UserName NVARCHAR Tên đăng nhập User

Bảng 7 Bảng thông tin người dùng

AbpRoles

Giá trị Kiểu dữ liệu Mô tả

Id BIGINT ID định danh của nhóm quyền

CreationTime DATETIME2 Thời gian tạo nhóm quyền

CreatorUserId BIGINT ID User tạo nhóm quyền

DeletionTime DATETIME2 Thời gian xóa nhóm quyền DisplayName NVARCHAR Tên nhóm quyền hiển thị

isDeleted BIT Trạng thái xóa của nhóm quyền

LastModificationTime DATETIME2

Thời gian chỉnh sửa lần cuối của nhóm quyền

LastModifierUserId BIGINT

ID User chỉnh sửa lần cuối của nhóm quyền

TenantId BIGINT ID Tenant của nhóm quyền

57

AbpUserRoles

Giá trị Kiểu dữ liệu Mô tả

Id BIGINT ID định danh quyền và người dùng

CreatorUserId BIGINT ID người dùng tạo quyền

RoleId BIGINT ID nhóm quyền

TenantId BIGINT ID Tenant

UserId BIGINT ID định danh của người dùng

Bảng 9 Bảng quyền người dùng AbpLanguages

Giá trị Kiểu dữ liệu Mô tả

Id INT ID định danh của ngôn ngữ

CreationTime DATETIME2 Thời gian tạo ngôn ngữ CreatorUserId DATETIME2 ID người dùng tạo ngôn ngữ DeleterUserId BIGINT ID người dùng xóa ngôn ngữ DeletionTime DATETIME2 Thời gian xóa ngôn ngữ DisplayName NVARCHAR Tên ngôn ngữ hiển thị

Icon NVARCHAR Hình ảnh Icon hiển thị

IsDeleted BIT Trạng thái xóa của ngôn ngữ

LastModificationTime DATETIME2 Thời gian chỉnh sửa lần cuối ngôn ngữ LastModifierUserId BIGINT ID user chỉnh sửa ngôn ngữ lần cuối

Name NVARCHAR Tên ngôn ngữ

TenantId INT ID Tenant sử dụng ngôn ngữ

IsDisabled BIT

Trạng thái không hoạt động của ngôn ngữ

58

AbpLanguageTexts

Giá trị Kiểu dữ liệu Mô tả

Id BIGINT ID định danh văn bản ngôn ngữ

CreationTime DATETIME2 Thời gian tạo văn bản của ngôn ngữ CreatorUserId BIGINT ID người dùng tạo văn bản ngôn ngữ

[Key] NVARCHAR Từ khóa văn bản ngôn ngữ

LanguageName NVARCHAR Tên loại ngôn ngữ

LastModificationTime DATETIME2 Thời gian chỉnh sửa lần cuối LastModifierUserId BIGINT ID người dùng chỉnh sửa lần cuối

TenantId INT ID Tenant sử dụng văn bản ngôn ngữ

Value NVARCHAR Giá trị thể hiện của ngôn ngữ

Bảng 11 Bảng văn bản ngôn ngữ

DM_Car

Giá trị Kiểu dữ liệu Mô tả

Id NVARCHAR ID định danh xe

TenantId INT ID Tenant sử dụng xe

CarName NVARCHAR Tên xe

DriverId BIGINT ID tài xế sử dụng xe

CarPlate NVARCHAR Biển số xe

MileagePerMonth BIGINT Số kilometres xe chạy hàng tháng

Basicfee BIGINT Phí cơ bản của xe

OverTimeFee BIGINT Phí xe chạy ngoài giờ làm việc

59

OverMileageFee BIGINT

Phí xe khi chạy vượt số kilometes hàng tháng

OverNightFee BIGINT Phí qua khi xe chạy qua đêm CreationTime DATETIME2 Thời gian tạo xe

CreatorUserId BIGINT ID người dùng tạo xe

LastModificationTime DATETIME2

Thời gian lần cuối chỉnh sửa thông tin xe

LastModifierUserId BIGINT

ID người dùng lần cuối chỉnh sửa thông tin xe

IsDeleted BIT Trạng thái xóa của xe

DeleterUserId BIGINT ID người dùng xóa xe

DeletionTime DATETIME2 Thời gian xóa xe

MainUserId BIGINT ID người dùng chính của xe

VendorId BIGINT ID nhà cung cấp xe

CarTypeId BIGINT ID loại xe

WorkHourId BIGINT ID loại thời gian hoạt động của xe

IsActive BIT Trạng thái hoạt động của xe

UserId NVARCHAR

Danh sách người dùng được phép điều động xe

Bảng 12 Bảng thông tin xe

DM_Vendor

Giá trị Kiểu dữ liệu Mô tả

Id NVARCHAR ID định danh nhà cung cấp xe

60

VendorName NVARCHAR Tên nhà cung cấp xe

Address NVARCHAR Địa chỉ nhà cung cấp xe

Introduction NVARCHAR Mô tả về nhà cung cấp xe CreationTime DATETIME2 Thời gian tạo nhà cung cấp xe CreatorUserId DATETIME2 ID người dùng tạo nhà cung cấp xe

Bảng 13 Bảng thông tin nhà cung cấp xe SYS_WorkHour

Giá trị Kiểu dữ liệu Mô tả

Id BIGINT ID loại giờ làm việc của xe

StartTime TIME Thời gian bắt đầu làm việc trong ngày

EndTime TIME Thời gian kết thúc làm việc trong ngày

Bảng 14 Bảng thông tin thời gian làm việc trong hệ thống SYS_CarType

Giá trị Kiểu dữ liệu Mô tả

Id BIGINT ID loại xe theo ngày làm việc

WorkingDay NVARCHAR Ngày làm việc của xe

MaxDayOfTheMonth INT Số ngày làm việc trong tháng

DayOff NVARCHAR Ngày nghỉ trong tuần

Bảng 15 Bảng thông tin giờ làm việc của xe

DM_Booking

Giá trị Kiểu dữ liệu Mô tả

Id NVARCHAR ID định danh phiếu điều động xe

TenantId INT ID Tenant phiếu điều động xe

61

CreationTime DATETIME2 Thời gian tạo phiếu điều động xe CreatorUserId BIGINT ID người dùng tạo phiếu điều động xe

IsDeleted BIT Trạng thái xóa của phiếu điều động

DeleterUserId BIGINT ID người dùng xóa phiếu điều động DeletionTime DATETIME2 Thời gian xóa phiếu điều động VehicleUserId BIGINT ID người dùng sử dụng xe

Usage NVARCHAR Mục đích sử dụng xe

NumberOfNights INT Số lần qua đêm

DropOffId NVARCHAR ID vị trí đón

PickUpId NVARCHAR ID vị trí trả khách

Bảng 16 Bảng thông tin điều đồng động xe AD_Location

Giá trị Kiểu dữ liệu Mô tả

ID NVARCHAR ID vị trí

x REAL Vĩ độ của vị trí

y REAL Kinh độ của vị trí

Label NVARCHAR Mô tả vị trí

Bảng 17 Bảng thông tin vị trí xe SYS_Schedule

Giá trị Kiểu dữ liệu Mô tả

StartDate DATETIME2 Thời gian đón khách

EndDate DATETIME2 Thời gian trả khách

BookingId NVARCHAR ID phiếu điều động

62

AD_DetailedSchedule

Giá trị Kiểu dữ liệu Mô tả

Id INT ID chi tiết phiếu điều động

BookingId NVARCHAR ID phiếu điều động

StartTime DATETIME2 Thời gian tài xế khởi hành

EndTime DATETIME2 Thời gian tài xế đến nơi

Note NVARCHAR Ghi chú

Bảng 19 Bảng chi tiết phiếu điều động xe

AD_TripInformation

Giá trị Kiểu dữ liệu Mô tả

OriginalMileage BIGINT Số kilometres tài xế nhập lúc khởi hành AfterJourneyMileage BIGINT Số kilometres tài xế nhập lúc trả khách

StartDate DATIME2 Thời gian tài xế đón khách

EndDate DATIME2 Thời gian tài xế trả khách

TollAndParkingFee BIGINT Phí đỗ xe

Note NVARCHAR Ghi chú

TripInformationId NVARCHAR ID phiếu điều động

NumberOfNights INT Số lần chạy qua đêm

TotalMileage BIGINT Tổng số kilometres theo dữ liệu tài xế

TotalMileageByMap BIGINT

Tổng số kilometres theo dữ liệu từ hộp đen

63 DM_Holiday

Giá trị Kiểu dữ liệu Mô tả

Id NVARCHAR ID định danh ngày lễ

TenantId INT ID Tenant áp dụng ngày lễ

HolidayName NVARCHAR Tên ngày lễ

StartDayOff DATETIME2 Thời gian bắt đầu ngày lễ EndDayOff DATETIME2 Thời gian bắt đầu ngày lễ CreatorUserId BIGINT ID người dùng tạo ngày lễ CreationTime DATETIME2 Thời gian tạo ngày lễ

IsDeleted BIT Thời gian xóa ngày lễ

DeleterUserId BIGINT ID người dùng xóa ngày lễ HolidayDescription NVARCHAR Mô tả về ngày lễ

Bảng 21 Bảng thông tin ngày lễ 4.4Hiện thực các chức năng trên Framework đã xây dựng: 4.4.1 Tổng quan hệ thống:

Các chức năng của từng phân hệ sẽ được xây dựng trên nền tảng Framework đã xây dựng. Kiến trúc chương trình của hệ thống sẽ được xây dựng như sau:

- Các Module chức năng trên giao diện: Các module giao diện ứng với từng phân hệ trong hệ thống quản trị

- Web API: Chứa các Controller xử lý nghiệp vụ với từng phân hệ, các lớp ánh xạ dữ liệu trong Views và ViewModels giữa giao diện quản trị và Cơ sở dữ liệu

- Cơ sở dữ liệu: Chứa các bảng lưu dữ liệu của các phân hệ đã phân tích như trên

64

Hình 4.4 Kiến trúc chương trình cho hệ thống quản trị các Tenant 4.4.2 Xây dựng Framework chuẩn cho hệ thống:

4.4.2.1 Áp dụng .Net Core và Design Pattern vào Framework Back-end của hệ thống

Một phần của tài liệu Xây dựng hệ thống quản lý phương tiện vận tải (khóa luận tốt nghiệp) (Trang 49)