You are on page 1of 646

CÔNG TY CỔ PHẦN HỆ THỐNG CÔNG NGHỆ ETC

TÀI LIỆU THIẾT KẾ HỆ THỐNG


Dự án: Nâng cấp hệ thống Cơ sở dữ liệu xử lý vi phạm

Mã tài liệu BCA-C08_XLVP_2023_DD

Phiên bản 1.0

Lần ban hành

Ngày ban hành

Hà Nội, <năm>
Tài liệu thiết kế hệ thống V1.0

BẢNG GHI NHẬN THAY ĐỔI TÀI LIỆU

Ngày thay đổi Lý do Mục sửa đổi Mô tả thay đổi Phiên bản mới

24/03/2023 Tạo mới V1.0

BCA-C08_XLVP_2023_DD Internal use Trang 2


Tài liệu thiết kế hệ thống V1.0

TRANG KÝ
ETC:
Người lập: <Họ tên>_____________________ Ngày _________________
<Chức danh>

Người kiểm tra: <Họ tên>_____________________ Ngày _________________


<Chức danh>

Người phê duyệt: <Họ tên>_____________________ Ngày _________________


<Chức danh>

Khách hàng:

Người kiểm tra: <Họ tên>_____________________ Ngày _________________


<Chức danh>

Người phê duyệt: <Họ tên>_____________________ Ngày _________________


<Chức danh>

BCA-C08_XLVP_2023_DD Internal use Trang 3


Tài liệu thiết kế hệ thống V1.0

MỤC LỤC

I. TỔNG QUAN TÀI LIỆU............................................................................................................2


I.1. Mục đích tài liệu....................................................................................................................2
I.2. Phạm vi tài liệu......................................................................................................................2
I.3. Tài liệu liên quan...................................................................................................................2
I.4. Thuật ngữ và các từ viết tắt...................................................................................................2
II. NỘI DUNG.................................................................................................................................2
II.1. Danh mục căn cứ..................................................................................................................2
II.1.1. Mục đích........................................................................................................................2
II.1.2. Chi tiết từng mục...........................................................................................................2
II.1.2.1. Thiết kế dữ liệu.....................................................................................................2

II.1.2.1.1. Mô hình quan hệ dữ liệu....................................................................2


II.1.2.1.2. Danh sách các bảng và mô tả.............................................................2
II.1.2.1.3. Chi tiết các bảng................................................................................2
II.1.2.2. Thiết kế màn hình.................................................................................................2

II.1.2.2.1. Màn hình xem danh sách, tìm kiếm căn cứ........................................2
II.1.2.2.2. Thêm mới căn cứ...............................................................................2
II.1.2.2.3. Chỉnh sửa căn cứ................................................................................2
II.1.2.2.4. Xem chi tiết căn cứ............................................................................2
II.1.2.3. Thiết kế các hàm, thủ tục......................................................................................2

II.1.2.3.1. Lấy danh sách và tìm kiếm căn cứ.....................................................2


II.1.2.3.2. Thêm mới căn cứ...............................................................................2
II.1.2.3.3. Chỉnh sửa căn cứ................................................................................2
II.1.2.3.4. Xem chi tiết căn cứ............................................................................2
II.1.2.3.5. Export Excel – Trả file Excel chứa danh sách căn cứu lọc theo nhiều
tiêu chí................................................................................................................ 2
II.1.2.3.6. Xóa căn cứ.........................................................................................2
II.2. Danh mục thông tư nghị định...............................................................................................2
II.2.1. Mục đích........................................................................................................................2

BCA-C08_XLVP_2023_DD Internal use Trang 4


Tài liệu thiết kế hệ thống V1.0

II.2.2. Chi tiết từng mục...........................................................................................................2


II.2.2.1. Thiết kế dữ liệu.....................................................................................................2

II.2.2.1.1. Mô hình quan hệ dữ liệu....................................................................2


II.2.2.1.2. Danh sách các bảng và mô tả.............................................................2
II.2.2.1.3. Chi tết các bảng.................................................................................2
II.2.2.2. Thiết kế màn hình.................................................................................................2

II.2.2.2.1. Xem danh sách, tìm kiếm danh mục thông tư nghị định....................2
II.2.2.2.2. Thêm mới danh mục thông tư nghị định............................................2
II.2.2.2.3. Chỉnh sửa danh mục thông tư nghị định............................................2
II.2.2.2.4. Xem chi tiết danh mục thông tư nghị định.........................................2
II.2.2.3. Thiết kế các hàm, thủ tục......................................................................................2

II.2.2.3.1. Lấy danh sách và tìm kiếm thông tư nghị định..................................2


II.2.2.3.2. Thêm mới thông tư nghị định............................................................2
II.2.2.3.3. Chỉnh sửa thông tư nghị định.............................................................2
II.2.2.3.4. Xem chi tiết thông tư nghị định.........................................................2
II.2.2.3.5. Export Excel – Trả file Excel chứa danh sách thông tư nghị định lọc
theo nhiều tiêu chí..............................................................................................2
II.2.2.3.6. Xóa thông tư nghị định......................................................................2
II.3. Danh mục văn bản pháp luật................................................................................................2
II.3.1. Mục đích........................................................................................................................2
II.3.2. Chi tiết từng mục...........................................................................................................2
II.3.2.1. Thiết kế dữ liệu.....................................................................................................2

II.3.2.1.1. Mô hình quan hệ dữ liệu....................................................................2


II.3.2.1.2. Danh sách các bảng và mô tả.............................................................2
II.3.2.1.3. Chi tiết các bảng................................................................................2
II.3.2.2. Thiết kế màn hình.................................................................................................2

II.3.2.2.1. Xem danh sách, tìm kiếm danh mục văn bản pháp luật.....................2
II.3.2.2.2. Thêm mới danh mục văn bản pháp luật.............................................2
II.3.2.2.3. Chỉnh sửa danh mục văn bản pháp luật..............................................2

BCA-C08_XLVP_2023_DD Internal use Trang 5


Tài liệu thiết kế hệ thống V1.0

II.3.2.2.4. Xem chi tiết danh mục văn bản pháp luật..........................................2
II.3.2.3. Thiết kế các hàm, thủ tục......................................................................................2

II.3.2.3.1. Tìm kiếm VBPL................................................................................2


II.3.2.3.2. Xem chi tiết VBPL............................................................................2
II.3.2.3.3. Thêm mới VBPL...............................................................................2
II.3.2.3.4. Sửa VBPL..........................................................................................2
II.3.2.3.5. Xóa VBPL.........................................................................................2
II.3.2.3.6. Thêm mới/sửa VBPL sửa đổi bổ sung...............................................2
II.3.2.3.7. Tìm kiếm VBPL sửa đổi bổ sung.......................................................2
II.3.2.3.8. Xóa VBPL sửa đổi bổ sung (đánh dấu trạng thái trong DB)..............2
II.3.2.3.9. Xóa VBPL sửa đổi bổ sung (xóa khỏi DB)........................................2
II.4. Danh mục nghề nghiệp.........................................................................................................2
II.4.1. Mục đích........................................................................................................................2
II.4.2. Chi tiết từng mục...........................................................................................................2
II.4.2.1. Thiết kế dữ liệu.....................................................................................................2

II.4.2.1.1. Mô hình quan hệ dữ liệu....................................................................2


II.4.2.1.2. Danh sách các bảng và mô tả.............................................................2
II.4.2.1.3. Chi tiết các bảng................................................................................2
II.4.2.2. Thiết kế màn hình.................................................................................................2

II.4.2.2.1. Màn hình xem danh sách, tìm kiếm nghề nghiệp...............................2
II.4.2.2.2. Thêm mới nghề nghiệp......................................................................2
II.4.2.2.3. Chỉnh sửa nghề nghiệp.......................................................................2
II.4.2.2.4. Xem chi tiết nghề nghiệp...................................................................2
II.4.2.3. Thiết kế các hàm, thủ tục......................................................................................2

II.4.2.3.1. Tìm kiếm danh sách nghề nghiệp.......................................................2


II.4.2.3.2. Thêm mới nghề nghiệp......................................................................2
II.4.2.3.3. Lấy thông tin nghề nghiệp.................................................................2
II.4.2.3.4. Sửa nghề nghiệp.................................................................................2
II.4.2.3.5. Xóa nghề nghiệp................................................................................2

BCA-C08_XLVP_2023_DD Internal use Trang 6


Tài liệu thiết kế hệ thống V1.0

II.4.2.3.6. Xuất excel danh sách nghề nghiệp.....................................................2


II.5. Danh mục tang vật, phương tiện, giấy tờ.............................................................................2
II.5.1. Mục đích........................................................................................................................2
II.5.2. Chi tiết từng mục...........................................................................................................2
II.5.2.1. Thiết kế dữ liệu.....................................................................................................2

II.5.2.1.1. Mô hình quan hệ dữ liệu....................................................................2


II.5.2.1.2. Danh sách các bảng và mô tả.............................................................2
II.5.2.1.3. Chi tiết các bảng................................................................................2
II.5.2.2. Thiết kế màn hình.................................................................................................2

II.5.2.2.1. Xem danh sách, tìm kiếm danh mục tang vật, phương tiện, giấy tờ...2
II.5.2.2.2. Thêm mới danh mục tang vật, phương tiện, giấy tờ...........................2
II.5.2.2.3. Chỉnh sửa danh mục tang vật, phương tiện, giấy tờ...........................2
II.5.2.2.4. Xem chi tiết danh mục tang vật, phương tiện, giấy tờ........................2
II.5.2.3. Thiết kế các hàm, thủ tục......................................................................................2

II.5.2.3.1. Lấy danh sách và tìm kiếm tang vật, phương tiện, giấy tờ.................2
II.5.2.3.2. Thêm mới tang vật, phương tiện, giấy tờ...........................................2
II.5.2.3.3. Chỉnh sửa tang vật, phương tiện, giấy tờ...........................................2
II.5.2.3.4. Xem chi tiết tang vật, phương tiện, giấy tờ........................................2
II.5.2.3.5. Export Excel......................................................................................2
II.5.2.3.6. Xóa tang vật, phương tiện, giấy tờ.....................................................2
II.6. Danh mục hành vi vi phạm..................................................................................................2
II.6.1. Mục đích........................................................................................................................2
II.6.2. Chi tiết từng mục...........................................................................................................2
II.6.2.1. Thiết kế dữ liệu.....................................................................................................2

II.6.2.1.1. Mô hình quan hệ dữ liệu....................................................................2


II.6.2.1.2. Danh sách các bảng và mô tả.............................................................2
II.6.2.1.3. Chi tiết các bảng................................................................................2
II.6.2.2. Thiết kế màn hình.................................................................................................2

II.6.2.2.1. Xem danh sách, tìm kiếm danh mục hành vi vi phạm........................2

BCA-C08_XLVP_2023_DD Internal use Trang 7


Tài liệu thiết kế hệ thống V1.0

II.6.2.2.2. Thêm mới danh mục hành vi vi phạm................................................2


II.6.2.2.3. Chỉnh sửa danh mục hành vi vi phạm................................................2
II.6.2.2.4. Xem chi tiết danh mục hành vi vi phạm.............................................2
II.6.2.3. Thiết kế các hàm, thủ tục......................................................................................2

II.6.2.3.1. Tìm kiếm danh sách hành vi vi phạm................................................2


II.6.2.3.2. Thêm mới hành vi vi phạm................................................................2
II.6.2.3.3. Lấy thông tin hành vi vi phạm...........................................................2
II.6.2.3.4. Sửa hành vi vi phạm..........................................................................2
II.6.2.3.5. Xóa hành vi vi phạm..........................................................................2
II.6.2.3.6. Xuất excel danh sách hành vi vi phạm...............................................2
II.7. Danh mục nhóm hành vi vi phạm........................................................................................2
II.7.1. Mục đích........................................................................................................................2
II.7.2. Chi tiết từng mục...........................................................................................................2
II.7.2.1. Thiết kế dữ liệu.....................................................................................................2

II.7.2.1.1. Mô hình quan hệ dữ liệu....................................................................2


II.7.2.1.2. Danh sách các bảng và mô tả.............................................................2
II.7.2.1.3. Chi tiết các bảng................................................................................2
II.7.2.2. Thiết kế màn hình.................................................................................................2

II.7.2.2.1. Màn hình xem danh sách, tìm kiếm nhóm hành vi vi phạm...............2
II.7.2.2.2. Thêm mới nhóm hành vi vi phạm......................................................2
II.7.2.2.3. Chỉnh sửa nhóm hành vi vi phạm......................................................2
II.7.2.2.4. Xem chi tiết nhóm hành vi vi phạm...................................................2
II.7.2.3. Thiết kế các hàm, thủ tục......................................................................................2

II.7.2.3.1. Lấy danh sách và tìm kiếm nhóm hành vi vi phạm............................2


II.7.2.3.2. Thêm mới nhóm hành vi vi phạm......................................................2
II.7.2.3.3. Chỉnh sửa nhóm hành vi vi phạm......................................................2
II.7.2.3.4. Xem chi tiết nhóm hành vi vi phạm...................................................2
II.7.2.3.5. Xóa nhóm hành vi vi phạm................................................................2

BCA-C08_XLVP_2023_DD Internal use Trang 8


Tài liệu thiết kế hệ thống V1.0

II.7.2.3.6. Xuất Excel – Trả file Excel chứa danh sách căn cứu lọc theo nhiều
tiêu chí................................................................................................................ 2
II.8. Danh mục nơi cấp giấy tờ....................................................................................................2
II.8.1. II.1.1. Mục đích.............................................................................................................2
II.8.2. II.1.2. Chi tiết từng mục.................................................................................................2
II.8.2.1. Thiết kế dữ liệu.....................................................................................................2

II.8.2.1.1. Mô hình quan hệ dữ liệu....................................................................2


II.8.2.1.2. Danh sách các bảng và mô tả.............................................................2
II.8.2.1.3. Chi tiết các bảng................................................................................2
II.8.2.2. Thiết kế các hàm, thủ tục......................................................................................2

II.8.2.2.1. Tìm kiếm Nơi cấp giấy tờ..................................................................2


II.8.2.2.2. Xem chi tiết Nơi cấp giấy tờ..............................................................2
II.8.2.2.3. Thêm mới Nơi cấp giấy tờ.................................................................2
II.8.2.2.4. Sửa Nơi cấp giấy tờ...........................................................................2
II.8.2.2.5. Xóa Nơi cấp giấy tờ...........................................................................2
II.8.2.2.6. Thêm mới nơi cấp loại giấy tờ...........................................................2
II.8.2.2.7. Xóa nơi cấp loại giấy tờ.....................................................................2
II.9. Danh mục Tuyến đường quốc lộ..........................................................................................2
II.9.1. II.1.1. Mục đích.............................................................................................................2
II.9.2. Chi tiết từng mục...........................................................................................................2
II.9.2.1. Thiết kế dữ liệu.....................................................................................................2

II.9.2.1.1. Mô hình quan hệ dữ liệu....................................................................2


II.9.2.1.2. Danh sách các bảng và mô tả.............................................................2
II.9.2.1.3. Chi tiết các bảng................................................................................2
II.9.2.2. Thiết kế màn hình.................................................................................................2

II.9.2.2.1. Xem danh sách, tìm kiếm tuyến đường quốc lộ.................................2
II.9.2.2.2. Thêm mới tuyến đường quốc lộ.........................................................2
II.9.2.2.3. Chỉnh sửa tuyến đường quốc lộ.........................................................2
II.9.2.2.4. Xem chi tiết tuyến đường quốc lộ......................................................2

BCA-C08_XLVP_2023_DD Internal use Trang 9


Tài liệu thiết kế hệ thống V1.0

II.9.2.3. Thiết kế các hàm, thủ tục......................................................................................2

II.9.2.3.1. Tìm kiếm danh sách Tuyến đường quốc lộ........................................2


II.9.2.3.2. Thêm mới Tuyến đường quốc lộ........................................................2
II.9.2.3.3. Lấy thông tin Tuyến đường quốc lộ...................................................2
II.9.2.3.4. Sửa Tuyến đường quốc lộ..................................................................2
II.9.2.3.5. Xóa Tuyến đường quốc lộ..................................................................2
II.9.2.3.6. Xuất excel danh sách Tuyến đường quốc lộ.......................................2
II.10. Các màn hình sử dụng chung.............................................................................................2
II.10.1. Mục đích......................................................................................................................2
II.10.2. Chi tiết các màn hình...................................................................................................2
II.10.2.1. Màn hình tang vật, phương tiện, giấy tờ.............................................................2

II.10.2.1.1. Màn hình danh sách tang vật tạm giữ...............................................2


II.10.2.1.2. Màn hình thêm mới/ sửa tang vật.....................................................2
II.10.2.1.3. Kiểm tra tang vật..............................................................................2
II.10.2.2. Màn hình đối tượng vi phạm...............................................................................2

II.10.2.2.1. Giao diện..........................................................................................2


II.10.2.2.2. Danh sách control/ thành phần giao diện.........................................2
II.10.2.3. Màn hình Người có thẩm quyền lập biên bản/quyết định...................................2

II.10.2.3.1. Giao diện..........................................................................................2


II.10.2.3.2. Danh sách control/thành phần giao diện..........................................2
II.10.2.4. Màn hình biên bản lập xong hồi.........................................................................2

II.10.2.4.1. Giao diện..........................................................................................2


II.10.2.4.2. Danh sách các control/thành phần giao diện....................................2
II.10.2.4.3. Các ràng buộc..................................................................................2
II.11. Biên bản 01 – Biên bản vi phạm hành chính......................................................................2
II.11.1. Mục đích......................................................................................................................2
II.11.2. Chi tiết từng mục.........................................................................................................2
II.11.2.1. Thiết kế dữ liệu...................................................................................................2

II.11.2.1.1. Mô hình quan hệ dữ liệu..................................................................2

BCA-C08_XLVP_2023_DD Internal use Trang 10


Tài liệu thiết kế hệ thống V1.0

II.11.2.1.2. Danh sách các bảng và mô tả...........................................................2


II.11.2.1.3. Chi tiết các bảng..............................................................................2
II.11.2.2. Thiết kế màn hình...............................................................................................2

II.11.2.2.1. Xem danh sách, tìm kiếm Biên bản vi phạm hành chính.................2
II.11.2.2.2. Thêm mới/Sửa Biên bản 01- Biên bản vi phạm hành chính.............2
II.11.2.2.3. Xem chi tiết Biên bản 01.................................................................2
II.11.2.3. Thiết kế các hàm, thủ tục....................................................................................2

II.11.2.3.1. Lấy danh sách và tìm kiếm biên bản................................................2


II.11.2.3.2. Thêm mới biên bản vi phạm hành chính..........................................2
II.11.2.3.3. Chỉnh sửa Biên bản vi phạm hành chính..........................................2
II.11.2.3.4. Xem chi tiết biên bản vi phạm hành chính.......................................2
II.11.2.3.5. In biên bản vi phạm hành chính.......................................................2
II.11.2.3.6. Xóa biên bản vi phạm hành chính....................................................2

a) TỔNG QUAN TÀI LIỆU

a.1. Mục đích tài liệu


Tài liệu được xây dựng với mục đích Thiết kế các mô hình kiến trúc hệ thống, mô hình
tích hợp, mô hình triển khai, mô hình chức năng, thiết kế dữ liệu và thiết kế chi tiết các
chức năng nâng cấp, triển khai hệ thống Xử lý vi phạm thuộc dự án Nâng cấp hệ thống
Cơ sở dữ liệu xử lý vi phạm.
Tài liệu được xây dựng trên cơ sở kết quả đầu ra của quá trình phân tích, khảo sát yêu cầu
người sử dụng.
Tài liệu được dùng làm đầu vào cho quá trình phát triển hệ thống sau này.
Các đối tượng sử dụng tài liệu này bao gồm:
- Các cán bộ lập trình
- Các cán bộ thiết kế
- Cán bộ kiểm thử
Tài liệu này sẽ liệt kê chi tiết các nội dung sau đây:

BCA-C08_XLVP_2023_DD Internal use Trang 11


Tài liệu thiết kế hệ thống V1.0

- Các mô hình kiến trúc hệ thống


- Mô hình tích hợp
- Mô hình triển khai
- Mô hình chức năng
- Thiết kế dữ liệu
- Thiết kế chi tiết các hàm, thủ tục, store procedure và các sử dụng control cần thiết cho
việc lập trình
- Các thiết kế về màn hình và báo cáo của hệ thống hiện hành
a.2. Phạm vi tài liệu
Tài liệu này áp dụng cho hệ thống Xử lý vi phạm thuộc dự án Nâng cấp hệ thống Cơ sở
dữ liệu xử lý vi phạm
Hệ thống Xử lý vi phạm bao gồm các chức năng chính sau:
- Đăng nhập/ đăng xuất
- Trang chủ
- Vụ việc
- Biên bản
- Quyết định
- Xác nhận đã phê duyệt QĐ VPHC
- Tra cứu
- Báo cáo thống kê
- Danh mục
- Quản trị hệ thống
- Tích hợp với hệ thống giám sát (phạt nguội)
- Tích hợp với C06 (tra cứu thông tin công dân)
- Tích hợp với ĐKX (Module quản lý tạm giữ GPLX/ Phương tiện/ Đăng ký xe/ Giấy
CN kiểm định)
a.3. Tài liệu liên quan
ST Tên tài liệu Mã tài liệu/Nguồn
T
1 Tài liệu phân tích yêu cầu người sử dụng BCA-C08_XLVP_2022_URD

BCA-C08_XLVP_2023_DD Internal use Trang 12


Tài liệu thiết kế hệ thống V1.0

a.4. Thuật ngữ và các từ viết tắt


STT Thuật ngữ/chữ viết tắt Mô tả
1 DVC Dịch vụ công
2 BBQĐ Biên bản quyết định
3 IAM Hệ thống quản lý Người sử dụng dùng chung
4 XLVP Xử lý vi phạm
5 BB Biên bản
6 QĐ Quyết định
7 NA Không có, không khả dụng
8 CSGT Cảnh sát giao thông
9 HVVP Hành vi vi phạm
10 HTXP Hình thức xử phạt
11 GPLX Giấy phép lái xe
12 TTNĐ Thông tư nghị định
13 VBPL Văn bản pháp luật
14 NCGT Nơi cấp giấy tờ
b) NỘI DUNG

b.1. Danh mục căn cứ


b.1.1. Mục đích

- Quản lý danh mục căn cứ


- Chức năng quản lý danh mục căn cứ gồm:
o Thêm mới căn cứ
o Sửa căn cứ
o Hiển thị chi tiết căn cứ
o Xóa căn cứ

BCA-C08_XLVP_2023_DD Internal use Trang 13


Tài liệu thiết kế hệ thống V1.0

II.1.2. Chi tiết từng mục


b.1.2.1. Thiết kế dữ liệu

b.1.2.1.1. Mô hình quan hệ dữ liệu

b.1.2.1.2. Danh sách các bảng và mô tả

TT Tên bảng Mô tả
1 CAN_CU Bảng lưu trữ danh mục Căn Cứ

b.1.2.1.3. Chi tiết các bảng

Tên trường Kiểu dữ liệu Rỗng P/ Mặc Diễn giải


? F định
Ke
y?
ID NUMBER No P "SEQ_ ID của căn cứ
CAN_C
U"."NE
XTVAL
"
TEN_CAN_CU VARCHAR2(255 No Tên căn cứ
CHAR)
MA_CAN_CU VARCHAR2(50 No Mã căn cứ
CHAR)

BCA-C08_XLVP_2023_DD Internal use Trang 14


Tài liệu thiết kế hệ thống V1.0

TRANG_THAI NUMBER(1) No Trạng thái(1: kích hoạt,


0: không kích hoạt)
GHI_CHU VARCHAR2(500 Yes Ghi chú chi tiết thông tin
CHAR) căn cứ
NGUOI_TAO VARCHAR2(50 Yes Mã cán bộ tạo
CHAR)
NGAY_TAO TIMESTAMP(6) Yes CURRE Ngày tạo căn cứ
NT_TI
MESTA
MP
NGUOI_SUA VARCHAR2(50 Yes Mã cán bộ sửa căn cứu
CHAR)
NGAY_SUA DATE Ngày sửa căn cứ
IS_DELETED NUMBER(1,0) No 0 Trạng thái xóa(1: đã
xóa, 0: chưa xóa)
Bảng CAN_CU
b.1.2.1.3.1. Bảng CAN_CU
c) Các ràng buộc
Tên Nội dung
CAN_CU_PK Đảm bảo rằng giá trị trong cột “ID” là duy nhất và
không rỗng
d) Index
CAN_CU_PK: Index mặc định tạo cho ID
e) Trigger
NA
f) Packages
Tên package: PKG_CAN_CU

f.1.2.1. Thiết kế màn hình

f.1.2.1.1. Màn hình xem danh sách, tìm kiếm căn cứ

f.1.2.1.1.1. Giao diện

BCA-C08_XLVP_2023_DD Internal use Trang 15


Tài liệu thiết kế hệ thống V1.0

HÌnh 1: Màn hình danh sách căn cứ


f.1.2.1.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Tên thành phần / Bắt Định dạng Vai trò Ghi chú
Control buộc
nhập?
Form tìm kiếm/lọc dữ liệu danh mục
ma Textbox Nhập mã căn cứ
ten Textbox Nhập tên căn cứ
trangThai Dropdownlist Chọn loại trạng thái căn
cứ
Danh sách dữ liệu danh mục
ma Text Hiển thị mã căn cứ
ten Text Hiển thị tên căn cứ
trangThai Text Hiển thị trạng thái căn
cứ
ngaySua Text Hiển thị ngày sửa căn cứ
nguoiSua Text Hiển thị ngày sửa căn cứ

BCA-C08_XLVP_2023_DD Internal use Trang 16


Tài liệu thiết kế hệ thống V1.0

f.1.2.1.1.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Chọn menu Danh mục/Căn cứ → Xem thông tin danh sách
danh mục căn cứ.
BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh mục
→ Click Tìm kiếm.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập →
Màn hình hiển thị danh sách danh mục thỏa mãn bộ lọc.
BtnReset_Click Click nút Thiết lập lại.
Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin đã
nhập và hoàn tác về trạng thái mặc định ban đầu.
BtnCollapse/ Click nút Thu hẹp/Mở rộng.
BtnExtend_Click Thu hẹp/Mở rộng Form tìm kiếm/lọc dữ liệu danh mục.
BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới danh mục căn cứ
BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh sách.
Màn hình chuyển đến trang Chỉnh sửa danh mục căn cứ
tương ứng với bản ghi.
BtnView_Click Click nút Xem chi tiết ở cuối mỗi bản ghi trong danh sách.
Màn hình chuyển đến trang Xem chi tiết danh mục căn cứ
tương ứng với bản ghi.
BtnDelete_Click Click nút Xóa ở cuối mỗi bản ghi trong danh sách → Chọn
Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình reload và cập
nhật lại danh sách danh mục.
f.1.2.1.2. Thêm mới căn cứ

f.1.2.1.2.1. Giao diện

BCA-C08_XLVP_2023_DD Internal use Trang 17


Tài liệu thiết kế hệ thống V1.0

HÌnh 2: Màn hình thêm mới danh mục căn cứ


f.1.2.1.2.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Bắt
Tên thành phần /
STT buộc Định dạng Mô tả
Control
?
Textbox Hiển thị mã căn cứ Mã tự
1 ma
sinh, không thể nhập
2 ten X Textbox Nhập tên căn cứ
Dropdownli Chọn loại trạng thái căn cứ
3 trangThai X
st
4 ghiChu Textbox Nhập ghi chú
f.1.2.1.2.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Thêm mới tại màn hình danh sách Danh mục
căn cứ → Màn hình chuyển đến màn Thêm mới
BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu danh mục
→ Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa

BCA-C08_XLVP_2023_DD Internal use Trang 18


Tài liệu thiết kế hệ thống V1.0

thêm mới.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục.
f.1.2.1.2.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


Mã căn cứ Không nhập
Tên căn cứ - Bắt buộc nhập
- Nhập tối đa 255 ký tự
Trạng thái Bắt buộc chọn
Ghi chú Nhập tối đa 255 ký tự

f.1.2.1.3. Chỉnh sửa căn cứ

f.1.2.1.3.1. Giao diện

BCA-C08_XLVP_2023_DD Internal use Trang 19


Tài liệu thiết kế hệ thống V1.0

Hình 3: Chỉnh sửa danh mục Căn cứ


f.1.2.1.3.2. Danh sách control/thành phần giao diện

Bắt
Tên thành phần /
STT buộc Định dạng Mô tả
Control
?
Textbox Hiển thị mã căn cứ
1 ma
Không thể chỉnh sửa
2 ten X Textbox Nhập tên căn cứ
Dropdownli Chọn loại trạng thái căn cứ
3 trangThai X
st
4 ghiChu Textbox Nhập ghi chú
f.1.2.1.3.3. Xử lý sự kiện

Các sự kiện cần xử lý:


Sự kiện Quy trình
Page_Load Cách 1: Click nút Chỉnh sửa ở cuối mỗi bản ghi tại màn
hình danh sách Danh mục căn cứ → Màn hình chuyển
đến màn Chỉnh sửa.
Cách 2: Click nút Chỉnh sửa tại màn hình chi tiết Danh
mục căn cứ → Màn hình chuyển đến màn Chỉnh sửa.
Màn hình hiển thị như hình 3.
BtnSave_Click Nhập thông tin trong Form chỉnh sửa dữ liệu danh mục
→ Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
chỉnh sửa.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục.

BCA-C08_XLVP_2023_DD Internal use Trang 20


Tài liệu thiết kế hệ thống V1.0

f.1.2.1.3.4. Kiểm soát dữ liệu/các ràng buộc

Loại Diễn giải


Mã căn cứ Không nhập
Tên căn cứ - Bắt buộc nhập
- Nhập tối đa 255 ký tự
Trạng thái Bắt buộc chọn
Ghi chú Nhập tối đa 255 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 21


Tài liệu thiết kế hệ thống V1.0

f.1.2.1.4. Xem chi tiết căn cứ

f.1.2.1.4.1. Giao diện

HÌnh 3: Màn hình xem chi tiết căn cứ


f.1.2.1.4.2. Danh sách control/thành phần giao diện

Tên thành phần / Bắt Định dạng Vai trò Ghi chú
Control buộc
nhập?
Form tìm kiếm/lọc dữ liệu danh mục
ma Textbox Hiển thị mã căn cứ
ten Textbox Hiển thị tên căn cứ
trangThai Dropdownlist Hiển thị loại trạng
thái căn cứ
ghiChu Textbox Hiển thị ghi chú

f.1.2.1.4.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục căn cứ → Màn hình chuyển đến
màn Xem chi tiết.
Màn hình hiển thị như hình 4.
BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh

BCA-C08_XLVP_2023_DD Internal use Trang 22


Tài liệu thiết kế hệ thống V1.0

sách danh mục.


f.1.2.1.4.4. Kiểm soát dữ liệu/các ràng buộc

Loại Diễn giải


Mã căn cứ Chỉ xem
Tên căn cứ Chỉ xem
Trạng thái Chỉ xem
Ghi chú Chỉ xem

f.1.2.2. Thiết kế các hàm, thủ tục

f.1.2.2.1. Lấy danh sách và tìm kiếm căn cứ

f.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách căn cứ theo nhiều tiêu chí tìm kiếm
Method URL
GET xlvp/api/v1/danh-muc/can-cu?

f.1.2.2.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên căn cứ cần tìm kiếm
2 ma String Mã căn cứ cần tìm kiếm
3 trangThai Boolean Trạng thái của căn cứ
+ true : kích hoạt
+ false : không kích hoạt
4 page Number Trang cần tìm kiếm ( bắt đầu từ
0)
5 pageSize Number Số bản ghi cần lấy trên 1 trang
6 isFetchAll Boolean Lấy tất cả các bản ghi căn cứ

Các giá trị trả về:

STT Tham số Kiểu dữ Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 23


Tài liệu thiết kế hệ thống V1.0

liệu
1 ten String Tên căn cứ
2 ma String Mã căn cứ
3 trangThai Boolean Trạng thái của căn cứ
+ true : kích hoạt
+ false : không kích hoạt
4 ghiChu String Ghi chú
5 nguoiTao String Người tạo căn cứ
6 ngayTao Date Ngày tạo căn cứ
7 nguoiSua String Người sửa căn cứ
8 ngaySua Date Ngày sửa căn cứ
9 total Integer Tổng số lượng bản ghi

f.1.2.2.1.3. Mô tả chi tiết

Service:
- Gọi hàm PKG_CAN_CU.GET_PAGE xử lý lấy danh sách căn cứ từ database.
Procedure:
- Hàm PKG_CAN_CU.GET_PAGE là một thủ tục được sử dụng để tìm kiếm các Căn
Cứ dựa trên các tiêu chí khác nhau.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập/ Mô tả
Xuất
(N/X)
1 C_MA_CAN_CU VARCHAR2 N Mã căn cứ cần tìm kiếm
2 _TEN_CAN_CU VARCHAR2 N Tên căn cứ cần tìm kiếm
3 C_TRANG_THAI NUMBER N Trạng thái của căn cứ
+ 1 : kích hoạt
+ 0 : không kích hoạt
4 P_PAGE NUMBER N Trang cần tìm kiếm ( bắt đầu từ
0)

BCA-C08_XLVP_2023_DD Internal use Trang 24


Tài liệu thiết kế hệ thống V1.0

5 P_PAGE_SIZE NUMBER N Số bản ghi cần lấy trên 1 trang


6 V_CURSOR REF X Con trỏ tham chiếu đến kết quả
CURSOR tìm kiếm
Kết quả trả về của thủ tục bao gồm một danh sách các Căn Cứ được tìm thấy, phù hợp
với các tiêu chí tìm kiếm được cung cấp. Các kết quả được phân trang và sắp xếp theo
ngày sửa Căn Cứ.
f.1.2.2.1.4. Xử lý ngoại lệ

Xử lý ngoại lệ được dùng chung toàn bộ dự án


f.1.2.2.2. Thêm mới căn cứ

f.1.2.2.2.1. API

Mô tả: Gọi API để tạo mới căn cứ


Method URL
POST xlvp/api/v1/danh-muc/can-cu

f.1.2.2.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên căn cứ
2 trangThai Boolean Trạng thái của căn cứ
+ true : kích hoạt
+ false : không kích hoạt
3 ghiChu String Ghi chú

Các giá trị trả về là:


STT Tham số Kiểu dữ Mô tả
liệu
1 ten String Tên căn cứ
2 ma String Mã căn cứ
3 trangThai Boolean Trạng thái của căn cứ
+ true : kích hoạt
+ false : không kích hoạt

BCA-C08_XLVP_2023_DD Internal use Trang 25


Tài liệu thiết kế hệ thống V1.0

4 ghiChu String Ghi chú


5 nguoiTao String Người tạo căn cứ
6 ngayTao Date Ngày tạo căn cứ
7 nguoiSua String Người sửa căn cứ
8 ngaySua Date Ngày sửa căn cứ
f.1.2.2.2.3. Mô tả chi tiết

Service:
- Kiểm tra xem tên căn cứ gửi lên đã tồn tại trong bảng CAN_CU chưa?
- Gọi hàm PKG_CAN_CU.CREATE_ITEM để tạo mới căn cứ trong database.
Procedure:
- Hàm PKG_CAN_CU.CREATE_ITEM là một thủ tục được sử dụng để tạo mới căn
cứ trong database.

BCA-C08_XLVP_2023_DD Internal use Trang 26


Tài liệu thiết kế hệ thống V1.0

Các giá trị nhập vào và trả ra gồm:


STT Tham số Kiểu dữ liệu Nhập/ Mô tả
Xuất
(N/X)
1 C_MA_CAN_CU VARCHAR2(50 N Mã căn cứ
CHAR)
2 C_TEN_CAN_CU VARCHAR2(255 N Tên căn cứ
CHAR)
3 C_GHI_CHU VARCHAR2(500 N Ghi chú
CHAR)
4 C_TRANG_THAI NUMBER(1) N Trạng thái
5 C_NGUOI_TAO VARCHAR2(50 N Người tạo
CHAR)
6 V_CURSOR CURSOR X Trả về dòng dữ
liệu căn cứ vừa tạo
Hàm CREATE_ITEM được sử dụng để thêm một bản ghi mới vào bảng CAN_CU. Hàm
nhận các tham số đầu vào là thông tin của bản ghi mới và trả về kết quả thông qua một
con trỏ REF_CURSOR.
Đầu vào:
- C_MA_CAN_CU: Kiểu dữ liệu tương ứng với trường MA_CAN_CU trong bảng.
- C_TEN_CAN_CU: Kiểu dữ liệu tương ứng với trường TEN_CAN_CU trong
bảng.
- C_GHI_CHU: Kiểu dữ liệu tương ứng với trường GHI_CHU trong bảng.
- C_TRANG_THAI: Kiểu dữ liệu tương ứng với trường TRANG_THAI trong
bảng.
- C_NGUOI_TAO: Kiểu dữ liệu tương ứng với trường NGUOI_TAO trong bảng.
- V_CURSOR: Con trỏ REF_CURSOR dùng để trả về kết quả
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
CAN_CU.
- Hàm này sẽ thêm dữ liệu vào bảng CAN_CU với các thông tin tương ứng từ các tham
số đầu vào, sau đó gọi hàm GET_ITEM_BY_MA để lấy thông tin bản ghi vừa được thêm
và trả về.

BCA-C08_XLVP_2023_DD Internal use Trang 27


Tài liệu thiết kế hệ thống V1.0

f.1.2.2.2.4. Xử lý ngoại lệ

Bẫy lỗi ConstraintViolationException khi:


- Tên căn cứ gửi lên rỗng hoặc vượt quá 255 ký tự.
- Trạng thái là một chuỗi.
- Ghi chú vượt quá 500 ký tự.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Khi tên căn cứ gửi lên đã tồn tại trên hệ thống.

Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.


f.1.2.2.3. Chỉnh sửa căn cứ

f.1.2.2.3.1. API

Mô tả: Gọi API để chỉnh sửa căn cứ


Method URL
PUT xlvp/api/v1/danh-muc/can-cu/{maCanCu}

f.1.2.2.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maCanCu String Mã căn cứ
2 ten String Tên căn cứ
3 trangThai Boolean Trạng thái của căn cứ
+ true : kích hoạt
+ false : không kích hoạt
4 ghiChu String Ghi chú
Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ten String Tên căn cứ
2 ma String Mã căn cứ
trangThai Boolean Trạng thái của căn cứ
3 + true : kích hoạt
+ false : không kích hoạt

BCA-C08_XLVP_2023_DD Internal use Trang 28


Tài liệu thiết kế hệ thống V1.0

4 ghiChu String Ghi chú


5 nguoiTao String Người tạo căn cứ
6 ngayTao Date Ngày tạo căn cứ
7 nguoiSua String Người sửa căn cứ
8 ngaySua Date Ngày sửa căn cứ
f.1.2.2.3.3. Mô tả chi tiết

Service:
- Kiểm tra xem mã căn cứ gửi lên có tồn tại trong bảng CAN_CU chưa?
- Kiểm tra xem tên căn cứ gửi lên đã tồn tại trong bảng CAN_CU chưa?
- Nếu tồn tại thì check xem căn cứ đó có phải căn cứ muốn cập nhật hay không, nếu
không phải trả ra lỗi.
- Gọi hàm PKG_CAN_CU.UPDATE_ITEM xử lý lưu xuống database.
Procedure:
- Hàm PKG_CAN_CU.UPDATE_ITEM là một thủ tục được sử dụng để cập nhật căn
cứ trong database.
Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập/ Mô tả


Xuất
(N/X)
1 C_MA_CAN_CU VARCHAR2(5 N Mã căn cứ
0 CHAR)
2 C_TEN_CAN_CU VARCHAR2(2 N Tên căn cứ
55 CHAR)
3 C_GHI_CHU VARCHAR2(5 N Ghi chú
00 CHAR)
4 C_TRANG_THAI NUMBER(1) N Trạng thái
5 C_NGUOI_SUA VARCHAR2(5 N Người sửa căn cứ
0 CHAR)
6 V_CURSOR CURSOR X Trả về dòng dữ liệu căn cứ
vừa tạo

BCA-C08_XLVP_2023_DD Internal use Trang 29


Tài liệu thiết kế hệ thống V1.0

Hàm UPDATE_ITEM được sử dụng để cập nhật thông tin của một Căn Cứ đã có trong
cơ sở dữ liệu.
Input:
- C_MA_CAN_CU: Mã của Căn Cứ cần cập nhật.
- C_TEN_CAN_CU: Tên của căn cứ cần cập nhật
- C_GHI_CHU: Ghi chú.
- C_TRANG_THAI: Trạng thái của căn cứ.
- C_NGUOI_SUA: Mã người sửa
Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả truy vấn danh sách các Căn Cứ
được cập nhật.
f.1.2.2.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã căn cứ gửi lên không tồn tại trên hệ thống
Bẫy lỗi ConstraintViolationException khi:
- Tên căn cứ gửi lên rỗng hoặc vượt quá 255 ký tự.
- Trạng thái là một chuỗi không phải Boolean.
- Ghi chú vượt quá 500 ký tự.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Khi tên căn cứ gửi lên đã tồn tại trên hệ thống và tên căn cứ đó khác với tên cũ của
căn cứ cần cập nhật
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
f.1.2.2.4. Xem chi tiết căn cứ

f.1.2.2.4.1. API

Mô tả: Gọi API để lấy thông tin chi tiết căn cứ


Method URL
GET xlvp/api/v1/danh-muc/can-cu/{maCanCu}

f.1.2.2.4.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 30


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Mô tả


1 maCanCu String Mã căn cứ
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ten String Tên căn cứ
2 ma String Mã căn cứ
3 trangThai Boolean Trạng thái của căn cứ
+ true : kích hoạt
+ false : không kích hoạt
4 ghiChu String Ghi chú
5 nguoiTao String Người tạo căn cứ
6 ngayTao Date Ngày tạo căn cứ
7 nguoiSua String Người sửa căn cứ
8 ngaySua Date Ngày sửa căn cứ
f.1.2.2.4.3. Mô tả chi tiết

Service:
- Kiểm tra xem tên căn cứ gửi lên đã tồn tại trong bảng CAN_CU chưa.
- Gọi hàm PKG_CAN_CU.GET_ITEM_BY_MA xử lý lấy lên căn cứ theo mã từ
database
Procedure:
- Hàm PKG_CAN_CU. GET_ITEM_BY_MA là một thủ tục được sử dụng để lấy
thông tin căn cứ trong database.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập/ Mô tả
Xuất
(N/X)
1 C_MA_CAN_CU VARCHAR2(5 N Mã căn cứ
0 CHAR)
6 V_CURSOR CURSOR X Trả về dòng dữ liệu căn cứ

BCA-C08_XLVP_2023_DD Internal use Trang 31


Tài liệu thiết kế hệ thống V1.0

Hàm PKG_CAN_CU.GET_ITEM_BY_MA lấy lên 1 Căn cứ có mã được truyền xuống


Input:
- C_MA_CAN_CU: Mã căn cứ, là một biến kiểu dữ liệu của cột MA_CAN_CU
trong bảng CAN_CU.
- V_CURSOR: Đây là một biến kiểu REF_CURSOR và là đầu ra của hàm. Nó sẽ
chứa kết quả trả về của câu lệnh SELECT trong thân của stored procedure.
Output:
- Tất cả các cột của bảng CAN_CU (trừ cột IS_DELETED).
- Điều kiện để trả về kết quả là cột MA_CAN_CU của bảng CAN_CU phải bằng
với giá trị của biến C_MA_CAN_CU và cột IS_DELETED của bảng CAN_CU
phải là 0.
f.1.2.2.4.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã căn cứ gửi lên không tồn tại trên hệ thống.
- Căn cứ đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
f.1.2.2.5. Export Excel – Trả file Excel chứa danh sách căn cứu lọc theo nhiều tiêu chí

f.1.2.2.5.1. API

Mô tả: Gọi API để lấy thông tin chi tiết căn cứ


Method URL
GET xlvp/api/v1/danh-muc/can-cu/export/excel

f.1.2.2.5.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên căn cứ
2 ma String Mã căn cứ
3 trangThai Boolean Trạng thái của căn cứ
+ true : kích hoạt
+ false : không kích hoạt
Các giá trị trả về là:
Kết quả trả về là file Excel dạng byte[]

BCA-C08_XLVP_2023_DD Internal use Trang 32


Tài liệu thiết kế hệ thống V1.0

f.1.2.2.5.3. Mô tả chi tiết

Service:
- Gọi hàm PKG_CAN_CU.GET_PAGE xử lý lấy danh sách căn cứ từ database
- Xử lý trả ra file Excel dạng byte[]
Procedure:
- Hàm PKG_CAN_CU. GET_PAGE là một thủ tục được sử dụng để lấy thông tin căn
cứ trong database.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập/ Mô tả
Xuất
(N/X)
1 C_MA_CAN_CU VARCHAR2(50 N Mã căn cứ
CHAR)
2 C_TEN_CAN_CU VARCHAR2(255 N Tên căn cứ
CHAR)
3 C_GHI_CHU VARCHAR2(500 N Ghi chú
CHAR)
4 C_TRANG_THAI NUMBER(1) N Trạng thái
5 C_NGUOI_TAO VARCHAR2(50 N Người tạo
CHAR)
6 V_CURSOR CURSOR X Trả về dòng dữ
liệu căn cứ vừa tạo

- Input:
- C_MA_CAN_CU: Mã căn cứ.
- C_TEN_CAN_CU: Tên căn cứ.
- C_TRANG_THAI: Trạng thái căn cứ.
- P_PAGE: Trang bắt đầu (ở đây là 0).
- P_PAGE_SIZE: Số bản ghi của trang (toàn bộ bản ghi).
- Output:
- V_CURSOR: con trỏ tham chiếu đến kết quả tìm kiếm căn cứ theo điều kiện.
Kết quả trả về của thủ tục bao gồm một danh sách các Căn Cứ được tìm thấy, phù hợp
với các tiêu chí tìm kiếm được cung cấp. Các kết quả được phân trang và sắp xếp theo

BCA-C08_XLVP_2023_DD Internal use Trang 33


Tài liệu thiết kế hệ thống V1.0

ngày sửa Căn Cứ.


f.1.2.2.5.4. Xử lý ngoại lệ

Các xử lý ngoại lệ được dùng chung toàn bộ dự án.


f.1.2.2.6. Xóa căn cứ

f.1.2.2.6.1. API

Mô tả: Gọi API để xóa căn cứ


Method URL
DELETE xlvp/api/v1/danh-muc/can-cu/{maCanCu}

f.1.2.2.6.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maCanCu String Mã căn cứ
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 result Boolean Kết quả xóa căn cứ:
+ true : thành công
+ false : không thành công
f.1.2.2.6.3. Mô tả chi tiết

Service:
- Kiểm tra xem mã căn cứ gửi lên có tồn tại trong bảng CAN_CU không?
- Gọi hàm PKG_CAN_CU.DELETE_ITEM xử lý xóa căn cứ ở database.
Procedure:
- Hàm PKG_CAN_CU.DELETE_ITEM là một thủ tục được sử dụng để cập nhật căn
cứ trong database là đã xóa.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập/ Mô tả
Xuất
(N/X)
1 C_MA_CAN_CU VARCHAR2(5 N Mã căn cứ

BCA-C08_XLVP_2023_DD Internal use Trang 34


Tài liệu thiết kế hệ thống V1.0

0 CHAR)
5 C_NGUOI_SUA VARCHAR2(5 N Người sửa căn cứ
0 CHAR)
6 V_CURSOR CURSOR X Trả về dòng dữ liệu căn cứ
vừa xóa
Hàm DELETE_ITEM được sử dụng để cập nhật thông tin của một Căn Cứ đã có trong
cơ sở dữ liệu.
Input:
- C_MA_CAN_CU: Mã của Căn Cứ cần cập nhật.
- C_NGUOI_SUA: Mã người xóa căn cứ
Output:
- V_CURSOR: Con trỏ tham chiếu Căn Cứ vừa xóa.
Hàm này sẽ cập nhật dữ liệu IS_DELETED = 1 trong bảng CAN_CU với thông tin mã
căn cứ được truyền vào
f.1.2.2.6.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã căn cứ gửi lên không tồn tại trên hệ thống
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
f.2. Danh mục thông tư nghị định
f.2.1. Mục đích

- Quản lý danh mục thông tư nghị định


- Chức năng quản lý danh mục thông tư nghị định gồm:
o Thêm mới thông tư nghị định
o Sửa thông tư nghị định
o Hiển thị chi tiết thông tư nghị định
o Xóa thông tư nghị định

f.2.2. Chi tiết từng mục

f.2.2.1. Thiết kế dữ liệu

f.2.2.1.1. Mô hình quan hệ dữ liệu

BCA-C08_XLVP_2023_DD Internal use Trang 35


Tài liệu thiết kế hệ thống V1.0

f.2.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 THONG_TU_NGHI_DI Bảng lưu trữ danh mục thông tư nghị định
NH
2 THONG_TU_NGHI_DI Bảng lưu trữ danh mục thông tư nghị định bổ
NH_BO_SUNG sung
f.2.2.1.3. Chi tết các bảng

f.2.2.1.3.1. Bảng THONG_TU_NGHI_DINH


a) Chi tiết
STT Tên trường Kiểu dữ liệu Bắt Mô tả
buộc
?
1 SO NUMBER (10,0) X Số thông tư nghị định
2 MA VARCHAR2 (10 X Mã thông tư nghị định
CHAR)
3 KY_HIEU VARCHAR2 (20 X Ký hiệu thông tư nghị định
CHAR)
4 NOI_DUNG VARCHAR2 Nội dung thông tư nghị định
(255 CHAR)
5 NGAY_BAN_ TIMESTAMP (3) Ngày ban hành TTNĐ
HANH
6 NGAY_CO_H TIMESTAMP (3) Có hiệu lực từ ngày

BCA-C08_XLVP_2023_DD Internal use Trang 36


Tài liệu thiết kế hệ thống V1.0

IEU_LUC
7 NGAY_HET_ TIMESTAMP (3) Có hiệu lực đến ngày
HIEU_LUC
8 NGUOI_TAO VARCHAR2 (50 Tài khoản người tạo
CHAR)
9 NGAY_TAO DATE Thời gian tạo
10 NGUOI_SUA VARCHAR2 (50 Tài khoản người sửa
CHAR)
11 NGAY_SUA DATE Thời gian sửa gần nhất

12 IS_DELETED NUMBER (1,0) Trạng thái xóa


1: đã xóa, 0: không xóa
13 HINH_THUC_ VARCHAR2 (50 Hình thức bổ sung của TTND
BO_SUNG CHAR)
b) Các ràng buộc
Tên cột Nội dung
KY_HIEU Ký hiệu của TTND là Unique và không được để trống
MA Mã thông tư nghị định là Primary Key
SO Số của TTND không được để trống
c) Index
- PK_MA_TT_ND : index mặc định tạo cho MA
- KY_HIEU_THONG_TU_NGHI_DINH_UQ : index mặc định tạo cho
KY_HIEU
d) Trigger
- NA
e) Packages
- Tên package: PKG_THONG_TU_NGHI_DINH

BCA-C08_XLVP_2023_DD Internal use Trang 37


Tài liệu thiết kế hệ thống V1.0

e.1.2.1.1.1. Bảng THONG_TU_NGHI_DINH_BO_SUNG


a) Chi tiết
Tên trường Kiểu dữ liệu Rỗng? P/F Mặc Diễn giải
Key? định
KY_HIEU_ VARCHAR2 No F null Ký hiệu thông tư nghị
TT_ND (50 CHAR) định
KY_HIEU_ VARCHAR2 No null Ký hiêu thông tư nghị
TT_ND_D (50 CHAR) định được bổ sung
UOC_BS
b) Các ràng buộc
Tên cột Nội dung
KY_HIEU_TT_ND KY_HIEU_TT_ND không được để trống
KY_HIEU_TT_ND_DU KY_HIEU_TT_ND_DUOC_BS không được để trống
OC_BS
c) Index
- BS_KY_HIEU_TT_ND_INDEX: index mặc định tạo cho KY_HIEU_TT_ND
- KY_HIEU_TT_ND_DUOC_BS_INDEX: index mặc định tạo cho
KY_HIEU_TT_ND_DUOC_BS
d) Trigger
- NA
e) Packages
Tên package: PKG_THONG_TU_NGHI_DINH

BCA-C08_XLVP_2023_DD Internal use Trang 38


Tài liệu thiết kế hệ thống V1.0

e.1.2.1. Thiết kế màn hình

e.1.2.1.1. Xem danh sách, tìm kiếm danh mục thông tư nghị định

e.1.2.1.1.1. Giao diện

HÌnh 4: Danh sách danh mục Thông tư nghị định


e.1.2.1.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Tên thành
Bắt
STT Tên label phần / Định dạng Mô tả
buộc?
Control
Form tìm kiếm/lọc dữ liệu danh mục
Mã TT-NĐ ma Textbox Nhập mã thông tư
1
nghị định
Ký hiệu TT-NĐ kyHieu Textbox Nhập ký hiệu thông tư
2
nghị định
Ngày hiệu lực ngayCoHieuL Datepicker Chọn, nhập ngày
3 uc TTNĐ bắt đầu có hiệu
lực
Ngày hết hiệu ngayHetHieuL Datepicker Chọn, nhập ngày
4 lực uc TTNĐ hết hiệu lực
Nội dung noiDung Textbox Nhập nội dung của
5
TTNĐ

BCA-C08_XLVP_2023_DD Internal use Trang 39


Tài liệu thiết kế hệ thống V1.0

Ngày ban hành ngayBanHanh Datepicker Chọn, nhập ngày ban


6
hành TTNĐ
Danh sách dữ liệu danh mục
Mã TT-NĐ ma Text Hiển thị mã thông tư
1
nghị định
Ký hiệu TT-NĐ kyHieu Text Hiển thị ký hiệu thông
2
tư nghị định
Ngày hiệu lực ngayCoHieuL Text Hiển thị ngày TTNĐ
3
uc bắt đầu có hiệu lực
Nội dung noiDung Text Hiển thị nội dung của
4
TTNĐ
Ngày ban hành ngayBanHanh Date Hiển thị ngày ban
5
hành TTNĐ
Ngày sửa gần ngaySua Date Hiển thị ngày sửa vbpl
6
nhất gần nhất
Cán bộ sửa canBoSua Text Hiển thị cán bộ sửa
7
gần nhất gần nhất

e.1.2.1.1.3. Xử lý sự kiện

Mô tả các sự kiện xử lý đối với màn hình chức năng này, các thông tin được trình
bày trong bảng như sau:
STT Sự kiện Quy trình
1 Page_Load Chọn menu Danh mục/Thông tư nghị định → Xem
thông tin danh sách danh mục thông tư nghị định.
Màn hình hiển thị như hình treen
2 BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh
mục → Click Tìm kiếm.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập
→ Màn hình hiển thị danh sách danh mục thỏa mãn bộ
lọc.

BCA-C08_XLVP_2023_DD Internal use Trang 40


Tài liệu thiết kế hệ thống V1.0

3 BtnReset_Click Click nút Thiết lập lại.


Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin
đã nhập và hoàn tác về trạng thái mặc định ban đầu.
4 BtnCollapse/ Click nút Thu hẹp/Mở rộng.
BtnExtend_Click Thu hẹp/Mở rộng Form tìm kiếm/lọc dữ liệu danh mục.
5 BtnExportExcel Click nút Xuất Excel.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập
và trả kết quả về theo dạng file excel → Màn hình hiển
thị popup hỗ trợ lưu file vào local
6 BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới danh mục thông
tư nghị định
7 BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh
sách.
Màn hình chuyển đến trang Chỉnh sửa danh mục thông
tư nghị định tương ứng với bản ghi
8 BtnView_Click Click nút Xem chi tiết ở cuối mỗi bản ghi trong danh
sách.
Màn hình chuyển đến trang Xem chi tiết danh mục
thông tư nghị định tương ứng với bản ghi
9 BtnDelete_Click Click nút Xóa ở cuối mỗi bản ghi trong danh sách →
Chọn Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình tải lại và
cập nhật lại danh sách danh mục.
e.1.2.1.1.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


Mã TT-NĐ Nhập tối đa 3 ký tự
Ký hiệu TT-NĐ Nhập tối đa 20 ký tự
Nội dung Nhập tối đa 255 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 41


Tài liệu thiết kế hệ thống V1.0

e.1.2.1.2. Thêm mới danh mục thông tư nghị định

e.1.2.1.2.1. Giao diện

HÌnh 5: Thêm mới danh mục Thông tư nghị định

HÌnh 6: Thêm mới sửa đổi bổ sung Thông tư nghị định


e.1.2.1.2.2. Danh sách control/thành phần giao diện

Tên thành
Bắt
STT Tên label phần / Định dạng Mô tả
buộc?
Control
Form thông tin chung
Mã TT-NĐ ma Textbox Mã thông tư nghị định
1
Mã là tự sinh
Ký hiệu TT- kyHieu X Textbox Ký hiệu thông tư nghị
2 NĐ định
3 Ngày hiệu lực ngayCoHieu X Datepicker Chọn, nhập ngày

BCA-C08_XLVP_2023_DD Internal use Trang 42


Tài liệu thiết kế hệ thống V1.0

Luc TTNĐ bắt đầu có hiệu


lực
Ngày hết hiệu ngayHetHieu Datepicker Chọn, nhập ngày
4 lực Luc TTNĐ hết hiệu lực
Nội dung noiDung Textbox Nhập nội dung của
5
TTNĐ
Ngày ban ngayBanHan X Datepicker Chọn, nhập ngày ban
6
hành h hành TTNĐ
Loại hình hinhThucBo - Dropdownlist Chọn loại hình thức bổ
thức bổ sung Sung sung
Danh sách TTNĐ sửa đổi bổ sung

1 Ký hiệu kyHieu X Dropdownlist Chọn ký hiệu TTNĐ

2 Căn cứ canCu X Textbox Hiển thị căn cứ TTNĐ


e.1.2.1.2.3. Xử lý sự kiện
STT Sự kiện Quy trình
1 Page_Load Click nút Thêm mới tại màn hình danh sách Danh mục
thông tư nghị định → Màn hình chuyển đến màn
Thêm mới
Màn hình hiển thị như hình trên
2 BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu TTNĐ →
Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
thêm mới.
3 BtnCreateSuaDoiBo Click Thêm mới (Sửa đổi bổ sung).
Sung_Click Danh sách sửa đổi bổ sung TTNĐ hiển thị như hình
4 BtnDeleteSuaDoiBo Click Xóa (Sửa đổi bổ sung) ở cuối mỗi bản ghi →
Sung_Click Click Đồng ý.
Danh sách sửa đổi bổ sung TTNĐ xóa bản ghi tương
ứng khỏi danh sách

BCA-C08_XLVP_2023_DD Internal use Trang 43


Tài liệu thiết kế hệ thống V1.0

5 BtnClose_Click TH1: Click nút Đóng → Click Đồng ý.


Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục
TTNĐ.
e.1.2.1.2.4. Kiểm soát dữ liệu/các ràng buộc

STT Tên Điều kiện


1 Mã TT-NĐ Không được nhập
2 Ký hiệu TT-NĐ Nhập tối đa 20 ký tự, bắt buộc nhập
3 Ngày hiệu lực Bắt buộc nhập
Ngày hiệu lực không được lớn hơn Ngày hết hiệu lực
Ngày hiệu lực không được nhỏ hơn Ngày ban hành
4 Nội dung Nhập tối đa 255 ký tự, bắt buộc nhập
5 Ngày ban hành Bắt buộc nhập, không được nhập ngày lớn hơn ngày hiện
tại

6 Popup hình thức bổ Bắt buộc chọn


sung_Ký hiệu
7 Popup hình thức bổ Bắt buộc nhập, tối đa 255 ký tự
sung _Căn cứ

BCA-C08_XLVP_2023_DD Internal use Trang 44


Tài liệu thiết kế hệ thống V1.0

e.1.2.1.3. Chỉnh sửa danh mục thông tư nghị định

e.1.2.1.3.1. Giao diện

HÌnh 7: Chỉnh sửa danh mục Thông tư nghị định


e.1.2.1.3.2. Danh sách control/thành phần giao diện

Tên
thành Bắt
STT Tên label Định dạng Mô tả
phần / buộc?
Control
Form thông tin chung
Mã TT-NĐ ma Textbox Mã thông tư nghị định
1
Mã là tự sinh
Ký hiệu TT-NĐ kyHieu X Textbox Ký hiệu thông tư nghị
2
định
Ngày hiệu lực ngayCoH X Datepicker Chọn, nhập ngày
3 ieuLuc TTNĐ bắt đầu có hiệu
lực
Ngày hết hiệu lực ngayHet Datepicker Chọn, nhập ngày
4
HieuLuc TTNĐ hết hiệu lực
Nội dung noiDung Textbox Nhập nội dung của
5
TTNĐ
6 Ngày ban hành ngayBan X Datepicker Chọn, nhập ngày ban

BCA-C08_XLVP_2023_DD Internal use Trang 45


Tài liệu thiết kế hệ thống V1.0

Hanh hành TTNĐ


Loại hình thức hinhThuc Dropdownli Chọn loại hình thức bổ
bổ sung BoSung st sung
Danh sách TTNĐ sửa đổi bổ sung
Ký hiệu kyHieu X Dropdownli Chọn ký hiệu TTNĐ
1
st

2 Căn cứ canCu X Textbox Hiển thị căn cứ TTNĐ

e.1.2.1.3.3. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Click nút Chỉnh sửa tại màn hình danh sách Danh
mục thông tư nghị định → Màn hình chuyển đến
màn chỉnh sửa
2 BtnSave_Click Nhập thông tin trong Form chỉnh sửa dữ liệu
danh mục → Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu
nếu thỏa mãn → lưu danh mục theo thông tin vừa
nhập → Màn hình chuyển đến màn xem chi tiết
danh mục vừa thêm mới.
3 BtnCreateSuaDoiBoSung_ Click Thêm mới (Sửa đổi bổ sung).
Click Danh sách sửa đổi bổ sung TTNĐ hiển thị như
hình
4 BtnDeleteSuaDoiBoSung_ Click Xóa (Sửa đổi bổ sung) ở cuối mỗi bản ghi
Click → Click Đồng ý.
Danh sách sửa đổi bổ sung TTNĐ xóa bản ghi
tương ứng khỏi danh sách
5 BtnCloseSuaDoiBoSung_ Click Thêm mới/Xem chi tiết/Chỉnh sửa (Sửa đổi
Click bổ sung) → Click Đóng.
Màn hình tắt popup
6 BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu

BCA-C08_XLVP_2023_DD Internal use Trang 46


Tài liệu thiết kế hệ thống V1.0

nếu thỏa mãn → lưu danh mục theo thông tin vừa
nhập → Màn hình chuyển đến màn xem danh
sách danh mục.

e.1.2.1.3.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


Mã TT-NĐ Không được nhập
Ký hiệu TT-NĐ Nhập tối đa 20 ký tự, bắt buộc nhập
Ngày hiệu lực Bắt buộc nhập
Ngày hiệu lực không được lớn hơn Ngày hết hiệu lực
Ngày hiệu lực không được nhỏ hơn Ngày ban hành
Nội dung Nhập tối đa 255 ký tự, bắt buộc nhập
Ngày ban hành Bắt buộc nhập, không được nhập ngày lớn hơn ngày hiện tại
Popup hình thức bổ Bắt buộc chọn
sung_Ký hiệu
Popup hình thức bổ sung Bắt buộc nhập, tối đa 255 ký tự
_Căn cứ

BCA-C08_XLVP_2023_DD Internal use Trang 47


Tài liệu thiết kế hệ thống V1.0

e.1.2.1.4. Xem chi tiết danh mục thông tư nghị định

e.1.2.1.4.1. Giao diện

HÌnh 8: Xem chi tiết danh mục Thông tư nghị định


e.1.2.1.4.2. Danh sách control/thành phần giao diện

STT Tên label Tên Bắt Định dạng Vai trò


thành buộc
phần / nhập?
Control
Form thông tin chung
1 Mã TT-NĐ ma Textbox Mã thông tư nghị định
Mã là tự sinh
2 Ký hiệu TT-NĐ kyHieu Textbox Ký hiệu thông tư nghị
định
3 Ngày hiệu lực ngayCoH Datepicker Chọn, nhập ngày
ieuLuc TTNĐ bắt đầu có hiệu
lực
4 Ngày hết hiệu lực ngayHet Datepicker Chọn, nhập ngày
HieuLuc TTNĐ hết hiệu lực
5 Nội dung noiDung Textbox Nhập nội dung của
TTNĐ

BCA-C08_XLVP_2023_DD Internal use Trang 48


Tài liệu thiết kế hệ thống V1.0

6 Ngày ban hành ngayBan Datepicker Chọn, nhập ngày ban


Hanh hành TTNĐ
Loại hình thức hinhThuc Dropdownli Chọn loại hình thức bổ
bổ sung BoSung st sung
Danh sách TTNĐ sửa đổi bổ sung
1 Ký hiệu kyHieu Dropdownli Chọn ký hiệu TTNĐ
st
2 Căn cứ canCu Textbox Hiển thị căn cứ TTNĐ
e.1.2.1.4.3. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục thông tư nghị định → Màn hình
chuyển đến màn Xem chi tiết.
Màn hình hiển thị như hình trên
2 BtnEdit_Click Click nút Chỉnh sửa.
Màn hình hiển thị như hình trên
3 BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh
sách danh mục.
e.1.2.2. Thiết kế các hàm, thủ tục

e.1.2.2.1. Lấy danh sách và tìm kiếm thông tư nghị định

e.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách thông tư nghị định theo nhiều tiêu chí tìm kiếm.
Method URL
GET xlvp/api/v1/danh-muc/thong-tu-nghi-dinh
e.1.2.2.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã thông tư nghị định cần tìm
2 kyHieu String Ký hiệu thông tư nghị định

BCA-C08_XLVP_2023_DD Internal use Trang 49


Tài liệu thiết kế hệ thống V1.0

cần tìm
3 noiDung String Nội dung thông tư nghị định
cần tìm
4 ngayBanHanh Date Ngày ban hành thông tư nghị
định
5 ngayCoHieuLuc Date Ngày có hiệu lực của thông tư
nghị định
6 ngayHetHieuLuc Date Ngày hết hiệu lực của thông tư
nghị định
7 isConHieuLuc Boolean Thông tư có còn hiệu lực:
+ True: còn hiệu lực
+ False: hết hiệu lực
8 linhVuc String Lĩnh vực của thông tư nghị
định
9 page Int Trang cần tìm (bắt đầu từ 0)
10 pageSize int Số bản ghi trên một trang
11 timKiemNhanh Boolean Nội dung tìm kiếm nhanh
12 isFetchAll Boolean Lấy tất cả các bản ghi của
thông tư nghị định

Các giá trị trả về là:

BCA-C08_XLVP_2023_DD Internal use Trang 50


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ Mô tả


liệu
1 ma String Mã thông tư nghị định
2 so Long Số thông tư nghị định
3 kyHieu String Ký hiệu thông tư nghị định
4 noiDung String Nội dung thông tư nghị định
5 ngayBanHanh Date Ngày ban hành của thông tư nghị định
6 ngayCoHieuLuc Date Ngày có hiệu lực của thông tư nghị định
7 ngayHetHieuLuc Date Ngày hết hiệu lực của thông tư nghị định
8 ttndBoSung List<Thong Danh sách thông tư nghị định bổ sung
TuNghiDinh
BoSung>
9 nguoiSua String Người sửa cuối
10 ngaySua String Ngày sửa cuối
11 hinhThucBoSung String Hình thức bổ sung
e.1.2.2.1.3. Mô tả chi tiết

Service:
- Gọi hàm PKG_THONG_TU_NGHI_DINH.SEARCH xử lý lấy danh sách thông tư
nghị định từ database.
Procedure:
- Hàm PKG_THONG_TU_NGHI_DINH.SEARCH là một thủ tục được sử dụng để tìm
kiếm các thông tư nghị định dựa trên các tiêu chí khác nhau.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 P_TIM_KIEM VARCHAR2 N Chuỗi tìm kiếm nhanh
_NHANH
2 P_MA VARCHAR2 N Mã thông tư nghị định
3 P_KY_HIEU VARCHAR2 N Ký hiệu thông tư nghị đinh

BCA-C08_XLVP_2023_DD Internal use Trang 51


Tài liệu thiết kế hệ thống V1.0

4 P_NOI_DUN VARCHAR2 N Nội dung thông tư nghị định


G
5 P_NGAY_BA DATE N Ngày ban hành thông tư nghị
N_HANH định
6 P_NGAY_CO DATE N Ngày có hiệu lực của thông tự
_HIEU_LUC nghị định tương ứng
7 P_NGAY_HE DATE N Ngày hết hiệu lực của thông
T_HIEU_LUC tự nghị định tương ứng
8 P_IS_CON_H NUMBER N Thông tư nghị định có còn
IEU_LUC hiệu lực hay không
9 P_LINH_VUC VARCHAR2 Lĩnh vực của thông tư nghị
định
10 P_PAGE NUMBER N Trang hiện tại
11 P_SIZE NUMBER N Dữ liệu trên một trang
12 V_CURSOR CURSOR X Con trỏ tham chiếu đến danh
sách thông tự nghị định tìm
được

- Hàm SEARCH() được sử dụng để lấy danh sách các thông tư nghị định theo các
điều kiện tìm kiếm được cung cấp. Kết quả trả về được sắp xếp giảm dần theo
ngày hết hiệu lực. Đây là một thủ tục, không có giá trị trả về, nhưng nó sẽ trả về
một con trỏ tham chiếu trỏ đến danh thông tư nghị định.
- Input:

o P_TIM_KIEM_NHANH: Chuỗi tìm kiếm thông tin của thông tư nghị định
(có thể là mã số, ký hiệu thông tư nghị định).
o P_MA: Mã thông tư nghị định

o P_KY_HIEU: Ký hiệu thông tư nghị định

o P_NOI_DUNG: Nội dung thông tư nghị định

o P_NGAY_BAN_HANH: Ngày bàn hành thông tư nghị định

o P_NGAY_CO_HIEU_LUC: Có hiệu lực từ ngày

o P_NGAY_HET_HIEU_LUC: Có hiệu lực đến ngày

BCA-C08_XLVP_2023_DD Internal use Trang 52


Tài liệu thiết kế hệ thống V1.0

o P_IS_CON_HIEU_LUC: Thông tư nghị định có còn hiệu lực không

o V_LINH_VUC: Lĩnh vực của thông tư nghị định

o P_PAGE: Trang hiện tại của danh sách thông tư nghị định

o P_PAGE_SIZE: Số bản ghi trên một trang

- Output:

o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các thông tư
nghị định tìm kiếm được. Các thông tin bao gồm tất cả các trường trong
bảng THONG_TU_NGHI_DINH cùng với thông tin lĩnh vực tương ứng.
Các thông tư nghị định được sắp xếp giảm dần theo ngày hết hiệu lực.
e.1.2.2.1.4. Xử lý ngoại lệ

Xử lý ngoại lệ được dùng chung toàn bộ dự án


e.1.2.2.2. Thêm mới thông tư nghị định

e.1.2.2.2.1. API

Mô tả: Gọi API để tạo mới thông tư nghị định


Method URL
POST xlvp/api/v1/danh-muc/thong-tu-nghi-dinh
e.1.2.2.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 so String Số của thông tư nghị định
2 ma String Mã của thông tư nghị định
3 kyHieu String Ký hiệu của thông tư nghị
định
4 noiDung String Nội dung của thông tư nghị
định
5 ngayBanHanh Date Ngày ban hành của thông tư
nghị định
6 ngayCoHieuLuc Date Ngày có hiệu lực của thông tư
nghị định

BCA-C08_XLVP_2023_DD Internal use Trang 53


Tài liệu thiết kế hệ thống V1.0

7 ngayHetHieuLuc Date Ngày hết hiệu lực của thông tư


nghị định
8 hinhThucBoSung Enum Hình thức bổ sung:
+ SUA_DOI_BO_SUNG
+ THAY_THE
9 ttndBoSung List<String> Thông tư nghị định bổ sung
10 Username String Tên tài khoản người tạo

Các giá trị trả về là:


STT Tham số Kiểu dữ Mô tả
liệu
1 ma String Mã thông tư nghị định
2 so Long Số thông tư nghị định
3 kyHieu String Ký hiệu thông tư nghị định
4 noiDung String Nội dung thông tư nghị định
5 ngayBanHanh Date Ngày ban hành của thông tư nghị định
6 ngayCoHieuLuc Date Ngày có hiệu lực của thông tư nghị định
7 ngayHetHieuLu Date Ngày hết hiệu lực của thông tư nghị định
c
8 ttndBoSung List<Thong Danh sách thông tư nghị định bổ sung
TuNghiDinh
BoSung>
9 nguoiSua String Người sửa cuối
10 ngaySua String Ngày sửa cuối
11 hinhThucBoSun String Hình thức bổ sung
g
e.1.2.2.2.3. Mô tả chi tiết

Service:
- Validate request:

BCA-C08_XLVP_2023_DD Internal use Trang 54


Tài liệu thiết kế hệ thống V1.0

 Kiểm tra xem ngày hết hiệu có khác rỗng và lớn hơn ngày ngày có hiệu lực
không?
 Kiểm tra xem ngày ban hành có lớn hơn ngày có hiệu lực không?
 Kiểm tra xem ký hiệu thông tư nghị định đã tồn tại chưa?
- Gọi hàm PKG_THONG_TU_NGHI_DINH.CREATE_THONG_TU_NGHI_DINH
để tạo mới thông tư nghị định trong database.
- Gọi
PKG_THONG_TU_NGHI_DINH.UPSERT_THONG_TU_NGHI_DINH_BO_SUN
G để thêm mới thông tư nghị định bổ sung tương ứng trong database
- Nếu hình thức bổ sung là thay thế, gọi hàm
PKG_THONG_TU_NGHI_DINH.SET_NGAY_HET_HIEU_LUC để cập nhập lại
ngày hết hiệu lực của thông tư nghị định vừa tạo.
- Gọi hàm PKG_THONG_TU_NGHI_DINH.GET_TTND_BO_SUNG để cập nhập lại
vào thông tư nghị định vừa tạo và trả về.
Procedure:
- Hàm PKG_THONG_TU_NGHI_DINH.CREATE_THONG_TU_NGHI_DINH là
một thủ tục được sử dụng để tạo mới thông tư nghị dịnh trong database.
- Các giá trị nhập vào và trả ra gồm:

Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
1 P_SO NUMBER (10,0) N Số của thông tư nghị định
2 P_KY_HIEU VARCHAR2 (20 N Ký hiệu của thông tư nghị
CHAR) định
3 P_MA VARCHAR2 (10 N Mã của thông tư nghị định
CHAR)
4 P_NOI_DUN VARCHAR2 (255 N Nội dung của thông tư nghị
G CHAR) định
5 P_NGAY_B TIMESTAMP (3) N Ngày ban hành của thông
AN_HANH tư nghị định
6 P_NGAY_C TIMESTAMP (3) N Có hiệu lực từ ngày
O_HIEU_LU
C

BCA-C08_XLVP_2023_DD Internal use Trang 55


Tài liệu thiết kế hệ thống V1.0

7 P_NGAY_H TIMESTAMP (3) N Có hiệu lực đến ngày


ET_HIEU_L
UC
8 P_NGUOI_T VARCHAR2 (50 N Tài khoản người tạo
AO CHAR)
9 P_HINH_TH VARCHAR2(50 N Hình thức bổ sung của
UC_BO_SU BYTE) thông tư nghị định
NG
10 V_CURSOR CURSOR X Trả về dòng dữ thông tư
nghị định vừa tạo
- Hàm CREATE_THONG_TU_NGHI_DINH được sử dụng để thêm một bản ghi mới
vào bảng THONG_TU_NGHI_DINH. Hàm nhận các tham số đầu vào là thông tin
của bản ghi mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
- Đầu vào:
 P_SO: Kiểu dữ liệu tương ứng với trường SO trong bảng
THONG_TU_NGHI_DINH.
 P_KY_HIEU: Kiểu dữ liệu tương ứng với trường KY_HIEU trong bảng
THONG_TU_NGHI_DINH.
 P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng
THONG_TU_NGHI_DINH.
 P_NOI_DUNG: Kiểu dữ liệu tương ứng với trường NOI_DUNG trong bảng
THONG_TU_NGHI_DINH.
 P_NGAY_BAN_HANH: Kiểu dữ liệu tương ứng với trường
NGAY_BAN_HANH trong bảng THONG_TU_NGHI_DINH.
 P_NGAY_CO_HIEU_LUC: Kiểu dữ liệu tương ứng với trường
NGAY_CO_HIEU_LUC trong bảng THONG_TU_NGHI_DINH.
 P_NGAY_HET_HIEU_LUC: Kiểu dữ liệu tương ứng với trường
NGAY_HET_HIEU_LUC trong bảng THONG_TU_NGHI_DINH.
 P_NGUOI_TAO: Kiểu dữ liệu tương ứng với trường NGUOI_TAO trong
bảng THONG_TU_NGHI_DINH.
Đầu ra:

 V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng

BCA-C08_XLVP_2023_DD Internal use Trang 56


Tài liệu thiết kế hệ thống V1.0

THONG_TU_NGHI_DINH.

 Hàm này sẽ thêm dữ liệu vào bảng THONG_TU_NGHI_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm
GET_THONG_TU_NGHI_DINH_BY_MA để lấy thông tin bản ghi vừa được
thêm và trả về.
Hàm PKG_THONG_TU_NGHI_DINH.UPSERT_THONG_TU_NGHI_DINH_
BO_SUNG là một thủ tục được sử dụng để tạo mới thông tư nghị định bổ sung
trong database.
o Các giá trị nhập vào và trả ra gồm:

Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
1 P_KY_HIEU VARCHAR2(50 N Ký hiệu thông tư nghị định
_TT_ND CHAR)
2 P_KY_HIEU VARCHAR2(50 N Ký hiệu thông tư nghị định được
_TT_ND_D CHAR) sửa đổi bổ sung
UOC_BS
3 V_CURSOR CURSOR X Trả về dòng dữ liệu thông tư
nghị định bổ sung vừa tạo mới
- Hàm UPSERT_THONG_TU_NGHI_DINH_BO_SUNG() được sử dụng để thêm một
bản ghi mới vào bảng THONG_TU_NGHI_DINH_BO_SUNG. Hàm nhận các tham
số đầu vào là thông tin của bản ghi mới.
- Đầu vào:
 P_KY_HIEU_TT_ND: Ký hiệu của thông tư nghị định có kiểu dữ liệu
trùng với kiểu dữ liệu KY_HIEU_TT_ND trong bảng
THONG_TU_NGHI_DINH_BO_SUNG
 P_KY_HIEU_TT_ND_DUOC_BS: Ký hiệu của thông tư nghị định có kiểu
dữ liệu trùng với kiểu dữ liệu KY_HIEU_TT_ND_DUOC_BS trong bảng
THONG_TU_NGHI_DINH_BO_SUNG
- Đầu ra:
 NA

BCA-C08_XLVP_2023_DD Internal use Trang 57


Tài liệu thiết kế hệ thống V1.0

- Hàm SET_NGAY_HET_HIEU_LUC() là một thủ tục được sử dụng để cập nhập lại
ngày hết liệu lực của thông tư nghị định.
- Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập Mô tả


/ Xuất
[N/X]
1 P_KY_HIEU VARCHAR2(20 N Ký hiệu của thông tư nghị định
CHAR)
2 P_NGAY_H TIMESTAMP(3) N Ngày hết hiệu lực của thông tư nghị
ET_HIEU_L định
UC
3 V_CURSOR CURSOR X Trả về dữ liệu thông tư nghị định

STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả


[N/X]
1 P_KY_HIEU VARCHAR2(20 N Ký hiệu thông tư nghị định
CHAR)
2 V_CURSOR CURSOR X Trả về danh sách dữ liệu
thông tư nghị định bổ sung
- Hàm SET_NGAY_HET_HIEU_LUC() sẽ lấy ra những thông tư nghị định bổ
sung có KY_HIEU_TT_ND bằng P_KY_HIEU truyền vào.
- Đầu vào:
 P_KY_HIEU: Kiểu dữ liệu tương ứng với trường KY_HIEU_TT_ND trong
bảng THONG_TU_NGHI_DINH_BO_SUNG.
- Đầu ra:
 V_CURSOR: Kết quả trả về thông tin của thông tư nghị định bổ sung
e.1.2.2.2.4. Xử lý ngoại lệ

- Bẫy lỗi ConstraintViolationException khi:


 Nội dung thông tư nghị định dài quá 255 ký tự.
 Ngày ban hành là ngày quá khứ.
 Ngày có hiệu lực bị rỗng.

BCA-C08_XLVP_2023_DD Internal use Trang 58


Tài liệu thiết kế hệ thống V1.0

 Ký hiệu của thông tư nghị định bổ sung để trống và chưa tồn tại ký hiệu đó
trong hệ thống
 Căn cứ của thông tư nghị định bổ sung để trống và dài quá 255 ký tự.
 Ký hiệu của thông tư nghị định sai định dạng và qá 20 ký tự.
- Bẫy lỗi ResourceExistedException xảy ra khi:
- Khi tên ký hiệu của thông tư nghị định gửi lên đã tồn tại trong hệ thống.
- Bẫy lỗi CustomerException khi:
- Ngày có hiệu lực lớn hơn ngày hết hiệu lực
- Ngày ban hành lớn hơn ngày có hiệu lực

Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.


e.1.2.2.3. Chỉnh sửa thông tư nghị định

e.1.2.2.3.1. API

Mô tả: Gọi API để chỉnh sửa thông tư nghị định


Method URL
PUT xlvp/api/v1/danh-muc/thong-tu-nghi-dinh/{ma}
e.1.2.2.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ Mô tả
liệu
1 ma String Mã thông tư nghị định
2 noiDung String Nội dung của thông tư nghị định
3 ngayBanHanh Date Ngày ban hành của thông tư nghị
định
4 ngayCoHieuLuc Date Ngày có hiệu lực của thông tư nghị
định
5 ngayHetHieuLu Date Ngày hết hiệu lực của thông tư nghị
c định
6 hinhThucBoSun Enum Hình thức bổ sung:
g + SUA_DOI_BO_SUNG
+ THAY_THE
7 ttndBoSung List<String Thông tư nghị định bổ sung

BCA-C08_XLVP_2023_DD Internal use Trang 59


Tài liệu thiết kế hệ thống V1.0

>
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ma String Mã thông tư nghị định
2 so Long Số thông tư nghị định
3 kyHieu String Ký hiệu thông tư nghị định
4 noiDung String Nội dung thông tư nghị định
5 ngayBanHanh Date Ngày ban hành của thông tư nghị định
6 ngayCoHieuLuc Date Ngày có hiệu lực của thông tư nghị định
7 ngayHetHieuLuc Date Ngày hết hiệu lực của thông tư nghị định
8 ttndBoSung List<Thong Danh sách thông tư nghị định bổ sung
TuNghiDinh
BoSung>
9 nguoiSua String Người sửa cuối
10 ngaySua String Ngày sửa cuối
11 hinhThucBoSung String Hình thức bổ sung
e.1.2.2.3.3. Mô tả chi tiết

Service:
- Validate request:
o Kiểm tra xem ngày hết hiệu có khác rỗng và lớn hơn ngày ngày có hiệu lực
không?
o Kiểm tra xem ngày ban hành có lớn hơn ngày có hiệu lực không?
o Kiểm tra xem mã thông tư nghị định có tồn tại không?
- Gọi hàm GET_TTND_BO_SUNG trong PKG_THONG_TU_NGHI_DINH để lấy ra
thông tư nghị định bổ sung cũ.
- Gọi hàm UPDATE_THONG_TU_NGHI_DINH trong
PKG_THONG_TU_NGHI_DINH để cập nhập thông tư nghị định theo mã.
- Gọi hàm DELETE_THONG_TU_NGHI_DINH_BO_SUNG trong
PKG_THONG_TU_NGHI_DINH để xóa các thông tư nghị định bổ sung cũ theo ký
hiệu thông tư nghị định cần cập nhập.

BCA-C08_XLVP_2023_DD Internal use Trang 60


Tài liệu thiết kế hệ thống V1.0

- Nếu hình thức bổ sung cũ là thay thế, gọi hàm SET_NGAY_HET_HIEU_LUC trong
PKG_THONG_TU_NGHI_DINH để cập nhập lại ngày hết hiệu lực của thông tư nghị
định cần cập nhập bằng rỗng.
- Gọi hàm UPSERT_THONG_TU_NGHI_DINH_BO_SUNG trong
PKG_THONG_TU_NGHI_DINH để cập nhập thông tư nghị định bổ sung.
- Nếu hình thức bổ sung mới là thay thế, gọi hàm SET_NGAY_HET_HIEU_LUC
trong PKG_THONG_TU_NGHI_DINH để cập nhập lại ngày hết hiệu lực của thông
tư nghị định.
- Gọi hàm GET_TTND_BO_SUNG trong PKG_THONG_TU_NGHI_DINH để lấy ra
thông tư nghị định bổ sung mới để trả về.
Procedure:
- Hàm PKG_THONG_TU_NGHI_DINH.UPDATE_THONG_TU_NGHI_DINH là
một thủ tục được sử dụng để cập nhập thông tư nghị dịnh trong database.
- Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả


[N/X]
1 P_MA VARCHAR2 N Mã thông tư nghị định
(10 CHAR
2 P_NOI_DUN VARCHAR2 N Nội dung thông tư nghị
G (255 CHAR) định
3 P_NGAY_B TIMESTAMP(3) N Ngày ban hành thông tư
AN_HANH nghị định
4 P_NGAY_C TIMESTAMP(3) N Có hiệu lực từ ngày
O_HIEU_LU
C
5 P_NGAY_H TIMESTAMP(3) N Có hiệu lực đến ngày
ET_HIEU_L
UC
6 P_NGUOI_S VARCHAR2(50 N Thông tin người sửa
UA CHAR)
7 P_HINH_TH VARCHAR2(50 N Hình thức bổ sung của
UC_BO_SU BYTE thông tự nghị định
NG

BCA-C08_XLVP_2023_DD Internal use Trang 61


Tài liệu thiết kế hệ thống V1.0

8 V_CURSOR CURSOR X Trả về dòng dữ liệu thông


tư nghị định vừa cập nhật
10 V_CURSOR CURSOR X Trả về dòng dữ thông tư
nghị định vừa tạo
- Hàm CREATE_THONG_TU_NGHI_DINH được sử dụng để cập nhập thông tin dữ
liệu vào bản ghi có mã thông tư nghị định tương ứng với P_MA truyền vào ở trong
bảng THONG_TU_NGHI_DINH.
- Đầu vào:
 P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng
THONG_TU_NGHI_DINH.
 P_NOI_DUNG: Kiểu dữ liệu tương ứng với trường NOI_DUNG trong
bảng THONG_TU_NGHI_DINH.
 P_NGAY_BAN_HANH: Kiểu dữ liệu tương ứng với trường
NGAY_BAN_HANH trong bảng THONG_TU_NGHI_DINH.
 P_NGAY_CO_HIEU_LUC: Kiểu dữ liệu tương ứng với trường
NGAY_CO_HIEU_LUC trong bảng THONG_TU_NGHI_DINH.
 P_NGAY_HET_HIEU_LUC: Kiểu dữ liệu tương ứng với trường
NGAY_HET_HIEU_LUC trong bảng THONG_TU_NGHI_DINH.
 P_NGUOI_SUA: Kiểu dữ liệu tương ứng với trường NGUOI_SUA trong
bảng THONG_TU_NGHI_DINH.
- Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được chỉnh sửa trong bảng
THONG_TU_NGHI_DINH.
- Hàm này sẽ cập nhập dữ liệu vào bảng THONG_TU_NGHI_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm
GET_THONG_TU_NGHI_DINH_BY_MA để lấy thông tin bản ghi vừa được thêm
và trả về.
- Hàm
PKG_THONG_TU_NGHI_DINH.UPSERT_THONG_TU_NGHI_DINH_BO_SUN
G là một thủ tục được sử dụng để tạo mới hoặc cập nhập thông tư nghị định bổ sung
trong database.
- Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 62


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Nhập Mô tả


/ Xuất
[N/X]
1 P_KY_HIEU VARCHAR2(50 N Ký hiệu thông tư nghị định
_TT_ND CHAR)
2 P_KY_HIEU VARCHAR2(50 N Ký hiệu thông tư nghị định được
_TT_ND_D CHAR) sửa đổi bổ sung
UOC_BS
3 V_CURSOR CURSOR X Trả về dòng dữ liệu thông tư nghị
định bổ sung vừa tạo mới
- Hàm UPSERT_THONG_TU_NGHI_DINH_BO_SUNG() được sử dụng để thêm một
bản ghi mới vào bảng THONG_TU_NGHI_DINH_BO_SUNG. Hàm nhận các tham
số đầu vào là thông tin của bản ghi mới.
- Đầu vào:
 P_KY_HIEU_TT_ND: Ký hiệu của thông tư nghị định có kiểu dữ liệu
trùng với kiểu dữ liệu KY_HIEU_TT_ND trong bảng
THONG_TU_NGHI_DINH_BO_SUNG
 P_KY_HIEU_TT_ND_DUOC_BS: Ký hiệu của thông tư nghị định có kiểu
dữ liệu trùng với kiểu dữ liệu KY_HIEU_TT_ND_DUOC_BS trong bảng
THONG_TU_NGHI_DINH_BO_SUNG
- Đầu ra:
 NA
- Hàm SET_NGAY_HET_HIEU_LUC() là một thủ tục được sử dụng để cập nhập lại
ngày hết liệu lực của thông tư nghị định.
- Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 63


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Nhập / Mô tả


Xuất
[N/X]
1 P_KY_HIEU VARCHAR2(20 N Ký hiệu của thông tư nghị định
CHAR)
2 P_NGAY_H TIMESTAMP(3) N Ngày hết hiệu lực của thông tư
ET_HIEU_L nghị định
UC
3 V_CURSOR CURSOR X Trả về dữ liệu thông tư nghị định
- Hàm SET_NGAY_HET_HIEU_LUC() sẽ cập nhập NGAY_HET_HIEU_LUC trong
bảng THONG_TU_NGHI_DINH bằng P_NGAY_HET_HIEU_LUC truyền vào
- Đầu vào:
 P_KY_HIEU: Kiểu dữ liệu tương ứng với trường KY_HIEU trong bảng
THONG_TU_NGHI_DINH
 P_NGAY_HET_HIEU_LUC: Kiểu dữ liệu tương ứng với trường
NGAY_HET_HIEU_LUC trong bảng THONG_TU_NGHI_DINH
- Đầu ra:
 NA
- Hàm GET_TTND_BO_SUNG() là một thủ tục được sử dụng để lấy ra các thông tư
nghị định bổ sung theo ký hiệu thông tư nghị định
- Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Mô tả


Xuất
[N/X]
1 P_KY_HIEU VARCHAR2(20 N Ký hiệu thông tư nghị định
CHAR)
2 V_CURSOR CURSOR X Trả về danh sách dữ liệu thông
tư nghị định bổ sung
- Hàm SET_NGAY_HET_HIEU_LUC() sẽ lấy ra những thông tư nghị định bổ sung
có KY_HIEU_TT_ND bằng P_KY_HIEU truyền vào.
- Đầu vào:

BCA-C08_XLVP_2023_DD Internal use Trang 64


Tài liệu thiết kế hệ thống V1.0

 P_KY_HIEU: Kiểu dữ liệu tương ứng với trường KY_HIEU_TT_ND trong


bảng THONG_TU_NGHI_DINH_BO_SUNG.
- Đầu ra:
 V_CURSOR: Kết quả trả về thông tin của thông tư nghị định bổ sung
- Hàm DELETE_THONG_TU_NGHI_DINH_BO_SUNG trong
PKG_THONG_TU_NGHI_DINH là một thủ tục được sử dụng để xóa thông tư nghị
định bổ sung trong database.
- Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Mô tả
Xuất
[N/X]
1 P_KY_HIEU VARCHAR2 N Mã thông tư nghị định
(20 CHAR)
2 V_CURSOR CURSOR X Con trỏ tham chiếu thông tư nghị
định bổ sung vừa xóa.
- Hàm DELETE_THONG_TU_NGHI_DINH_BO_SUNG được sử dụng để xóa các
Thông tư nghị định bổ sung đã có trong cơ sở dữ liệu.
- Input:
 P_KY_HIEU: Ký hiệu của thông tư nghị định.
- Output:
 V_CURSOR: Con trỏ tham chiếu thông tư nghị định bổ sung vừa xóa.
- Hàm này sẽ xóa dữ liệu của thông tư nghị định bổ sung có KY_HIEU = P_KY_HIEU
truyền xuống
- Hàm PKG_THONG_TU_NGHI_DINH.UPSERT_THONG_TU_NGHI_DINH_
BO_SUNG là một thủ tục được sử dụng để tạo mới hoặc câp nhập thông tư nghị định
bổ sung trong database.
- Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Mô tả


Xuất
[N/X]
1 P_KY_HIEU VARCHAR2(50 N Ký hiệu thông tư nghị định
_TT_ND CHAR)
2 P_KY_HIEU VARCHAR2(50 N Ký hiệu thông tư nghị định được
_TT_ND_D CHAR) sửa đổi bổ sung

BCA-C08_XLVP_2023_DD Internal use Trang 65


Tài liệu thiết kế hệ thống V1.0

UOC_BS
3 V_CURSOR CURSOR X Trả về dòng dữ liệu thông tư nghị
định bổ sung vừa tạo mới
- Hàm UPSERT_THONG_TU_NGHI_DINH_BO_SUNG() được sử dụng để thêm một
bản ghi mới hoặc cập nhập bản ghi đã có vào bảng
THONG_TU_NGHI_DINH_BO_SUNG. Hàm nhận các tham số đầu vào là thông tin
của bản ghi mới.
- Đầu vào:
 P_KY_HIEU_TT_ND: Ký hiệu của thông tư nghị định có kiểu dữ liệu
trùng với kiểu dữ liệu KY_HIEU_TT_ND trong bảng
THONG_TU_NGHI_DINH_BO_SUNG
 P_KY_HIEU_TT_ND_DUOC_BS: Ký hiệu của thông tư nghị định có kiểu
dữ liệu trùng với kiểu dữ liệu KY_HIEU_TT_ND_DUOC_BS trong bảng
THONG_TU_NGHI_DINH_BO_SUNG
- Đầu ra: NA
e.1.2.2.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã thông tư nghị định gửi lên không tồn tại trên hệ thống
Bẫy lỗi ConstraintViolationException khi:
- Nội dung thông tư nghị định dài quá 255 ký tự.
- Ngày ban hành là ngày quá khứ.
- Ngày có hiệu lực bị rỗng.
- Ký hiệu của thông tư nghị định bổ sung để trống và chưa tồn tại ký hiệu đó trong
hệ thống
- Căn cứ của thông tư nghị định bổ sung để trống và dài quá 255 ký tự.
- Ký hiệu của thông tư nghị định sai định dạng và qá 20 ký tự.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
e.1.2.2.4. Xem chi tiết thông tư nghị định

e.1.2.2.4.1. API

Mô tả: Gọi API để lấy thông tin chi tiết thông tư nghị định

BCA-C08_XLVP_2023_DD Internal use Trang 66


Tài liệu thiết kế hệ thống V1.0

Method URL
GET xlvp/api/v1/danh-muc/thong-tu-nghi-dinh/{ma}
e.1.2.2.4.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã thông tư nghị định
Các giá trị trả về là:
STT Tham số Kiểu dữ liệu Mô tả
1 so String Số của thông tư nghị định
2 ma String Mã của thông tư nghị định
3 kyHieu String Ký hiệu của thông tư nghị
định
4 noiDung String Nội dung của thông tư nghị
định
5 ngayBanHanh Date Ngày ban hành của thông tư
nghị định
6 ngayCoHieuLuc Date Ngày có hiệu lực của thông tư
nghị định
7 ngayHetHieuLuc Date Ngày hết hiệu lực của thông tư
nghị định
8 hinhThucBoSung Enum Hình thức bổ sung:
+ SUA_DOI_BO_SUNG
+ THAY_THE
9 ttndBoSung List<String> Thông tư nghị định bổ sung
10 Username String Tên tài khoản người tạo
e.1.2.2.4.3. Mô tả chi tiết

Service:
- Gọi hàm GET_THONG_TU_NGHI_DINH_BY_MA trong
PKG_THONG_TU_NGHI_DINH xử lý lấy lên thông tư nghị định theo mã từ
database

BCA-C08_XLVP_2023_DD Internal use Trang 67


Tài liệu thiết kế hệ thống V1.0

- Kiểm tra xem có tồn tại thông tư nghị định theo mã đã gửi lên không?
- Gọi PKG_THONG_TU_NGHI_DINH.GET_TTND_BO_SUNG để lấy lên thông
tư nghị định bổ sung.
Procedure:
- Hàm PKG_THONG_TU_NGHI_DINH.GET_THONG_TU_NGHI_DINH_BY_MA
là một thủ tục được sử dụng để lấy thông tin thông tư nghị trong database.
- Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 P_MA VARCHAR2 N Mã thông tư nghị định
(10 CHAR) của danh mục thông tư
nghị định cần tìm
2 V_CURSO CURSOR X Con trỏ tham chiều đến
R kết quả tìm kiếm.
- Hàm GET_THONG_TU_NGHI_DINH_BY_MA lấy lên 1 thông tư nghị định có mã
được truyền xuống
- Input:
 C_MA: Mã thông tư nghị định, là một biến kiểu dữ liệu của cột MA trong
bảng THONG_TU_NGHI_DINH.
- Output:
 V_CURSOR: Con trỏ tham chiếu đến thông tư nghị định có MA = P_MA
truyền xuống với giá trị cột IS_DELETE = 0.
- Hàm GET_TTND_BO_SUNG() là một thủ tục được sử dụng để lấy ra các thông tư
nghị định bổ sung theo ký hiệu thông tư nghị định
- Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả


[N/X]
1 P_KY_HIEU VARCHAR2(20 N Ký hiệu thông tư nghị định
CHAR)
2 V_CURSOR CURSOR X Trả về danh sách dữ liệu
thông tư nghị định bổ sung
- Hàm SET_NGAY_HET_HIEU_LUC() sẽ lấy ra những thông tư nghị định bổ sung có
KY_HIEU_TT_ND bằng P_KY_HIEU truyền vào.

BCA-C08_XLVP_2023_DD Internal use Trang 68


Tài liệu thiết kế hệ thống V1.0

- Đầu vào:
 P_KY_HIEU: Kiểu dữ liệu tương ứng với trường KY_HIEU_TT_ND trong
bảng THONG_TU_NGHI_DINH_BO_SUNG.
- Đầu ra:
 V_CURSOR: Kết quả trả về thông tin của thông tư nghị định bổ sung
e.1.2.2.4.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã thông tư nghị định gửi lên không tồn tại trên hệ thống.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
e.1.2.2.5. Export Excel – Trả file Excel chứa danh sách thông tư nghị định lọc theo
nhiều tiêu chí
e.1.2.2.5.1. API

Mô tả: Gọi API để lấy thông tin chi tiết thông tư nghị định
Method URL
GET xlvp/api/v1/danh-muc/thong-tu-nghi-dinh/export/excel
e.1.2.2.5.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã thông tư nghị định cần tìm
2 kyHieu String Ký hiệu thông tư nghị định
cần tìm
3 noiDung String Nội dung thông tư nghị định
cần tìm
4 ngayBanHanh Date Ngày ban hành thông tư nghị
định
5 ngayCoHieuLuc Date Ngày có hiệu lực của thông tư
nghị định
6 ngayHetHieuLuc Date Ngày hết hiệu lực của thông tư
nghị định
7 isConHieuLuc Boolean Thông tư có còn hiệu lực:

BCA-C08_XLVP_2023_DD Internal use Trang 69


Tài liệu thiết kế hệ thống V1.0

+ True: còn hiệu lực


+ False: hết hiệu lực
8 linhVuc String Lĩnh vực của thông tư nghị
định
9 page Int Trang cần tìm (bắt đầu từ 0)
10 pageSize int Số bản ghi trên một trang
11 timKiemNhanh Boolean Nội dung tìm kiếm nhanh
12 isFetchAll Boolean Lấy tất cả các bản ghi của
thông tư nghị định
Các giá trị trả về là:
Kết quả trả về là file Excel dạng byte[]
e.1.2.2.5.3. Mô tả chi tiết

Service:
- Gọi hàm PKG_THONG_TU_NGHI_DINH.SEARCH xử lý lấy danh sách thông
tư nghị định từ database.
- Xử lý trả ra file Excel dạng byte[]
Procedure:
- Hàm PKG_THONG_TU_NGHI_DINH.SEARCH là một thủ tục được sử dụng để lấy
thông tin thông tư nghị định trong database.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Mô tả
Xuất
[N/X]
1 P_TIM_KIEM VARCHAR2 N Chuỗi tìm kiếm nhanh
_NHANH
2 P_MA VARCHAR2 N Mã thông tư nghị định
3 P_KY_HIEU VARCHAR2 N Ký hiệu thông tư nghị đinh
4 P_NOI_DUN VARCHAR2 N Nội dung thông tư nghị định
G
5 P_NGAY_BA DATE N Ngày ban hành thông tư nghị định

BCA-C08_XLVP_2023_DD Internal use Trang 70


Tài liệu thiết kế hệ thống V1.0

N_HANH
6 P_NGAY_CO DATE N Ngày có hiệu lực của thông tự nghị
_HIEU_LUC định tương ứng
7 P_NGAY_HE DATE N Ngày hết hiệu lực của thông tự nghị
T_HIEU_LUC định tương ứng
8 P_IS_CON_H NUMBER N Thông tư nghị định có còn hiệu lực
IEU_LUC hay không
9 P_LINH_VUC VARCHAR2 Lĩnh vực của thông tư nghị định
10 P_PAGE NUMBER N Trang hiện tại
11 P_SIZE NUMBER N Dữ liệu trên một trang
12 V_CURSOR CURSOR X Con trỏ tham chiếu đến danh sách
thông tự nghị định tìm được

- Hàm SEARCH() được sử dụng để lấy danh sách các thông tư nghị định theo các
điều kiện tìm kiếm được cung cấp. Kết quả trả về được sắp xếp giảm dần theo
ngày hết hiệu lực. Đây là một thủ tục, không có giá trị trả về, nhưng nó sẽ trả về
một con trỏ tham chiếu trỏ đến danh thông tư nghị định.
- Input:

o P_TIM_KIEM_NHANH: Chuỗi tìm kiếm thông tin của thông tư nghị định
(có thể là mã số, ký hiệu thông tư nghị định).
o P_MA: Mã thông tư nghị định

o P_KY_HIEU: Ký hiệu thông tư nghị định

o P_NOI_DUNG: Nội dung thông tư nghị định

o P_NGAY_BAN_HANH: Ngày bàn hành thông tư nghị định

o P_NGAY_CO_HIEU_LUC: Có hiệu lực từ ngày

o P_NGAY_HET_HIEU_LUC: Có hiệu lực đến ngày

o P_IS_CON_HIEU_LUC: Thông tư nghị định có còn hiệu lực không

o V_LINH_VUC: Lĩnh vực của thông tư nghị định

o P_PAGE: Trang hiện tại của danh sách thông tư nghị định

o P_PAGE_SIZE: Số bản ghi trên một trang

BCA-C08_XLVP_2023_DD Internal use Trang 71


Tài liệu thiết kế hệ thống V1.0

- Output:

o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các thông tư
nghị định tìm kiếm được. Các thông tin bao gồm tất cả các trường trong
bảng THONG_TU_NGHI_DINH cùng với thông tin lĩnh vực tương ứng.
Các thông tư nghị định được sắp xếp giảm dần theo ngày hết hiệu lực.
e.1.2.2.5.4. Xử lý ngoại lệ

Xử lý ngoại lệ được dùng chung toàn bộ dự án


e.1.2.2.6. Xóa thông tư nghị định

e.1.2.2.6.1. API

Mô tả: Gọi API để xóa thông tư nghị định


Method URL
DELETE xlvp/api/v1/danh-muc/thong-tu-nghi-dinh/{ma}
e.1.2.2.6.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã thông tư nghị định
Các giá trị trả về là:
STT Tham số Kiểu dữ liệu Mô tả
1 result Boolean Kết quả xóa thông tư nghị định:
+ true : thành công
+ false : không thành công
e.1.2.2.6.3. Mô tả chi tiết

Service:
- Gọi hàm GET_THONG_TU_NGHI_DINH_BY_MA trong
PKG_THONG_TU_NGHI_DINH.
- Kiểm tra có dữ liệu của thông tư nghị định trong database theo mã gửi lên hay
không?
- Gọi hàm PKG_THONG_TU_NGHI_DINH.GET_TTND_BO_SUNG để lấy ra
thông tư nghị định bổ sung cũ.
- Gọi hàm DELETE_THONG_TU_NGHI_DINH trong
PKG_THONG_TU_NGHI_DINH để xử lý xóa thông tư nghị định ở database.

BCA-C08_XLVP_2023_DD Internal use Trang 72


Tài liệu thiết kế hệ thống V1.0

- Gọi hàm DELETE_THONG_TU_NGHI_DINH_BO_SUNG trong


PKG_THONG_TU_NGHI_DINH xử lý xóa thông tư nghị định bổ sung ở
database.
Procedure:
- Hàm PKG_THONG_TU_NGHI_DINH.DELETE_THONG_TU_NGHI_DINH là
một thủ tục được sử dụng để cập nhật thông tư nghị định trong database là đã xóa.
- Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 P_MA VARCHAR2 N Mã thông tư nghị định
(10 CHAR)
2 P_NGUOI_S VARCHAR2(50 N Thông tin người sửa
UA CHAR)
- Hàm DELETE_THONG_TU_NGHI_DINH được sử dụng để cập nhật thông tin của
một Thông tư nghị định đã có trong cơ sở dữ liệu.
- Input:
 P_MA: Mã của thông tư nghị định cần xóa.
 P_NGUOI_SUA: Mã người xóa thông tư nghị định
- Output:
 V_CURSOR: Con trỏ tham chiếu thông tư nghị định vừa xóa.
 Hàm này sẽ cập nhật dữ liệu IS_DELETED = 1 trong bảng
THONG_TU_NGHI_DINH với thông tin mã thông tư nghị định được
truyền vào
- Hàm GET_TTND_BO_SUNG() là một thủ tục được sử dụng để xem các ký hiệu
thông tư nghị định bổ sung theo ký hiệu thông tư nghị định
- Các giá trị nhập vào và trả ra bao gồm:
Nhập / Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]
1 P_KY_HIEU VARCHAR2(20 N Ký hiệu thông tư nghị định
CHAR)
2 V_CURSOR CURSOR X Trả về danh sách dữ liệu
thông tư nghị định bổ sung
- Hàm GET_TTND_BO_SUNG() được sử dụng để hiển thị các bản ghi trong bảng

BCA-C08_XLVP_2023_DD Internal use Trang 73


Tài liệu thiết kế hệ thống V1.0

THONG_TU_NGHI_DINH_BO_SUNG có KY_HIEU_TT_ND bằng P_KY_HIEU


truyền vào.
- Input:
 P_KY_HIEU: Kiểu dữ liệu tương ứng với trường KY_HIEU_TT_ND trong
bảng THONG_TU_NGHI_DINH_BO_SUNG.
- Output:
 V_CURSOR: Kết quả trả về thông tin của thông tư nghị định bổ sung
- Hàm PKG_THONG_TU_NGHI_DINH.GET_THONG_TU_NGHI_DINH_BY_MA
là một thủ tục được sử dụng để lấy thông tin thông tư nghị trong database.
- Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1. P_MA VARCHAR2 N Mã thông tư nghị định
(10 CHAR) của danh mục thông tư
nghị định cần tìm
2. V_CURSO CURSOR X Con trỏ tham chiều đến
R kết quả tìm kiếm.
- Hàm GET_THONG_TU_NGHI_DINH_BY_MA lấy lên 1 thông tư nghị định có mã
được truyền xuống
- Input:
 C_MA: Mã thông tư nghị định, là một biến kiểu dữ liệu của cột MA trong
bảng THONG_TU_NGHI_DINH.
- Output:
 V_CURSOR: Con trỏ tham chiếu đến thông tư nghị định có MA = P_MA
truyền xuống với giá trị cột IS_DELETE = 0.
- Hàm
PKG_THONG_TU_NGHI_DINH.DELETE_THONG_TU_NGHI_DINH_BO_SUNG là
một thủ tục được sử dụng để xóa thông tư nghị định bổ sung trong database.
- Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 P_KY_HIEU VARCHAR2 N Mã thông tư nghị định
(20 CHAR)

BCA-C08_XLVP_2023_DD Internal use Trang 74


Tài liệu thiết kế hệ thống V1.0

2 V_CURSOR CURSOR X Con trỏ tham chiếu thông


tư nghị định bổ sung vừa
xóa.
- Hàm DELETE_THONG_TU_NGHI_DINH_BO_SUNG được sử dụng để xóa các
Thông tư nghị định bổ sung đã có trong cơ sở dữ liệu.
- Input:
 P_KY_HIEU: Ký hiệu của thông tư nghị định.
- Output:
 V_CURSOR: Con trỏ tham chiếu thông tư nghị định bổ sung vừa xóa.
- Hàm này sẽ xóa dữ liệu của thông tư nghị định bổ sung có KY_HIEU = P_KY_HIEU
truyền xuống
e.1.2.2.6.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã thông tư nghị định gửi lên không tồn tại trên hệ thống.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
e.2. Danh mục văn bản pháp luật
e.2.1. Mục đích

- Quản lý danh mục Văn bản pháp luật


- Chức năng quản lý danh mục Văn bản pháp luật gồm:
o Tìm kiếm VBPL
o Xem chi tiết VBPL
o Thêm mới VBPL
o Sửa VBPL
o Xóa VBPL
o Thêm mới/Sửa VBPL sửa đổi bổ sung
o Hiển thị chi tiết VBPL sửa đổi bổ sung
o Tìm kiếm VBPL sửa đổi bổ sung
o Xóa VBPL sửa đổi bổ sung

BCA-C08_XLVP_2023_DD Internal use Trang 75


Tài liệu thiết kế hệ thống V1.0

e.2.2. Chi tiết từng mục

e.2.2.1. Thiết kế dữ liệu

e.2.2.1.1. Mô hình quan hệ dữ liệu

e.2.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 DANH_MUC_VAN_ Bảng lưu trữ danh mục VBPL
BAN_PHAP_LUAT
2 DM_VBPL_SUA_DO Bảng lưu trữ danh mục VBPL sửa đổi bổ sung
I_BO_SUNG
e.2.2.1.3. Chi tiết các bảng

e.2.2.1.3.1. Bảng DANH_MUC_VAN_BAN_PHAP_LUAT


a) Chi tiết
Bắt
STT Tên trường Kiểu dữ liệu Mô tả
buộc
1 MA VARCHAR2(30 X Mã văn bản pháp luật

BCA-C08_XLVP_2023_DD Internal use Trang 76


Tài liệu thiết kế hệ thống V1.0

CHAR)
2 MA_THAM_CHIEU VARCHAR2(20 X Mã tham chiếu
CHAR)
3 DIEU NUMBER(2,0) Điều
4 KHOAN NUMBER(2,0) Khoản
5 DIEM VARCHAR2(2 Điểm
CHAR)
6 LINH_VUC VARCHAR2(100 Lĩnh vực của VBPL
CHAR)
7 MA_TTNĐ VARCHAR2(10 Mã thông tư nghị định
CHAR)
8 TRANG_THAI NUMBER(1) X Trạng thái(1: kích hoạt, 0:
không kích hoạt), giá trị
mặc định là 1
9 NOI_DUNG VARCHAR2(1000 Nội dung VBPL
CHAR)
10 NGUOI_TAO VARCHAR2(50 Tài khoản người tạo
CHAR)
11 NGAY_TAO DATE X Ngày tạo VBPL
Giá trị mặc định:
CURRENT_TIMESTAMP
12 NGUOI_SUA VARCHAR2(50 Tài khoản người sửa
CHAR)
13 NGAY_SUA DATE Thời gian sửa
14 IS_DELETED NUMBER(1,0) X Trạng thái xóa(1: đã xóa, 0:
chưa xóa)
Giá trị mặc định: 0

b) Các ràng buộc


Tên cột Nội dung
MA Khóa chính, Mã của VBPL không được để trống

BCA-C08_XLVP_2023_DD Internal use Trang 77


Tài liệu thiết kế hệ thống V1.0

MA_THAM_CHIEU Mã tham chiếu của VBPL không được để trống


DIEU Điều không được để trống
TRANG_THAI Trạng thái không được để trống
NGAY_TAO Ngày tạo không được để trống
IS_DELETED Trạng thái xóa không được để trống
c) Index
NA
d) Trigger
NA
e) Packages
- PKG_DANH_MUC_VAN_BAN_PHAP_LUAT
e.1.2.1.1.1. Bảng DM_VBPL_SUA_DOI_BO_SUNG
a) Chi tiết
STT Tên trường Kiểu dữ liệu Bắt buộc? Diễn giải
1 MA_VBPL VARCHAR2(30 X Mã của văn bản
CHAR) pháp luật
2 MA_SUA_DOI VARCHAR2(30 X Mã VBPL sửa đổi
CHAR) bổ sung
3 GHI_CHU VARCHAR2(255 Ghi chú của VBPL
CHAR) bổ sung
4 IS_DELETED NUMBER(1,0) No Trạng thái xóa,
mặc định là 0

b) Các ràng buộc


Tên cột Nội dung
MA Khóa chính, Mã của VBPL không được để
trống
MA_SUA_DOI Mã sửa đổi bổ sung không được để trống
GHI_CHU Ghi chú không được để trống

BCA-C08_XLVP_2023_DD Internal use Trang 78


Tài liệu thiết kế hệ thống V1.0

IS_DELETED Trạng thái xóa không được để trống


FK_DM_VBPL_SDBS_MA_SUA_DOI Khóa ngoại đến bảng
DANH_MUC_VAN_BAN_PHAP_LUAT
FK_DM_VBPL_SDBS_MA_VBPL Khóa ngoại đến bảng
DANH_MUC_VAN_BAN_PHAP_LUAT
c) Index
NA
d) Trigger
NA
e) Packages
PKG_DANH_MUC_VAN_BAN_PHAP_LUAT
e.1.2.1. Thiết kế màn hình

e.1.2.1.1. Xem danh sách, tìm kiếm danh mục văn bản pháp luật

e.1.2.1.1.1. Giao diện

HÌnh 9: Danh sách danh mục Văn bản pháp luật


e.1.2.1.1.2. Danh sách control/thành phần giao diện

BCA-C08_XLVP_2023_DD Internal use Trang 79


Tài liệu thiết kế hệ thống Vx.x

Tên Tên thành Bắt


STT Định dạng Mô tả
label phần / Control buộc?
Form tìm kiếm/lọc dữ liệu VBPL
1 Tìm timKiemNhanh Textbox Nhập mã tham chiếu
kiếm VBPL, nội dung VBPL
nhanh
2 Nghị maTTNĐ Dropdownlist Chọn TTNĐ
định
3 Hiệu lực tuNgay Datepicker Chọn, nhập ngày bắt đầu
từ ngày có hiệu lực
4 Hiệu lực denNgay Datepicker Chọn, nhập ngày hết hiệu
đến ngày lực
5 Điều dieu Textbox Nhập điều của VBPL
6 Khoản khoan Textbox Nhập khoản của VBPL
7 Điểm diem Textbox Nhập điểm của VBPL
Danh sách dữ liệu VBPL
1 Mã maThamChieu Textbox Hiển thị mã tham chiếu
văn bản pháp luật
2 Ký hiệu kyHieuTTNĐ Textbox Hiển thị mã thông tư nghị
TT-NĐ định
3 Điều dieu Textbox Hiển thị điều văn bản
pháp luật
4 Khoản khoan Textbox Hiển thị khoản văn bản
pháp luật
5 Điểm diem Textbox Hiển thị điểm văn bản
pháp luật
6 Nội dung noiDung Textbox Hiển thị nội dung văn bản
pháp luật
7 Thay thế, suaDoiBoSung Textbox VBPL được thay thế, bổ
bổ sung dung
8 Ngày sửa ngaySua Textbox Hiển thị ngày sửa VBPL

QT.PB06.01_BM.02 Internal use Trang 80


Tài liệu thiết kế hệ thống V1.0

gần nhất gần nhất


9 Cán bộ canBoSua Textbox Hiển thị cán bộ sửa gần
sửa gần nhất
nhất
e.1.2.1.1.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Chọn menu Danh mục/Văn bản pháp luật → Xem thông
tin danh sách danh mục văn bản pháp luật.
Màn hình hiển thị như hình
BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh
mục → Click Tìm kiếm.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập →
Màn hình hiển thị danh sách danh mục thỏa mãn bộ lọc.
BtnReset_Click Click nút Thiết lập lại.
Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin đã
nhập và hoàn tác về trạng thái mặc định ban đầu.
BtnCollapse/ Click nút Thu hẹp/Mở rộng.
BtnExtend_Click Thu hẹp/Mở rộng Form tìm kiếm/lọc dữ liệu danh mục.
BtnExportExcel Click nút Xuất Excel.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập và
trả kết quả về theo dạng file excel → Màn hình hiển thị
popup hỗ trợ lưu file vào local
BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới danh mục văn bản
pháp luật
BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh sách.
Màn hình chuyển đến trang Chỉnh sửa danh mục văn bản
pháp luật tương ứng với bản ghi
BtnView_Click Click nút Xem chi tiết ở cuối mỗi bản ghi trong danh
sách.

BCA-C08_XLVP_2023_DD Internal use Trang 81


Tài liệu thiết kế hệ thống V1.0

Màn hình chuyển đến trang Xem chi tiết danh mục văn
bản pháp luật tương ứng với bản ghi
BtnDelete_Click Click nút Xóa ở cuối mỗi bản ghi trong danh sách →
Chọn Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình reload và
cập nhật lại danh sách danh mục.
e.1.2.1.1.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


Điều Nhập tối đa 2 ký tự
Khoản Nhập tối đa 2 ký tự
Điểm Nhập tối đa 2 ký tự
e.1.2.1.2. Thêm mới danh mục văn bản pháp luật

e.1.2.1.2.1. Giao diện

HÌnh 10: Thêm mới danh mục Văn bản pháp luật

BCA-C08_XLVP_2023_DD Internal use Trang 82


Tài liệu thiết kế hệ thống V1.0

HÌnh 11: Thêm mới sửa đổi bổ sung cho Văn bản pháp luật

BCA-C08_XLVP_2023_DD Internal use Trang 83


Tài liệu thiết kế hệ thống V1.0

HÌnh 12: Xem chi tiết sửa đổi bổ sung cho Văn bản pháp luật

HÌnh 13: Sửa thông tin sửa đổi bổ sung cho Văn bản pháp luật
e.1.2.1.2.2. Danh sách control/thành phần giao diện

Form thêm mới dữ liệu danh mục HVVP:

BCA-C08_XLVP_2023_DD Internal use Trang 84


Tài liệu thiết kế hệ thống Vx.x

Tên thành
Bắt Định
STT Tên label phần / Mô tả
buộc? dạng
Control
Form thông tin chung
1 Mã TTNĐ maTTNĐ X Dropdo Chọn TT-ND
wnlist
2 Mã tham chiếu maThamChie Textbo Hiển thị mã tham chiếu
VBPL u x VBPL
Mã tham chiếu là tự sinh
3 Điều dieu Textbo Nhập điều văn bản pháp luật
X
x
4 Khoản khoan Textbo Nhập khoản văn bản pháp
x luật
5 Điểm diem Textbo Nhập điểm văn bản pháp
x luật
6 Lĩnh vực linhVuc X Checkb Nhập nội dung HVVP
ox
7 Ngày hiệu lực tuNgay Datepic Hiển thị ngày bắt đầu có
ker hiệu lực của TTNĐ
8 Ngày hết hiệu denNgay Datepic Hiển thị ngày hết hiệu lực
lực ker của TTNĐ
9 Nội dung noiDung X Datepic Nhập nội dung văn bản pháp
ker luật
Danh sách sửa đổi bổ sung
1 TT - NĐ maTTNĐ Text Hiển thị mã TTNĐ
2 Mã tham chiếu maThamChie Text Hiển thị mã tham chiếu
VBPL u VBPL
3 Ghi chú ghiChu Text Hiển thị ghi chú sửa đổi bổ
sung
Form thông tin sửa đổi bổ sung cho TTNĐ

QT.PB06.01_BM.02 Internal use Trang 85


Tài liệu thiết kế hệ thống V1.0

Tên thành Bắt


Định
STT Tên label phần / buộc Mô tả
dạng
Control ?
Form thông tin chung
1 Mã TTNĐ maTTNĐ X Dropdown Chọn TT-ND
list Không trùng với
maTTNĐ ở phần thông
tin chung
2 Mã tham ma X Dropdown Chọn mã tham chiếu
chiếu VBPL list VBPL
Hiển thị danh sách mã
tham chiếu tương ứng với
TTNĐ đã chọn
3 Điều dieu Textbox Hiển thị điều của VBPL
Hiển thị tương ứng với
mã tham chiếu VBPL vừa
chọn
4 Khoản khoan Textbox Hiển thị khoản của VBPL
Hiển thị tương ứng với
mã tham chiếu VBPL vừa
chọn
5 Điểm diem Textbox Hiển thị điểm của VBPL
Hiển thị tương ứng với
mã tham chiếu VBPL vừa
chọn
6 Nội dung noiDung Textbox Hiển thị nội dung của
VBPL VBPL
Hiển thị tương ứng với
mã tham chiếu VBPL vừa
chọn
7 Ghi chú ghiChu X Textbox Nhập ghi chú cho thông
tin sửa đổi bổ sung

BCA-C08_XLVP_2023_DD Internal use Trang 86


Tài liệu thiết kế hệ thống V1.0

e.1.2.1.2.3. Xử lý sự kiện

Danh sách các sự kiện được xử lý gồm:


Sự kiện Quy trình
Page_Load Click nút Thêm mới tại màn hình danh sách Danh mục văn bản
pháp luật → Màn hình chuyển đến màn Thêm mới
Màn hình hiển thị như hình 2.
BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu danh mục →
Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu thỏa mãn
→ lưu danh mục theo thông tin vừa nhập → Màn hình chuyển
đến màn xem chi tiết danh mục vừa thêm mới.
BtnCreateSuaDoiBo Chọn mã TTNĐ từ trường maTTNĐ → Click Thêm mới (Sửa
Sung_Click đổi bổ sung).
Màn hình hiển thị popup như hình
BtnSaveSuaDoiBoS Nhập thông tin trong Form thông tin Sửa đổi bổ sung cho
ung_Click (Popup TTNĐ → Click Lưu.
create) Màn hình chèn thông tin vừa nhập vào Danh sách sửa đổi bổ
sung TTNĐ
BtnViewSuaDoiBoS Click Xem chi tiết (Sửa đổi bổ sung).
ung_Click Màn hình hiển thị popup như hình
BtnUpdateSuaDoiB Click Chỉnh sửa (Sửa đổi bổ sung).
oSung_Click Màn hình hiển thị popup như hình
BtnSaveSuaDoiBoS Click Chỉnh sửa (Sửa đổi bổ sung) bản ghi A trong Danh sách
ung_Click (Popup sửa đổi bổ sung TTNĐ → Chỉnh sửa thông tin trong Form
update) thông tin Sửa đổi bổ sung cho TTNĐ → Click Lưu.
Màn hình update thông tin vừa nhập vào bản ghi A trong
Danh sách sửa đổi bổ sung TTNĐ
BtnCloseSuaDoiBo Click Thêm mới/Xem chi tiết/Chỉnh sửa (Sửa đổi bổ sung) →
Sung_Click Click Đóng.
Màn hình tắt popup

BCA-C08_XLVP_2023_DD Internal use Trang 87


Tài liệu thiết kế hệ thống V1.0

BtnClose_Click Click nút Đóng → Click Đồng ý.


Hệ thống check ràng buộc của các trường dữ liệu nếu thỏa mãn
→ lưu danh mục theo thông tin vừa nhập → Màn hình chuyển
đến màn xem danh sách danh mục.
e.1.2.1.2.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


TT - NĐ Bắt buộc chọn
Điều Bắt buộc nhập, tối đa 2 ký tự
Khoản Disable khi chưa nhập Điều, nhập tối đa 2 ký tự
Điểm Disable khi chưa nhập Khoản, nhập tối đa 2 ký tự

Mã tham chiếu VBPL Không được nhập


Nội dung Bắt buộc nhập, tối đa 255 ký tự
Lĩnh vực

Ngày hiệu lực Không được nhập


Ngày hết hiệu lực Không được nhập
Popup TT-NĐ được Sửa đổi, bổ sung
TT - NĐ Bắt buộc chọn

Mã tham chiếu VBPL Bắt buộc chọn


Điều Không được nhập
Khoản Không được nhập
Điểm Không được nhập
Nội dung Không được nhập

Ghi chú

BCA-C08_XLVP_2023_DD Internal use Trang 88


Tài liệu thiết kế hệ thống V1.0

e.1.2.1.3. Chỉnh sửa danh mục văn bản pháp luật

e.1.2.1.3.1. Giao diện

HÌnh 14: Chỉnh sửa danh mục Văn bản pháp luật
e.1.2.1.3.2. Danh sách control/thành phần giao diện

Form chỉnh sửa dữ liệu danh mục HVVP


STT Tên label Tên Bắt Định dạng Vai trò
thành buộc
phần / nhập?
Control
Thông tin chung
1 Mã TT-NĐ maTTN X Dropdownli Chọn TTNĐ cho VBPL
D st
2 Mã tham maTha - Textbox Hiển thị mã tham chiếu VBPL
chiếu VBPL mChieu
Mã tham chiếu là tự sinh
3 Điều dieu X Textbox Nhập điều văn bản pháp luật
4 Khoản khoan - Textbox Nhập khoản văn bản pháp luật
5 Điểm diem - Textbox Nhập điểm văn bản pháp luật
6 Lĩnh vực linhVuc X Checkbox Lĩnh vực giao thông cho
VBPL
7 Ngày hiệu tuNgay - Datepicker Hiển thị ngày bắt đầu có hiệu
lực lực của TTNĐ

BCA-C08_XLVP_2023_DD Internal use Trang 89


Tài liệu thiết kế hệ thống V1.0

8 Ngày hết denNga - Datepicker Hiển thị ngày hết hiệu lực của
hiệu lực y TTNĐ
9 Nội dung noiDung X Datepicker Nhập nội dung văn bản pháp
luật
Danh sách sửa đổi bổ sung TTNĐ
1 TT - NĐ maTTN - Textbox Hiển thị mã TTNĐ
Đ
2 Mã tham maTha - Textbox Hiển thị mã tham chiếu VBPL
chiếu VBPL mChieu

3 Ghi chú ghiChu - Textbox Hiển thị ghi chú sửa đổi bổ
sung

Form thông tin sửa đổi bổ sung


STT Tên label Tên Bắt Định Vai trò
thành buộc dạng
phần / nhập
Control ?
1 Mã TTNĐ maTTN X Drop Chọn TT-ND
Đ down Không trùng với maTTNĐ ở
list phần thông tin chung
2 Mã tham chiếu ma X Drop Chọn mã tham chiếu VBPL
VBPL down Hiển thị danh sách mã tham
list chiếu tương ứng với TTNĐ đã
chọn
3 Điều dieu Text Hiển thị điều của VBPL
Hiển thị tương ứng với mã
tham chiếu VBPL vừa chọn
4 Khoản khoan Text Hiển thị khoản của VBPL
Hiển thị tương ứng với mã
tham chiếu VBPL vừa chọn
5 Điểm diem Text Hiển thị điểm của VBPL

BCA-C08_XLVP_2023_DD Internal use Trang 90


Tài liệu thiết kế hệ thống V1.0

Hiển thị tương ứng với mã


tham chiếu VBPL vừa chọn
6 Nội dung VBPL noiDung Text Hiển thị nội dung của VBPL
Hiển thị tương ứng với mã
tham chiếu VBPL vừa chọn
7 Ghi chú ghiChu X Textb Nhập ghi chú cho thông tin sửa
ox đổi bổ sung

e.1.2.1.3.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Thêm mới tại màn hình danh sách Danh mục văn bản
pháp luật → Màn hình chuyển đến màn Thêm mới
Màn hình hiển thị như hình
BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu danh mục →
Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu thỏa mãn
→ lưu danh mục theo thông tin vừa nhập → Màn hình chuyển
đến màn xem chi tiết danh mục vừa thêm mới.
BtnCreateSuaDoiBo Chọn mã TTNĐ từ trường maTTNĐ → Click Thêm mới (Sửa
Sung_Click đổi bổ sung).
Màn hình hiển thị popup như hình
BtnSaveSuaDoiBoS Nhập thông tin trong Form thông tin Sửa đổi bổ sung cho
ung_Click (Popup TTNĐ → Click Lưu.
create) Màn hình chèn thông tin vừa nhập vào Danh sách sửa đổi bổ
sung TTNĐ
BtnViewSuaDoiBoS Click Xem chi tiết (Sửa đổi bổ sung).
ung_Click Màn hình hiển thị popup như hình
BtnUpdateSuaDoiB Click Chỉnh sửa (Sửa đổi bổ sung).
oSung_Click Màn hình hiển thị popup như hình
BtnSaveSuaDoiBoS Click Chỉnh sửa (Sửa đổi bổ sung) bản ghi A trong Danh sách

BCA-C08_XLVP_2023_DD Internal use Trang 91


Tài liệu thiết kế hệ thống V1.0

ung_Click (Popup sửa đổi bổ sung TTNĐ → Chỉnh sửa thông tin trong Form
update) thông tin Sửa đổi bổ sung cho TTNĐ → Click Lưu.
Màn hình update thông tin vừa nhập vào bản ghi A trong
Danh sách sửa đổi bổ sung TTNĐ
BtnCloseSuaDoiBo Click Thêm mới/Xem chi tiết/Chỉnh sửa (Sửa đổi bổ sung) →
Sung_Click Click Đóng.
Màn hình tắt popup
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu thỏa mãn
→ lưu danh mục theo thông tin vừa nhập → Màn hình chuyển
đến màn xem danh sách danh mục TTNĐ.
e.1.2.1.3.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


TT - NĐ Bắt buộc chọn
Điều Bắt buộc nhập, tối đa 2 ký tự
Khoản Disable khi chưa nhập Điều, nhập tối đa 2 ký tự
Điểm Disable khi chưa nhập Khoản, nhập tối đa 2 ký tự

Mã tham chiếu VBPL Không được nhập


Nội dung Bắt buộc nhập, tối đa 255 ký tự
Lĩnh vực

Ngày hiệu lực Không được nhập


Ngày hết hiệu lực Không được nhập
Popup TT-NĐ được Sửa đổi, bổ sung
TT - NĐ Bắt buộc chọn

Mã tham chiếu VBPL Bắt buộc chọn


Điều Không được nhập
Khoản Không được nhập
Điểm Không được nhập
Nội dung Không được nhập

BCA-C08_XLVP_2023_DD Internal use Trang 92


Tài liệu thiết kế hệ thống V1.0

Ghi chú

e.1.2.1.4. Xem chi tiết danh mục văn bản pháp luật

e.1.2.1.4.1. Giao diện

HÌnh 15: Xem chi tiết danh mục Văn bản pháp luật
e.1.2.1.4.2. Danh sách control/thành phần giao diện

Form dữ liệu danh mục HVVP


Tên
thành Bắt
STT Tên label Định dạng Mô tả
phần / buộc?
Control
Thông tin chung
1 Mã TT-NĐ maTTN Dropdownlist Chọn TTNĐ cho VBPL
D
2 Mã tham maTha Textbox Hiển thị mã tham chiếu
chiếu VBPL mChieu VBPL
Mã tham chiếu là tự sinh
3 Điều dieu Textbox Nhập điều văn bản pháp luật
4 Khoản khoan Textbox Nhập khoản văn bản pháp
luật
5 Điểm diem Textbox Nhập điểm văn bản pháp
luật

BCA-C08_XLVP_2023_DD Internal use Trang 93


Tài liệu thiết kế hệ thống V1.0

6 Lĩnh vực linhVuc Checkbox Lĩnh vực giao thông cho


VBPL
7 Ngày hiệu tuNgay Datepicker Hiển thị ngày bắt đầu có
lực hiệu lực của TTNĐ
8 Ngày hết denNga Datepicker Hiển thị ngày hết hiệu lực
hiệu lực y của TTNĐ
9 Nội dung noiDung Datepicker Nhập nội dung văn bản pháp
luật
Danh sách sửa đổi bổ sung TTNĐ
1 TT - NĐ maTTN - Textbox Hiển thị mã TTNĐ
Đ
2 Mã tham maTha - Textbox Hiển thị mã tham chiếu
chiếu VBPL mChieu VBPL
3 Ghi chú ghiChu - Textbox Hiển thị ghi chú sửa đổi bổ
sung

Form thông tin sửa đổi bổ sung


STT Tên label Tên Bắt Định Mô tả
thành buộc dạng
phần / nhập
Control ?
1 Mã TTNĐ maTTN X Drop Chọn TT-ND
Đ down Không trùng với maTTNĐ ở
list phần thông tin chung
2 Mã tham chiếu ma X Drop Chọn mã tham chiếu VBPL
VBPL down Hiển thị danh sách mã tham
list chiếu tương ứng với TTNĐ đã
chọn
3 Điều dieu Textb Hiển thị điều của VBPL
ox Hiển thị tương ứng với mã
tham chiếu VBPL vừa chọn

BCA-C08_XLVP_2023_DD Internal use Trang 94


Tài liệu thiết kế hệ thống V1.0

4 Khoản khoan Textb Hiển thị khoản của VBPL


ox Hiển thị tương ứng với mã
tham chiếu VBPL vừa chọn
5 Điểm diem Textb Hiển thị điểm của VBPL
ox Hiển thị tương ứng với mã
tham chiếu VBPL vừa chọn
6 Nội dung VBPL noiDung Textb Hiển thị nội dung của VBPL
ox Hiển thị tương ứng với mã
tham chiếu VBPL vừa chọn
7 Ghi chú ghiChu X Textb Nhập ghi chú cho thông tin sửa
ox đổi bổ sung
e.1.2.1.4.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục văn bản pháp luật → Màn hình
chuyển đến màn Xem chi tiết.
Màn hình hiển thị như hình
BtnEdit_Click Click nút Chỉnh sửa.
Màn hình hiển thị như hình
BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh
sách danh mục.
e.1.2.2. Thiết kế các hàm, thủ tục

e.1.2.2.1. Tìm kiếm VBPL

e.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách Văn bản pháp luật theo nhiều tiêu chí tìm kiếm
Method URL
GET xlvp/api/v1/danh-muc/van-ban-phap-luat?

e.1.2.2.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 95


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Mô tả


1 timKiemNhanh String Chuỗi tìm kiếm nhanh
2 maTTND String Mã TTND
3 dieu Int Điều
4 khoan Int Khoản
5 diem String Điểm
6 tuNgay Date Ngày có hiệu lực của thông tự
nghị định tương ứng
7 denNgay Date Ngày hết hiệu lực của thông tự
nghị định tương ứng
8 linhVuc String Lĩnh vực của VBPL
9 page Int Trang hiện tại
10 pageSize Int Dữ liệu trên một trang
Các giá trị trả về là:

STT Tham số Kiểu dữ Mô tả


liệu
1 ma String Mã VBPL
2 maTTND String Mã thông tư nghị định
3 dieu Int Điều
4 khoan Int Khoản
5 diem String Điểm
6 tuNgay Date Ngày có hiệu lực của thông tự nghị định
tương ứng
7 denNgay Date Ngày hết hiệu lực của thông tự nghị định
tương ứng
8 linhVuc List Danh sách lĩnh vực của VBPL
9 suaDoiBoSung List Danh sách VBPL sửa đổi bổ sung
10 maThamChieu String Mã tham chiếu
11 noiDung String Nội dung

BCA-C08_XLVP_2023_DD Internal use Trang 96


Tài liệu thiết kế hệ thống V1.0

12 nguoiTao String Người tạo


13 ngayTao Date Ngày tạo
14 nguoiSua String Người sửa
15 ngaySua Date Ngày sửa
e.1.2.2.1.3. Mô tả chi tiết

Service:
- Gọi procedure SEARCH để xử lý lấy danh sách VBPL từ database.
Procedure:
- Hàm SEARCH() được sử dụng để lấy danh sách các văn bản pháp luật theo các
điều kiện tìm kiếm được cung cấp. Kết quả trả về được sắp xếp theo ngày tạo mới
nhất. Đây là một thủ tục, không có giá trị trả về, nhưng nó sẽ trả về một con trỏ
tham chiếu trỏ đến danh sách văn bản pháp luật.
- Đầu vào:
o V_TIM_KIEM_NHANH: Chuỗi tìm kiếm thông tin của văn bản pháp luật
(có thể là mã tham chiếu, nội dung).
o V_MA_TTND: Mã thông tư nghị định
o V_DIEU: Điều.
o V_KHOAN: Khoản.
o V_DIEM: Điểm.
o V_TU_NGAY: Ngày có hiệu lực của thông tư nghị định tương ứng
o V_DEN_NGAY: Ngày hết hiệu lực của thông tư nghị định tương ứng
o V_LINH_VUC: Lĩnh vực của văn bản pháp luật
o P_PAGE: Trang hiện tại của danh sách văn bản pháp luật
o P_PAGE_SIZE: Số bản ghi trên một trang
- Đầu ra:
o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các văn bản
pháp luật tìm kiếm được. Các thông tin bao gồm tất cả các trường trong
bảng DANH_MUC_VAN_BAN_PHAP_LUAT cùng với thông tin ngày có
hiệu lực và ngày hết hiệu lực của thông tư nghị định tương ứng. Các văn
bản pháp luật được sắp xếp theo ngày tạo mới nhất.
Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 97


Tài liệu thiết kế hệ thống V1.0

[N/X]
1 V_TIM_KI VARCHAR2( N Chuỗi tìm kiếm nhanh
EM_NHA 255 CHAR)
NH
2 V_MA_TT VARCHAR2( N Mã thông tư nghị định
ND 10 CHAR)
3 V_DIEU NUMBER N Điều
4 V_KHOA NUMBER N Khoản
N
5 V_DIEM VARCHAR2( N Điểm
2 CHAR)
6 V_TU_NG DATE N Ngày có hiệu lực của
AY thông tự nghị định
tương ứng
7 V_DEN_N DATE N Ngày hết hiệu lực của
GAY thông tự nghị định
tương ứng
8 V_LINH_ VARCHAR2( N Lĩnh vực của VBPL
VUC 100 CHAR
9 P_PAGE NUMBER N Trang hiện tại
10 P_PAGE_S NUMBER N Dữ liệu trên một trang
IZE
11 V_CURSO CURSOR X Con trỏ tham chiếu đến
R danh sách VBPL tìm
được

Kết quả trả về của thủ tục bao gồm một danh sách các VBPL được tìm thấy, phù hợp với
các tiêu chí tìm kiếm được cung cấp. Các kết quả được phân trang và sắp xếp theo ngày
sửa VBPL.
e.1.2.2.1.4. Xử lý ngoại lệ

- Bẫy lỗi ConstraintViolentException xảy ra khi:


o Mã TTND: không tồn tại trong bảng THONG_TU_NGHI_DINH

BCA-C08_XLVP_2023_DD Internal use Trang 98


Tài liệu thiết kế hệ thống V1.0

o Điều: nằm ngoài khoảng 0 – 99


o Khoản: nằm ngoài khoảng 0 – 99
o Điểm: vượt quá 2 ký tự
o Lĩnh vực: không phải là 3 loại lĩnh vực cho phép

e.1.2.2.2. Xem chi tiết VBPL

e.1.2.2.2.1. API

Mô tả: Gọi API để xem chi tiết Văn bản pháp luật
Method URL
GET xlvp/api/v1/danh-muc/van-ban-phap-luat/{ma}

e.1.2.2.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


Tham số Kiểu dữ liệu Mô tả
ma String Mã văn bản pháp luật

Các giá trị trả về là:


STT Tham số Kiểu dữ Mô tả
liệu
1 ma String Mã VBPL
2 ma String Mã thông tư nghị định
3 maTTND Int Điều
4 dieu Int Khoản
5 khoan String Điểm
6 diem Date Ngày có hiệu lực của thông tự nghị định
tương ứng
7 noiDung Date Ngày hết hiệu lực của thông tự nghị định
tương ứng
8 linhVuc List Danh sách lĩnh vực của VBPL
9 suaDoiBoSung List Danh sách VBPL sửa đổi bổ sung
10 maThamChieu String Mã tham chiếu

BCA-C08_XLVP_2023_DD Internal use Trang 99


Tài liệu thiết kế hệ thống V1.0

11 tuNgay String Nội dung


12 denNgay String Người tạo
13 nguoiTao Date Ngày tạo
14 ngayTao String Người sửa
15 nguoiSua Date Ngày sửa
e.1.2.2.2.3. Mô tả chi tiết

Service:
- Kiểm tra xem mã VBPL tồn tại trong bảng VBPL hay chưa
- Gọi procedure GET_BY_MA xử lý lấy lên VBPL theo mã từ DB

Procedure:
- Thêm tham số vào là mã văn bản pháp luật

- Kết quả trả về thông tin của văn bản pháp luật gồm các trường như bảng bên dưới
Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả


[N/X]
1 V_MA VARCHAR2(30 N Mã văn bản pháp luật
CHAR) của danh mục văn bản
pháp luật
2 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa
lấy ra
Kết quả trả về của thủ tục gồm thông tin của VBPL được tìm thấy theo mã VBPL.
e.1.2.2.2.4. Xử lý ngoại lệ

- Bẫy lỗi ResourceDoesNotExistException khi


o Mã văn bản pháp luật không tồn tại trong hệ thống

e.1.2.2.3. Thêm mới VBPL

e.1.2.2.3.1. API

Mô tả: Gọi API để thêm mới Văn bản pháp luật


Method URL
POST xlvp/api/v1/danh-muc/van-ban-phap-luat

BCA-C08_XLVP_2023_DD Internal use Trang 100


Tài liệu thiết kế hệ thống V1.0

e.1.2.2.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maTTND String Mã của thông tư nghị định
2 dieu Int Điều
3 khoan Int Khoản
4 diem String Điểm
5 noiDung String Nội dung của văn bản pháp
luật
6 linhVuc List Lĩnh vực của văn bản pháp
luật
7 suaDoiBoSung List Danh sách VBPL sửa đổi bổ
sung
8 maThamChieu String Mã tham chiếu
9 nguoiTao String Người tạo văn bản pháp luật
Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã VBPL
2 maTTND String Mã thông tư nghị định
3 dieu Int Điều
4 khoan Int Khoản
5 diem String Điểm
6 noiDung Date Ngày có hiệu lực của thông tự nghị định
tương ứng
7 linhVuc Date Ngày hết hiệu lực của thông tự nghị định
tương ứng
8 suaDoiBoSung List Danh sách lĩnh vực của VBPL
9 maThamChieu List Danh sách VBPL sửa đổi bổ sung

BCA-C08_XLVP_2023_DD Internal use Trang 101


Tài liệu thiết kế hệ thống V1.0

10 tuNgay String Mã tham chiếu


11 denNgay String Nội dung
12 nguoiTao String Người tạo
13 ngayTao Date Ngày tạo
14 nguoiSua String Người sửa
15 ngaySua Date Ngày sửa
e.1.2.2.3.3. Mô tả chi tiết

Service:
- Kiểm tra xem VBPL đã tồn tại trong bảng VBPL chưa
- Gọi procedure CREATE_ITEM để lưu thông tin VBPL mới

Procedure:
- Hàm CREATE_ITEM được sử dụng để thêm một bản ghi mới vào bảng
DANH_MUC_VAN_BAN_PHAP_LUAT. Hàm nhận các tham số đầu vào là
thông tin của bản ghi mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
- Đầu vào:

o V_MA_THONG_TU_NGHI_DINH: Kiểu dữ liệu tương ứng với trường


MA_TTND trong bảng.
o V_MA_THAM_CHIEU: Kiểu dữ liệu tương ứng với trường
MA_VAN_BAN_PHAP_LUAT trong bảng.
o V_DIEU: Kiểu dữ liệu tương ứng với trường DIEU trong bảng.

o V_KHOAN: Kiểu dữ liệu tương ứng với trường KHOAN trong bảng.

o V_DIEM: Kiểu dữ liệu tương ứng với trường DIEM trong bảng.

o V_NOI_DUNG: Kiểu dữ liệu tương ứng với trường NOI_DUNG trong


bảng.
o V_LINH_VUC: Kiểu dữ liệu tương ứng với trường LINH_VUC trong
bảng.
o V_NGUOI_TAO: Kiểu dữ liệu tương ứng với trường NGUOI_TAO trong
bảng.
o V_CURSOR: Con trỏ REF_CURSOR dùng để trả về kết quả.

BCA-C08_XLVP_2023_DD Internal use Trang 102


Tài liệu thiết kế hệ thống V1.0

- Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào
bảng DANH_MUC_VAN_BAN_PHAP_LUAT.
- Hàm này sẽ chèn dữ liệu vào bảng DANH_MUC_VAN_BAN_PHAP_LUAT với
các thông tin tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BY_MA để
lấy thông tin bản ghi vừa được thêm và trả về.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 V_MA_TH VARCHAR2( N Mã của thông tư nghị
ONG_TU_ 10 CHAR) định
NGHI_DIN
H
2 V_MA_TH VARCHAR2( N Mã tham chiếu của văn
AM_CHIE 20 CHAR) bản pháp luật
U
3 V_DIEU NUMBER N Điều
4 V_KHOA NUMBER N Khoản
N
5 V_DIEM VARCHAR2( N Điểm
2 CHAR)
6 V_NOI_D VARCHAR2( N Nội dung của văn bản
UNG 1000 CHAR pháp luật
7 V_LINH_ VARCHAR(1 N Lĩnh vực của văn bản
VUC 00 CHAR) pháp luật
8 V_NGUOI VARCHAR2( N Người tạo văn bản pháp
_TAO 50 CHAR luật
9 V_CURSO CURSOR X Trả về dòng dữ liệu văn
R bản pháp luật vừa tạo
e.1.2.2.3.4. Xử lý ngoại lệ

- Bẫy lỗi ConstaintViolationException xảy ra khi:


o Mã TTND: rỗng hoặc không tồn tại trong bảng THONG_TU_NGHI_DINH

BCA-C08_XLVP_2023_DD Internal use Trang 103


Tài liệu thiết kế hệ thống V1.0

o Điều: rỗng hoặc không nằm trong khoảng 0 – 99


o Khoản: không nằm trong khoảng 0 – 99
o Điểm: nhiều hơn 2 kí tự
o Nội dung: rỗng hoặc độ dài quá 1000 kí tự
o Lĩnh vực: rỗng hoặc từng lĩnh vực bên trong danh sách lĩnh vực không
thuộc 1 trong 3 lĩnh vực cho phép
o VBPL sửa đổi bổ sung: rỗng
- Bẫy lỗi ResourceExistedException xảy ra khi:
o Mã VBPL đã tồn tại trong hệ thống

e.1.2.2.4. Sửa VBPL

e.1.2.2.4.1. API

Mô tả: Gọi API để cập nhật thông tin Văn bản pháp luật
Method URL
PUT xlvp/api/v1/danh-muc/van-ban-phap-luat/{ma}

e.1.2.2.4.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maTTND String Mã của thông tư nghị định
2 dieu Int Điều
3 khoan Int Khoản
4 diem String Điểm
5 noiDung String Nội dung của văn bản pháp
luật
6 linhVuc List Lĩnh vực của văn bản pháp
luật
7 suaDoiBoSung List Danh sách VBPL sửa đổi bổ
sung
8 maThamChieu String Mã tham chiếu
9 nguoiSua String Người sửa văn bản pháp luật

BCA-C08_XLVP_2023_DD Internal use Trang 104


Tài liệu thiết kế hệ thống V1.0

Các giá trị trả về là:


STT Tham số Kiểu dữ Mô tả
liệu
1 ma String Mã VBPL
2 maTTND String Mã thông tư nghị định
3 dieu Int Điều
4 khoan Int Khoản
5 diem String Điểm
6 noiDung Date Ngày có hiệu lực của thông tự nghị định
tương ứng
7 linhVuc Date Ngày hết hiệu lực của thông tự nghị định
tương ứng
8 suaDoiBoSung List Danh sách lĩnh vực của VBPL
9 maThamChieu List Danh sách VBPL sửa đổi bổ sung
10 tuNgay String Mã tham chiếu
11 denNgay String Nội dung
12 nguoiTao String Người tạo
13 ngayTao Date Ngày tạo
14 nguoiSua String Người sửa
15 ngaySua Date Ngày sửa
e.1.2.2.4.3. Mô tả chi tiết

Service:
- Kiểm tra xem VBPL đã tồn tại trong bảng VBPL hay chưa
- Gọi procedure UPDATE_ITEM để cập nhật lại VBPL mới

Procedure:
- Hàm UPDATE_ITEM() được sử dụng để chỉnh sửa thông tin một bản ghi tồn tại
trong bảng DANH_MUC_VAN_BAN_PHAP_LUAT. Hàm nhận các tham số đầu
vào là thông tin cập nhật của bản ghi có mã văn bản pháp luật là V_MA và trả về
kết quả thông qua một con trỏ REF_CURSOR.
- Đầu vào:

BCA-C08_XLVP_2023_DD Internal use Trang 105


Tài liệu thiết kế hệ thống V1.0

 V_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng.


 V_MA_THONG_TU_NGHI_DINH: Kiểu dữ liệu tương ứng với trường
MA_TTND trong bảng.

 V_MA_THAM_CHIEU: Kiểu dữ liệu tương ứng với trường


MA_VAN_BAN_PHAP_LUAT trong bảng.

 V_DIEU: Kiểu dữ liệu tương ứng với trường DIEU trong bảng.
 V_KHOAN: Kiểu dữ liệu tương ứng với trường KHOAN trong bảng.
 V_DIEM: Kiểu dữ liệu tương ứng với trường DIEM trong bảng.
 V_NOI_DUNG: Kiểu dữ liệu tương ứng với trường NOI_DUNG trong
bảng.

 V_LINH_VUC: Kiểu dữ liệu tương ứng với trường LINH_VUC trong


bảng.

 V_NGUOI_SUA: Kiểu dữ liệu tương ứng với trường NGUOI_SUA trong


bảng.

 V_CURSOR: Con trỏ REF_CURSOR dùng để trả về kết quả.


- Đầu ra:

 V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được chỉnh sửa
trong bảng DANH_MUC_VAN_BAN_PHAP_LUAT.
- Hàm này sẽ chỉnh sửa dữ liệu vào bản ghi có mã văn bản pháp luật tương ứng ở
trong bảng DANH_MUC_VAN_BAN_PHAP_LUAT với các thông tin được
truyền từ các tham số đầu vào, sau đó gọi hàm GET_BY_MA để lấy thông tin bản
ghi vừa được được chỉnh sửa và trả về.
Các giá trị nhập vào và trả ra gồm:
Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
1 V_MA VARCHAR2( N Mã văn bản pháp luật
30 CHAR
2 V_MA_TH VARCHAR2( N Mã của thông tư nghị định
ONG_TU_ 10 CHAR)
NGHI_DIN

BCA-C08_XLVP_2023_DD Internal use Trang 106


Tài liệu thiết kế hệ thống V1.0

H
3 V_MA_TH VARCHAR2( N Mã tham chiếu của văn bản pháp
AM_CHIE 20 CHAR) luật
U
4 V_DIEU NUMBER N Điều
5 V_KHOA NUMBER N Khoản
N
6 V_DIEM VARCHAR2( N Điểm
2 CHAR)
7 V_NOI_D VARCHAR2( N Nội dung của văn bản pháp luật
UNG 1000 CHAR
8 V_LINH_ VARCHAR(1 N Lĩnh vực của văn bản pháp luật
VUC 00 CHAR)
9 V_NGUOI VARCHAR2( N Người sửa văn bản pháp luật
_SUA 50 CHAR
10 V_CURSO CURSOR X Trả về dòng dữ liệu văn bản pháp
R luật vừa cập nhật
e.1.2.2.4.4. Xử lý ngoại lệ

- Bẫy lỗi ResourceCannotUpdateException xảy ra khi:


o Mã VBPL cần cập nhật đã tồn tại trong HVVP trong hệ thống
- Bẫy lỗi ResourceDoesNotExistException xảy ra khi:
o Mã VBPL cần cập nhật gửi lên không tồn tại trong hệ thống
- Bẫy lỗi ConstaintViolationException xảy ra khi:
o Mã TTND: rỗng hoặc không tồn tại trong bảng THONG_TU_NGHI_DINH
o Điều: rỗng hoặc không nằm trong khoảng 0 – 99
o Khoản: không nằm trong khoảng 0 – 99
o Điểm: nhiều hơn 2 kí tự
o Nội dung: rỗng hoặc độ dài quá 1000 kí tự
o Lĩnh vực: rỗng hoặc từng lĩnh vực bên trong danh sách lĩnh vực không
thuộc 1 trong 3 lĩnh vực cho phép
o VBPL sửa đổi bổ sung: rỗng
- Bẫy lỗi ResourceExistedException xảy ra khi:

BCA-C08_XLVP_2023_DD Internal use Trang 107


Tài liệu thiết kế hệ thống V1.0

o Mã VBPL đã tồn tại trong hệ thống

e.1.2.2.5. Xóa VBPL

e.1.2.2.5.1. API

Mô tả: Gọi API để cập nhật trạng thái xóa của Văn bản pháp luật
Method URL
DELETE xlvp/api/v1/danh-muc/van-ban-phap-luat/{ma}

e.1.2.2.5.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã văn bản pháp luật
2 nguoiSua String Thông tin người sửa
Các giá trị trả về là:
STT Tham số Kiểu dữ liệu Mô tả
1 Boolean True: thành công
False: thất bại
e.1.2.2.5.3. Mô tả chi tiết

Service:
- Kiểm tra xem mã VBPL gửi lên đã tồn tại trong bảng VBPL hay chưa
- Gọi Procedure DELETE_ITEM để cập nhật lại trang thái xóa trong database

Procedure:
- Đây là một thủ tục, không có giá trị trả về, nhưng sẽ cập nhật cột IS_DELETED
thành giá trị 1 để đánh dấu văn bản pháp luật đã bị xóa.
- Đầu vào:
 V_MA: Mã của văn bản pháp luật
 V_NGUOI_XOA: Tên người sửa cập nhật vào cột NGUOI_SUA.
Đầu ra: NA
Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 108


Tài liệu thiết kế hệ thống V1.0

Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
1 V_MA VARCHAR2(10 N Mã văn bản pháp luật
CHAR)
2 V_NGUOI_XOA VARCHAR2(255 N Thông tin người sửa
CHAR)

e.1.2.2.5.4. Xử lý ngoại lệ

- Bẫy lỗi ResourceDoesNotExistException khi


o Mã văn bản pháp luật không tồn tại trong hệ thống

e.1.2.2.6. Thêm mới/sửa VBPL sửa đổi bổ sung

e.1.2.2.6.1. API

e.1.2.2.6.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maVBPL String Mã VBPL
2 ma String Mã VBPL sửa đổi bổ sung
3 ghiChu String Ghi chú
Các giá trị trả về là:
STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã VBPL sửa đổi bổ sung
2 ghiChu String Ghi chú

e.1.2.2.6.3. Mô tả chi tiết

Service:
- Hàm này được sử dụng khi gọi API [POST]/v1/danh-muc/van-ban-phap-luat, dữ
liệu gửi lên có VBPL sửa đổi bổ sung thì cần gọi procedure
UPSERT_SUA_DOI_BO_SUNG để lưu thông tin vào bảng
DM_VBPL_SUA_DOI_BO_SUNG.

BCA-C08_XLVP_2023_DD Internal use Trang 109


Tài liệu thiết kế hệ thống V1.0

Procedure:
- Hàm này sẽ kiểm tra xem trong bảng DM_VBPL_SUA_DOI_BO_SUNG có tồn
tại bản ghi nào có mã vbpl và mã sửa đổi được truyền vào. Nếu như có tồn tại thì
sẽ cập nhật thông tin của bản ghi đó theo thông tin nhập vào còn nếu không tồn tại
thì sẽ thêm mới bản ghi đó vào bảng DM_VBPL_SUA_DOI_BO_SUNG. Sau khi
thực hiện thành công việc cập nhật hoặc tạo mới thì sẽ gọi đến hàm
GET_SUA_DOI_BO_SUNG_BY_MA để lấy bản ra bản ghi đó và trả về.
- Đầu vào:
 V_MA: Mã của văn bản pháp luật cần kiểm tra, có kiểu dữ liệu trùng với
kiểu dữ liệu của cột MA_VBPL trong bảng
 V_MA_SUA_DOI: Mã sửa đổi bổ sung của văn bản pháp luật cần kiểm tra,
có kiểu dữ liệu trùng với kiểu dữ liệu của cột MA_SUA_DOI trong bảng
 V_GHI_CHU: Ghi chú cần thêm mới hoặc sửa đổi, có kiểu dữ liệu trùng
với kiểu dữ liệu của cột GHI_CHU trong bảng
- Đầu ra:
 V_CURSOR: Một con trỏ tham chiếu trỏ đến bản ghi văn bản pháp luật sửa
đổi bổ sung vừa được cập nhật hoặc tạo mới
Các giá trị nhập vào và trả ra gồm:
Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
1 V_MA VARCHAR2(30 Mã văn bản pháp luật
N
CHAR
2 V_MA_SUA_DOI VARCHAR2(30 Mã sửa đổi bổ sung
N
CHAR)
3 V_GHI_CHU VARCHAR2(255 Ghi chú
N
CHAR)
4 V_CURSOR CURSOR Trả về dòng dữ liệu văn
bản pháp luật sửa đổi bổ
X
sung vừa cập nhật/tạo
mới
e.1.2.2.6.4. Xử lý ngoại lệ

- Bẫy lỗi ConstaintViolationException xảy ra khi:

BCA-C08_XLVP_2023_DD Internal use Trang 110


Tài liệu thiết kế hệ thống V1.0

o Mã VBPL được sửa đổi, bổ sung: rỗng hoặc không tồn tại trong bảng
THONG_TU_NGHI_DINH
o Ghi chú: vượt quá 255 ký tự

e.1.2.2.7. Tìm kiếm VBPL sửa đổi bổ sung

e.1.2.2.7.1. API

e.1.2.2.7.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maVbpl String Mã VBPL
2 maBoSung String Mã VBPL sửa đổi bổ sung
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 maVbpl String Mã VBPL
2 maSuaDoi String Mã VBPL sửa đổi bổ sung
3 ghiChu Int Ghi chú

e.1.2.2.7.3. Mô tả chi tiết

Service:
- Gọi procedure SEARCH_SUA_DOI_BO_SUNG_BY_MA để lấy danh sách
VBPL sửa đổi bổ sung trong hệ thống
- Khi xử lý get detail và export excel thì sử dụng danh sách VBPL sửa đổi bổ sung
đã lấy bên trên gán vào VBPL sửa đổi bổ sung được trả ra
Procedure:
- Hàm này sẽ kiểm tra xem trong bảng DM_VBPL_SUA_DOI_BO_SUNG có tồn
tại bản ghi nào có mã vbpl và mã sửa đổi được truyền vào. Nếu như có tồn tại thì
sẽ cập nhật thông tin của bản ghi đó theo thông tin nhập vào còn nếu không tồn tại
thì sẽ thêm mới bản ghi đó vào bảng DM_VBPL_SUA_DOI_BO_SUNG. Sau khi
thực hiện thành công việc cập nhật hoặc tạo mới thì sẽ gọi đến hàm
GET_SUA_DOI_BO_SUNG_BY_MA để lấy bản ra bản ghi đó và trả về.
- Đầu vào:

BCA-C08_XLVP_2023_DD Internal use Trang 111


Tài liệu thiết kế hệ thống V1.0

 V_MA: Mã của văn bản pháp luật cần kiểm tra, có kiểu dữ liệu trùng với
kiểu dữ liệu của cột MA_VBPL trong bảng
 V_MA_SUA_DOI: Mã sửa đổi bổ sung của văn bản pháp luật cần kiểm tra,
có kiểu dữ liệu trùng với kiểu dữ liệu của cột MA_SUA_DOI trong bảng
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 V_MA VARCHAR2(30 N Mã văn bản pháp luật
CHAR
2 V_MA_SUA_DOI VARCHAR2(30 N Mã sửa đổi bổ sung
CHAR)
3 V_CURSOR CURSOR X Trả về danh sách dữ
liệu văn bản pháp luật
sửa đổi bổ sung

e.1.2.2.7.4. Xử lý ngoại lệ

e.1.2.2.8. Xóa VBPL sửa đổi bổ sung (đánh dấu trạng thái trong DB)

e.1.2.2.8.1. API

e.1.2.2.8.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maVbpl String Mã VBPL
2 maBoSung String Mã VBPL sửa đổi bổ sung
Các giá trị trả về là:
STT Tham số Kiểu dữ liệu Mô tả
1 Boolean True: thành công
False: thất bại
e.1.2.2.8.3. Mô tả chi tiết

Service:

BCA-C08_XLVP_2023_DD Internal use Trang 112


Tài liệu thiết kế hệ thống V1.0

- Khi thực hiện xóa văn bản pháp luật ra khỏi hệ thống thì gọi xuống database
procedure DELETE_SUA_DOI_BO_SUNG để cập nhật lại trạng thái của biến
IS_DELETED của văn bản pháp luật sửa đổi bổ sung ứng với mã văn bản pháp
luật ở trên hàm DELETE_ITEM
Procedure:
- Hàm này sẽ cập nhật lại trạng thái của biến IS_DELETED thành 1 trong bảng
DM_VBPL_SUA_DOI_BO_SUNG của bản ghi tim được theo 2 điều kiện là mã
văn bản pháp luật và mã văn bản pháp luật sửa đổi bổ sung.
- Đầu vào:
 V_MA: Mã của văn bản pháp luật cần kiểm tra, có kiểu dữ liệu trùng với
kiểu dữ liệu của cột MA_VBPL trong bảng
 V_MA_SUA_DOI: Mã sửa đổi bổ sung của văn bản pháp luật cần kiểm tra,
có kiểu dữ liệu trùng với kiểu dữ liệu của cột MA_SUA_DOI trong bảng
Các giá trị nhập vào và trả ra gồm:
Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
1 V_MA VARCHAR2(30 Mã văn bản pháp luật
N
CHAR
2 V_MA_SUA_DOI VARCHAR2(30 Mã sửa đổi bổ sung
N
CHAR)
e.1.2.2.8.4. Xử lý ngoại lệ

e.1.2.2.9. Xóa VBPL sửa đổi bổ sung (xóa khỏi DB)

e.1.2.2.9.1. API

e.1.2.2.9.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maVbpl String Mã VBPL
2 maBoSung String Mã VBPL sửa đổi bổ sung
Các giá trị trả về là:

BCA-C08_XLVP_2023_DD Internal use Trang 113


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Mô tả


1 result Boolean True: thành công
False: thất bại
e.1.2.2.9.3. Mô tả chi tiết

Service:
- Khi thực hiện xóa văn bản pháp luật ra khỏi hệ thống thì gọi xuống database
procedure DELETE_SUA_DOI_BO_SUNG để xóa văn bản pháp luật sửa đổi bổ
sung ứng với mã văn bản pháp luật ở trên hàm DELETE_ITEM
Procedure:
- Hàm HARD_DELETE_SUA_DOI_BO_SUNG sử dụng để xóa bản ghi ra khỏi
bảng DM_VBPL_SUA_DOI_BO_SUNG được lấy theo mã VBPL và mã VBPL
sửa đổi bổ sung
- Đầu vào:
 V_MA: Mã của văn bản pháp luật cần kiểm tra, có kiểu dữ liệu trùng với
kiểu dữ liệu của cột MA_VBPL trong bảng
 V_MA_SUA_DOI: Mã sửa đổi bổ sung của văn bản pháp luật cần kiểm tra,
có kiểu dữ liệu trùng với kiểu dữ liệu của cột MA_SUA_DOI trong bảng
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 V_MA VARCHAR2(30 N Mã văn bản pháp luật
CHAR
2 V_MA_SUA_DOI VARCHAR2(30 N Mã sửa đổi bổ sung
CHAR)
e.1.2.2.9.4. Xử lý ngoại lệ

NA

e.2. Danh mục nghề nghiệp


e.2.1. Mục đích

- Quản lý danh mục nghề nghiệp


- Chức năng quản lý danh mục nghề nghiệp gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 114


Tài liệu thiết kế hệ thống V1.0

o Thêm mới nghề nghiệp


o Sửa nghề nghiệp
o Hiển thị chi tiết nghề nghiệp
o Xóa nghề nghiệp

e.2.2. Chi tiết từng mục

e.2.2.1. Thiết kế dữ liệu

e.2.2.1.1. Mô hình quan hệ dữ liệu

e.2.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 DANH_MUC_NGH Bảng lưu trữ danh mục Nghề nghiệp
E_NGHIEP

e.2.2.1.3. Chi tiết các bảng

e.2.2.1.3.1. Bảng DANH_MUC_NGHE_NGHIEP

Tên Kiểu dữ liệu Bắt P/F Mặc Diễn giải


trường buộc? Key? định
MA VARCHAR2 P Mã nghề nghiệp
(100 CHAR)
TEN VARCHAR2 Tên nghề nghiệp
(100 CHAR)
TRANG_T NUMBER(1, x 1 Trạng thái kích
HAI 0) hoạt
MO_TA VARCHAR2 x Mô Tả
(500 CHAR)

BCA-C08_XLVP_2023_DD Internal use Trang 115


Tài liệu thiết kế hệ thống V1.0

NGUOI_T VARCHAR2 x Người tạo


AO (50 CHAR)
NGAY_T DATE x CURRE Ngày tạo
AO NT_TI
MESTA
MP
NGUOI_S VARCHAR2 x Người sửa
UA (50 CHAR)
NGAY_SU DATE x Ngày sửa
A
IS_DELET NUMBER(1, x 0 Trạng thái xóa
ED 0)
Bảng lưu trữ danh mục Nghề nghiệp
a) Các ràng buộc
Tên Nội dung
Unique "UNIQUE" trên cột "MA": Đảm bảo rằng mỗi giá
trị trong cột "MA" là duy nhất.
Check "NOT NULL" trên cột "MA" và "TEN": Đảm bảo
rằng giá trị của cả hai cột này không được để trống
(null)
b) Trigger
NA
c) Packages
Tên package: PKG_DANH_MUC_NGHE_NGHIEP

BCA-C08_XLVP_2023_DD Internal use Trang 116


Tài liệu thiết kế hệ thống V1.0

c.1.2.1. Thiết kế màn hình

c.1.2.1.1. Màn hình xem danh sách, tìm kiếm nghề nghiệp

c.1.2.1.1.1. Giao diện

Hình 16: Màn hình danh sách nghề nghiệp


c.1.2.1.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Tên thành Bắt
Định
STT Tên label phần / buộc Mô tả
dạng
Control ?
Form tìm kiếm/lọc dữ liệu danh mục
1 Mã nghề nghiệp ma Textbox Nhập mã nghề nghiệp
2 Tên nghề nghiệp ten Textbox Nhập tên nghề nghiệp
Trạng thái trangThai Dropdo Chọn loại trạng thái
3
wnlist nghề nghiệp
Danh sách dữ liệu danh mục
Mã nghề nghiệp ma Textbox Hiển thị mã nghề
4
nghiệp
Tên nghề nghiệp ten Textbox Hiển thị tên nghề
5
nghiệp
Mô tả moTa Textbox Hiển thị mô tả của
6
nghề nghiệp

BCA-C08_XLVP_2023_DD Internal use Trang 117


Tài liệu thiết kế hệ thống V1.0

Trạng thái trangThai Textbox Hiển thị trạng thái nghề


7
nghiệp
Ngày sửa gần nhất ngaySua Textbox Hiển thị ngày sửa nghề
8
nghiệp
Cán bộ sửa gần nhất nguoiSua Textbox Hiển thị người sửa
9
nghề nghiệp

c.1.2.1.1.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Chọn menu Danh mục/Nghề nghiệp → Xem thông tin danh
sách danh mục nghề nghiệp.
BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh mục
→ Click Tìm kiếm.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập →
Màn hình hiển thị danh sách danh mục thỏa mãn bộ lọc.
BtnReset_Click Click nút Thiết lập lại.
Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin đã
nhập và hoàn tác về trạng thái mặc định ban đầu.
BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới danh mục nghề
nghiệp
BtnExportExcel_Click Click nút Xuất Excel.
Hệ thống xuất ra 1 bản excel với các dữ liệu tương ứng trên
bảng
BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh sách.
Màn hình chuyển đến trang Chỉnh sửa danh mục nghề
nghiệp tương ứng với bản ghi
BtnView_Click Click nút Xem chi tiết ở cuối mỗi bản ghi trong danh sách.
Màn hình chuyển đến trang Xem chi tiết danh mục nghề
nghiệp tương ứng với bản ghi

BCA-C08_XLVP_2023_DD Internal use Trang 118


Tài liệu thiết kế hệ thống V1.0

BtnDelete_Click Click nút Xóa ở cuối mỗi bản ghi trong danh sách → Chọn
Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình reload và cập
nhật lại danh sách danh mục.

c.1.2.1.2. Thêm mới nghề nghiệp

c.1.2.1.2.1. Giao diện

Hình 17: Màn hình thêm mới danh mục nghề nghiệp
c.1.2.1.2.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Bắt
Tên thành phần / Định
STT Tên label buộc Mô tả
Control dạng
nhập?
Mã nghề ma Textbox Hiển thị mã nghề
nghiệp nghiệp
1
Mã tự sinh, không thể
nhập
Tên nghề ten Textbox Nhập tên nghề nghiệp
2 x
nghiệp
Trạng trangThai Dropdown Chọn loại trạng thái
3 x
thái list cho nghề nghiệp

BCA-C08_XLVP_2023_DD Internal use Trang 119


Tài liệu thiết kế hệ thống V1.0

Mô tả moTa Textbox Nhập mô tả chi tiết cho


4
nghề nghiệp

c.1.2.1.2.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Thêm mới tại màn hình danh sách Danh mục
nghề nghiệp → Màn hình chuyển đến màn Thêm mới
BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu danh mục
→ Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
thêm mới.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục.

c.1.2.1.2.4. Các ràng buộc

Tên Điều kiện


Tên nghề nghiệp Bắt buộc nhập, độ dài không quá 100 kí tự
Mô tả Độ dài không quá 500 kí tự

BCA-C08_XLVP_2023_DD Internal use Trang 120


Tài liệu thiết kế hệ thống V1.0

c.1.2.1.3. Chỉnh sửa nghề nghiệp

c.1.2.1.3.1. Giao diện

Hình 18: Màn hình chỉnh sửa danh mục nghề nghiệp
c.1.2.1.3.2. Danh sách control/thành phần giao diện

Tên
Bắt
thành
STT Tên label buộc Định dạng Mô tả
phần /
?
Control
Mã nghề ma Textbox Hiển thị mã nghề nghiệp
1
nghiệp
Tên nghề ten Textbox Nhập tên nghề nghiệp
2 x
nghiệp
Trạng thái trangThai Dropdownlist Chọn trạng thái cho nghề
3 x
nghiệp
Mô tả moTa Textbox Nhập mô tả chi tiết cho nghề
4
nghiệp

c.1.2.1.3.3. Xử lý sự kiện

Các sự kiện cần xử lý:


Sự kiện Quy trình
Page_Load Cách 1: Click nút Chỉnh sửa ở cuối mỗi bản ghi tại màn

BCA-C08_XLVP_2023_DD Internal use Trang 121


Tài liệu thiết kế hệ thống V1.0

hình danh sách Danh mục nghề nghiệp → Màn hình


chuyển đến màn Chỉnh sửa.
Cách 2: Click nút Chỉnh sửa tại màn hình chi tiết Danh
mục nghề nghiệp → Màn hình chuyển đến màn Chỉnh
sửa.
BtnSave_Click Nhập thông tin trong Form chỉnh sửa dữ liệu danh mục
→ Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
chỉnh sửa.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục.

c.1.2.1.3.4. Các ràng buộc

Tên Điều kiện


Tên nghề nghiệp Bắt buộc nhập, độ dài không quá 100 kí tự
Mô tả Độ dài không quá 500 kí tự

BCA-C08_XLVP_2023_DD Internal use Trang 122


Tài liệu thiết kế hệ thống V1.0

c.1.2.1.4. Xem chi tiết nghề nghiệp

c.1.2.1.4.1. Giao diện

Hình 19: Màn hình xem chi tiết nghề nghiệp


c.1.2.1.4.2. Danh sách control/thành phần giao diện

Tên thành
Định
STT Tên label phần / Mô tả
dạng
Control
1 Mã nghề nghiệp ma Textbox Hiển thị mã nghề
nghiệp
2 Tên nghề nghiệp ten Textbox Hiển thị tên nghề
nghiệp
3 Trạng thái trangThai Dropdown Hiển thị trạng thái nghề
list nghiệp
4 Mô tả moTa Textbox Hiển thị mô tả chi tiết
của nghề nghiệp

c.1.2.1.4.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục nghề nghiệp → Màn hình chuyển
đến màn Xem chi tiết.

BCA-C08_XLVP_2023_DD Internal use Trang 123


Tài liệu thiết kế hệ thống V1.0

BtnEdit_Click Click nút Chỉnh sửa → Màn hình chuyển đến màn chỉnh
sửa danh sách danh mục nghề nghiệp.
BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh
sách danh mục.
c.1.2.2. Thiết kế các hàm, thủ tục

c.1.2.2.1. Tìm kiếm danh sách nghề nghiệp

c.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách nghề nghiệp theo nhiều tiêu chí tìm kiếm
Method URL
GET xlvp/api/v1/danh-muc/nghe-nghiep?

c.1.2.2.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên nghề nghiệp
2 ma String Mã nghề nghiệp
3 trangThai Boolean Trạng thái của nghề nghiệp
+ true : kích hoạt
+ false : không kích hoạt
4 page Number Trang cần tìm kiếm ( bắt đầu
từ 0)
5 pageSize Number Số bản ghi cần lấy trên 1 trang
6 isFetchAll Boolean Lấy tất cả các bản ghi nghề
nghiệp
7 timKiemNhanh String Tìm kiếm nhanh
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ten String Tên nghề nghiệp
2 ma String Mã nghề nghiệp

BCA-C08_XLVP_2023_DD Internal use Trang 124


Tài liệu thiết kế hệ thống V1.0

3 moTa String Mô tả nghề nghiệp


4 noiDung String Nội dung nghề nghiệp
5 ngaySua Date Ngày sửa
6 nguoiSua String Người sửa
7 total Integer Tổng số lượng bản ghi
c.1.2.2.1.3. Mô tả chi tiết
a) Services
-Gọi hàm search xử lý lấy danh sách nghề nghiệp từ database
- Hàm này có chức năng tìm kiếm danh sách nghề nghiệp dựa trên các tiêu chí được
cung cấp trong NgheNghiepSearchDto
- Đầu vào:
o request: một đối tượng NgheNghiepSearchDto chứa các tiêu chí tìm kiếm.
- Đầu ra:
o PaginationResponseDto<NgheNghiepDetailDto>: đối tượng trả về chứa
thông tin của các bản ghi được tìm thấy trong cơ sở dữ liệu.
- Cách hoạt động:
o Đầu tiên, hàm sẽ gọi phương thức search của repository để lấy danh sách
các bản ghi NgheNghiepEntity dựa trên tiêu chí tìm kiếm.
o Nếu không tìm thấy bản ghi nào, hàm sẽ trả về một PaginationResponseDto
trống.
o Nếu tìm thấy các bản ghi, hàm sẽ ánh xạ từng NgheNghiepEntity thành một
NgheNghiepDetailDto bằng cách sử dụng đối tượng mapper
NgheNghiepMapper, sau đó trả về một PaginationResponseDto chứa danh
sách các NgheNghiepDetailDto tương ứng.
b) Packages
Procedure PKG_DANH_MUC_NGHE_NGHIEP.SEARCH_NGHE_NGHIEP là một
thủ tục được sử dụng để tìm kiếm các Nghề nghiệp dựa trên các tiêu chí khác nhau.
Các giá trị nhập vào và trả ra gồm:
Nhập /
Kiểu
STT Tham số Xuất Mô tả
dữ liệu
[N/X]
1 P_MA VARC N Mã nghề nghiệp

BCA-C08_XLVP_2023_DD Internal use Trang 125


Tài liệu thiết kế hệ thống V1.0

HAR2
P_TEN VARC N Tên nghề nghiệp
2
HAR2
P_TRAN NUMB N Trạng thái
3
G_THAI ER
P_PAGE NUMB N Page
4
ER
P_SIZE NUMB N Size
5
ER
V_CURS CURS X REF_CURSOR
6
OR OR

- Thủ tục tìm kiếm các ngành nghề dựa trên các tiêu chí tìm kiếm (MA, TEN,
TRANG_THAI) và trả về kết quả dưới dạng một con trỏ CURSOR được tham
chiếu bởi tham số V_CURSOR. Thủ tục này cũng hỗ trợ phân trang với các tham
số P_PAGE và P_SIZE.
- Đầu vào:
o P_MA: Tham số đầu vào kiểu DANH_MUC_NGHE_NGHIEP.MA
%TYPE, đại diện cho mã ngành nghề cần tìm kiếm.
o P_TEN: Tham số đầu vào kiểu DANH_MUC_NGHE_NGHIEP.TEN
%TYPE, đại diện cho tên ngành nghề cần tìm kiếm.
o P_TRANG_THAI: Tham số đầu vào kiểu
DANH_MUC_NGHE_NGHIEP.TRANG_THAI%TYPE, đại diện cho
trạng thái ngành nghề cần tìm kiếm.
o P_PAGE: Tham số đầu vào kiểu NUMBER, đại diện cho trang cần truy
vấn.
o P_SIZE: Tham số đầu vào kiểu NUMBER, đại diện cho số bản ghi tối đa
được trả về trong một trang phân trang.
- Đầu ra:
o V_CURSOR: Tham số đầu ra kiểu REF_CURSOR, đại diện cho con trỏ
cursor chứa kết quả truy vấn, bao gồm tổng số bản ghi tìm được và các bản
ghi trong phạm vi trang phân trang.
- Cách hoạt động:

BCA-C08_XLVP_2023_DD Internal use Trang 126


Tài liệu thiết kế hệ thống V1.0

o Tính toán vị trí bắt đầu và kết thúc của trang phân trang dựa trên P_PAGE
và P_SIZE.
o Nếu P_TEN khác NULL, thì tạo chuỗi P_TEN_TRUNC để sử dụng trong
câu truy vấn, bao gồm loại bỏ khoảng trắng thừa, chuyển đổi thành chữ hoa
và thêm ký tự % vào đầu và cuối chuỗi để tìm kiếm bất kỳ tên nghề nghiệp
nào chứa chuỗi P_TEN.
o Thực hiện câu truy vấn dựa trên các tiêu chí tìm kiếm được đưa ra, bao gồm
P_MA, P_TEN_TRUNC và P_TRANG_THAI. Các bản ghi được lấy ra chỉ
bao gồm các bản ghi chưa bị xóa (IS_DELETED = 0).
o Sử dụng ROW_NUMBER và COUNT OVER để áp dụng phân trang, đảm
bảo rằng chỉ trả về số lượng bản ghi tối đa là P_SIZE và bắt đầu từ
P_PAGE_BEGIN.
Trả về kết quả dưới dạng một con trỏ CURSOR, bao gồm tổng số bản ghi tìm được và
các bản ghi trong phạm vi trang phân trang.
b.1.2.1.1.1. Xử lý ngoại lệ
NA

b.1.2.1.2. Thêm mới nghề nghiệp

b.1.2.1.2.1. API

Mô tả: Gọi API để truy xuất thông tin nghề nghiệp


Method URL
POST xlvp/api/v1/danh-muc/nghe-nghiep

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Mã văn bản pháp luật
2 trangThai Boolean Trạng thái nghề nghiệp:
+true: kích hoạt
+false: không kích hoạt
3 moTa String Mã văn bản pháp luật
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 127


Tài liệu thiết kế hệ thống V1.0

liệu
1 ten String Tên nghề nghiệp
2 ma String Mã nghề nghiệp
3 trangThai Boolean Trạng thái nghề nghiệp
4 moTa String Mô tả nghề nghiệp
5 ngaySua Date Ngày sửa
6 nguoiSua String Người sửa

b.1.2.1.2.3. Mô tả chi tiết


a) Services
Gọi hàm create để thêm một ngành nghề mới vào cơ sở dữ liệu.
- Hàm create được đánh dấu là @Override và được thực hiện trong một transaction.
- Đầu vào:
o NgheNghiepCreationDto request: đối tượng chứa thông tin ngành nghề mới
cần tạo.
o String username: tên tài khoản của người tạo.
- Đầu ra:
o NgheNghiepDetailDto: đối tượng chứa thông tin chi tiết về ngành nghề vừa
được tạo.
- Cách hoạt động:
o Kiểm tra xem nghề nghiệp có tồn tại trong cơ sở dữ liệu hay chưa thông
qua hàm isNgheNghiepExisted(). Nếu tồn tại rồi thì throw ra một
ResourceExistedException và thông báo lỗi.
o Chuyển đối tượng NgheNghiepCreationDto thành đối tượng
NgheNghiepEntity.
o Thực hiện tạo mới đối tượng NgheNghiepEntity trong cơ sở dữ liệu thông
qua repository.create(entity, username).
o Chuyển đổi đối tượng NgheNghiepEntity thành NgheNghiepDetailDto
thông qua ngheNghiepMapper.toDto().
o Ghi lại log sự kiện thêm mới ngành nghề vào cơ sở dữ liệu.
o Trả về đối tượng NgheNghiepDetailDto vừa được tạo.

BCA-C08_XLVP_2023_DD Internal use Trang 128


Tài liệu thiết kế hệ thống V1.0

b) Packages
Procedure PKG_DANH_MUC_NGHE_NGHIEP. CREATE_NGHE_NGHIEP là một
thủ tục được sử dụng để thêm một bản ghi mới vào bảng
DANH_MUC_NGHE_NGHIEP.
Các giá trị nhập vào và trả ra gồm:
Tham số Kiểu Nhập / Mô tả
STT dữ liệu Xuất
[N/X]
1 P_TEN VARC N Tên danh mục nghề nghiệp
HAR2
2 P_TRANG VARC N Trạng thái
_THAI HAR2
3 P_MO_TA VARC N Mô tả
HAR2
4 P_NGUOI VARC N Người tạo
_TAO HAR2
5 V_CURSO CURS X REF_CURSOR
R OR

- Đầu vào:

o P_TEN: Kiểu dữ liệu là VARCHAR2, đại diện cho tên nghề nghiệp mới.

o P_TRANG_THAI: Kiểu dữ liệu là NUMBER, đại diện cho trạng thái kích
hoạt (1) hoặc không kích hoạt (0) của nghề nghiệp mới.
o P_MO_TA: Kiểu dữ liệu là VARCHAR2, đại diện cho mô tả nghề nghiệp
mới.
o P_NGUOI_TAO: Kiểu dữ liệu là VARCHAR2, đại diện cho tên người tạo
nghề nghiệp mới ("P_TEN"),
o ("P_TRANG_THAI") trạng thái kích hoạt,

o ("P_MO_TA") mô tả nghề nghiệp mới,

o ("P_NGUOI_TAO") tên người tạo nghề nghiệp mới

o ("CURRENT_TIMESTAMP") ngày tạo.

- Đầu ra:

BCA-C08_XLVP_2023_DD Internal use Trang 129


Tài liệu thiết kế hệ thống V1.0

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào
bảng DANH_MUC_NGHE_NGHIEP.
- Hàm này chèn một hàng mới vào bảng này với các thông tin về tên, trạng thái, mô
tả và người tạo được truyền vào từ đối số đầu vào. Hàm sử dụng một hàm khác
"GENERATE_MA_NGHE_NGHIEP" để tạo mã nghề nghiệp mới, sau đó trả về
bản ghi vừa được tạo.
b.1.2.1.1.1. Xử lý ngoại lệ

- ResourceExistedException khi mã nghề nghiệp đã tồn tại

b.1.2.1.2. Lấy thông tin nghề nghiệp

b.1.2.1.2.1. API

Mô tả: Gọi API để lấy thông tin nghề nghiệp


Method URL
GET xlvp/api/v1/danh-muc/nghe-nghiep/{ma}

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã nghề nghiệp
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ten String Tên nghề nghiệp
2 ma String Mã nghề nghiệp
3 moTa String Mô tả nghề nghiệp
4 trangThai Boolean Trạng thái nghề nghiệp
5 ngaySua Date Ngày sửa
6 nguoiSua String Người sửa

BCA-C08_XLVP_2023_DD Internal use Trang 130


Tài liệu thiết kế hệ thống V1.0

b.1.2.1.2.3. Mô tả chi tiết


a) Services
Gọi hàm getByMa xử lý lấy thông tin chi tiết nghề nghiệp từ database
- Hàm getDetail được sử dụng để lấy chi tiết một đối tượng nghề nghiệp từ cơ sở dữ
liệu.
- Đầu vào:
o maNgheNghiep: mã nghề nghiệp cần truy vấn
- Đầu ra:
o NgheNghiepDetailDto chứa thông tin chi tiết về nghề nghiệp tương ứng với
maNgheNghiep
- Cách hoạt động:
o Truy vấn đối tượng nghề nghiệp từ NgheNghiepRepository bằng phương
thức getByMa.
o Nếu đối tượng không tồn tại, ném ra một ngoại lệ
ResourceDoesNotExistException.
o Nếu đối tượng tồn tại, chuyển đổi từ đối tượng NgheNghiepEntity sang
NgheNghiepDetailDto bằng cách sử dụng NgheNghiepMapper.
o Trả về đối tượng NgheNghiepDetailDto.
b) Packages
Procedure PKG_DANH_MUC_NGHE_NGHIEP. GET_BY_MA là một thủ tục lấy
thông tin một bản ghi theo mã nghề nghiệp.
Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ Nhập / Mô tả


liệu Xuất
[N/X]
1 P_MA VARC N Mã nghề nghiệp
HAR2
2 V_CURS CURSO X REF_CURSOR
OR R

- Thủ tục truy vấn danh sách các ngành nghề có tên giống với tên được truyền vào
qua tham số P_TEN, và trả về kết quả dưới dạng một con trỏ CURSOR được tham
chiếu bởi tham số V_CURSOR. Các cột được trả về bao gồm: mã ngành nghề
(MA), tên ngành nghề (TEN), trạng thái (TRANG_THAI), mô tả (MO_TA),

BCA-C08_XLVP_2023_DD Internal use Trang 131


Tài liệu thiết kế hệ thống V1.0

người sửa (NGUOI_SUA), và ngày sửa (NGAY_SUA). Thủ tục này chỉ lấy các
bản ghi chưa bị xóa (IS_DELETED = 0).
- Đầu vào:
o P_TEN: Tham số đầu vào kiểu VARCHAR2, đại diện cho tên ngành nghề
cần truy vấn.
- Đầu ra:
o V_CURSOR: Tham số đầu ra kiểu REF_CURSOR, đại diện cho con trỏ
cursor chứa kết quả truy vấn.
b.1.2.1.1.1. Xử lý ngoại lệ

- ResourceDoesNotExistException khi mã nghề nghiệp không hợp lệ


b.1.2.1.2. Sửa nghề nghiệp

b.1.2.1.2.1. API

Mô tả: Gọi API để sửa thông tin nghề nghiệp


Method URL
PUT xlvp/api/v1/danh-muc/nghe-nghiep/{ma}

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã nghề nghiệp
2 Ten String Tên nghề nghiệp
3 trangThai Boolean Trạng thái nghề nghiệp
4 moTa String Mô tả nghề nghiệp

Các tham số trả về là:

BCA-C08_XLVP_2023_DD Internal use Trang 132


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ Mô tả


liệu
1 ten String Tên nghề nghiệp
2 ma String Mã nghề nghiệp
3 moTa String Mô tả nghề nghiệp
4 trangThai Boolean Trạng thái nghề nghiệp
5 ngaySua Date Ngày sửa
6 nguoiSua String Người sửa

b.1.2.1.2.3. Mô tả chi tiết


a) Services
Gọi hàm update xử lý sửa thông tin chi tiết nghề nghiệp từ database.
- Đầu vào:
o maNgheNghiep: mã ngành nghề cần cập nhật thông tin.
o request: đối tượng NgheNghiepUpdateDto chứa thông tin cần cập nhật
o username: tên đăng nhập của người thực hiện cập nhật.
- Đầu ra:
o NgheNghiepDetailDto: đối tượng chứa thông tin chi tiết của ngành nghề
sau khi cập nhật
- Cách hoạt động:
o Kiểm tra xem ngành nghề có tồn tại trong danh mục hay không, nếu không
tồn tại thì ném ra ngoại lệ ResourceDoesNotExistException.
o Nếu tên ngành nghề được cập nhật khác với tên hiện tại của ngành nghề, thì
kiểm tra xem tên đó đã tồn tại trong danh mục hay chưa, nếu tồn tại thì ném
ra ngoại lệ ResourceExistedException.
o Map dữ liệu từ NgheNghiepUpdateDto vào đối tượng NgheNghiepEntity
tương ứng.
o Gọi phương thức update của repository để lưu thông tin cập nhật vào cơ sở
dữ liệu.
o Ghi log sự kiện cập nhật thông tin ngành nghề.
o Map đối tượng NgheNghiepEntity sau khi cập nhật thành.
NgheNghiepDetailDto để trả về cho client.

BCA-C08_XLVP_2023_DD Internal use Trang 133


Tài liệu thiết kế hệ thống V1.0

b) Packages
Procedure PKG_DANH_MUC_NGHE_NGHIEP.UPDATE_NGHE_NGHIEP là một
thủ tục được sử dụng để cập nhật thông tin của một nghề nghiệp đã có trong cơ sở dữ
liệu.
Các giá trị nhập vào và trả ra gồm:
Nhập /
Kiểu
STT Tham số Xuất Mô tả
dữ liệu
[N/X]
P_MA VARC N Mã nghề nghiệp
1
HAR2
2 P_TEN VARC N Tên nghề nghiệp
HAR2
3 P_TRAN NUMB N Trạng thái
G_THAI ER
4 P_MO_T VARC N Mô tả
A HAR2
5 P_NGUO VARC N Người sửa
I_SUA HAR2
6 V_CURS CURS X REF_CURSOR
OR OR

- Đầu vào:
o P_MA: mã của ngành nghề cần được cập nhật thông tin.
o P_TEN: tên mới của ngành nghề.
o P_TRANG_THAI: trạng thái mới của ngành nghề.
o P_MO_TA: mô tả mới của ngành nghề.
o P_NGUOI_SUA: tên người sửa thông tin của ngành nghề.
- Đầu ra:
o V_CURSOR: một con trỏ tham chiếu, sẽ trả về tập hợp kết quả truy vấn.
- Cách hoạt động:
o Thủ tục "UPDATE_NGHE_NGHIEP" sẽ truy vấn bảng
"DANH_MUC_NGHE_NGHIEP" để cập nhật thông tin của ngành nghề có
mã là P_MA. Sau khi cập nhật xong, thủ tục gọi thủ tục "GET_BY_MA"

BCA-C08_XLVP_2023_DD Internal use Trang 134


Tài liệu thiết kế hệ thống V1.0

với đầu vào là P_MA để lấy tất cả thông tin của ngành nghề vừa cập nhật,
và gán kết quả vào biến con trỏ V_CURSOR để trả về cho người dùng.
b.1.2.1.1.1. Xử lý ngoại lệ

- ResourceDoesNotExistException khi không tồn tại mã nghề nghiệp


- ResourceExistedException nếu đã tồn tại tên nghề nghiệp
b.1.2.1.2. Xóa nghề nghiệp

b.1.2.1.2.1. API

Mô tả: Gọi API để xóa thông tin nghề nghiệp


Method URL
DELETE xlvp/api/v1/danh-muc/nghe-nghiep/{ma}

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã nghề nghiệp
Các tham số trả về là:
STT Tham số Kiểu dữ liệu Mô tả
1 Http status code Boolean True : đã xóa thành công

b.1.2.1.2.3. Mô tả chi tiết


a) Services
Gọi hàm delete xử lý xóa thông tin chi tiết nghề nghiệp từ database
- Đầu vào:
o maNgheNghiep là mã ngành nghề nghiệp cần xóa.
o username là tên người dùng thực hiện thao tác xóa.
- Đầu ra:
o true nếu thao tác xóa thành công.
- Cách hoạt động:
o Lấy đối tượng HanhViViPhamEntity tương ứng với mã nghề nghiệp được
cung cấp từ ma. Nếu không tìm thấy, ném ra ngoại lệ
ResourceDoesNotExistException.

BCA-C08_XLVP_2023_DD Internal use Trang 135


Tài liệu thiết kế hệ thống V1.0

o Gọi phương thức delete của repository để xóa đối tượng HanhViViPham
khỏi cơ sở dữ liệu.
o Ghi nhật ký ứng dụng bằng cách gọi phương thức log của
applicationLogService.
o Trả về giá trị boolean true để cho biết thao tác xóa đã thành công
b) Packages
Procedure PKG_DANH_MUC_NGHE_NGHIEP.DELETE_NGHE_NGHIEP là một
thủ tục được sử dụng để đánh dấu một nghề nghiệp trong danh mục nghề nghiệp đã bị
xóa bỏ.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ Nhập / Mô tả
liệu Xuất
[N/X]
H_MA VARCHAR N Mã nghề nghiệp
1
2(20 CHAR)
H_NGUOI VARCHAR N Người sửa
2
_SUA 2(20 CHAR)
V_CURSO REF_CURS X REF_CURSOR
3
R OR

- Cập nhật trạng thái của một bản ghi trong bảng "DANH_MUC_NGHE_NGHIEP"
bằng cách đặt "IS_DELETED" của bản ghi này thành 1, đồng thời cập nhật thông
tin người sửa và ngày sửa của bản ghi này. Sau đó, hàm sẽ trả về kết quả thông
qua con trỏ "V_CURSOR".
- Đầu vào:
o P_MA: Kiểu dữ liệu là VARCHAR2, đại diện cho mã nghề nghiệp cần xóa.
o P_NGUOI_SUA: Kiểu dữ liệu là VARCHAR2, đại diện cho tên người sửa
bản ghi.
o V_CURSOR: Kiểu dữ liệu là REF_CURSOR, đại diện cho con trỏ trỏ đến
tập kết quả của câu lệnh SQL được thực thi bên trong hàm.
- Đầu ra:
o V_CURSOR: Không có giá trị trả về, nhưng nó là một tham chiếu con trỏ
trả về 1 danh mục nghề nghiệp.

BCA-C08_XLVP_2023_DD Internal use Trang 136


Tài liệu thiết kế hệ thống V1.0

b.1.2.1.1.1. Xử lý ngoại lệ

- ResourceDoesNotExistException khi mã nghề nghiệp không tồn tại


b.1.2.1.2. Xuất excel danh sách nghề nghiệp

b.1.2.1.2.1. API

Mô tả: Gọi API để xuất excel danh sách nghề nghiệp


Method URL
GET xlvp/api/v1/danh-muc/nghe-nghiep/export/excel

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 page Number Page bắt đầu
2 pageSize Number Số lượng bản ghi trong 1 page
3 timKiemNhanh String Tìm kiếm nhanh
4 isFetchAll Boolean Lấy hết
5 ma String Mã nghề nghiệp
6 ten String Tên nghề nghiệp
7 trangThai Boolean Trạng thái nghề nghiệp

Các tham số trả về là:


STT Tham số Kiểu dữ Mô tả
liệu
1 File Excel File excel xuất ra
b.1.2.1.2.3. Mô tả chi tiết
a) Services
Gọi hàm report xử lý xuất ra một file Excel
- Đầu vào:
o request: đối tượng NgheNghiepSearchDto chứa các thông tin cần thiết để
tìm kiếm danh mục nghề nghiệp.
- Đầu ra:

BCA-C08_XLVP_2023_DD Internal use Trang 137


Tài liệu thiết kế hệ thống V1.0

o Đối tượng đầu vào StreamResource chứa file Excel xuất ra.
- Cách hoạt động:
o Sử dụng đối tượng NgheNghiepRepository để tìm kiếm danh mục nghề
nghiệp theo các thông tin trong request
o Sử dụng NgheNghiepMapper để chuyển đổi các đối tượng
NgheNghiepEntity thành các đối tượng NgheNghiepReportDto để xuất ra
file Excel.
o Các thông tin cần xuất được định dạng trong danh sách các headers. Cuối
cùng, hàm sử dụng đối tượng BaseExportExcelService để xuất ra file Excel
b) Packages
Procedure PKG_DANH_MUC_NGHE_NGHIEP.SEARCH_NGHE_NGHIEP là một
thủ tục được sử dụng để lấy danh sách các nghề nghiệp theo các điều kiện tìm kiếm
được cung cấp.
b.1.2.1.1.1. Xử lý ngoại lệ

- NA
b.2. Danh mục tang vật, phương tiện, giấy tờ
b.2.1. Mục đích

- Quản lý danh mục tang vật, phương tiện. giấy tờ


- Chức năng quản lý danh mục tang vật, phương tiện. giấy tờ gồm:
o Thêm mới tang vật, phương tiện, giấy tờ
o Sửa tang vật, phương tiện, giấy tờ
o Hiển thị chi tiết tang vật, phương tiện, giấy tờ
o Xóa tang vật, phương tiện, giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 138


Tài liệu thiết kế hệ thống V1.0

b.2.2. Chi tiết từng mục

b.2.2.1. Thiết kế dữ liệu

b.2.2.1.1. Mô hình quan hệ dữ liệu

b.2.2.1.2. Danh sách các bảng và mô tả

ST Tên bảng Mô tả
T
DANH_MUC_TANG_VAT_ Bảng lưu trữ danh mục Tang vật, phương tiện,
1
PHUONG_TIEN_GIAY_TO giấy tờ.
b.2.2.1.3. Chi tiết các bảng

Bảng DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO
Bắt P/F Mặc
Tên trường Kiểu dữ liệu Diễn giải
buộc? Key định
MA VARCHAR2 (50 P null Mã danh mục tang vật,
CHAR) phương tiện, giấy tờ

NHOM VARCHAR2 x null Nhóm danh mục tang vật,


(150 CHAR) phương tiện, giấy tờ

LINH_VUC VARCHAR2 (20 null Lĩnh vực của tang vật,


CHAR) phương tiện, giấy tờ

TEN VARCHAR2 null Tên cua tang vật, phương


(255 CHAR) tiện, giấy tờ

TRANG_THAI NUMBER (1,0) 1 Trạng thái

BCA-C08_XLVP_2023_DD Internal use Trang 139


Tài liệu thiết kế hệ thống V1.0

NGUOI_TAO VARCHAR2 (50 x null Tài khoản người tạo


CHAR)

NGAY_TAO DATE x CURR Thời gian tạo


ENT_T
IMEST
AMP

NGUOI_SUA VARCHAR2 (50 x null Tài khoản người sửa


CHAR)

NGAY_SUA DATE x CURR Thời gian sửa


ENT_T
IMEST
AMP

IS_DELETED NUMBER (1,0) x 0 Trạng thái xóa


0: chưa xóa, 1: đã xóa

b.2.2.1.3.1. Bảng DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO


a) Các ràng buộc
Tên Nội dung
MA Mã của danh mục tang vật, phương tiện, giấy tờ là Primary Key
và không được để trống

LINH_VUC Lĩnh vực của danh mục tang vật, phương tiện, giấy tờ không
được để trống

TEN Tên của danh mục tang vật, phương tiện, giấy tờ không được để
trống

TRANG_THAI Trạng thái của danh mục tang vật, phương tiện, giấy tờ không
được để trống
b) Index
NA
c) Trigger
NA
d) Packages
Tên package: PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO

BCA-C08_XLVP_2023_DD Internal use Trang 140


Tài liệu thiết kế hệ thống V1.0

d.1.2.1. Thiết kế màn hình

d.1.2.1.1. Xem danh sách, tìm kiếm danh mục tang vật, phương tiện, giấy tờ

d.1.2.1.1.1. Giao diện

Hình 20: Thông tin danh sách danh mục Tang vật, phương tiện, giấy tờ
d.1.2.1.1.2. Danh sách control/thành phần giao diện (*)

S Tên thành Bắt


T Tên label phần / buộc Định dạng Mô tả
T Control nhập?
Form tìm kiếm/lọc dữ liệu danh mục
1 Tìm kiếm timKiemNhanh - Textbox Nhập mã, tên, nhóm
nhanh tang vật phương tiện
giấy tờ
2 Nhóm tang vật nhom - Dropdownlist Chọn nhóm tang vật
phương tiện phương tiện giấy tờ
giấy tờ
3 Tên tang vật ten - Textbox Nhập tên tang vật
phương tiện phương tiện giấy tờ
giấy tờ
4 Trạng thái tang trangThai - Dropdownlist Chọn trạng thái tang
vật phương vật phương tiện giấy
tiện giấy tờ tờ
Danh sách dữ liệu danh mục

BCA-C08_XLVP_2023_DD Internal use Trang 141


Tài liệu thiết kế hệ thống V1.0

5 Mã tang vật, ma - Textbox Hiển thị mã tang vật,


phương tiện, phương tiện, giấy tờ
giấy tờ
6 Nhóm tang vật nhom - Textbox Hiển thị nhóm tang
phương tiện vật phương tiện giấy
giấy tờ tờ
7 Tên tang vật ten - Textbox Hiển thị tên tang vật
phương tiện phương tiện giấy tờ
giấy tờ
8 Trạng thái tang trangThai - Textbox Hiển thị trạng thái
vật phương tang vật phương tiện
tiện giấy tờ giấy tờ
9 Lĩnh vực linhVuc - Textbox Hiển thị lĩnh vực
10 Ngày sửa gần ngaySua - Textbox Hiển thị Ngày sửa
nhất gần nhất
11 Cán bộ sửa gần canBoSua - Textbox Hiển thị Cán bộ sửa
nhất gần nhất

d.1.2.1.1.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Chọn menu Danh mục/Tang vật, phương tiện, giấy tờ →
Xem thông tin danh sách danh mục tang vật, phương tiện,
giấy tờ.
BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh
mục → Click Tìm kiếm.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập →
Màn hình hiển thị danh sách danh mục thỏa mãn bộ lọc.
BtnReset_Click Click nút Thiết lập lại.
Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin đã
nhập và hoàn tác về trạng thái mặc định ban đầu.
BtnCollapse/ Click nút Thu hẹp/Mở rộng.
BtnExtend_Click

BCA-C08_XLVP_2023_DD Internal use Trang 142


Tài liệu thiết kế hệ thống V1.0

Thu hẹp/Mở rộng Form tìm kiếm/lọc dữ liệu danh mục.


BtnExportExcel Click nút Xuất Excel.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập và
trả kết quả về theo dạng file excel → Màn hình hiển thị
popup hỗ trợ lưu file vào local
BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới danh mục tang
vật, phương tiện, giấy tờ.
BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh sách.
Màn hình chuyển đến trang Chỉnh sửa danh mục tang vật,
phương tiện, giấy tờ tương ứng với bản ghi.
BtnView_Click Click nút Xem chi tiết ở cuối mỗi bản ghi trong danh
sách.
Màn hình chuyển đến trang Xem chi tiết danh mục tang
vật, phương tiện, giấy tờ tương ứng với bản ghi.
BtnDelete_Click Click nút Xóa ở cuối mỗi bản ghi trong danh sách →
Chọn Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình reload và
cập nhật lại danh sách danh mục.
d.1.2.1.1.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


Tên tang vật, phương tiện, Nhập tối đa 255 ký tự
giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 143


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.2. Thêm mới danh mục tang vật, phương tiện, giấy tờ

d.1.2.1.2.1. Giao diện

Hình 21: Thêm mới danh mục Tang vật, phương tiện, giấy tờ
d.1.2.1.2.2. Danh sách control/thành phần giao diện (*)

Form thêm mới dữ liệu danh mục HVVP:


Tên
Bắt
thành
STT Tên label buộc Định dạng Mô tả
phần /
nhập?
Control
Mã tang vật ma Textbox Hiển thị mã tang vật,
1 phương tiện phương tiện, giấy tờ
giấy tờ
Nhóm tang nhom X Dropdownlis Chọn nhóm tang vật
2 vật phương t phương tiện giấy tờ
tiện giấy tờ
Tên tang vật ten X Textbox Nhập tên tang vật phương
3 phương tiện tiện giấy tờ
giấy tờ
Trạng thái trangThai X Dropdownlis Chọn trạng thái tang vật
tang vật t phương tiện giấy tờ
4
phương tiện
giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 144


Tài liệu thiết kế hệ thống V1.0

Lĩnh vực linhVuc X Checkbox Chọn 1 hoặc nhiều lĩnh


5 vực cho tang vật, phương
tiện, giấy tờ
d.1.2.1.2.3. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Click nút Thêm mới tại màn hình danh sách Danh
mục tang vật, phương tiện, giấy tờ → Màn hình
chuyển đến màn Thêm mới
2 BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu
danh mục → Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu
nếu thỏa mãn → lưu danh mục theo thông tin vừa
nhập → Màn hình chuyển đến màn xem chi tiết
danh mục vừa thêm mới.
3 BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu
nếu thỏa mãn → lưu danh mục theo thông tin vừa
nhập → Màn hình chuyển đến màn xem danh
sách danh mục.
d.1.2.1.2.4. Kiểm soát dữ liệu/các ràng buộc

STT Tên Điều kiện


Mã tang vật phương tiện giấy Không được nhập
1
tờ
Nhóm tang vật phương tiện Bắt buộc chọn
2
giấy tờ
Tên tang vật phương tiện giấy Bắt buộc nhập, tối đa 255 ký tự
3
tờ
Trạng thái tang vật phương Bắt buộc chọn
4
tiện giấy tờ
5 Lĩnh vực Bắt buộc chọn

BCA-C08_XLVP_2023_DD Internal use Trang 145


Tài liệu thiết kế hệ thống V1.0

BCA-C08_XLVP_2023_DD Internal use Trang 146


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.3. Chỉnh sửa danh mục tang vật, phương tiện, giấy tờ

d.1.2.1.3.1. Giao diện

Hình 22: Chỉnh sửa danh mục Tang vật, phương tiện, giấy tờ
d.1.2.1.3.2. Danh sách control/thành phần giao diện (*)

Form chỉnh sửa dữ liệu danh mục HVVP


Bắt
Tên thành
buộc
STT Tên label phần / Định dạng Mô tả
nhập
Control
?
Mã tang vật ma Textbox Hiển thị mã tang vật,
1 phương tiện giấy phương tiện, giấy tờ
tờ
Nhóm tang vật nhom Dropdownlist Chọn nhóm tang vật
2 phương tiện giấy X phương tiện giấy tờ
tờ
Tên tang vật ten Textbox Nhập tên tang vật
3 phương tiện giấy X phương tiện giấy tờ
tờ
Trạng thái tang trangThai Dropdownlist Chọn trạng thái tang
4 vật phương tiện X vật phương tiện giấy
giấy tờ tờ
5 Lĩnh vực linhVuc X Checkbox Chọn 1 hoặc nhiều

BCA-C08_XLVP_2023_DD Internal use Trang 147


Tài liệu thiết kế hệ thống V1.0

lĩnh vực cho tang vật,


phương tiện, giấy tờ
d.1.2.1.3.3. Xử lý sự kiện

Mô tả các sự kiện xử lý đối với màn hình chức năng này, các thông tin được trình
bày trong bảng như sau:
STT Sự kiện Quy trình
Page_Load Click nút Thêm mới tại màn hình danh sách Danh
1 mục tang vật, phương tiện, giấy tờ → Màn hình
chuyển đến màn Thêm mới
BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu
danh mục → Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu
2
nếu thỏa mãn → lưu danh mục theo thông tin vừa
nhập → Màn hình chuyển đến màn xem chi tiết
danh mục vừa thêm mới.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu
3 nếu thỏa mãn → lưu danh mục theo thông tin vừa
nhập → Màn hình chuyển đến màn xem danh
sách danh mục.
d.1.2.1.3.4. Kiểm soát dữ liệu/các ràng buộc

ST Tên Điều kiện


T
Mã tang vật phương tiện giấy Không được nhập
1
tờ
Nhóm tang vật phương tiện Bắt buộc chọn
2
giấy tờ
Tên tang vật phương tiện giấy Bắt buộc nhập, tối đa 255 ký tự
3
tờ
Trạng thái tang vật phương tiện Bắt buộc chọn
4
giấy tờ
5 Lĩnh vực Bắt buộc chọn

BCA-C08_XLVP_2023_DD Internal use Trang 148


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.4. Xem chi tiết danh mục tang vật, phương tiện, giấy tờ

d.1.2.1.4.1. Giao diện

Hình 23: Xem chi tiết danh mục Tang vật, phương tiện, giấy tờ
d.1.2.1.4.2. Danh sách control/thành phần giao diện (*)

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới
đây:
Tên
thành Bắt
STT Tên label Định dạng Mô tả
phần / buộc?
Control
Mã tang vật ma - Textbox Hiển thị mã tang vật,
1 phương tiện giấy phương tiện, giấy tờ
tờ
Nhóm tang vật nhom - Dropdownlis Hiển thị nhóm tang vật
2 phương tiện giấy t phương tiện giấy tờ
tờ
Tên tang vật ten - Textbox Hiển thị tên tang vật
3 phương tiện giấy phương tiện giấy tờ
tờ
Trạng thái tang trangThai - Dropdownlis Hiển thị trạng thái tang
4
vật phương tiện t vật phương tiện giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 149


Tài liệu thiết kế hệ thống V1.0

giấy tờ
Lĩnh vực linhVuc - Checkbox Hiển thị 1 hoặc nhiều
5 lĩnh vực cho tang vật,
phương tiện, giấy tờ
d.1.2.1.4.3. Xử lý sự kiện

Mô tả các sự kiện xử lý đối với màn hình chức năng này, các thông tin được trình
bày trong bảng như sau:
STT Sự kiện Quy trình
1 Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục tang vật, phương tiện, giấy tờ →
Màn hình chuyển đến màn Xem chi tiết.
2 BtnEdit_Click Click nút Chỉnh sửa → Màn hình chuyển đến màn chỉnh
sửa danh mục.
3 BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh
sách danh mục.
d.1.2.2. Thiết kế các hàm, thủ tục

d.1.2.2.1. Lấy danh sách và tìm kiếm tang vật, phương tiện, giấy tờ

d.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách tang vật, phương tiện, giấy tờ theo nhiều tiêu chí tìm
kiếm
Method URL
GET v1/danh-muc/loai-giay-to

d.1.2.2.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã tang vật, phương tiện, giấy tờ
2 nhom Enum Nhóm tang vật, phương tiện, giấy
tờ:
+ Phương tiện
+ Giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 150


Tài liệu thiết kế hệ thống V1.0

+ Giấy phép lái xe


+Khác
3 ten String Tên tang vật, phương tiện, giấy tờ
4 trangThai Boolean Trạng thái
5 linhVuc Enum Lĩnh vực tang vật, phương tiện,
giấy tờ:
+ Đường bộ
+ Đường sắt
+ Đường thủy
6 page int Trang cần tìm (bắt đầu từ 0)
7 pageSize int Số bản ghi trên một trang
8 timKiemNhanh String Từ khóa tìm kiếm nhanh
9 isFetchAll Boolean Lấy tất cả bản ghi
Các giá trị trả về là:

STT Tham số Kiểu dữ Mô tả


liệu
1 ma String Mã tang vật, phương tiện, giấy tờ
2 nhom Enum Nhóm tang vật, phương tiện, giấy tờ:
+ Phương tiện
+ Giấy tờ
+ Giấy phép lái xe
+Khác
3 ten String Tên tang vật, phương tiện, giấy tờ
4 linhVuc List<Enum> Lĩnh vực tang vật, phương tiện, giấy tờ:
+ Đường bộ
+ Đường sắt
+ Đường thủy
5 trangThai Boolean Trạng thái của tang vật, phương tiện,
giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 151


Tài liệu thiết kế hệ thống V1.0

6 nguoiTao String Người tạo


7 nguoiSua String Người sửa cuối cùng
8 ngayTao Date Ngày tạo
9 ngaySua Date Ngày sửa cuối cùng
d.1.2.2.1.3. Mô tả chi tiết

Service:
- Gọi hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.SEARCH xử lý lấy
danh sách tang vật, phương tiện giấy tờ từ database.
Procedure:
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.SEARCH là một thủ tục
được sử dụng để tìm kiếm các tang vật, phương tiện, giấy tờ dựa trên các tiêu chí
khác nhau.
Các giá trị nhập vào và trả ra gồm:

Nhập / Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]

P_MA VARCHAR2 (50 N Mã danh mục tang vật,


1
CHAR) phương tiện, giấy tờ

P_TEN VARCHAR2 (255 N Tên của danh mục tang vật,


2
CHAR) phương tiện, giấy tờ

P_NHOM VARCHAR2 (150 N Nhóm của danh mục tang


3
CHAR) vật, phương tiện, giấy tờ

P_LINH_VU VARCHAR2 (50 N Lĩnh vực của danh mục tang


4
C CHAR) vật, phương tiện, giấy tờ

P_TRANG_T NUMBER (1,0) N Trạng thái của danh mục tang


5
HAI vật, phương tiện, giấy tờ

P_SEARCH VARCHAR2(255 N Chuỗi tìm kiếm nhanh


6
CHAR)

7 P_PAGE NUMBER N Trang hiện tại

8 P_SIZE NUMBER N Dữ liệu trên một trang

V_CURSOR CURSOR X Con trỏ tham chiếu đến danh


9 sách danh mục tang vật,
phương tiện, giấy tờ tìm được

BCA-C08_XLVP_2023_DD Internal use Trang 152


Tài liệu thiết kế hệ thống V1.0

- Input:
o P_MA: Mã tang vật, phương tiện, giấy tờ
o P_TEN: Tên của danh mục tang vật, phương tiện, giấy tờ.
o P_Nhóm: Nhóm của danh mục tang vật, phương tiện, giấy tờ.
o P_LINH_VUC: Lĩnh vực của danh mục tang vật, phương tiện, giấy tờ.
o P_TRANG_THAI: Trạng thái của danh mục tang vật, phương tiện, giấy tờ.
o P_SEARCH: Tìm kiếm nhanh theo mã, tên của danh mục tang vật, phương
tiện, giấy tờ.
o P_PAGE: Trang hiện tại của danh mục tang vật, phương tiện, giấy tờ
o P_PAGE_SIZE: Số bản ghi trên một trang
- Output:
o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các danh mục
tang vật, phương tiện, giấy tờ tìm kiếm được. Các thông tin bao gồm tất cả
các trường trong bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO. Các danh mục
tang vật, phương tiện, giấy tờ được sắp xếp giảm dần theo ngày tạo.
o Kết quả trả về của thủ tục bao gồm một danh sách các tang vật, phương tiện, giấy
tờ được tìm thấy, phù hợp với các tiêu chí tìm kiếm được cung cấp. Các kết quả
được phân trang và sắp xếp giảm dần theo ngày tạo.
d.1.2.2.1.4. Xử lý ngoại lệ

Xử lý ngoại lệ được dùng chung toàn bộ dự án


d.1.2.2.2. Thêm mới tang vật, phương tiện, giấy tờ.

d.1.2.2.2.1. API

Mô tả: Gọi API để tạo mới tang vật, phương tiện, giấy tờ
Method URL
POST xlvp/api/v1/danh-muc/loai-giay-to

d.1.2.2.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 linhVuc List<String> Lĩnh vực tang vật, phương
tiện, giấy tờ:
+ Đường bộ

BCA-C08_XLVP_2023_DD Internal use Trang 153


Tài liệu thiết kế hệ thống V1.0

+ Đường sắt
+ Đường thủy
2 nhom String Nhóm tang vật, phương tiện,
giấy tờ:
+ Phương tiện
+ Giấy tờ
+ Giấy phép lái xe
+Khác
3 ten String Tên loại tang vật, phương tiện,
giấy tờ
4 trangThai Boolean Trạng thái
Các giá trị trả về:
STT Tham số Kiểu dữ Mô tả
liệu
1 ma String Mã tang vật, phương tiện, giấy tờ
2 nhom Enum Nhóm tang vật, phương tiện, giấy tờ:
+ Phương tiện
+ Giấy tờ
+ Giấy phép lái xe
+Khác
3 ten String Tên tang vật, phương tiện, giấy tờ
4 linhVuc List<Enum> Lĩnh vực tang vật, phương tiện, giấy tờ:
+ Đường bộ
+ Đường sắt
+ Đường thủy
5 trangThai Boolean Trạng thái của tang vật, phương tiện,
giấy tờ
6 nguoiTao String Người tạo
7 nguoiSua String Người sửa cuối cùng

BCA-C08_XLVP_2023_DD Internal use Trang 154


Tài liệu thiết kế hệ thống V1.0

8 ngayTao Date Ngày tạo


9 ngaySua Date Ngày sửa cuối cùng
d.1.2.2.2.3. Mô tả chi tiết

Service:
- Gọi hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.GET_BY_TEN kiểm
tra xem đã tồn tại tên tang vật, phương tiện, giấy tờ chưa?
- Gọi hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.CREATE_ITEM để
tạo mới tang vật, phương tiện, giấy tờ trong database.
Procedure:
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.CREATE_ITEM là một
thủ tục được sử dụng để tạo mới tang vật, phương tiện, giấy tờ trong database.
o Các giá trị nhập vào và trả ra gồm:

Nhập / Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]

1 P_TEN VARCHAR2 (255 N Tên của danh mục tang vật,


CHAR) phương tiện, giấy tờ

2 P_NHOM VARCHAR2 (150 N Nhóm của danh mục tang


CHAR) vật, phương tiện, giấy tờ

3 P_LINH_VU VARCHAR2 (50 N Lĩnh vực của danh mục tang


C CHAR) vật, phương tiện, giấy tờ

4 P_TRANG_T NUMBER (1,0) N Trạng thái của danh mục tang


HAI vật, phương tiện, giấy tờ

8 P_NGUOI_T VARCHAR2 (50 N Tài khoản người tạo


AO CHAR)

10 V_CURSOR CURSOR X Trả về dữ liệu danh mục tang


vật, phương tiện, giấy tờ vừa
tạo

o Hàm CREATE_ITEM() này sẽ chèn dữ liệu vào bảng


DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO với MA tự tăng, các
thông tin tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BY_MA() để
lấy thông tin bản ghi vừa được thêm và trả về.
o Input:

BCA-C08_XLVP_2023_DD Internal use Trang 155


Tài liệu thiết kế hệ thống V1.0

 P_TEN: Kiểu dữ liệu tương ứng với trường TEN trong bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO.
 P_NHOM: Kiểu dữ liệu tương ứng với trường NHOM trong bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO.
 P_LINH_VUC: Kiểu dữ liệu tương ứng với trường LINH_VUC trong bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO.
 P_TRANG_THAI: Kiểu dữ liệu tương ứng với trường TRANG_THAI
trong bảng DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO.
 P_NGUOI_TAO: Kiểu dữ liệu tương ứng với trường NGUOI_TAO trong
bảng DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO.
o Output:

 V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào
bảng DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO.
o Hàm này sẽ thêm dữ liệu vào bảng DANH_MUC_THONG_TU_NGHI_DINH với
các thông tin tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BY_MA để
lấy thông tin bản ghi vừa được thêm và trả về.
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO. GET_BY_TEN là một
thủ tục được sử dụng để lấy thông tin 1 tang vật, phương tiện, giấy tờ trong
database.
- Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
1 P_TEN VARCHAR2 N Tên tang vật, phương tiện,
giấy tờ
(255 CHAR)

6 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa lấy


ra

- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.GET_BY_TEN lấy lên 1


tang vật, phương tiện, giấy tờ có tên được truyền xuống
o Input:

 P_TEN: Kiểu dữ liệu tương ứng với trường TEN trong bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO

BCA-C08_XLVP_2023_DD Internal use Trang 156


Tài liệu thiết kế hệ thống V1.0

 V_CURSOR: Đây là một biến kiểu REF_CURSOR và là đầu ra của hàm. Nó


sẽ chứa kết quả trả về của câu lệnh SELECT trong thân của stored procedure.
o Output:
 Điều kiện để trả về kết quả là cột TEN của bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO phải bằng với giá
trị của biến P_TEN và cột IS_DELETED của bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO phải là 0.
d.1.2.2.2.4. Xử lý ngoại lệ

Bẫy lỗi ConstraintViolationException khi:


- Lĩnh vực của tang vật, phương tiện, giấy tờ để rỗng hoặc để trống hoặc cái phần tử
trong lĩnh vựa không thuộc linh vực giao thông
- Nhóm giáy tờ của tang vật, phương tiện, giấy tờ để trống hoặc rỗng hoặc không
thuộc trong nhóm giấy tờ.
- Tên của tang vật, phương tiện, giấy tờ dài qá 255 ký tự.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Khi tên của tang vật, phương tiện, giấy tờ gửi lên đã tồn tại trên hệ thống.

Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.


d.1.2.2.3. Chỉnh sửa tang vật, phương tiện, giấy tờ

d.1.2.2.3.1. API

Mô tả: Gọi API để chỉnh sửa tang vật, phương tiện, giấy tờ
Method URL
PUT xlvp/api/v1/danh-muc/loai-giay-to/{ma}

STT Tham số Kiểu dữ liệu Mô tả


1 ma String Mã tang vật, phương tiện, giấy tờ
2 linhVuc List<String> Lĩnh vực tang vật, phương tiện, giấy
tờ:
+ Đường bộ
+ Đường sắt
+ Đường thủy
3 nhom String Nhóm tang vật, phương tiện, giấy tờ:

BCA-C08_XLVP_2023_DD Internal use Trang 157


Tài liệu thiết kế hệ thống V1.0

+ Phương tiện
+ Giấy tờ
+ Giấy phép lái xe
+Khác
4 ten String Tên tang vật, phương tiện, giấy tờ
5 trangThai Boolean Trạng thái
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ma String Mã tang vật, phương tiện, giấy tờ
2 nhom Enum Nhóm tang vật, phương tiện, giấy tờ:
+ Phương tiện
+ Giấy tờ
+ Giấy phép lái xe
+Khác
3 ten String Tên tang vật, phương tiện, giấy tờ
4 linhVuc List<Enum> Lĩnh vực tang vật, phương tiện, giấy tờ:
+ Đường bộ
+ Đường sắt
+ Đường thủy
5 trangThai Boolean Trạng thái của tang vật, phương tiện,
giấy tờ
6 nguoiTao String Người tạo
7 nguoiSua String Người sửa cuối cùng
8 ngayTao Date Ngày tạo
9 ngaySua Date Ngày sửa cuối cùng
d.1.2.2.3.3. Mô tả chi tiết

Service:

BCA-C08_XLVP_2023_DD Internal use Trang 158


Tài liệu thiết kế hệ thống V1.0

- Gọi hàm IS_EXISTED_IN_BBQD trong


PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO để kiểm tra xem tang vật,
phương tiện, giấy tờ đã tồn tại trong biên bản, quyết định hay chưa?
- Gọi GET_BY_MA trong PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO để
kiếm tra xem có tồn tại tang vật, phương tiện giấy tờ trong hệ thống không?
- Nếu tồn tại thì check xem tang vật, phương tiện, giấy tờ đó có phải dữ liệu muốn
cập nhật hay không, nếu không phải trả ra lỗi.
- Gọi hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.UPDATE_ITEM xử
lý lưu xuống database.
Procedure:
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.UPDATE_ITEM là một
thủ tục được sử dụng để cập nhật tang vật, phương tiện, giấy tờ trong database.
- Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả


[N/X]

1 P_MA VARCHAR2 (50 N Mã giấy tờ


CHAR

2 P_NHOM VARCHAR2 (150 N Nhóm của danh mục tang


CHAR) vật, phương tiện, giấy tờ

3 P_LINH_VU VARCHAR2 (50 N Lĩnh vực của danh mục tang


C CHAR) vật, phương tiện, giấy tờ

4 P_TEN VARCHAR2 (255 N Tên của danh mục tang vật,


CHAR) phương tiện, giấy tờ

5 P_TRANG_T NUMBER (1,0) N Trạng thái của danh mục tang


HAI vật, phương tiện, giấy tờ

6 P_NGUOI_S VARCHAR2 (50 N Tài khoản người sửa


UA CHAR)

7 V_CURSOR CURSOR X Trả về dòng dữ thông tư danh


mục tang vật, phương tiện,
giấy tờ vừa cập nhập

 V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được chỉnh sửa

BCA-C08_XLVP_2023_DD Internal use Trang 159


Tài liệu thiết kế hệ thống V1.0

trong bảng DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO.


- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.GET_BY_MA là một thủ
tục được sử dụng để lấy thông tin tang vật, phương tiện, giấy tờ trong database.
- Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
1 P_MA VARCHAR2 N Mã tang vật, phương tiện,
giấy tờ
(50 CHAR)

2 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa lấy


ra

- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.GET_BY_MA lấy lên 1


tang vật, phương tiện, giấy tờ có mã được truyền xuống
- Input:
 P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO
 V_CURSOR: Đây là một biến kiểu REF_CURSOR và là đầu ra của hàm.
Nó sẽ chứa kết quả trả về của câu lệnh SELECT trong thân của stored
procedure.
o Output:

 Điều kiện để trả về kết quả là cột MA của bảng


DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO phải bằng với
giá trị của biến P_MA và cột IS_DELETED của bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO phải là 0.
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.IS_EXISTED_IN_BBQD
là một thủ tục được sử dụng để kiểm tra tang vật, phương tiện, giấy tờ đã tồn tại
trong biên bản, quyết định nào chưa.
- Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 160


Tài liệu thiết kế hệ thống V1.0

Nhập / Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]

3 P_CODE VARCHAR2 N Mã của danh mục tang vật,


phương tiện, giấy tờ
(255 CHAR)

4 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa


lấy ra

- Hàm IS_EXITED_IN_BBQD() được sử dụng để kiểm tra xem danh mục tang vật,
phương tiện, giấy tờ có MA bằng với P_CODE truyền vào đã tồn tại trong biên
bản, quyết định nào chưa. Kết quả trả về 1 nếu tồn tại, trả về 0 nếu không tồn tại.
- Input:
 P_CODE: Mã giấy tờ trong biên bản, quyết định có kiểu dữ liệu
VARCHAR2(255 CHAR)
o Output:

 V_CURSOR: Kết quả trả về 1 nếu tồn tại, trả về 0 nếu không tồn tại.
d.1.2.2.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã tang vật, phương tiện, giấy tờ gửi lên không tồn tại trên hệ thống

Bẫy lỗi ConstraintViolationException khi:


- Lĩnh vực của tang vật, phương tiện, giấy tờ để rỗng hoặc để trống hoặc cái phần tử
trong lĩnh vựa không thuộc linh vực giao thông
- Nhóm giáy tờ của tang vật, phương tiện, giấy tờ để trống hoặc rỗng hoặc không
thuộc trong nhóm giấy tờ.
- Tên của tang vật, phương tiện, giấy tờ dài qá 255 ký tự.
Bẫy lỗi ResourceDoesNotExistedException xảy ra khi:
- Khi tang vật, phương tiện, giấy tờ có mã gửi lên không tồn tại trong hệ thống.
Bẫy lỗi ResourceCannotDeleteException khi:
- Tang vật, phương tiện, giấy tờ đã tồn tại trong biên bản quyết định

Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.


d.1.2.2.4. Xem chi tiết tang vật, phương tiện, giấy tờ

d.1.2.2.4.1. API

Mô tả: Gọi API để lấy thông tin chi tiết tang vật, phương tiện, giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 161


Tài liệu thiết kế hệ thống V1.0

Method URL
GET xlvp/api/v1/danh-muc/loai-giay-to/{ma}

d.1.2.2.4.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã tang vật, phương tiện, giấy tờ
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ma String Mã tang vật, phương tiện, giấy tờ
2 nhom Enum Nhóm tang vật, phương tiện, giấy tờ:
+ Phương tiện
+ Giấy tờ
+ Giấy phép lái xe
+Khác
3 ten String Tên tang vật, phương tiện, giấy tờ
4 linhVuc List<Enum> Lĩnh vực tang vật, phương tiện, giấy tờ:
+ Đường bộ
+ Đường sắt
+ Đường thủy
5 trangThai Boolean Trạng thái của tang vật, phương tiện,
giấy tờ
6 nguoiTao String Người tạo
7 nguoiSua String Người sửa cuối cùng
8 ngayTao Date Ngày tạo
9 ngaySua Date Ngày sửa cuối cùng
d.1.2.2.4.3. Mô tả chi tiết

Service:

BCA-C08_XLVP_2023_DD Internal use Trang 162


Tài liệu thiết kế hệ thống V1.0

- Gọi hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.GET_ITEM_BY_MA


xử lý lấy lên tang vật, phương tiện, giấy tờ theo mã từ database
- Kiểm tra xem có dữ liệu trả về từ hàm thủ tục hay không?
Procedure:
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.GET_BY_MA là một thủ
tục được sử dụng để lấy thông tin tang vật, phương tiện, giấy tờ trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
1 P_MA VARCHAR2 N Mã tang vật, phương tiện,
giấy tờ
(50 CHAR)

6 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa lấy


ra

Method URL
GET xlvp/api/v1/danh-muc/loai-giay-to/export/excel

STT Tham số Kiểu dữ liệu Mô tả


1 ma String Mã tang vật, phương tiện, giấy
tờ
2 nhom Enum Nhóm tang vật, phương tiện,
giấy tờ:
+ Phương tiện
+ Giấy tờ
+ Giấy phép lái xe
+ Khác
3 ten String Tên tang vật, phương tiện,
giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 163


Tài liệu thiết kế hệ thống V1.0

4 trangThai Boolean Trạng thái


5 linhVuc Enum Lĩnh vực tang vật, phương
tiện, giấy tờ:
+ Đường bộ
+ Đường sắt
+ Đường thủy
6 page int Trang cần tìm (bắt đầu từ 0)
7 pageSize int Số bản ghi trên một trang
8 timKiemNhanh String Từ khóa tìm kiếm nhanh
9 isFetchAll Boolean Lấy tất cả bản ghi
Các giá trị trả về là:
Kết quả trả về là file Excel dạng byte[]
d.1.2.2.5.3. Mô tả chi tiết

Service:
- Gọi hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.SEARCH xử lý lấy
danh sách tang vật, phương tiện, giấy tờ từ database
- Xử lý trả ra file Excel dạng byte[]
Procedure:
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.SEARCH là một thủ tục
được sử dụng để lấy thông tin tang vật, phương tiện, giấy tờ trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập / Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]
1 P_MA VARCHAR2 N Mã danh mục tang vật,
(50 CHAR) phương tiện, giấy tờ
2 P_TEN VARCHAR2 N Tên của danh mục tang
(255 CHAR) vật, phương tiện, giấy tờ
3 P_NHOM VARCHAR2 N Nhóm của danh mục tang
(150 CHAR) vật, phương tiện, giấy tờ
4 P_LINH_VU VARCHAR2 N Lĩnh vực của danh mục

BCA-C08_XLVP_2023_DD Internal use Trang 164


Tài liệu thiết kế hệ thống V1.0

C tang vật, phương tiện, giấy


(50 CHAR)
tờ
5 P_TRANG_ N Trạng thái của danh mục
THAI NUMBER (1,0) tang vật, phương tiện, giấy
tờ
6 P_SEARCH VARCHAR2(25 N Chuỗi tìm kiếm nhanh
5 CHAR)
7 P_PAGE NUMBER N Trang hiện tại
8 P_SIZE NUMBER N Dữ liệu trên một trang
9 V_CURSOR X Con trỏ tham chiếu đến
danh sách danh mục tang
CURSOR
vật, phương tiện, giấy tờ
tìm được
Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.SEARCH là một thủ tục được sử
dụng để tìm kiếm các tang vật, phương tiện, giấy tờ dựa trên các tiêu chí khác nhau.
Input:
o P_MA: Mã tang vật, phương tiện, giấy tờ
o P_TEN: Tên của danh mục tang vật, phương tiện, giấy tờ.
o P_Nhóm: Nhóm của danh mục tang vật, phương tiện, giấy tờ.
o P_LINH_VUC: Lĩnh vực của danh mục tang vật, phương tiện, giấy tờ.
o P_TRANG_THAI: Trạng thái của danh mục tang vật, phương tiện, giấy tờ.
o P_SEARCH: Tìm kiếm nhanh theo mã, tên của danh mục tang vật, phương
tiện, giấy tờ.
o P_PAGE: Trang hiện tại của danh mục tang vật, phương tiện, giấy tờ
o P_PAGE_SIZE: Số bản ghi trên một trang

Output:
o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các danh mục
tang vật, phương tiện, giấy tờ tìm kiếm được. Các thông tin bao gồm tất cả
các trường trong bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO. Các danh mục
tang vật, phương tiện, giấy tờ được sắp xếp giảm dần theo ngày tạo.

BCA-C08_XLVP_2023_DD Internal use Trang 165


Tài liệu thiết kế hệ thống V1.0

Kết quả trả về của thủ tục bao gồm một danh sách các tang vật, phương tiện, giấy tờ được
tìm thấy, phù hợp với các tiêu chí tìm kiếm được cung cấp. Các kết quả được phân trang
và sắp xếp giảm dần theo ngày tạo.
d.1.2.2.5.4. Xử lý ngoại lệ

Các xử lý ngoại lệ được dùng chung toàn bộ dự án.


d.1.2.2.6. Xóa tang vật, phương tiện, giấy tờ

d.1.2.2.6.1. API

Mô tả: Gọi API để xóa tang vật, phương tiện, giấy tờ


Method URL
DELETE xlvp/api/v1/danh-muc/loai-giay-to/{ma}

d.1.2.2.6.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã tang vật, phương tiện, giấy tờ
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 result Boolean Kết quả xóa tang vật, phương tiện, giấy tờ:
+ true : thành công
+ false : không thành công
d.1.2.2.6.3. Mô tả chi tiết

Service:
- Gọi hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.GET_BY_MA để
kiểm tra có tồn tại tang vật, phương tiện, giấy tờ hay không?
- Gọi hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.DELETE_ITEM xử lý
xóa tang vật, phương tiện, giấy tờ ở database.
Procedure:
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.DELETE_ITEM là một
thủ tục được sử dụng để cập nhật tang vật, phương tiện, giấy tờ trong database là
đã xóa.
o Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 166


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả


[N/X]
1 P_MA VARCHAR2 N Mã danh mục tang vật,
(50 CHAR) phương tiện, giấy tờ
2 P_NGUOI_S VARCHAR2(50 N Thông tin người sửa
UA CHAR)
o Hàm DELETE_ITEM được sử dụng để cập nhật thông tin của một tang vật,
phương tiện, giấy tờ đã có trong cơ sở dữ liệu.
o Input:
 P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO.
 P_NGUOI_SUA: Kiểu dữ liệu tương ứng với trường NGUOI_SUA trong
bảng DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO
- Output:
 V_CURSOR: Con trỏ tham chiếu tang vật, phương tiện, giấy tờ vừa xóa.
- Hàm này sẽ cập nhật dữ liệu IS_DELETED = 1 trong bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO với thông tin mã mục
tang vật, phương tiện, giấy tờ được truyền vào.
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.GET_BY_MA là một thủ
tục được sử dụng để lấy thông tin 1 tang vật, phương tiện, giấy tờ trong database.
- Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập/ Mô tả
Xuất
(N/X)
1 P_MA VARCHAR2 N Mã tang vật, phương tiện,
giấy tờ
(50 CHAR)

2 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa lấy


ra

- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.GET_BY_MA lấy lên 1


tang vật, phương tiện, giấy tờ có mã được truyền xuống
o Input:

 P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng


DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO

BCA-C08_XLVP_2023_DD Internal use Trang 167


Tài liệu thiết kế hệ thống V1.0

 V_CURSOR: Đây là một biến kiểu REF_CURSOR và là đầu ra của hàm. Nó


sẽ chứa kết quả trả về của câu lệnh SELECT trong thân của stored procedure.
o Output:
 Điều kiện để trả về kết quả là cột MA của bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO phải bằng với giá
trị của biến P_MA và cột IS_DELETED của bảng
DANH_MUC_TANG_VAT_PHUONG_TIEN_GIAY_TO phải là 0.
- Hàm PKG_TANG_VAT_PHUONG_TIEN_GIAY_TO.IS_EXISTED_IN_BBQD
là một thủ tục được sử dụng để kiểm tra tang vật, phương tiện, giấy tờ đã tồn tại
trong biên bản, quyết định nào chưa.
- Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]

1 P_CODE VARCHAR2 N Mã của danh mục tang vật,


phương tiện, giấy tờ
(255 CHAR)

2 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa


lấy ra

d.2.2. Chi tiết từng mục

BCA-C08_XLVP_2023_DD Internal use Trang 168


Tài liệu thiết kế hệ thống V1.0

d.2.2.1. Thiết kế dữ liệu

d.2.2.1.1. Mô hình quan hệ dữ liệu

d.2.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 DANH_MUC_HANH_VI_VI_PHAM Bảng lưu trữ danh mục Hành vi vi
phạm

BCA-C08_XLVP_2023_DD Internal use Trang 169


Tài liệu thiết kế hệ thống V1.0

d.2.2.1.3. Chi tiết các bảng

d.2.2.1.3.1. Bảng DANH_MUC_HANH_VI_VI_PHAM

Bắt
Tên Kiểu P/F
buộc Mặc định Mô tả
trường dữ liệu Key
?
P "C08_XLVP_DEVE ID của danh mục hành
LOP"."SEQ_DANH_ vi vi phạm
NUMB
ID X MUC_HANH_VI_VI
ER
_PHAM_ID"."NEXT
VAL"
VARC Ký hiệu của danh mục
KY_HIE
HAR2( thông tư nghị định
U_TT_N
20
D
CHAR)
MA_VA VARC F Mã văn bản pháp luật
N_BAN_ HAR2( của danh mục văn bản
PHAP_L 20 pháp luật
UAT CHAR)
VARC Mã hành vi vi phạm
HAR2(
MA
20
CHAR)
VARC Nội dung hành vi vi
NOI_DU HAR2( phạm
NG 1000
CHAR)
MA_NH Mã nhóm hành vi vi
VARC
OM_HA phạm
HAR2(
NH_VI_
20
VI_PHA
CHAR)
M
SO_TIE Số tiền phạt cá nhân nhỏ
NUMB
N_PHAT nhất
ER
_CA_NH

BCA-C08_XLVP_2023_DD Internal use Trang 170


Tài liệu thiết kế hệ thống V1.0

AN_NH
O_NHAT
SO_TIE Số tiền phạt cá nhận lớn
N_PHAT nhất
NUMB
_CA_NH
ER
AN_LON
_NHAT
SO_TIE Số tiền phạt cá nhân
N_PHAT mặc định
NUMB
_CA_NH
ER
AN_MA
C_DINH
SO_TIE Số tiền phạt tổ chức nhỏ
N_PHAT nhất
NUMB
_TO_CH
ER
UC_NH
O_NHAT
SO_TIE Số tiền phạt tổ chức lớn
N_PHAT nhất
NUMB
_TO_CH
ER
UC_LON
_NHAT
SO_TIE Số tiền phạt tổ chức
N_PHAT mặc định
NUMB
_TO_CH
ER
UC_MA
C_DINH
VARC Người sửa
NGUOI_ HAR2(
SUA 255
CHAR)
VARC Người tạo
NGUOI_
HAR2(
TAO
255

BCA-C08_XLVP_2023_DD Internal use Trang 171


Tài liệu thiết kế hệ thống V1.0

CHAR)
NGAY_T CURRENT_DATE Ngày tạo
DATE
AO
NGAY_S CURRENT_DATE Ngày sửa
DATE
UA
IS_DELE NUMB 0 Trạng thái xóa
TED ER(1,0)
a) Các ràng buộc
Tên Nội dung
Đảm bảo rằng giá trị trong cột “ID”
PK_DANH_MUC_HANH_VI_VI_PHAM
là duy nhất và không rỗng
Đảm bảo rằng giá trị trong cột
"MA_VAN_BAN_PHAP_LUAT" là
FK_MA_VAN_BAN_PHAP_LUAT khóa ngoại của bảng
"DANH_MUC_VAN_BAN_PHAP_
LUAT" trên cột "MA"
Đảm bảo rằng giá trị mặc định cho
DF_DANH_MUC_HANH_VI_VI_PHAM_NG
cột "NGAY_TAO" là ngày hiện tại
AY_TAO
khi một bản ghi mới được chèn
b) Index
NA
c) Trigger
NA
d) Packages
Tên package: PKG_DANH_MUC_HANH_VI_VI_PHAM

BCA-C08_XLVP_2023_DD Internal use Trang 172


Tài liệu thiết kế hệ thống V1.0

d.1.2.1. Thiết kế màn hình

d.1.2.1.1. Xem danh sách, tìm kiếm danh mục hành vi vi phạm

d.1.2.1.1.1. Giao diện

Hình 24 Thông tin danh sách danh mục Hành vi vi phạm


d.1.2.1.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Bắt
Tên thành phần /
STT Tên label buộc Định dạng Mô tả
Control
?
Form tìm kiếm/lọc dữ liệu danh mục
1 Tìm kiếm timKiemNhanh - TEXTBOX Nhập mã tham chiếu
nhanh VBPL, mã hành vi vi
phạm, nhóm hành vi
vi phạm, nội dung
hvvp
2 TT-NĐ maThongTuNghi - DROPDO Chọn TT-ND
Dinh WNLIST
3 Mã tham maVbpl - DROPDO Chọn mã tham chiếu
chiếu VBPL WNLIST VBPL
4 Mã HVVP maHvvp - TEXTBOX Nhập mã HVVP
5 Nội dung noiDungHvvp - TEXTBOX Nhập nội dung HVVP
HVVP

BCA-C08_XLVP_2023_DD Internal use Trang 173


Tài liệu thiết kế hệ thống V1.0

6 Nhóm maNhomHvvp - DROPDO Chọn nhóm HVVP


HVVP WNLIST
Danh sách dữ liệu danh mục
7 Mã HVVP maHvvp TEXTBOX Hiển thị mã hành vi vi
-
phạm
8 Nội dung noiDungHvvp TEXTBOX Hiển thị nội dung
-
HVVP hành vi vi phạm
9 Mã tham maVbpl TEXTBOX Hiển thị trạng thái
-
chiếu VBPL hành vi vi phạm
10 Ngày sửa ngaySua DATEPIC Hiển thị ngày sửa
-
gần nhất KER hành vi vi phạm
11 Cán bộ sửa nguoiSua DATEPIC Hiển thị ngày sửa
-
gần nhất KER hành vi vi phạm
12 Nhóm maNhomHvvp - TEXTBOX Hiển thị mã nhóm
HVVP hành vi vi phạm
13 Số tiền nhỏ soTienPhatCaNha - TEXTBOX Hiển thị số tiền phạt
nhất cá nhân nNhoNhat nhỏ nhất với cá nhân
14 Số tiền lớn soTienPhatCaNha - TEXTBOX Hiển thị số tiền phạt
nhất cá nhân nLonNhat lớn nhất với cá nhân
15 Số tiền mặc soTienPhatCaNha - TEXTBOX Hiển thị số tiền phạt
định cá nhân nMacDinh mặc định với cá nhân
16 Số tiền lớn soTienPhatToChu - TEXTBOX Hiển thị số tiền phạt
nhất tổ chức cLonNhat lớn nhất với tổ chức
17 Số tiền nhỏ soTienPhatToChu - TEXTBOX Hiển thị số tiền phạt
nhất tổ chức cNhoNhat nhỏ nhất với tổ chức
18 Số tiền mặc soTienPhatToChu - TEXTBOX Hiển thị số tiền phạt
định tổ chức cMacDinh mặc định với tổ chức
19 Ngày hiệu ngayHieuLuc - DATEPIC Hiển thị ngày hvvp có
lực KER hiệu lực

BCA-C08_XLVP_2023_DD Internal use Trang 174


Tài liệu thiết kế hệ thống Vx.x

d.1.2.1.1.3. Xử lý sự kiện

Mô tả các sự kiện xử lý đối với màn hình chức năng này, các thông tin được trình
bày trong bảng như sau:
STT Sự kiện Quy trình
1 Page_Load Chọn menu Danh mục/Hành vi vi phạm →
Xem thông tin danh sách danh mục hành vi
vi phạm.
2 BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ
liệu danh mục → Click Tìm kiếm.
Hệ thống tìm kiếm danh mục theo thông
tin vừa nhập → Màn hình hiển thị danh
sách danh mục thỏa mãn bộ lọc.
3 BtnReset_Click Click nút Thiết lập lại.
Form tìm kiếm/lọc dữ liệu danh mục xóa
các thông tin đã nhập và hoàn tác về trạng
thái mặc định ban đầu.
4 BtnCollapse/BtnExtend_Click Click nút Thu hẹp/Mở rộng.
Thu hẹp/Mở rộng Form tìm kiếm/lọc dữ
liệu danh mục.
5 BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới
danh mục hành vi vi phạm.
6 BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi
trong danh sách.
Màn hình chuyển đến trang Chỉnh sửa
danh mục hành vi vi phạm tương ứng với
bản ghi (Giao diện II.3.3).
7 BtnView_Click Click nút Xem chi tiết ở cuối mỗi bản ghi
trong danh sách.
Màn hình chuyển đến trang Xem chi tiết
danh mục hành vi vi phạm tương ứng với

QT.PB06.01_BM.02 Internal use Trang 175


Tài liệu thiết kế hệ thống V1.0

bản ghi (Giao diện II.3.4).


8 BtnDelete_Click Click nút Xóa ở cuối mỗi bản ghi trong
danh sách → Chọn Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn
hình reload và cập nhật lại danh sách danh
mục.
d.1.2.1.1.4. Các ràng buộc

Tên Điều kiện


Nội dung HVVP Nhập tối đa 255 ký tự
d.1.2.1.2. Thêm mới danh mục hành vi vi phạm

d.1.2.1.2.1. Giao diện

Hình 25: Thêm mới danh mục Hành vi vi phạm


d.1.2.1.2.2. Danh sách control/thành phần giao diện

Form thêm mới dữ liệu danh mục HVVP:

Tên thành Bắt


STT Tên label phần / buộc Định dạng Mô tả
Control ?

BCA-C08_XLVP_2023_DD Internal use Trang 176


Tài liệu thiết kế hệ thống V1.0

Thông tin chung


1 TT-NĐ maThongTu X DROPDOWN Chọn TT-ND
NghiDinh LIST
2 Mã tham maVbpl X DROPDOWN Chọn mã tham chiếu
chiếu VBPL LIST VBPL
Được chọn khi đã có
maThongTuNghiDinh.
3 Nội dung noiDungVb - TEXTBOX Hiển thị nội dung
VBPL pl VBPL theo mã VBPL
được chọn
4 Nhóm HVVP maNhomHv X DROPDOWN Chọn nhóm HVVP
vp LIST
5 Mã HVVP maHvvp - TEXTBOX Hiển thị mã HVVP

6 Nội dung noiDungHv - TEXTBOX Nhập nội dung HVVP


HVVP vp
7 Ngày hiệu lực ngayHieuLu - DATEPICKER Hiển thị ngày hiệu lực
c tương ứng với mã
VBPL được chọn
8 Ngày hết hiệu ngayHetHie - DATEPICKER Hiển thị ngày hết hiệu
lực uLuc lực tương ứng với mã
VBPL được chọn

Cá nhân
9 Số tiền nhỏ soTienPhatC - TEXTBOX Nhập số tiền phạt nhỏ
nhất cá nhân aNhanNhoN nhất với cá nhân
hat
10 Số tiền lớn soTienPhatC - TEXTBOX Nhập số tiền phạt lớn
nhất cá nhân aNhanLonN nhất với cá nhân
hat
11 Số tiền mặc soTienPhat - TEXTBOX Nhập số tiền phạt mặc
định cá nhân MacDinh định với cá nhân
Tổ chức

BCA-C08_XLVP_2023_DD Internal use Trang 177


Tài liệu thiết kế hệ thống V1.0

12 Số tiền nhỏ soTienPhatT - TEXTBOX Nhập số tiền phạt nhỏ


nhất tổ chức oChucNhoN nhất với tổ chức
hat
13 Số tiền lớn soTienPhatT - TEXTBOX Nhập số tiền phạt lớn
nhất tổ chức oChucLonN nhất với tổ chức
hat
14 Số tiền mặc soTienPhat - TEXTBOX Nhập số tiền phạt mặc
định tổ chức MacDinh định với tổ chức
d.1.2.1.2.3. Xử lý sự kiện

Mô tả các sự kiện xử lý đối với màn hình chức năng này, các thông tin được trình
bày trong bảng như sau:
STT Sự kiện Quy trình
1 Page_Load Click nút Thêm mới tại màn hình danh sách
Danh mục hành vi vi phạm → Màn hình
chuyển đến màn Thêm mới
2 BtnSave_Click Nhập thông tin trong Form thêm mới dữ
liệu danh mục → Click Lưu.
Hệ thống check ràng buộc của các trường
dữ liệu nếu thỏa mãn → lưu danh mục theo
thông tin vừa nhập → Màn hình chuyển
đến màn xem chi tiết danh mục vừa thêm
mới.
3 BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường
dữ liệu nếu thỏa mãn → lưu danh mục theo
thông tin vừa nhập → Màn hình chuyển
đến màn xem danh sách danh mục.
d.1.2.1.2.4. Các ràng buộc

STT Tên Điều kiện


1 TT-NĐ Bắt buộc chọn

BCA-C08_XLVP_2023_DD Internal use Trang 178


Tài liệu thiết kế hệ thống V1.0

2 Mã tham chiếu VBPL Disable khi chưa chọn TT-NĐ, bắt buộc
chọn
3 Nội dung VBPL Không được nhập
4 Nhóm HVVP
5 Mã HVVP Không được nhập
6 Nội dung HVVP Bắt buộc nhập, nhập tối đa 255 ký tự
7 Ngày hiệu lực Không được nhập
8 Ngày hết hiệu lực Không được nhập
9 Số tiền nhỏ nhất cá nhân Chỉ nhập số lớn hơn 0, nhập tối đa 11 ký tự,
bắt buộc nhập nếu không nhập Số tiền nhỏ nhất /
Số tiền lớn nhất của Tổ chức

10 Số tiền lớn nhất cá nhân Chỉ nhập số lớn hơn 0, nhập tối đa 11 ký tự,
bắt buộc nhập nếu không nhập Số tiền nhỏ nhất/
Số tiền lớn nhất của Tổ chức

11 Số tiền mặc định cá nhân Được tính bằng trung bình cộng Số tiền nhỏ nhất
và Số tiền lớn nhất (cá nhân), không được nhập

12 Số tiền nhỏ nhất tổ chức Chỉ nhập số lớn hơn 0, nhập tối đa 11 ký tự,
bắt buộc nhập nếu không nhập Số tiền nhỏ nhất/
Số tiền lớn nhất của Cá nhân

13 Số tiền lớn nhất tổ chức Chỉ nhập số lớn hơn 0, nhập tối đa 11 ký tự,
bắt buộc nhập nếu không nhập Số tiền nhỏ
nhất / Số tiền lớn nhất của Cá nhân

14 Số tiền mặc định tổ chức Được tính bằng trung bình cộng Số tiền nhỏ nhất
và Số tiền lớn nhất (tổ chức), không được nhập

BCA-C08_XLVP_2023_DD Internal use Trang 179


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.3. Chỉnh sửa danh mục hành vi vi phạm

d.1.2.1.3.1. Giao diện

Hình 26: Chỉnh sửa danh mục Hành vi vi phạm


d.1.2.1.3.2. Danh sách control/thành phần giao diện

STT Tên label Tên thành Bắt Định dạng Mô tả


phần / buộc
Control ?

Thông tin chung


1 TT-NĐ maThongTu X DROPDOWN Chọn TT-ND
NghiDinh LIST
2 Mã tham maVbpl X DROPDOWN Chọn mã tham chiếu
chiếu VBPL LIST VBPL
Được chọn khi đã có
maThongTuNghiDinh.
3 Nội dung noiDungVb - TEXTBOX Hiển thị nội dung
VBPL pl VBPL theo mã VBPL
được chọn
4 Nhóm HVVP maNhomHv X DROPDOWN Chọn nhóm HVVP
vp LIST
5 Mã HVVP maHvvp - TEXTBOX Hiển thị mã HVVP

BCA-C08_XLVP_2023_DD Internal use Trang 180


Tài liệu thiết kế hệ thống V1.0

6 Nội dung noiDungHv - TEXTBOX Nhập nội dung HVVP


HVVP vp
7 Ngày hiệu lực ngayHieuLu - DATEPICKER Hiển thị ngày hiệu lực
c tương ứng với mã
VBPL được chọn
8 Ngày hết hiệu ngayHetHie - DATEPICKER Hiển thị ngày hết hiệu
lực uLuc lực tương ứng với mã
VBPL được chọn

Cá nhân
9
10 Số tiền nhỏ soTienPhatC - TEXTBOX Nhập số tiền phạt nhỏ
nhất cá nhân aNhanNhoN nhất với cá nhân
hat
11 Số tiền lớn soTienPhatC - TEXTBOX Nhập số tiền phạt lớn
nhất cá nhân aNhanLonN nhất với cá nhân
hat
12 Số tiền mặc soTienPhat - TEXTBOX Nhập số tiền phạt mặc
định cá nhân MacDinh định với cá nhân
Tổ chức
13 Số tiền nhỏ soTienPhatT - TEXTBOX Nhập số tiền phạt nhỏ
nhất tổ chức oChucNhoN nhất với tổ chức
hat
14 Số tiền lớn soTienPhatT - TEXTBOX Nhập số tiền phạt lớn
nhất tổ chức oChucLonN nhất với tổ chức
hat
15 Số tiền mặc soTienPhat - TEXTBOX Nhập số tiền phạt mặc
định tổ chức MacDinh định với tổ chức
d.1.2.1.3.3. Xử lý sự kiện

Mô tả các sự kiện xử lý đối với màn hình chức năng này, các thông tin được trình
bày trong bảng như sau:
STT Sự kiện Quy trình

BCA-C08_XLVP_2023_DD Internal use Trang 181


Tài liệu thiết kế hệ thống V1.0

1 Page_Load Cách 1: Click nút Chỉnh sửa ở cuối mỗi bản ghi tại
màn hình danh sách Danh mục hành vi vi phạm →
Màn hình chuyển đến màn Chỉnh sửa.
Cách 2: Click nút Chỉnh sửa tại màn hình chi tiết Danh
mục hành vi vi phạm → Màn hình chuyển đến màn
Chỉnh sửa.
2 BtnSave_Click Nhập thông tin trong Form chỉnh sửa dữ liệu danh
mục → Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
chỉnh sửa.
3 BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục.
d.1.2.1.3.4. Các ràng buộc

STT Tên Điều kiện


1 TT-NĐ Bắt buộc chọn
2 Mã tham chiếu VBPL Disable khi chưa chọn TT-NĐ, bắt buộc
chọn
3 Nội dung VBPL Không được nhập
4 Nhóm HVVP
5 Mã HVVP Không được nhập
6 Nội dung HVVP Bắt buộc nhập, nhập tối đa 255 ký tự
7 Ngày hiệu lực Không được nhập
8 Ngày hết hiệu lực Không được nhập
9 Số tiền nhỏ nhất cá nhân Chỉ nhập số lớn hơn 0, nhập tối đa 11 ký tự,
bắt buộc nhập nếu không nhập Số tiền nhỏ nhất /
Số tiền lớn nhất của Tổ chức

10 Số tiền lớn nhất cá nhân Chỉ nhập số lớn hơn 0, nhập tối đa 11 ký tự,

BCA-C08_XLVP_2023_DD Internal use Trang 182


Tài liệu thiết kế hệ thống V1.0

bắt buộc nhập nếu không nhập Số tiền nhỏ nhất/


Số tiền lớn nhất của Tổ chức

11 Số tiền mặc định cá nhân Được tính bằng trung bình cộng Số tiền nhỏ nhất
và Số tiền lớn nhất (cá nhân), không được nhập

12 Số tiền nhỏ nhất tổ chức Chỉ nhập số lớn hơn 0, nhập tối đa 11 ký tự,
bắt buộc nhập nếu không nhập Số tiền nhỏ nhất/
Số tiền lớn nhất của Cá nhân

13 Số tiền lớn nhất tổ chức Chỉ nhập số lớn hơn 0, nhập tối đa 11 ký tự,
bắt buộc nhập nếu không nhập Số tiền nhỏ
nhất / Số tiền lớn nhất của Cá nhân

14 Số tiền mặc định tổ chức Được tính bằng trung bình cộng Số tiền nhỏ nhất
và Số tiền lớn nhất (tổ chức), không được nhập

d.1.2.1.4. Xem chi tiết danh mục hành vi vi phạm

d.1.2.1.4.1. Giao diện

Hình 27: Xem chi tiết danh mục Hành vi vi phạm

d.1.2.1.4.2. Danh sách control/thành phần giao diện (*)

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới
đây:

STT Tên label Tên thành Bắt Định Mô tả


phần / buộc? dạng

BCA-C08_XLVP_2023_DD Internal use Trang 183


Tài liệu thiết kế hệ thống V1.0

Control
Thông tin chung
1 TT-NĐ maThongTuN X DROP Hiển thị TT-ND
ghiDinh DOW
NLIST
2 Mã tham maVbpl X DROP Hiển mã tham chiếu VBPL
chiếu DOW
VBPL NLIST
3 Nội dung noiDungVbpl - TEXT Hiển thị nội dung VBPL theo
VBPL BOX mã VBPL được chọn
4 Nhóm maNhomHvvp - DROP Hiển thị nhóm HVVP
HVVP DOW
NLIST
5 Mã HVVP maHvvp - TEXT Hiển thị mã HVVP
BOX
6 Nội dung noiDungHvvp - TEXT Hiển thị nội dung HVVP
HVVP BOX
7 Ngày hiệu ngayHieuLuc - DATE Hiển thị ngày hiệu lực tương
lực PICKE ứng với mã VBPL được chọn
R
8 Ngày hết ngayHetHieuL - DATE Hiển thị ngày hết hiệu lực
hiệu lực uc PICKE tương ứng với mã VBPL được
R chọn
Cá nhân
9 Số tiền soTienPhatCa - TEXT Hiển thị số tiền phạt nhỏ nhất
nhỏ nhất NhanNhoNhat BOX với cá nhân
cá nhân
10 Số tiền lớn soTienPhatCa - TEXT Hiển thị số tiền phạt lớn nhất
nhất cá NhanLonNhat BOX với cá nhân
nhân
11 Số tiền soTienPhatMa - TEXT Hiển thị số tiền phạt mặc định
mặc định cDinh BOX với cá nhân

BCA-C08_XLVP_2023_DD Internal use Trang 184


Tài liệu thiết kế hệ thống V1.0

cá nhân
Tổ chức
12 Số tiền soTienPhatTo - TEXT Hiển thị số tiền phạt nhỏ nhất
nhỏ nhất ChucNhoNhat BOX với tổ chức
tổ chức
13 Số tiền lớn soTienPhatTo - TEXT Hiển thị số tiền phạt lớn nhất
nhất tổ ChucLonNhat BOX với tổ chức
chức
14 Số tiền soTienPhatMa - TEXT Hiển thị số tiền phạt mặc định
mặc định cDinh BOX với tổ chức
tổ chức
d.1.2.1.4.3. Xử lý sự kiện

Mô tả các sự kiện xử lý đối với màn hình chức năng này, các thông tin được trình
bày trong bảng như sau:
STT Sự kiện Quy trình
1 Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục hành vi vi phạm → Màn hình
chuyển đến màn Xem chi tiết.
2 BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh
sách danh mục.
d.1.2.2. Thiết kế các hàm, thủ tục

d.1.2.2.1. Tìm kiếm danh sách hành vi vi phạm

d.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách hành vi vi phạm theo nhiều tiêu chí tìm kiếm
Method URL
GET xlvp/api/v1/danh-muc/hanh-vi-vi-pham?

d.1.2.2.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maVanBanPhapLu String Mã văn bản pháp luật

BCA-C08_XLVP_2023_DD Internal use Trang 185


Tài liệu thiết kế hệ thống V1.0

at
2 ma String Mã hành vi vi phạm
trangThai Boolean Trạng thái của hành vi vi
phạm
3
+ true : kích hoạt
+ false : không kích hoạt
page Number Trang cần tìm kiếm ( bắt đầu
4
từ 0)
5 pageSize Number Số bản ghi cần lấy trên 1 trang
isFetchAll Boolean Lấy tất cả các bản ghi hành vi
6
vi phạm
7 timKiemNhanh String Tìm kiếm nhanh
kyHieuThongTuNg String Ký hiệu thông tư nghị định
8
hiDinh
maNhomHanhViVi String Mã nhóm hành vi vi phạm
9
Pham
10 noiDung String Nội dung
11 ngayHieuLuc Date Ngày hiệu lực
12 linhVuc String Lĩnh vực
Các tham số trả về là:
Tham số Kiểu dữ Mô tả
STT
liệu
maVanBanPhap String Mã văn bản pháp luật
1
Luat
2 ma String Mã hành vi vi phạm
maNhomHanhV String Mã nhóm hành vi vi phạm
3
iViPham
noiDungHanhVi String Nội dung hành vi vi phạm
4
ViPham
5 soTienPhatCaN String Số tiền phạt cá nhân mặc định

BCA-C08_XLVP_2023_DD Internal use Trang 186


Tài liệu thiết kế hệ thống V1.0

hanMacDinh
soTienPhatCaN String Số tiền phạt cá nhân lớn nhất
6
hanLonNhat
soTienPhatCaN String Số tiền phạt cá nhân nhỏ nhất
7
hanNhoNhat
soTienPhatToCh String Số tiền phạt tổ chức mặc định
8
ucMacDinh
soTienPhatToCh String Số tiền phạt tổ chức lớn nhất
9
ucLonNhat
soTienPhatToCh String Số tiền phạt tổ chức nhỏ nhất
10
ucNhoNhat
11 nguoiSua String Người sửa
12 ngaySua Date Ngày sửa
vanBanPhapLua Object Đối tượng văn bản pháp luật
13
t
kyHieuThongTu String Ký hiệu thông tư nghị định
14
NghiDinh
15 dieu String Điều
16 khoan String Khoản
17 diem String Điểm
18 total Integer Tổng số lượng bản ghi
II.1.2.3.1.2. Mô tả chi tiết
Services:
- Gọi hàm search xử lý lấy danh sách hành vi vi phạm từ database
- Hàm search được sử dụng để tìm kiếm danh sách đối tượng HanhViViPham từ cơ
sở dữ liệu theo các tiêu chí được cung cấp trong đối tượng
HanhViViPhamSearchDto.
- Nó trả về một đối tượng PaginationResponseDto chứa danh sách các đối tượng
HanhViViPhamDto.
- Cách hoạt động:

BCA-C08_XLVP_2023_DD Internal use Trang 187


Tài liệu thiết kế hệ thống V1.0

o Kiểm tra xem ngày hiệu lực trong searchRequest có hợp lệ hay không. Nếu
không hợp lệ, ném ra ngoại lệ CustomerException.
o Thiết lập trường linhVuc trong searchRequest.
o Gọi phương thức search của repository để tìm kiếm các đối tượng
HanhViViPham dựa trên các tiêu chí trong searchRequest. Kết quả được trả
về dưới dạng một đối tượng PaginationResponseDto chứa danh sách các
đối tượng HanhViViPhamEntity.
o Chuyển đổi danh sách các đối tượng HanhViViPhamEntity thành danh sách
các đối tượng HanhViViPhamDto bằng cách sử dụng phương thức toDto
của HanhViViPhamMapper.
o Thiết lập trường total và items của đối tượng PaginationResponseDto và trả
về nó
Procedure:
PKG_DANH_MUC_HANH_VI_VI_PHAM. SEARCH là một thủ tục được sử dụng
để tìm kiếm các Hành vi vi phạm dựa trên các tiêu chí khác nhau.
Các giá trị nhập vào và trả ra gồm:
Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
1 P_SEARCH VARCHAR2 N Tìm kiếm nhanh
2 P_KY_HIEU_TT_N VARCHAR2 N Ký hiệu thông tư nghị đinh
D
3 P_MA_VAN_BAN_ VARCHAR2 N Mã văn bản pháp luật
PHAP_LUAT
4 P_MA VARCHAR2 N Mã hành vi vi phạm
5 P_MA_NHOM_HA VARCHAR2 N Mã nhóm hành vi vi phạm
NH_VI_VI_PHAM
6 P_NOI_DUNG VARCHAR2 N Nội dung
7 P_NGAY_HIEU_L VARCHAR2 N Ngày hiệu lực
UC
8 P_LINH_VUC VARCHAR2 N Lĩnh vực
9 P_PAGE NUMBER N Page

BCA-C08_XLVP_2023_DD Internal use Trang 188


Tài liệu thiết kế hệ thống V1.0

10 P_SIZE NUMBER N Size


11 V_CURSOR CURSOR X REF_CURSOR

- Hàm SEARCH là một thủ tục được sử dụng để tìm kiếm các hành vi vi phạm pháp
luật dựa trên các tiêu chí khác nhau.
- Đầu vào:
o P_SEARCH: chuỗi tìm kiếm nhanh
o P_KY_HIEU_TT_ND: ký hiệu thông tư/nghị định liên quan đến hành vi vi
phạm
o P_MA_VAN_BAN_PHAP_LUAT: mã văn bản pháp luật liên quan đến
hành vi vi phạm
o P_MA: mã của hành vi vi phạm
o P_MA_NHOM_HANH_VI_VI_PHAM: mã nhóm hành vi vi phạm
o P_NOI_DUNG: nội dung của hành vi vi phạm
o P_NGAY_HIEU_LUC: ngày có hiệu lực của văn bản pháp luật
o P_LINH_VUC: lĩnh vực của văn bản pháp luật
- Đầu ra:
o V_CURSOR: con trỏ tham chiếu đến kết quả tìm kiếm

Kết quả trả về của thủ tục bao gồm một danh sách các hành vi vi phạm pháp luật
được tìm thấy, phù hợp với các tiêu chí tìm kiếm được cung cấp. Các kết quả được phân
trang và sắp xếp theo ngày tạo và mã hành vi vi phạm
II.1.2.3.1.3. Xử lý ngoại lệ
- CustomerException khi ngày hiệu lực không hợp lệ
d.1.2.2.2. Thêm mới hành vi vi phạm

d.1.2.2.2.1. API

Mô tả: Gọi API để thêm mới thông tin hành vi vi phạm


Method URL
POST xlvp/api/v1/danh-muc/hanh-vi-vi-pham

d.1.2.2.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã văn bản pháp luật

BCA-C08_XLVP_2023_DD Internal use Trang 189


Tài liệu thiết kế hệ thống V1.0

2 kyHieuThongTuNg String Ký hiệu thông tư nghị định


hiDinh
3 maVanBanPhapLu String Mã văn bản pháp luật
at
4 maNhomHanhViVi String Mã nhóm hành vi vi phạm
Pham
5 noiDung String Nội dung hành vi vi phạm
6 soTienPhatCaNhan Number Số tiền phạt cá nhân nhỏ nhất
NhoNhat
7 soTienPhatCaNhan Number Số tiền phạt cá nhân lớn nhất
LonNhat
8 soTienPhatCaNhan Number Số tiền phạt cá nhân mặc định
MacDinh
9 soTienPhatToChuc Number Số tiền phạt tổ chức nhỏ nhất
NhoNhat
10 soTienPhatToChuc Number Số tiền phạt tổ chức lớn nhất
LonNhat
11 soTienPhatToChuc Number Số tiền phạt tổ chức mặc định
MacDinh
12 ngayHieuLuc Date Ngày hiệu lực
13 ngayHetHieuLuc Date Ngày hết hiệu lực
Các tham số trả về:
STT Tham số Kiểu dữ Mô tả
liệu
1 maVanBanPhap String Mã văn bản pháp luật
Luat
2 ma String Mã hành vi vi phạm
3 maNhomHanhV String Mã nhóm hành vi vi phạm
iViPham
4 noiDungHanhVi String Nội dung hành vi vi phạm
ViPham

BCA-C08_XLVP_2023_DD Internal use Trang 190


Tài liệu thiết kế hệ thống V1.0

5 soTienPhatCaN String Số tiền phạt cá nhân mặc định


hanMacDinh
6 soTienPhatCaN String Số tiền phạt cá nhân lớn nhất
hanLonNhat
7 soTienPhatCaN String Số tiền phạt cá nhân nhỏ nhất
hanNhoNhat
8 soTienPhatToCh String Số tiền phạt tổ chức mặc định
ucMacDinh
9 soTienPhatToCh String Số tiền phạt tổ chức lớn nhất
ucLonNhat
10 soTienPhatToCh String Số tiền phạt tổ chức nhỏ nhất
ucNhoNhat
11 nguoiSua String Người sửa
12 ngaySua Date Ngày sửa
13 vanBanPhapLua Object Đối tượng văn bản pháp luật
t
14 kyHieuThongTu String Ký hiệu thông tư nghị định
NghiDinh
15 dieu String Điều
16 khoan String Khoản
17 diem String Điểm
d.1.2.2.2.3. Mô tả chi tiết

Services:
Gọi hàm create xử lý lấy thông tin chi tiết hành vi vi phạm từ database
- Hàm create được đánh dấu là @Override và được thực hiện trong một transaction.
- Nó nhận đầu vào là một HanhViViPhamCreateDto và một chuỗi createBy.
- Nó kiểm tra và xác thực dữ liệu đầu vào, sau đó lưu trữ đối tượng HanhViViPham
mới được tạo trong cơ sở dữ liệu và trả về một đối tượng HanhViViPhamDto
tương ứng với đối tượng mới được tạo.
- Cách hoạt động:

BCA-C08_XLVP_2023_DD Internal use Trang 191


Tài liệu thiết kế hệ thống V1.0

o Kiểm tra và xác thực dữ liệu đầu vào bằng cách gọi phương thức
validateSoTienPhat và thiết lập giá trị mặc định cho
soTienPhatCaNhanMacDinh và soTienPhatToChucMacDinh.
o Lấy đối tượng VanBanPhapLuatEntity tương ứng với mã văn bản pháp luật
được cung cấp từ request. Nếu không tìm thấy, ném ra ngoại lệ
ResourceDoesNotExistException.
o Lấy đối tượng ThongTuNghiDinhDTO tương ứng với ký hiệu thông
tư/nghị định được cung cấp từ request. Nếu không tìm thấy, ném ra ngoại lệ
ResourceDoesNotExistException.
o Kiểm tra xem hành vi vi phạm đã tồn tại hay chưa bằng cách gọi phương
thức isExistedHVVPGetByMaVBPLAndNoiDungHVVP và nếu có tồn tại,
ném ra ngoại lệ ResourceExistedException.
o Thiết lập mã cho hành vi vi phạm mới được tạo bằng cách gọi phương thức
getMaHanhViViPham và gọi phương thức create của repository để lưu trữ
đối tượng mới được tạo trong cơ sở dữ liệu.
o Chuyển đổi đối tượng HanhViViPham đã được lưu trữ thành một đối tượng
HanhViViPhamDto bằng cách gọi phương thức toDto của
HanhViViPhamMapper.
o Ghi nhật ký ứng dụng bằng cách gọi phương thức log của
applicationLogService.
o Trả về đối tượng HanhViViPhamDto

Procedure:
PKG_DANH_MUC_HANH_VI_VI_PHAM. GET_BY_MA là một thủ tục được
sử dụng để thêm một bản ghi mới vào bảng DANH_MUC_HANH_VI_VI_PHAM.
Các giá trị nhập vào và trả ra gồm:

Nhập /
Kiểu dữ
STT Tham số Xuất Mô tả
liệu
[N/X]
1 H_KY_HIEU_T VARCHAR Ký hiệu của danh mục thông tư
T_ND 2(20 N nghị định
CHAR)
2 H_MA_VAN_B VARCHAR Mã văn bản pháp luật của danh
AN_PHAP_LU 2(20 N mục văn bản pháp luật
AT CHAR)

BCA-C08_XLVP_2023_DD Internal use Trang 192


Tài liệu thiết kế hệ thống V1.0

3 H_NOI_DUNG VARCHAR Nội dung hành vi vi phạm


2(1000 N
CHAR)
4 H_MA_NHOM_ VARCHAR Mã nhóm hành vi vi phạm
HANH_VI_VI_ 2(20 N
PHAM CHAR)
5 H_MA VARCHAR Mã hành vi vi phạm
2(20 N
CHAR)
6 H_SO_TIEN_P NUMBER
HAT_CA_NHA N Số tiền phạt cá nhân nhỏ nhất
N_NHO_NHAT
7 H_SO_TIEN_P NUMBER Số tiền phạt cá nhận lớn nhất
HAT_CA_NHA N
N_LON_NHAT
8 H_SO_TIEN_P NUMBER Số tiền phạt cá nhân mặc định
HAT_CA_NHA N
N_MAC_DINH
9 H_SO_TIEN_P NUMBER Số tiền phạt tổ chức nhỏ nhất
HAT_TO_CHU N
C_NHO_NHAT
10 H_SO_TIEN_P NUMBER Số tiền phạt tổ chức lớn nhất
HAT_TO_CHU N
C_LON_NHAT
11 H_SO_TIEN_P NUMBER Số tiền phạt tổ chức mặc định
HAT_TO_CHU N
C_MAC_DINH
12 H_NGUOI_TA VARCHAR Người tạo
O 2(255 N
CHAR)
13 V_CURSOR CURSOR Trả về dòng dữ liệu hành vi vi
X
phạm vừa tạo

- Hàm CREATE_HANH_VI_VI_PHAM được sử dụng để thêm một bản ghi mới

BCA-C08_XLVP_2023_DD Internal use Trang 193


Tài liệu thiết kế hệ thống V1.0

vào bảng DANH_MUC_HANH_VI_VI_PHAM. Hàm nhận các tham số đầu vào


là thông tin của bản ghi mới và trả về kết quả thông qua một con trỏ
REF_CURSOR.
- Đầu vào:

o H_KY_HIEU_TT_ND: Kiểu dữ liệu tương ứng với trường


KY_HIEU_TT_ND trong bảng.
o H_MA_VAN_BAN_PHAP_LUAT: Kiểu dữ liệu tương ứng với trường
MA_VAN_BAN_PHAP_LUAT trong bảng.
o H_NOI_DUNG: Kiểu dữ liệu tương ứng với trường NOI_DUNG trong
bảng.
o H_MA_NHOM_HANH_VI_VI_PHAM: Kiểu dữ liệu tương ứng với
trường MA_NHOM_HANH_VI_VI_PHAM trong bảng.
o H_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng.

o H_SO_TIEN_PHAT_CA_NHAN_NHO_NHAT: Kiểu dữ liệu tương ứng


với trường SO_TIEN_PHAT_CA_NHAN_NHO_NHAT trong bảng.
o H_SO_TIEN_PHAT_CA_NHAN_LON_NHAT: Kiểu dữ liệu tương ứng
với trường SO_TIEN_PHAT_CA_NHAN_LON_NHAT trong bảng.
o H_SO_TIEN_PHAT_CA_NHAN_MAC_DINH: Kiểu dữ liệu tương ứng
với trường SO_TIEN_PHAT_CA_NHAN_MAC_DINH trong bảng.
o H_SO_TIEN_PHAT_TO_CHUC_NHO_NHAT: Kiểu dữ liệu tương ứng
với trường SO_TIEN_PHAT_TO_CHUC_NHO_NHAT trong bảng.
o H_SO_TIEN_PHAT_TO_CHUC_LON_NHAT: Kiểu dữ liệu tương ứng
với trường SO_TIEN_PHAT_TO_CHUC_LON_NHAT trong bảng.
o H_SO_TIEN_PHAT_TO_CHUC_MAC_DINH: Kiểu dữ liệu tương ứng
với trường SO_TIEN_PHAT_TO_CHUC_MAC_DINH trong bảng.
o H_NGUOI_TAO: Kiểu dữ liệu tương ứng với trường NGUOI_TAO trong
bảng.
o V_CURSOR: Con trỏ REF_CURSOR dùng để trả về kết quả.

- Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào
bảng DANH_MUC_HANH_VI_VI_PHAM.

BCA-C08_XLVP_2023_DD Internal use Trang 194


Tài liệu thiết kế hệ thống V1.0

- Hàm này sẽ chèn dữ liệu vào bảng DANH_MUC_HANH_VI_VI_PHAM với các


thông tin tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BY_MA để lấy
thông tin bản ghi vừa được thêm và trả về.
d.1.2.2.2.4. Xử lý ngoại lệ

- ResourceDoesNotExistException khi mã văn bản pháp luật không tồn tại


- ResourceExistedException khi hành vi vi vi phạm đã tồn tại
d.1.2.2.3. Lấy thông tin hành vi vi phạm

d.1.2.2.3.1. API

Mô tả: Gọi API để lấy thông tin hành vi vi phạm


Method URL
GET xlvp/api/v1/danh-muc/hanh-vi-vi-pham/{ma}

d.1.2.2.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã hành vi vi phạm
2 kyHieuThongTuNg String Ký hiệu thông tư nghị định
hiDinh
3 maVanBanPhapLu String Mã văn bản pháp luật
at
4 noiDung String Nội dung hành vi vi phạm
5 soTienPhatCaNhan Number Số tiền phạt cá nhân nhỏ nhất
NhoNhat
6 soTienPhatCaNhan Number Số tiền phạt cá nhân lớn nhất
LonNhat
7 soTienPhatCaNhan Number Số tiền phạt cá nhân mặc định
MacDinh
8 soTienPhatToChuc Number Số tiền phạt tổ chức nhỏ nhất
NhoNhat
9 soTienPhatToChuc Number Số tiền phạt tổ chức lớn nhất
LonNhat

BCA-C08_XLVP_2023_DD Internal use Trang 195


Tài liệu thiết kế hệ thống V1.0

10 soTienPhatToChuc Number Số tiền phạt tổ chức mặc định


MacDinh
11 ngayHieuLuc Date Ngày hiệu lực
12 ngayHetHieuLuc Date Ngày hết hiệu lực
Các tham số trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 maVanBanPhap String Mã văn bản pháp luật
Luat
2 ma String Mã hành vi vi phạm
3 maNhomHanhV String Mã nhóm hành vi vi phạm
iViPham
4 noiDungHanhVi String Nội dung hành vi vi phạm
ViPham
5 soTienPhatCaN String Số tiền phạt cá nhân mặc định
hanMacDinh
6 soTienPhatCaN String Số tiền phạt cá nhân lớn nhất
hanLonNhat
7 soTienPhatCaN String Số tiền phạt cá nhân nhỏ nhất
hanNhoNhat
8 soTienPhatToCh String Số tiền phạt tổ chức mặc định
ucMacDinh
9 soTienPhatToCh String Số tiền phạt tổ chức lớn nhất
ucLonNhat
10 soTienPhatToCh String Số tiền phạt tổ chức nhỏ nhất
ucNhoNhat
11 nguoiSua String Người sửa
12 ngaySua Date Ngày sửa
13 vanBanPhapLua Object Đối tượng văn bản pháp luật
t
14 kyHieuThongTu String Ký hiệu thông tư nghị định

BCA-C08_XLVP_2023_DD Internal use Trang 196


Tài liệu thiết kế hệ thống V1.0

NghiDinh
15 dieu String Điều
16 khoan String Khoản
17 diem String Điểm

d.1.2.2.3.3. Mô tả chi tiết

Services
Gọi hàm getDetail xử lý lấy thông tin chi tiết hành vi vi phạm từ database
- Hàm getDetail được sử dụng để lấy chi tiết một đối tượng HanhViViPham từ cơ
sở dữ liệu.
- Nó nhận đầu vào là một chuỗi ma biểu thị mã của đối tượng cần lấy chi tiết.
- Nó trả về một đối tượng HanhViViPhamDetailDto biểu thị chi tiết của đối tượng
HanhViViPham tương ứng.
- Cách hoạt động:
o Lấy đối tượng HanhViViPhamEntity tương ứng với mã hành vi vi phạm
được cung cấp từ ma. Nếu không tìm thấy, ném ra ngoại lệ
ResourceDoesNotExistException.
o Chuyển đổi đối tượng HanhViViPhamEntity thành một đối tượng
HanhViViPhamDetailDto bằng cách gọi phương thức toDetailDto của
HanhViViPhamMapper.
o Trả về đối tượng HanhViViPhamDetailDto.

Packages
Procedure PKG_DANH_MUC_HANH_VI_VI_PHAM.GET_BY_MA là một thủ tục
lấy thông tin một bản ghi theo mã hành vi vi phạm
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu Nhập / Mô tả
dữ liệu Xuất
[N/X]
1 H_MA VARC N Mã hành vi vi phạm
HAR2
2 V_CURSO CURS X REF_CURSOR

BCA-C08_XLVP_2023_DD Internal use Trang 197


Tài liệu thiết kế hệ thống V1.0

R OR

- Đầu vào:
o H_MA: Mã hành vi vi phạm, là một biến kiểu dữ liệu của cột MA trong
bảng DANH_MUC_HANH_VI_VI_PHAM.
o V_CURSOR: Đây là một biến kiểu REF_CURSOR và là đầu ra của hàm.
Nó sẽ chứa kết quả trả về của câu lệnh SELECT trong thân của stored
procedure.
- Đầu ra:
o Tất cả các cột của bảng DANH_MUC_HANH_VI_VI_PHAM (trừ cột
IS_DELETED)
o Các cột DIEU, KHOAN, DIEM từ bảng
DANH_MUC_VAN_BAN_PHAP_LUAT
o Một cột mới có tên "vanBanPhapLuat" là một đối tượng JSON chứa thông
tin về ngày có hiệu lực và ngày hết hiệu lực của bảng
THONG_TU_NGHI_DINH liên kết với bảng
DANH_MUC_VAN_BAN_PHAP_LUAT.
- Điều kiện để trả về kết quả là cột MA của bảng
DANH_MUC_HANH_VI_VI_PHAM phải bằng với giá trị của biến H_MA và
cột IS_DELETED của bảng DANH_MUC_HANH_VI_VI_PHAM phải là 0.
d.1.2.2.3.4. Xử lý ngoại lệ

- ResourceDoesNotExistException khi mã hành vi vi phạm không hợp lệ

d.1.2.2.4. Sửa hành vi vi phạm

d.1.2.2.4.1. API

Mô tả: Gọi API để sửa thông tin hành vi vi phạm


Method URL
PUT xlvp/api/v1/danh-muc/hanh-vi-vi-pham/{ma}

d.1.2.2.4.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã hành vi vi phạm
kyHieuThongTuNg String Ký hiệu thông tư nghị định
2
hiDinh

BCA-C08_XLVP_2023_DD Internal use Trang 198


Tài liệu thiết kế hệ thống V1.0

maVanBanPhapLu String Mã văn bản pháp luật


3
at
maNhomHanhViVi String Mã nhóm hành vi vi phạm
4
Pham
5 noiDung String Nội dung hành vi vi phạm
soTienPhatCaNhan Number Số tiền phạt cá nhân nhỏ nhất
6
NhoNhat
soTienPhatCaNhan Number Số tiền phạt cá nhân lớn nhất
7
LonNhat
soTienPhatCaNhan Number Số tiền phạt cá nhân mặc định
8
MacDinh
soTienPhatToChuc Number Số tiền phạt tổ chức nhỏ nhất
9
NhoNhat
soTienPhatToChuc Number Số tiền phạt tổ chức lớn nhất
10
LonNhat
soTienPhatToChuc Number Số tiền phạt tổ chức mặc định
11
MacDinh
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 maVanBanPhap String Mã văn bản pháp luật
Luat
2 ma String Mã hành vi vi phạm
3 maNhomHanhV String Mã nhóm hành vi vi phạm
iViPham
4 noiDungHanhVi String Nội dung hành vi vi phạm
ViPham
5 soTienPhatCaN String Số tiền phạt cá nhân mặc định
hanMacDinh
6 soTienPhatCaN String Số tiền phạt cá nhân lớn nhất
hanLonNhat

BCA-C08_XLVP_2023_DD Internal use Trang 199


Tài liệu thiết kế hệ thống V1.0

7 soTienPhatCaN String Số tiền phạt cá nhân nhỏ nhất


hanNhoNhat
8 soTienPhatToCh String Số tiền phạt tổ chức mặc định
ucMacDinh
9 soTienPhatToCh String Số tiền phạt tổ chức lớn nhất
ucLonNhat
10 soTienPhatToCh String Số tiền phạt tổ chức nhỏ nhất
ucNhoNhat
11 nguoiSua String Người sửa
12 ngaySua Date Ngày sửa
13 vanBanPhapLua Object Đối tượng văn bản pháp luật
t
14 kyHieuThongTu String Ký hiệu thông tư nghị định
NghiDinh
15 dieu String Điều
16 khoan String Khoản
17 diem String Điểm

d.1.2.2.4.3. Mô tả chi tiết

Services
Gọi hàm update xử lý lấy thông tin chi tiết hành vi vi phạm từ database
- Hàm update được đánh dấu là @Override và được thực hiện trong một transaction.
- Nó nhận đầu vào là một chuỗi ma, một đối tượng HanhViViPhamUpdateDto và
một chuỗi updateBy.
- Nó kiểm tra và xác thực dữ liệu đầu vào, sau đó cập nhật đối tượng
HanhViViPham tương ứng trong cơ sở dữ liệu và trả về một đối tượng
HanhViViPhamDto tương ứng với đối tượng được cập nhật.
- Cách hoạt động:
o Lấy đối tượng HanhViViPhamEntity tương ứng với mã hành vi vi phạm
được cung cấp từ ma. Nếu không tìm thấy, ném ra ngoại lệ
ResourceDoesNotExistException.

BCA-C08_XLVP_2023_DD Internal use Trang 200


Tài liệu thiết kế hệ thống V1.0

o Kiểm tra và xác thực dữ liệu đầu vào bằng cách gọi phương thức
validateSoTienPhat và thiết lập giá trị mặc định cho
soTienPhatCaNhanMacDinh và soTienPhatToChucMacDinh.
o Lấy đối tượng VanBanPhapLuatEntity tương ứng với mã văn bản pháp luật
được cung cấp từ request. Nếu không tìm thấy, ném ra ngoại lệ
ResourceDoesNotExistException.
o Lấy đối tượng ThongTuNghiDinhDTO tương ứng với ký hiệu thông
tư/nghị định được cung cấp từ request. Nếu không tìm thấy, ném ra ngoại lệ
ResourceDoesNotExistException.
o Kiểm tra xem hành vi vi phạm đã tồn tại hay chưa bằng cách gọi phương
thức isExistedHVVPGetByMaVBPLAndNoiDungHVVP và nếu có tồn tại,
ném ra ngoại lệ ResourceExistedException.
o Gọi phương thức update của repository để cập nhật đối tượng hành vi vi
phạm và chuyển đổi đối tượng HanhViViPham đã được cập nhật thành một
đối tượng HanhViViPhamDto bằng cách gọi phương thức toDto
củaHanhViViPhamMapper.
o Ghi nhật ký ứng dụng bằng cách gọi phương thức log của
applicationLogService.
Packages
Procedure PKG_DANH_MUC_HANH_VI_VI_PHAM.
UPDATE_HANH_VI_VI_PHAM là một thủ tục được sử dụng để cập nhật thông tin
của một hành vi vi phạm đã có trong cơ sở dữ liệu.
Các giá trị nhập vào và trả ra gồm:
Nhập /
Kiểu dữ
STT Tham số Xuất Mô tả
liệu
[N/X]
H_MA VARCHA N Mã hành vi vi phạm
1
R2
H_KY_HIEU_ VARCHA N Ký hiệu của danh mục thông
2
TT_ND R2 tư nghị định
H_MA_VAN_ VARCHA N Mã văn bản pháp luật của
3 BAN_PHAP_L R2 danh mục văn bản pháp luật
UAT
4 H_NOI_DUNG VARCHA N Nội dung hành vi vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 201


Tài liệu thiết kế hệ thống V1.0

R2
H_MA_NHOM VARCHA N Mã nhóm hành vi vi phạm
5 _HANH_VI_V R2
I_PHAM
H_SO_TIEN_P NUMBER N Số tiền phạt cá nhân nhỏ nhất
HAT_CA_NH
6
AN_NHO_NH
AT
H_SO_TIEN_P NUMBER N Số tiền phạt cá nhân lớn nhất
HAT_CA_NH
7
AN_LON_NH
AT
H_SO_TIEN_P NUMBER N Số tiền phạt cá nhân mặc định
HAT_CA_NH
8
AN_MAC_DI
NH
H_SO_TIEN_P NUMBER N Số tiền phạt tổ chức nhỏ nhất
HAT_TO_CH
9
UC_NHO_NH
AT
H_SO_TIEN_P NUMBER N Số tiền phạt tổ chức lớn nhất
HAT_TO_CH
10
UC_LON_NH
AT
H_SO_TIEN_P NUMBER N Số tiền phạt tổ chức mặc định
HAT_TO_CH
11
UC_MAC_DI
NH
H_NGUOI_SU VARCHA N Người sửa
12
A R2
13 V_CURSOR X REF_CURSOR

- Hàm UPDATE_HANH_VI_VI_PHAM được sử dụng để cập nhật thông tin của


một hành vi vi phạm đã có trong cơ sở dữ liệu.

BCA-C08_XLVP_2023_DD Internal use Trang 202


Tài liệu thiết kế hệ thống V1.0

- Đầu vào:
o H_MA: Mã của hành vi vi phạm cần cập nhật.
o H_KY_HIEU_TT_ND: Ký hiệu thông tư/nghị định liên quan đến hành vi
vi phạm.
o H_MA_VAN_BAN_PHAP_LUAT: Mã văn bản pháp luật liên quan đến
hành vi vi phạm.
o H_NOI_DUNG: Nội dung của hành vi vi phạm.
o H_MA_NHOM_HANH_VI_VI_PHAM: Mã nhóm hành vi vi phạm.
o H_SO_TIEN_PHAT_CA_NHAN_NHO_NHAT: Số tiền phạt tối thiểu đối
với cá nhân vi phạm.
o H_SO_TIEN_PHAT_CA_NHAN_LON_NHAT: Số tiền phạt tối đa đối với
cá nhân vi phạm.
o H_SO_TIEN_PHAT_CA_NHAN_MAC_DINH: Số tiền phạt mặc định đối
với cá nhân vi phạm.
o H_SO_TIEN_PHAT_TO_CHUC_NHO_NHAT: Số tiền phạt tối thiểu đối
với tổ chức vi phạm.
o H_SO_TIEN_PHAT_TO_CHUC_LON_NHAT: Số tiền phạt tối đa đối với
tổ chức vi phạm.
o H_SO_TIEN_PHAT_TO_CHUC_MAC_DINH: Số tiền phạt mặc định đối
với tổ chức vi phạm.
o H_NGUOI_SUA: Tên người sửa thông tin.
- Đầu ra:
o V_CURSOR: Con trỏ tham chiếu đến kết quả truy vấn danh sách các hành
vi vi phạm được cập nhật.
d.1.2.2.4.4. Xử lý ngoại lệ

- ResourceDoesNotExistException khi không tồn tại mã hành vi vi phạm, mã văn


bản pháp luật, đối tượng thông tư nghị định
- ResourceExistedException nếu có tồn tại hành vi vi phạm đã tồn tại hay chưa
bằng cách gọi phương thức isExistedHVVPGetByMaVBPLAndNoiDungHVVP
d.1.2.2.5. Xóa hành vi vi phạm

d.1.2.2.5.1. API

Mô tả: Gọi API để xóa thông tin hành vi vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 203


Tài liệu thiết kế hệ thống V1.0

Method URL
DELETE xlvp/api/v1/danh-muc/hanh-vi-vi-pham/{ma}

d.1.2.2.5.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã hành vi vi phạm
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 Http status code Boolean True : đã xóa thành công
d.1.2.2.5.3. Mô tả chi tiết

Services
Gọi hàm delete xử lý xóa thông tin chi tiết hành vi vi phạm từ database
- Hàm delete được sử dụng để xóa một đối tượng HanhViViPham khỏi cơ sở dữ
liệu.
- Nó nhận đầu vào là một chuỗi ma biểu thị mã của đối tượng cần xóa và một chuỗi
updateBy biểu thị người dùng thực hiện thao tác xóa.
- Nó trả về giá trị boolean true để cho biết thao tác xóa đã thành công.
- Cách hoạt động:
o Lấy đối tượng HanhViViPhamEntity tương ứng với mã hành vi vi phạm
được cung cấp từ ma. Nếu không tìm thấy, ném ra ngoại lệ
ResourceDoesNotExistException.
o Gọi phương thức delete của repository để xóa đối tượng HanhViViPham
khỏi cơ sở dữ liệu.
o Ghi nhật ký ứng dụng bằng cách gọi phương thức log của
applicationLogService.
o Trả về giá trị boolean true để cho biết thao tác xóa đã thành công

Packages
Procedure PKG_DANH_MUC_HANH_VI_VI_PHAM.
DELETE_HANH_VI_VI_PHAM là một thủ tục được sử dụng để đánh dấu một hành vi
vi phạm trong danh mục hành vi vi phạm đã bị xóa bỏ.
Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 204


Tài liệu thiết kế hệ thống V1.0

Nhập
STT Tham số Kiểu dữ liệu / Xuất Mô tả
[N/X]
H_MA VARCHAR2( N Mã hành vi vi phạm
1
20 CHAR)
H_NGUO VARCHAR2( N Người sửa
2
I_SUA 20 CHAR)
Thủ tục DELETE_HANH_VI_VI_PHAM không có giá trị trả về, nhưng sẽ cập nhật
cột IS_DELETED thành giá trị 1 để đánh dấu hành vi vi phạm đã bị xóa.
d.1.2.2.5.4. Xử lý ngoại lệ

- ResourceDoesNotExistException

d.1.2.2.6. Xuất excel danh sách hành vi vi phạm

d.1.2.2.6.1. API

Mô tả: Gọi API để xóa thông tin hành vi vi phạm


Method URL
GET xlvp/api/v1/danh-muc/hanh-vi-vi-pham/export/excel

d.1.2.2.6.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 205


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Mô tả


1 page Number Page
2 pageSize Number Số lượng bản ghi trong 1 page
3 timKiemNhanh String Tìm kiếm nhanh
4 isFetchAll Boolean Lấy hết
5 ma String Mã hành vi vi phạm
6 kyHieuThongTuNg String Ký hiệu thông tư nghị định
hiDinh
7 maVanBanPhapLu String Mã văn bản pháp luật
at
8 maNhomHanhViVi String Mã nhóm hành vi vi phạm
Pham
9 noiDung String Nội dung hành vi vi phạm
10 ngayHieuLuc Date Ngày hiệu lực
11 linhVuc String Lĩnh vực
Các tham số trả về:
Kiểu dữ
STT Tham số Mô tả
liệu
1 File E File excel xuất ra
d.1.2.2.6.3. Mô tả chi tiết

Services:
Gọi hàm exportExcel xử lý xuất ra một file Excel
- Hàm exportExcel được sử dụng để xuất ra một file Excel chứa danh sách các đối
tượng HanhViViPham dựa trên các tiêu chí được cung cấp trong đối tượng
HanhViViPhamSearchDto.
- Nó trả về một Đầu vàoStreamResource chứa nội dung của file Excel.
- Cách hoạt động:
o Kiểm tra xem ngày hiệu lực trong searchRequest có hợp lệ hay không. Nếu
không hợp lệ, ném ra ngoại lệ CustomerException.
o Thiết lập trường linhVuc trong searchRequest.

BCA-C08_XLVP_2023_DD Internal use Trang 206


Tài liệu thiết kế hệ thống V1.0

o Gọi phương thức exportExcel của repository để lấy danh sách các đối
tượng HanhViViPham dựa trên các tiêu chí trong searchRequest. Kết quả
được trả về dưới dạng một danh sách các đối tượng HanhViViPhamEntity.
o Chuyển đổi danh sách các đối tượng HanhViViPhamEntity thành danh sách
các đối tượng HanhViViPhamReportDto bằng cách sử dụng phương thức
toDtoReport của HanhViViPhamMapper.
o Tạo danh sách các tiêu đề cho file Excel bằng cách tách chuỗi tiêu đề được
lấy từ tệp tin thông điệp thành các phần tử của một danh sách.
o Sử dụng đối tượng BaseExportExcelService để xuất file Excel từ các thông
tin đã thu thập được.
o Trả về Đầu vàoStreamResource chứa nội dung của file Excel.

Procedure:
PKG_DANH_MUC_HANH_VI_VI_PHAM.EXCEL_HANH_VI_VI_PHAM là
một thủ tục được sử dụng để lấy danh sách các hành vi vi phạm theo các điều kiện tìm
kiếm được cung cấp.
Các giá trị nhập vào và trả ra gồm:
Nhập /
Kiểu dữ
STT Tham số Xuất Mô tả
liệu
[N/X]
P_SEARCH VARCHA N Tìm kiếm nhanh
1 R2(20
CHAR)
2 P_KY_HIEU CURSOR N Ký hiệu của danh mục thông tư
_TT_ND nghị định
3 P_MA_VAN VARCHA N Mã văn bản pháp luật của danh
_BAN_PHA R2 mục văn bản pháp luật
P_LUAT
4 P_MA VARCHA N Mã hành vi vi phạm
R2
5 P_NOI_DU VARCHA N Nội dung
NG R2
6 P_NGAY_H VARCHA N Ngày hiệu lực
IEU_LUC R2

BCA-C08_XLVP_2023_DD Internal use Trang 207


Tài liệu thiết kế hệ thống V1.0

7 P_LINH_VU VARCHA N Lĩnh vực


C R2
8 V_CURSOR X REF_CURSOR

- Hàm EXCEL_HANH_VI_VI_PHAM() được sử dụng để lấy danh sách các hành


vi vi phạm theo các điều kiện tìm kiếm được cung cấp. Kết quả trả về được sắp
xếp theo ngày tạo mới nhất. Đây là một thủ tục, không có giá trị trả về, nhưng nó
sẽ trả về một con trỏ tham chiếu trỏ đến danh sách các hành vi vi phạm.
- Đầu vào:
o P_SEARCH: Chuỗi tìm kiếm thông tin của hành vi vi phạm (có thể là mã
hành vi, mã văn bản pháp luật, nội dung, ký hiệu TTND).
o P_KY_HIEU_TT_ND: Ký hiệu Thông tư/Nghị định của hành vi vi phạm
cần tìm kiếm.
o P_MA_VAN_BAN_PHAP_LUAT: Mã văn bản pháp luật của hành vi vi
phạm cần tìm kiếm.
o P_MA: Mã của hành vi vi phạm cần tìm kiếm.
o P_NOI_DUNG: Nội dung của hành vi vi phạm cần tìm kiếm.
o P_NGAY_HIEU_LUC: Ngày có hiệu lực của văn bản pháp luật liên quan
đến hành vi vi phạm cần tìm kiếm.
o P_LINH_VUC: Lĩnh vực của văn bản pháp luật liên quan đến hành vi vi
phạm cần tìm kiếm.
o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các hành vi vi
phạm tìm kiếm được.
- Đầu ra:
o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các hành vi vi
phạm tìm kiếm được. Các thông tin bao gồm tất cả các trường trong bảng
DANH_MUC_HANH_VI_VI_PHAM cùng với thông tin của văn bản pháp
luật mà hành vi vi phạm liên quan đến (khoản, điều, điểm) và các thông tin
hiệu lực của văn bản pháp luật. Các hành vi vi phạm được sắp xếp theo
ngày tạo mới nhất.
d.1.2.2.6.4. Xử lý ngoại lệ

- CustomerException khi ngày hiệu lực không hợp lệ

BCA-C08_XLVP_2023_DD Internal use Trang 208


Tài liệu thiết kế hệ thống V1.0

d.2. Danh mục nhóm hành vi vi phạm


d.2.1. Mục đích

- Quản lý danh mục nhóm hành vi vi phạm


- Chức năng quản lý danh mục nhóm hành vi vi phạm gồm:
o Thêm mới nhóm hành vi vi phạm
o Sửa nhóm hành vi vi phạm
o Hiển thị chi tiết nhóm hành vi vi phạm
o Xóa nhóm hành vi vi phạm

d.2.2. Chi tiết từng mục

d.2.2.1. Thiết kế dữ liệu

d.2.2.1.1. Mô hình quan hệ dữ liệu

d.2.2.1.2. Danh sách các bảng và mô tả

d.2.2.1.3. Chi tiết các bảng

STT Tên bảng Mô tả


1 DANH_MUC_NHOM_H Bảng lưu trữ danh mục Nhóm Hành Vi Vi Phạm
ANH_VI_VI_PHAM
d.2.2.1.3.1. Bảng NHOM_HANH_VI_VI_PHAM

Tên trường Kiểu dữ liệu Bắt P/F Key? Mặc định Diễn giải
buộc?

MA VARCHAR2(1 X P Mã nhóm hành vi vi


0 CHAR) phạm

TEN VARCHAR2(2 X Tên của nhóm hành vi


55 CHAR) vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 209


Tài liệu thiết kế hệ thống V1.0

NGUOI_TA VARCHAR2(5 Tài khoản người tạo


O 0 CHAR)

NGAY_TAO DATE CURREN Thời gian tạo


T_TIMES
TAMP

NGUOI_SU VARCHAR2(5 Tài khoản người sửa


A CHAR)

NGAY_SUA DATE Thời gian sửa

IS_DELETE NUMBER(0,1) X 0 Đã xóa hoặc chưa


D

TRANG_TH NUMBER(1,0) X 1 Trạng thái nhóm hành


AI vi vi phạm(1: kích
hoạt, 0: chưa kích
hoạt)

LINH_VUC NUMBER X 981 Loại lĩnh vực giao


thông(Đường Sắt,
Đường Thủy, Đường
Bộ)
a) Các ràng buộc
Tên cột Nội dung
MA Mã của NHHVP không được để trống

TEN Tên của NHVVP không được để trống


b) Index
NA
c) Trigger
NA
d) Packages
Tên package: PKG_DANH_MUC_NHOM_HANH_VI_VI_PHAM

BCA-C08_XLVP_2023_DD Internal use Trang 210


Tài liệu thiết kế hệ thống V1.0

d.1.2.1. Thiết kế màn hình

d.1.2.1.1. Màn hình xem danh sách, tìm kiếm nhóm hành vi vi phạm

d.1.2.1.1.1. Giao diện

Hình 28: Màn hình danh sách nhóm hành vi vi phạm


d.1.2.1.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Tên label Tên thành Bắt Định dạng Mô tả
phần / Control buộc?
Form tìm kiếm/lọc dữ liệu danh mục
Tên nhóm ten Textbox Nhập tên nhóm
HVVP hành vi vi phạm
Mã nhóm ma Textbox Nhập mã nhóm
HVVP hành vi vi phạm
Trạng thái trangThai Dropdownli Chọn loại trạng thái
st nhóm hành vi vi
phạm
Danh sách nhóm hành vi vi phạm
Mã nhóm ma Textbox Hiển thị mã nhóm
-
HVVP hành vi vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 211


Tài liệu thiết kế hệ thống V1.0

Tên nhóm ten Textbox Hiển thị tên nhóm


-
HVVP hành vi vi phạm
Hành vi vi hanhViViPham Textbox Hiển thị các hành
phạm vi vi phạm cùng
-
nhóm hành vi vi
phạm
Trạng thái trangThai Textbox Hiển thị trạng thái
- nhóm hành vi vi
phạm
Ngày sửa ngaySua Textbox Hiển thị ngày sửa
gần nhất - nhóm hành vi vi
phạm
Cán bộ sửa nguoiSua Textbox Hiển thị người sửa
gần nhất - nhóm hành vi vi
phạm

d.1.2.1.1.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Chọn menu Danh mục/Nhóm hành vi vi phạm → Xem
thông tin danh sách danh mục nhóm hành vi vi phạm.
BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh mục
→ Click Tìm kiếm.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập →
Màn hình hiển thị danh sách danh mục thỏa mãn bộ lọc.
BtnReset_Click Click nút Thiết lập lại.
Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin đã
nhập và hoàn tác về trạng thái mặc định ban đầu.
BtnCollapse/ Click nút Thu hẹp/Mở rộng.
BtnExtend_Click Thu hẹp/Mở rộng Form tìm kiếm/lọc dữ liệu danh mục.
BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới danh mục nhóm

BCA-C08_XLVP_2023_DD Internal use Trang 212


Tài liệu thiết kế hệ thống V1.0

hành vi vi phạm.
BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh sách.
Màn hình chuyển đến trang Chỉnh sửa danh mục nhóm hành
vi vi phạm tương ứng với bản ghi.
BtnView_Click Click nút Xem chi tiết ở cuối mỗi bản ghi trong danh sách.
Màn hình chuyển đến trang Xem chi tiết danh mục nhóm
hành vi vi phạm tương ứng với bản ghi.
BtnDelete_Click Click nút Xóa ở cuối mỗi bản ghi trong danh sách → Chọn
Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình reload và cập
nhật lại danh sách danh mục.
d.1.2.1.2. Thêm mới nhóm hành vi vi phạm

d.1.2.1.2.1. Giao diện

Hình 29: Màn hình thêm mới danh mục nhóm hành vi vi phạm
d.1.2.1.2.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Tên thành
Bắt Định
STT Tên label phần / Mô tả
buộc? dạng
Control
1 Mã nhóm HVVP ma Textbox Hiển thị mã nhóm hành

BCA-C08_XLVP_2023_DD Internal use Trang 213


Tài liệu thiết kế hệ thống V1.0

vi vi phạm.
Mã tự sinh, không thể
nhập
2 Tên nhóm HVVP ten Textbox Nhập tên nhóm hành vi
x
vi phạm
3 Trạng thái trangThai Switch Bật/Tắt trạng thái hoạt
x động của nhóm hành vi
vi phạm
4 Gán HVVP hanhViViPh TransferLi Chọn và di chuyển
am st hành vi vi phạm chưa
được gán nhóm sang
danh sách đã được gán
nhóm.
Có thể di chuyển 1
hoặc nhiều hành vi vi
phạm giữa danh sách
hành vi vi phạm chưa
được gán nhóm và đã
được gán nhóm

d.1.2.1.2.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Thêm mới tại màn hình danh sách Danh mục
nhóm hành vi vi phạm → Màn hình chuyển đến màn
Thêm mới
BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu danh mục
nhóm hành vi vi phạm → Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
thêm mới.
BtnClose_Click Click nút Đóng → Click Đồng ý.

BCA-C08_XLVP_2023_DD Internal use Trang 214


Tài liệu thiết kế hệ thống V1.0

Hệ thống check ràng buộc của các trường dữ liệu nếu


thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục
nhóm hành vi vi phạm.

d.1.2.1.2.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


Tên nhóm HVVP Bắt buộc nhập, độ dài không quá 255 kí tự

d.1.2.1.3. Chỉnh sửa nhóm hành vi vi phạm

d.1.2.1.3.1. Giao diện

Hình 30: Chỉnh sửa danh mục Nhóm hành vi vi phạm


d.1.2.1.3.2. Danh sách control/thành phần giao diện

Tên thành Bắt


Định
STT Tên label phần / buộc Mô tả
dạng
Control ?
Mã nhóm HVVP ma Textbox Hiển thị mã nhóm hành
vi vi phạm.
1
Mã tự sinh, không thể
nhập
2 Tên nhóm HVVP ten x Textbox Nhập tên nhóm hành vi

BCA-C08_XLVP_2023_DD Internal use Trang 215


Tài liệu thiết kế hệ thống V1.0

vi phạm
Trạng thái trangThai Switch Bật/Tắt trạng thái hoạt
3 x động của nhóm hành vi
vi phạm
Gán HVVP hanhViViPh Transfer Chọn và di chuyển
am List hành vi vi phạm chưa
được gán nhóm sang
danh sách đã được gán
nhóm.
4 Có thể di chuyển 1
hoặc nhiều hành vi vi
phạm giữa danh sách
hành vi vi phạm chưa
được gán nhóm và đã
được gán nhóm
d.1.2.1.3.3. Xử lý sự kiện

Các sự kiện cần xử lý:


Sự kiện Quy trình
Page_Load Cách 1: Click nút Chỉnh sửa ở cuối mỗi bản ghi tại màn
hình danh sách Danh mục nhóm hành vi vi phạm → Màn
hình chuyển đến màn Chỉnh sửa.
Cách 2: Click nút Chỉnh sửa tại màn hình chi tiết Danh
mục nhóm hành vi vi phạm → Màn hình chuyển đến màn
Chỉnh sửa.
BtnSave_Click Nhập thông tin trong Form chỉnh sửa dữ liệu danh mục
→ Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
chỉnh sửa.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →

BCA-C08_XLVP_2023_DD Internal use Trang 216


Tài liệu thiết kế hệ thống V1.0

Màn hình chuyển đến màn xem danh sách danh mục.
d.1.2.1.3.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


Tên nhóm HVVP Bắt buộc nhập, độ dài không quá 255 kí tự

d.1.2.1.4. Xem chi tiết nhóm hành vi vi phạm

d.1.2.1.4.1. Giao diện

Hình 31: Màn hình xem chi tiết nhóm hành vi vi phạm
d.1.2.1.4.2. Danh sách control/thành phần giao diện

Tên thành
STT Tên label Định dạng Mô tả
phần / Control
1 Mã nhóm HVVP ma Dropdownlist Hiển thị mã
nhóm hành vi vi
phạm
2 Tên nhóm HVVP ten Dropdownlist Hiển thị tên
nhóm hành vi vi
phạm
3 Trạng thái trangThai Switch Hiển thị loại
trạng thái nhóm
hành vi vi phạm
4 Gán HVVP hanhViViPham Dropdownlist Hiển thị danh

BCA-C08_XLVP_2023_DD Internal use Trang 217


Tài liệu thiết kế hệ thống V1.0

sách các hành vi


vi phạm thuộc
nhóm hành vi vi
phạm này

d.1.2.1.4.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục nhóm hành vi vi phạm → Màn hình
chuyển đến màn Xem chi tiết.
BtnEdit_Click Click nút Chỉnh sửa → Màn hình chuyển đến màn chỉnh
sửa danh sách danh mục nhóm hành vi vi phạm.
BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh
sách danh mục.
d.1.2.1.4.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


Tên nhóm HVVP Độ dài không quá 255 kí tự
d.1.2.2. Thiết kế các hàm, thủ tục

d.1.2.2.1. Lấy danh sách và tìm kiếm nhóm hành vi vi phạm

d.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách nhóm hành vi vi phạm theo nhiều tiêu chí tìm kiếm
Method URL
GET xlvp/api/v1/danh-muc/nhom-hanh-vi-vi-pham?

d.1.2.2.1.2. Các tham số và giá trị trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên nhóm hành vi vi cần tìm
kiếm
2 ma String Mã nhóm hành vi vi phạm cần
tìm kiếm

BCA-C08_XLVP_2023_DD Internal use Trang 218


Tài liệu thiết kế hệ thống V1.0

3 trangThai Boolean Trạng thái của căn cứ


+ true : kích hoạt
+ false : không kích hoạt
4 page Number Trang cần tìm kiếm ( bắt đầu từ
0)
5 pageSize Number Số bản ghi cần lấy trên 1 trang
6 isFetchAll Boolean Lấy tất cả các bản ghi nhóm hành
vi vi phạm
Các giá trị trả về là
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 ma String N Mã của nhóm hành vi vi
phạm

2 ten String X Tên của nhóm hành vi vi


phạm

3 linhVuc Interger X Lĩnh vực nhóm hành vi vi


phạm

4 trangThai Boolean X Trạng thái của hành vi vi


phạm

5 nguoiTao String X Người tạo nhóm hành vi vi


phạm

6 ngayTao Date X Thời gian tạo nhóm hành vi


vi phạm

7 nguoiSua String X Người sửa nhóm hành vi vi


phạm

8 ngaySua Date X Thời gian sửa nhóm hành vi


vi phạm

9 hanhViViPha List X Danh sách hành vi vi phạm


m

10 timKiemNha String N Chuỗi tìm kiếm nhanh


nh
11 page NUMBER N Trang hiện tại

BCA-C08_XLVP_2023_DD Internal use Trang 219


Tài liệu thiết kế hệ thống V1.0

12 pageSize NUMBER N Dữ liệu trên một trang

d.1.2.2.1.3. Mô tả chi tiết

Procedure
- Hàm PAGE_NHOM_HVVP() được sử dụng để lấy danh sách các văn bản pháp
luật theo các điều kiện tìm kiếm được cung cấp. Kết quả trả về được sắp xếp theo
ngày tạo mới nhất. Đây là một thủ tục, không có giá trị trả về, nhưng nó sẽ trả về
một con trỏ tham chiếu trỏ đến nhóm hành vi vi phạm.
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]

1 P_MA VARCHAR2(10 N Mã nhóm hành vi vi phạm


CHAR)

2 P_TEN VARCHAR2(255 N Tên nhóm hành vi vi phạm


CHAR)

3 P_TRANG_T NUMBER N Trạng thái nhóm hành vi vi


HAI phạm

4 P_LINH_VU VARCHAR2(100 N Lĩnh vực của nhóm hành vi


C CHAR vi phạm

5 P_PAGE NUMBER N Trang hiện tại

6 P_PAGE_SIZ NUMBER N Dữ liệu trên một trang


E

7 V_CURSOR CURSOR X Con trỏ tham chiếu đến danh


sách VBPL tìm được

- Đầu vào:
o P_MA: Mã của nhóm hành vi vi phạm
o P_TEN: Tên của nhóm hành vi vi phạm
o P_TRANG_THAI: Trạng thái của hành vi vi phạm
o P_LINH_VUC: Lĩnh vực của hành vi vi phạm
o P_PAGE: Trang hiện tại của danh sách văn bản pháp luật
o P_PAGE_SIZE: Số bản ghi trên một trang
- Đầu ra:

BCA-C08_XLVP_2023_DD Internal use Trang 220


Tài liệu thiết kế hệ thống V1.0

o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các nhóm
hành vi vi phạm tìm kiếm được. Các thông tin bao gồm tất cả các trường
trong bảng DANH_MUC_NHOM_HANH_VI_VI_PHAM. Các nhóm
hành vi vi phạm được sắp xếp theo ngày tạo mới nhất.
Service
- Gọi procedure PAGE_NHOM_HVVP() để xử lý lấy danh sách NHVVP từ
database
d.1.2.2.1.4. Xử lý ngoại lệ

Xử lý ngoại lệ được dùng chung toàn bộ dự án


d.1.2.2.2. Thêm mới nhóm hành vi vi phạm

d.1.2.2.2.1. API

Mô tả: Gọi API để tạo mới nhóm hành vi vi phạm


Method URL
POST xlvp/api/v1/danh-muc/nhom-hanh-vi-vi-phạm

d.1.2.2.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]

1 ten String N Tên của nhóm hành vi vi


phạm

2 linhVuc Interger N Lĩnh vực nhóm hành vi vi


phạm

3 trangThai Boolean N Trạng thái của hành vi vi


phạm

4 hanhViViPha List X Danh sách hành vi vi phạm


m

Các giá trị trả về:


STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]

1 ma String N Mã của nhóm hành vi vi


phạm

BCA-C08_XLVP_2023_DD Internal use Trang 221


Tài liệu thiết kế hệ thống V1.0

2 ten String N Tên của nhóm hành vi vi


phạm

3 linhVuc Interger N Lĩnh vực nhóm hành vi vi


phạm

4 trangThai Boolean N Trạng thái của hành vi vi


phạm

5 nguoiTao String N Người tạo nhóm hành vi vi


phạm

6 ngayTao Date X Thời gian tạo nhóm hành vi


vi phạm

7 nguoiSua String X Người sửa nhóm hành vi vi


phạm

8 ngaySua Date X Thời gian sửa nhóm hành vi


vi phạm

9 hanhViViPha List X Danh sách hành vi vi phạm


m

d.1.2.2.2.3. Mô tả chi tiết

Service
- Kiểm tra xem hành vi vi phạm có tồn tại trong bảng HVVP chưa
- Kiểm tra tên nhóm hành vi vi phạm đã tồn tại trong bảng NHVVP chưa
- Kiểm tra hành vi vi phạm đã tồn tại NHVVP chưa
- Gọi procedure CREATE_ITEM để lưu thông tin VBPL mới

Procedure
- Hàm CREATE_ITEM được sử dụng để thêm một bản ghi mới vào bảng
DANH_MUC_NHOM_HANH_VI_VI_PHAM. Hàm nhận các tham số đầu vào là
thông tin của bản ghi mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Các giá trị nhập vào và trả ra gồm:
Nhập / Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]

1 P_MA VARCHAR2(10 N Mã của nhóm hành vi vi


CHAR) phạm

2 P_TEN VARCHAR2(255 N Tên của nhóm hành vi vi


CHAR) phạm

BCA-C08_XLVP_2023_DD Internal use Trang 222


Tài liệu thiết kế hệ thống V1.0

3 P_TRANG_T NUMBER N Trạng thái nhóm hành vi vi


HAI phạm

4 P_HANH_VI_ VARCHAR2(100 N Nội dung của hành vi vi


VI_PHAM 0 CHAR) phạm

5 P_LINH_VU NUMBER N Lĩnh vực của nhóm hành vi


C vi phạm

6 P_AUTH_US VARCHAR2(50 N Người tạo nhóm hành vi vi


ER_NAME CHAR phạm

7 CURRENT_T DATE N Thời gian tạo nhóm hành vi


IMESTAMP vi phạm

8 V_CURSOR CURSOR X Trả về dòng dữ liệu hành vi


vi phạm vừa tạo

- Đầu vào:

o P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng.


o P_TEN: Kiểu dữ liệu tương ứng với trường TEN trong bảng.
o P_TRANG_THAI: Kiểu dữ liệu tương ứng với trường TRANG_THAI trong
bảng.
o P_HANH_VI_VI_PHAM: Kiểu dữ liệu tương ứng với trường NOI_DUNG
trong bảng DANH_MUC_HANH_VI_VI_PHAM.
o P_LINH_VUC: Kiểu dữ liệu tương ứng với trường LINH_VUC trong bảng.
o P_AUTH_USER_NAME: Kiểu dữ liệu tương ứng với trường NGUOI_TAO
trong bảng.
o CURRENT_TIMESTAMP: Kiểu dữ liệu tương ứng với trường NGAY_TAO
trong bảng.
o V_CURSOR: Con trỏ REF_CURSOR dùng để trả về kết quả.

- Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào
bảng DANH_MUC_NHOM_HANH_VI_VI_PHAM.
o Hàm này sẽ chèn dữ liệu vào bảng
DANH_MUC_NHOM_HANH_VI_VI_PHAM với các thông tin tương
ứng từ các tham số đầu vào, sau đó gọi hàm GET_DETAIL để lấy thông tin
bản ghi vừa được thêm và trả về.

BCA-C08_XLVP_2023_DD Internal use Trang 223


Tài liệu thiết kế hệ thống V1.0

d.1.2.2.2.4. Xử lý ngoại lệ

- Bẫy lỗi ResourceNotExistedException xảy ra khi:


o Mã hành vi vi phạm không tồn tại trong hệ thống
- Bẫy lỗi ResourceExistedException xảy ra khi:
o Hành vi vi phạm đã tồn tại nhóm hành vi vi phạm
- Bẫy lỗi ResourceDuplicateException xảy ra khi:
o Tên hành vi vi phạm bị trùng

d.1.2.2.3. Chỉnh sửa nhóm hành vi vi phạm

d.1.2.2.3.1. API

Mô tả: Gọi API để chỉnh sửa căn cứ


Method URL
PUT xlvp/api/v1/danh-muc/nhom-hanh-vi-vi-pham/{ma}

d.1.2.2.3.2. Các tham số và giá trị trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã nhóm hành vi vi phạm
2 hanhViViPha List Tên hành vi vi phạm
m
3 trangThai Boolean Trạng thái của căn cứ
+ true : kích hoạt
+ false : không kích hoạt
4 linhVuc String Lĩnh vực nhóm hành vi vi phạm
Các giá trị trả về:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 ma String N Mã của nhóm hành vi vi
phạm

2 ten String X Tên của nhóm hành vi vi


phạm

3 linhVuc Interger N Lĩnh vực nhóm hành vi vi


phạm

BCA-C08_XLVP_2023_DD Internal use Trang 224


Tài liệu thiết kế hệ thống V1.0

4 trangThai Boolean N Trạng thái của hành vi vi


phạm

5 nguoiTao String X Người tạo nhóm hành vi vi


phạm

6 ngayTao Date X Thời gian tạo nhóm hành vi


vi phạm

7 nguoiSua String N Người sửa nhóm hành vi vi


phạm

8 ngaySua Date X Thời gian sửa nhóm hành vi


vi phạm

9 hanhViViPha List N Danh sách hành vi vi phạm


m

d.1.2.2.3.3. Mô tả chi tiết

Procedure:
Hàm UPDATE_NHOM_HANH_VI_VI_PHAM() được sử dụng để chỉnh sửa
thông tin một bản ghi tồn tại trong bảng DANH_MUC_NHOM_HANH_VI_VI_PHAM.
Hàm nhận các tham số đầu vào là thông tin cập nhật của bản ghi có mã văn bản pháp luật
là P_MA và trả về kết quả thông qua một con trỏ REF_CURSOR.
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]

1 P_MA VARCHAR2(10 N Mã của nhóm hành vi vi


CHAR phạm

2 P_TRANG_T NUMBER N Trạng thái của nhóm hành vi


HAI vi phạm

3 P_HANH_VI_ VARCHAR2(100 N Nội dung của hành vi vi


VI_PHAM 0 CHAR) phạm

4 P_LINH_VU NUMBER N Lĩnh vực của nhóm hành vi


C vi phạm

5 P_AUTH_US VARCHAR2(50 N Người sửa


ER_NAME CHAR)

6 V_CURSOR CURSOR X Trả về dòng dữ liệu văn bản


pháp luật vừa cập nhật

- Đầu vào:

BCA-C08_XLVP_2023_DD Internal use Trang 225


Tài liệu thiết kế hệ thống V1.0

o P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng.


o P_TRANG_THAI: Kiểu dữ liệu tương ứng với trường TRANG_THAI trong
bảng.
o P_HANH_VI_VI_PHAM: Kiểu dữ liệu tương ứng với trường NOI_DUNG
trong bảng DANH_MUC_HANH_VI_VI_PHAM.
o P_LINH_VUC: Kiểu dữ liệu tương ứng với trường LINH_VUC trong bảng.
o P_AUTH_USER_NAME: Kiểu dữ liệu tương ứng với trường NGUOI_SUA
trong bảng.
o V_CURSOR: Con trỏ REF_CURSOR dùng để trả về kết quả.

- Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được chỉnh sửa
trong bảng DANH_MUC_NHOM_HANH_VI_VI_PHAM.
Hàm này sẽ chỉnh sửa dữ liệu vào bản ghi có mã văn bản pháp luật tương ứng ở
trong bảng DANH_MUC_NHOM_HANH_VI_VI_PHAM với các thông tin được
truyền từ các tham số đầu vào, sau đó gọi hàm GET_DETAIL để lấy thông tin bản
ghi vừa được được chỉnh sửa và trả về.
Service:
- Kiểm tra xem NHVVP đã tồn tại trong bảng NHVVP hay chưa
- Gọi procedure UPDATE_NHOM_HANH_VI_VI_PHAM() để cập nhật lại
NHVVP mới
d.1.2.2.3.4. Xử lý ngoại lệ

- Bẫy lỗi ResourceNotExistedException xảy ra khi:


o Mã hành vi vi phạm không tồn tại trong hệ thống
- Bẫy lỗi ResourceExistedException xảy ra khi:
o Hành vi vi phạm đã tồn tại nhóm hành vi vi phạm muốn update

d.1.2.2.4. Xem chi tiết nhóm hành vi vi phạm

d.1.2.2.4.1. API

Mô tả: Gọi API để xem chi tiết nhóm hành vi vi phạm theo mã hành vi vi phạm.
Method URL
GET xlvp/api/v1/danh-muc/nhom-hanh-vi-pham/{ma}

d.1.2.2.4.2. Các tham số và giá trị trả về

Các tham số gửi lên gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 226


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Mô tả


1 ma String Mã nhóm hành vi vi phạm
Các giá trị trả về là:
Nhập / Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]

1 ma String N Mã của nhóm hành vi vi


phạm

2 ten String X Tên của nhóm hành vi vi


phạm

3 linhVuc Interger X Lĩnh vực nhóm hành vi vi


phạm

4 trangThai Boolean X Trạng thái của hành vi vi


phạm

5 nguoiTao String X Người tạo nhóm hành vi vi


phạm

6 ngayTao Date X Thời gian tạo nhóm hành vi


vi phạm

7 nguoiSua String X Người sửa nhóm hành vi vi


phạm

8 ngaySua Date X Thời gian sửa nhóm hành vi


vi phạm

9 hanhViViPha List X Danh sách hành vi vi phạm


m

d.1.2.2.4.3. Mô tả chi tiết

Procedure:
- Thêm tham số vào là mã nhóm hành vi vi phạm

- Kết quả trả về thông tin của nhóm hành vi vi phạm


STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]

3 V_MA VARCHAR2(10 N Mã nhóm hành vi vi phạm


CHAR) của danh mục hành vi vi
phạm

BCA-C08_XLVP_2023_DD Internal use Trang 227


Tài liệu thiết kế hệ thống V1.0

4 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa


lấy ra

Service
- Kiểm tra xem mã NHHVP tồn tại trong bảng NHHVP hay chưa
- Gọi procedure GET_BY_MA xử lý lấy lên NHHVP theo mã từ DB

d.1.2.2.4.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã căn cứ gửi lên không tồn tại trên hệ thống.
- Căn cứ đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.1.2.2.5. Xóa nhóm hành vi vi phạm

d.1.2.2.5.1. API

Mô tả: Gọi API để xóa nhóm hành vi vi phạm


Method URL
DELETE xlvp/api/v1/danh-muc/nhom-hanh-vi-vi-pham/{ma}

d.1.2.2.5.2. Các tham số và giá trị trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã nhóm hành vi vi phạm
Các giá trị trả về là:
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 ma String N Mã nhóm hành vi vi phạm
2 nguoiSua String N Thông tin người sửa
3 result Boolean X True: thành công
False: thất bại
d.1.2.2.5.3. Mô tả chi tiết

Procedure
STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 228


Tài liệu thiết kế hệ thống V1.0

[N/X]

1 P_MA_HHVP VARCHAR2(10 N Mã nhóm hành vi vi phạm


CHAR)

2 P_AUTH_US VARCHAR2(50 N Thông tin người sửa


ER CHAR)

- Đây là một thủ tục, không có giá trị trả về, nhưng sẽ cập nhật cột IS_DELETED
thành giá trị 1 để đánh dấu hành vi vi phạm đã bị xóa.
- Input:
o P_MA: Mã của nhóm hành vi vi phạm
o V_AUTH_USER: Tên người sửa cập nhật vào cột NGUOI_SUA.
- Output: NA

Service
- Kiểm tra xem mã NHVVP gửi lên có tồn tại trong bảng NHVVP hay không
- Gọi Procedure DELETE_BY_MA_NHOM_HVVP để cập nhật lại trang thái xóa
trong database
d.1.2.2.5.4. Xử lý ngoại lệ

- Bẫy lỗi ResourceCannotDeleteException xảy ra khi:

+Khi bản ghi không tồn tại trong hệ thống


d.1.2.2.6. Xuất Excel – Trả file Excel chứa danh sách căn cứu lọc theo nhiều tiêu chí

d.1.2.2.6.1. API

Mô tả: Gọi API để lấy thông tin chi tiết nhóm hành vi vi phạm
Method URL
GET xlvp/api/v1/danh-muc/nhom-hanh-viv-vi-pham/export/excel

d.1.2.2.6.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên nhóm hành vi vi phạm
2 ma String Mã nhóm hành vi vi phạm
3 trangThai Boolean Trạng thái của căn cứ
+ true : kích hoạt

BCA-C08_XLVP_2023_DD Internal use Trang 229


Tài liệu thiết kế hệ thống V1.0

+ false : không kích hoạt


4 linhVuc String Lĩnh vực nhóm hành vi vi phạm
Các giá trị trả về là:
Kết quả trả về là file Excel dạng byte[]
d.1.2.2.6.3. Mô tả chi tiết

Service:
- Gọi hàm PKG_CAN_CU.PAGE_NHOM_HVVP xử lý lấy danh sách nhóm hành
vi vi phạm từ database
- Xử lý trả ra file Excel dạng byte[]
Procedure:
- Hàm PKG_CAN_CU.PAGE_NHOM-HVVP là một thủ tục được sử dụng để lấy
thông tin nhóm hành vi vi phạm trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập / Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]

1 P_MA VARCHAR2(10 N Mã của nhóm hành vi vi


CHAR phạm

2 P_TEN VARCHAR2(255 N Tên của nhóm hành vi vi


CHAR) phạm

3 P_TRANG_T NUMBER N Trạng thái của nhóm hành vi


HAI vi phạm

4 P_LINH_VU NUMBER N Lĩnh vực của nhóm hành vi


C vi phạm

5 P_AUTH_US VARCHAR2(50 N Người sửa


ER_NAME CHAR)

6 V_CURSOR CURSOR X Trả về dòng dữ liệu văn bản


pháp luật vừa cập nhật

Hàm PKG_CAN_CU.PAGE_NHOM_HVVP là một thủ tục được sử dụng để tìm kiếm


các Nhóm Hành Vi Vi Phạm dựa trên các tiêu chí khác nhau.
- Input:
o P_MA: Mã nhóm hành vi vi phạm.
o P_TEN: Tên nhóm hành vi vi phạm.

BCA-C08_XLVP_2023_DD Internal use Trang 230


Tài liệu thiết kế hệ thống V1.0

o P_TRANG_THAI: Trạng thái nhóm hành vi vi phạm.


o P_LINH_VUC: Lĩnh vực nhóm hành vi vi phạm
o P_PAGE: Trang bắt đầu (ở đây là 0).
o P_PAGE_SIZE: Số bản ghi của trang (toàn bộ bản ghi).
- Output:
o V_CURSOR: con trỏ tham chiếu đến kết quả tìm kiếm nhóm hành vi vi
phạm theo điều kiện.
Kết quả trả về của thủ tục bao gồm một danh sách các Nhóm Hành Vi Vi Phạm được
tìm thấy, phù hợp với các tiêu chí tìm kiếm được cung cấp. Các kết quả được phân trang
và sắp xếp theo ngày sửa Nhóm Hành Vi Vi Phạm.
d.1.2.2.6.4. Xử lý ngoại lệ

Các xử lý ngoại lệ được dùng chung toàn bộ dự án


d.2. Danh mục nơi cấp giấy tờ
d.2.1. Mục đích

- Quản lý danh mục Nơi cấp giấy tờ


- Chức năng quản lý danh mục Nơi cấp giấy tờ gồm:
o Tìm kiếm NCGT
o Xem chi tiết NCGT
o Thêm mới NCGT
o Sửa NCGT
o Xóa NCGT
o Thêm mới NCLGT
o Xóa NCLGT

BCA-C08_XLVP_2023_DD Internal use Trang 231


Tài liệu thiết kế hệ thống V1.0

d.2.2. Chi tiết từng mục

d.2.2.1. Thiết kế dữ liệu

d.2.2.1.1. Mô hình quan hệ dữ liệu

d.2.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


3 NOI_CAP_GIAY_TO Bảng lưu trữ danh mục NCGT
4 NOI_CAP_LOAI_GIAY_TO Bảng lưu trữ danh mục NCLGT
d.2.2.1.3. Chi tiết các bảng

d.2.2.1.3.1. Bảng NOI_CAP_GIAY_TO

Bắt P/F
Mặc
STT Tên trường Kiểu dữ liệu buộc Key Mô tả
định
? ?
1 MA VARCHAR2( x Mã NCGT
255 CHAR)
2 TEN NUMBER(1) x Tên NCGT
3 DIA_CHI VARCHAR2( x Địa chỉ NCGT

BCA-C08_XLVP_2023_DD Internal use Trang 232


Tài liệu thiết kế hệ thống V1.0

500 CHAR)
4 DIEN_THOA VARCHAR2( Điện thoại của NCGT
I 250 CHAR)
5 EMAIL VARCHAR2( Email NCGT
255 CHAR)
6 GHI_CHU VARCHAR(1 Ghi chú
000 CHAR)
7 TRANG_TH NUMBER(1, x 1 Trạng thái của NCGT
AI 0) (1: Kích hoạt, 0:
Không kích hoạt)
8 NGUOI_TA VARCHAR2( Người tạo
O 50 CHAR)
9 NGAY_TAO DATE CURRE Ngày tạo
NT_TIM
ESTAM
P
10 NGUOI_SUA VARCHAR2( Người sửa
50 CHAR)
11 NGAY_SUA DATE Ngày sửa
12 IS_DELETE NUMBER(1, x 0 Trạng thái xóa(1: đã
D 0) xóa, 0: chưa xóa)
13 MA_DIA_D VARCHAR2( Mã địa danh hành
ANH_HANH 50 BYTE) chính
_CHINH
14 IS_DON_VI_ NUMBER(1, NCGT có phải là đơn
CSGT 0) vị csgt hay không?
(1: Có, 2: Không)

a) Các ràng buộc


Tên cột Nội dung
MA Khóa chính, Mã của NCGT không được để trống

BCA-C08_XLVP_2023_DD Internal use Trang 233


Tài liệu thiết kế hệ thống V1.0

TEN Tên của NCGT không được để trống


DIA_CHI Địa chỉ không được để trống
TRANG_THAI Trạng thái không được để trống
IS_DELETED Trạng thái xóa không được để trống
a) Index
NA
b) Trigger
NA
c) Packages
PKG_NOI_CAP_GIAY_TO
c.1.2.1.1.1. Bảng NOI_CAP_LOAI_GIAY_TO

Bắt P/F Mặc


STT Tên trường Kiểu dữ liệu Diễn giải
buộc? Key? định
1 MA_NOI_CAP VARCHAR2(100 Mã của NCGT
BYTE)
2 MA_GIAY_TO VARCHAR2(50 Mã loại giấy tờ
BYTE)
a) Các ràng buộc
NA
b) Index
NA
c) Trigger
NA
d) Packages
PKG_NOI_CAP_GIAY_TO

BCA-C08_XLVP_2023_DD Internal use Trang 234


Tài liệu thiết kế hệ thống V1.0

d.1.2.1. Thiết kế màn hình

d.1.2.1.1. Màn hình xem danh sách, tìm kiếm nơi cấp giấy tờ

d.1.2.1.1.1. Giao diện

Hình 32: Màn hình danh sách Nơi cấp giấy tờ


d.1.2.1.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
STT Tên label Tên thành Bắt Định Vai trò
phần / buộc dạng
Control nhập
Form tìm kiếm/lọc dữ liệu danh mục
1 Tìm kiếm nhanh timKiemNhan Textbox Nhập thông tin Loại
h tang vật hoặc Nơi cấp
giấy tờ
2 Loại giấy tờ maGiayTo Dropdo Chọn loại giấy tờ
wnlist
3 Mã nơi cấp giấy ma Textbox Nhập mã nơi cấp giấy
tờ tờ
4 Nơi cấp giấy tờ ten Textbox Nhập tên nơi cấp giấy
tờ
5 Địa chỉ diaChi Textbox Nhập địa chỉ nơi cấp
giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 235


Tài liệu thiết kế hệ thống V1.0

6 Tỉnh/Thành phố maTinhThanh Dropdo Chọn Tỉnh/thành phố


wnlist
7 Quận/huyện maQuanHuyen Dropdo Chọn Quận/huyện
wnlist Disabled khi chưa chọn
Tỉnh/ thành phố
8 Trạng thái trangThai Dropdo Chọn trạng thái của nơi
wnlist cấp giấy tờ
Danh sách dữ liệu danh mục
9 Loại giấy tờ maLoaiGiayT Text Hiển thị loại giấy tờ của
o nơi cấp giấy tờ
-
Hiển thị nhiều loại giấy
tờ
10 Tên nơi cấp giấy ten Text Hiển thị tên nơi cấp
-
tờ giấy tờ
11 Địa chỉ diaChi Text Hiển thị địa chỉ nơi cấp
-
giấy tờ
12 Trạng thái trangThai - Text Hiển thị trạng thái của
nơi cấp giấy tờ
13 Ngày sửa gần ngaySua - Text Hiển thị ngày chỉnh sửa
nhất gần nhất
14 Cán bộ sửa gần nguoiSua - Text Hiển thị người chỉnh
nhất sửa gần nhất

d.1.2.1.1.3. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Chọn menu Danh mục/Nơi cấp giấy tờ → Xem thông
tin danh sách danh mục nơi cấp giấy tờ.
Màn hình hiển thị như hình 1.
2 Select_TinhThanhPh Xóa dữ liệu trường “Quận/ Huyện” trong Form tìm
o kiếm/lọc dữ liệu danh mục
3 BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh

BCA-C08_XLVP_2023_DD Internal use Trang 236


Tài liệu thiết kế hệ thống V1.0

mục → Click Tìm kiếm.


Hệ thống tìm kiếm danh mục theo thông tin vừa nhập
→ Màn hình hiển thị danh sách danh mục thỏa mãn bộ
lọc.
4 BtnReset_Click Click nút Thiết lập lại.
Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin
đã nhập và hoàn tác về trạng thái mặc định ban đầu.
5 BtnCollapse/ Click nút Thu hẹp/Mở rộng.
BtnExtend_Click Thu hẹp/Mở rộng Form tìm kiếm/lọc dữ liệu danh mục.
6 BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới danh mục nơi
cấp giấy tờ (Giao diện II.3.2).
7 BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh
sách.
Màn hình chuyển đến trang Chỉnh sửa danh mục nơi
cấp giấy tờ tương ứng với bản ghi (Giao diện II.3.3).
8 BtnView_Click Click nút Xem chi tiết ở cuối mỗi bản ghi trong danh
sách.
Màn hình chuyển đến trang Xem chi tiết danh mục nơi
cấp giấy tờ tương ứng với bản ghi (Giao diện II.3.4).
9 BtnDelete_Click Click nút Xóa ở cuối mỗi bản ghi trong danh sách →
Chọn Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình reload và
cập nhật lại danh sách danh mục.
d.1.2.1.1.4. Bảng dữ liệu sử dụng

Tên bảng Kiểu


Insert Update Delete Query
NOI_CAP_GIAY_TO X X
d.1.2.1.2. Thêm mới nơi cấp giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 237


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.2.1. Giao diện

Hình 33: Màn hình thêm mới danh mục Nơi cấp giấy tờ
d.1.2.1.2.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
STT Tên label Tên thành Bắt Định Vai trò
phần / buộc dạng
Control nhập
Form thêm mới dữ liệu nơi cấp giấy tờ
1 Nơi cấp là Đơn vị isDonViCsgt X Chexbox Tích chọn Nơi cấp là
CSGT đơn vị CSGT
2 Đơn vị CSGT maDonViCsgt C Cascader Chọn đơn vị CSGT khi
tương ứng nơi cấp là Đơn vị
CSGT
Bắt buộc chọn nếu Nơi
cấp là đơn vị CSGT
3 Mã nơi cấp giấy ma C Textbox Nhập mã nơi cấp giấy
tờ tờ
Nếu nơi cấp là Đơn vị
CSGT: hiển thị theo mã
Đơn vị CSGT đã chọn
(disabled)

BCA-C08_XLVP_2023_DD Internal use Trang 238


Tài liệu thiết kế hệ thống V1.0

4 Tên nơi cấp giấy ten C Textbox Nhập tên nơi cấp giấy
tờ tờ
Nếu nơi cấp là Đơn vị
CSGT: hiển thị theo mã
tên viết tắt của đơn vị
CSGT đã chọn
(disabled)
5 Địa danh hành maDiaDanhH C Cascader Chọn địa danh hành
chính anhChinh chính của nơi cấp giấy
tờ
Nếu nơi cấp là Đơn vị
CSGT: Hiển thị theo
Địa danh hành chính
của Đơn vị CSGT đã
chọn (disabled)
6 Địa chỉ diaChi Textbox Nhập địa chỉ của nới
cấp giấy tờ
Nếu nơi cấp là Đơn vị
CSGT: Hiển thị theo
địa chỉ chi tiết của Đơn
vị CSGT đã chọn
(disabled)
7 Số điện thoại soDienThoai Textbox Nhập số điện thoại của
nơi cấp giấy tờ
Nếu Nơi cấp là Đơn vị
CSGT: Hiển thị theo số
điện thoại của Đơn vị
CSGT đã chọn
(disabled)
8 Email Email Textbox Nhập emial của nơi cấp
giấy tờ
Nếu Nơi cấp là Đơn vị
CSGT: Hiển thị theo
email của Đơn vị CSGT

BCA-C08_XLVP_2023_DD Internal use Trang 239


Tài liệu thiết kế hệ thống V1.0

đã chọn (disabled) Nếu


Nơi cấp là Đơn vị
CSGT: Hiển thị theo
email của Đơn vị CSGT
đã chọn (disabled)

9 Loại giấy tờ maLoaiGiayT X Dropdow Chọn loại giấy tờ của


o nlist nơi cấp giấy tờ
Cho phép chọn nhiều
10 Ghi chú ghiChu Textbox Nhập ghi chú
trangThai X Switch Chọn trạng thái nơi cấp
11 Trạng thái
giấy tờ
d.1.2.1.2.3. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Click nút Thêm mới tại màn hình danh sách Danh mục nơi
cấp giấy tờ → Màn hình chuyển đến màn Thêm mới
Màn hình hiển thị như hình 2.
2 BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu danh mục →
Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu thỏa
mãn → lưu danh mục theo thông tin vừa nhập → Màn hình
chuyển đến màn xem chi tiết danh mục vừa thêm mới.
3 BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu thỏa
mãn → lưu danh mục theo thông tin vừa nhập → Màn hình
chuyển đến màn xem danh sách danh mục.

d.1.2.1.2.4. Bảng dữ liệu sử dụng

Tên bảng Kiểu


Insert Update Delete Query
NOI_CAP_GIAY_TO X

BCA-C08_XLVP_2023_DD Internal use Trang 240


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.2.5. Kiểm soát dữ liệu/các ràng buộc

STT Tên Điều kiện


1 Đơn vị cảnh sát Bắt buộc chọn nếu nơi cấp giấy tờ là Đơn vị CSGT
giao thông tương
ứng
2 Mã nơi cấp giấy tờ - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển
thị theo mã của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Bắt buộc nhập, độ dài
tối đa 15 ký tự
3 Tên nơi cấp giấy tờ - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển
thị theo Tên viết tắt của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Bắt buộc nhập, độ dài
tối đa 255 ký tự
4 Địa danh hành - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển
chính thị theo địa danh hành chính của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Bắt buộc nhập
5 Địa chỉ - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển
thị theo địa chỉ của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Cho phép nhập, độ
dài tối đa 255 ký tự
6 Số điện thoại - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển
thị theo số điện thoại của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Cho phép nhập, độ
dài tối đa 255 ký tự
7 Email - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển
thị theo mã của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Cho phép nhập, độ
dài tối đa 50 ký tự
8 Loại giấy tờ Bắt buộc chọn
9 Ghi chú Độ dài tối đa không quá 500 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 241


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.3. Chỉnh sửa nơi cấp giấy tờ

d.1.2.1.3.1. Giao diện

Hình 34: Chỉnh sửa danh mục Nơi cấp giấy tờ


d.1.2.1.3.2. Danh sách control/thành phần giao diện

STT Tên label Tên Bắt Định dạng Vai trò


thành buộc
phần / nhập?
Control
Form chỉnh sửa dữ liệu danh mục
1 Nơi cấp là Đơn isDonViC X Checkbox Tích chọn Nơi cấp là đơn
vị CSGT sgt vị CSGT
2 Đơn vị CSGT maDonVi C Cascader Chọn đơn vị CSGT khi
tương ứng Csgt nơi cấp là Đơn vị CSGT
Bắt buộc chọn nếu Nơi
cấp là đơn vị CSGT
3 Mã nơi cấp ma C Textbox Nhập mã nơi cấp giấy tờ
giấy tờ Nếu nơi cấp là Đơn vị
CSGT: hiển thị theo mã
Đơn vị CSGT đã chọn
(disabled)
4 Tên nơi cấp ten C Textbox Nhập tên nơi cấp giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 242


Tài liệu thiết kế hệ thống V1.0

giấy tờ Nếu nơi cấp là Đơn vị


CSGT: hiển thị theo mã
tên viết tắt của đơn vị
CSGT đã chọn (disabled)
5 Địa danh hành maDiaDa C Cascader Chọn địa danh hành
chính nhHanhC chính của nơi cấp giấy tờ
hinh Nếu nơi cấp là Đơn vị
CSGT: Hiển thị theo Địa
danh hành chính của Đơn
vị CSGT đã chọn
(disabled)
6 Địa chỉ diaChi Textbox Nhập địa chỉ của nới cấp
giấy tờ
Nếu nơi cấp là Đơn vị
CSGT: Hiển thị theo địa
chỉ chi tiết của Đơn vị
CSGT đã chọn (disabled)
7 Số điện thoại soDienTh Textbox Nhập số điện thoại của
oai nơi cấp giấy tờ
Nếu Nơi cấp là Đơn vị
CSGT: Hiển thị theo số
điện thoại của Đơn vị
CSGT đã chọn (disabled)
8 Email Email Textbox Nhập emial của nơi cấp
giấy tờ
Nếu Nơi cấp là Đơn vị
CSGT: Hiển thị theo
email của Đơn vị CSGT
đã chọn (disabled) Nếu
Nơi cấp là Đơn vị CSGT:
Hiển thị theo email của
Đơn vị CSGT đã chọn
(disabled)
9 Loại giấy tờ maLoaiGi X Dropdownl Chọn loại giấy tờ của nơi

BCA-C08_XLVP_2023_DD Internal use Trang 243


Tài liệu thiết kế hệ thống V1.0

ayTo ist cấp giấy tờ


Cho phép chọn nhiều
10 Ghi chú ghiChu Textbox Nhập ghi chú
11 Trạng thái trangThai X Switch Chọn trạng thái nơi cấp
giấy tờ

d.1.2.1.3.3. Xử lý sự kiện

Các sự kiện cần xử lý:


Sự kiện Quy trình
Page_Load Cách 1: Click nút Chỉnh sửa ở cuối mỗi bản ghi tại màn
hình danh sách Danh mục nơi cấp giấy tờ → Màn hình
chuyển đến màn Chỉnh sửa.
Cách 2: Click nút Chỉnh sửa tại màn hình chi tiết Danh
mục nơi cấp giấy tờ → Màn hình chuyển đến màn Chỉnh
sửa.
Màn hình hiển thị như hình 3.
BtnSave_Click Nhập thông tin trong Form chỉnh sửa dữ liệu danh mục
→ Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
chỉnh sửa.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục.

BCA-C08_XLVP_2023_DD Internal use Trang 244


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.3.4. Kiểm soát dữ liệu/các ràng buộc

ST Tên Điều kiện


T

1 Đơn vị cảnh sát giao Bắt buộc chọn nếu nơi cấp giấy tờ là Đơn vị CSGT
thông tương ứng

2 Mã nơi cấp giấy tờ - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển thị theo
mã của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Bắt buộc nhập, độ dài tối đa
15 ký tự

3 Tên nơi cấp giấy tờ - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển thị theo
Tên viết tắt của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Bắt buộc nhập, độ dài tối đa
255 ký tự

4 Địa danh hành chính - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển thị theo
địa danh hành chính của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Bắt buộc nhập

5 Địa chỉ - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển thị theo
địa chỉ của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Cho phép nhập, độ dài tối đa
255 ký tự

6 Số điện thoại - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển thị theo
số điện thoại của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Cho phép nhập, độ dài tối đa
255 ký tự

7 Email - Nơi cấp là Đơn vị CSGT: Không cho phép nhập, hiển thị theo
mã của Đơn vị CSGT đã chọn
- Nơi cấp không là Đơn vị CSGT: Cho phép nhập, độ dài tối đa
50 ký tự

8 Loại giấy tờ Bắt buộc chọn

9 Ghi chú Độ dài tối đa không quá 500 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 245


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.4. Xem chi tiết nơi cấp giấy tờ

d.1.2.1.4.1. Giao diện

Hình 35: Màn hình xem chi tiết nơi cấp giấy tờ
d.1.2.1.4.2. Danh sách control/thành phần giao diện

STT Tên label Tên thành Bắt Định dạng Vai trò
phần / buộc
Control nhập
Form tìm kiếm/lọc dữ liệu danh mục
1 Nơi cấp là Đơn vị isDonViCsgt Checkbox Hiển thị Nơi cấp là
CSGT đơn vị CSGT
2 Đơn vị CSGT maDonViCsgt Cascader Hiển thị đơn vị
tương ứng CSGT khi nơi cấp
là Đơn vị CSGT
3 Mã nơi cấp giấy ma Textbox Hiển thị mã nơi
tờ cấp giấy tờ
4 Tên nơi cấp giấy ten Textbox Hiển thị tên nơi
tờ cấp giấy tờ
5 Địa danh hành maDiaDanhHa Cascader Hiển thị địa danh
chính nhChinh hành chính của nơi
cấp giấy tờ
6 Địa chỉ diaChi Textbox Hiển thị địa chỉ

BCA-C08_XLVP_2023_DD Internal use Trang 246


Tài liệu thiết kế hệ thống V1.0

của nới cấp giấy tờ


7 Số điện thoại soDienThoai Textbox Hiển thị số điện
thoại của nơi cấp
giấy tờ
8 Email Email Textbox Hiển thị emial của
nơi cấp giấy tờ
9 Loại giấy tờ maLoaiGiayT Dropdownli Hiển thị loại giấy
o st tờ của nơi cấp giấy
tờ
10 Ghi chú ghiChu Textbox Hiển thị ghi chú
11 Trạng thái trangThai Switch Hiển thị trạng thái
nơi cấp giấy tờ

d.1.2.1.4.3. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục nơi cấp giấy tờ → Màn hình chuyển
đến màn Xem chi tiết.
Màn hình hiển thị như hình 4.
2 BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh
sách danh mục.

d.1.2.1.4.4. Kiểm soát dữ liệu/các ràng buộc

Tên Điều kiện


Tất cả các trường Readonly, không cho phép nhập

BCA-C08_XLVP_2023_DD Internal use Trang 247


Tài liệu thiết kế hệ thống V1.0

d.1.2.2. Thiết kế các hàm, thủ tục

d.1.2.2.1. Tìm kiếm Nơi cấp giấy tờ

d.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách nơi cấp giấy tờ theo nhiều tiêu chí tìm kiếm
Method URL
GET xlvp/api/v1/danh-muc/noi-cap-giay-to?

d.1.2.2.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 timKiemNhanh String Chuỗi tìm kiếm nhanh
2 maGiayTo String Mã loại giấy tờ
3 ma String Mã NCGT
4 ten String Tên NCGT
5 diaChi String Địa chỉ NCGT
6 trangThai Boolean Trạng thái của NCGT
7 page Int Trang hiện tại
8 pageSize Int Dữ liệu trên một trang
Các giá trị trả về:

STT Tham số Kiểu dữ Mô tả


liệu
1 ma String Mã NCGT
2 ten String Tên NCGT
3 maLoaiGiayTo List<String> Danh sách mã loại giấy tờ
4 trangThai Boolean Trạng thái
5 diaChi String Địa chỉ NCGT
6 nguoiSua String Người sửa
7 ngaySua Date Ngày sửa

BCA-C08_XLVP_2023_DD Internal use Trang 248


Tài liệu thiết kế hệ thống V1.0

d.1.2.2.1.3. Mô tả chi tiết

Service:
- Gọi procedure SEARCH() để lấy ra danh sách NCGT theo điều kiện truyền vào từ
đầu vào
Procedure:
- Hàm SEARCH() được sử dụng để lấy danh sách nơi cáp giấy tờ theo các điều kiện
tìm kiếm được cung cấp. Kết quả trả về được sắp xếp theo ngày tạo mới nhất. Đây là
một thủ tục, không có giá trị trả về, nhưng nó sẽ trả về một con trỏ tham chiếu trỏ đến
danh sách nơi cấp giấy tờ.
- Đầu vào:
o P_TIM_KIEM_NHANH: Chuỗi tìm kiếm thông tin của tên nơi cấp giấy tờ
o P_MA: Mã nơi cấp giấy tờ
o P_MA_GIAY_TO: Mã loại giấy tờ.
o P_TEN: Tên nơi cấp giấy tờ.
o P_DIA_CHI: Địa chỉ nơi cấp giấy tờ.
o P_TRANG_THAI: Trạng thái kích hoạt của nơi cấp giấy tờ
o P_PAGE_NUMBER: Trang hiện tại của danh sách nơi cấp giấy tờ
o P_PAGE_SIZE: Số bản ghi trên một trang
- Đầu ra:
o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các nơi cấp giấy
tờ tìm kiếm được. Các thông tin bao gồm tất cả các trường trong bảng
NOI_CAP_GIAY_TO kết hợp với bảng NOI_CAP_LOAI_GIAY_TO được
lấy giữa 2 bảng theo mã nơi cấp giấy tờ. Các nơi cấp giấy tờ được sắp xếp theo
ngày tạo mới nhất.
Các giá trị nhập vào và trả ra gồm:

Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
1 P_MA VARCHAR2(100 N Mã nơi cấp giấy tờ
CHAR)
2 P_TIM_KIEM_NHANH VARCHAR2(255 N Chuỗi tìm kiếm nhanh
CHAR)
3 P_MA_GIAY_TO VARCHAR2(50 N Mã loại giấy tờ

BCA-C08_XLVP_2023_DD Internal use Trang 249


Tài liệu thiết kế hệ thống V1.0

CHAR)
4 P_TEN VARCHAR2(255 N Tên nơi cấp giấy tờ
CHAR)
5 P_DIA_CHI VARCHAR2(500 N Địa chỉ
CHAR)
6 P_TRANG_THAI NUMBER(1,0) N Trạng thái kích hoạt
nơi cấp giấy tờ
7 P_PAGE_NUMBER NUMBER N Trang hiện tại
8 P_PAGE_SIZE NUMBER N Dữ liệu trên một trang
9 V_CURSOR CURSOR X Con trỏ tham chiếu
đến danh sách nơi cấp
giấy tờ tìm được
Kết quả trả về của thủ tục bao gồm một danh sách các Nơi cấp giấy tờ được tìm
thấy, phù hợp với các tiêu chí tìm kiếm được cung cấp. Các kết quả được phân trang và
sắp xếp theo ngày sửa Nơi cấp giấy tờ.
d.1.2.2.1.4. Xử lý ngoại lệ

d.1.2.2.2. Xem chi tiết Nơi cấp giấy tờ

d.1.2.2.2.1. API

Mô tả: Gọi API để xem chi tiết nơi cấp giấy tờ


Method URL
GET xlvp/api/v1/danh-muc/noi-cap-giay-to/{ma}

d.1.2.2.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã nơi cấp giấy tờ

Các giá trị trả về là:


Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã NCGT

BCA-C08_XLVP_2023_DD Internal use Trang 250


Tài liệu thiết kế hệ thống V1.0

2 ten String Tên NCGT


3 maLoaiGiayTo List<String> Danh sách mã loại giấy tờ
4 trangThai Boolean Trạng thái
5 diaChi String Địa chỉ NCGT
6 nguoiSua String Người sửa
7 ngaySua Date Ngày sửa
8 dienThoai String Số điện thoại của NCGT
9 email String Email của NCGT
10 ghiChu String Ghi chú của NCGT
11 maDiaDanhHanhChinh String Mã địa danh hành chính của NCGT
12 isDonViCsgt Boolean NCGT là đơn vị csgt hay không
13 nguoiTao String Người tạo
14 ngayTao Date Ngày tạo
d.1.2.2.2.3. Mô tả chi tiết

Service:
- Kiểm tra xem mã NCGT tồn tại trong bảng NOI_CAP_GIAY_TO hay chưa
- Gọi procedure GET_BY_MA xử lý lấy lên NCGT theo mã từ DB

Procedure:
- Thêm tham số vào là mã nơi cấp giấy tờ

- Đầu vào:

o P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng


NOI_CAP_GIAY_TO.
- Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được lấy ra

- Kết quả trả về thông tin của Nơi cấp giấy tờ gồm các trường như bảng bên dưới
Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả


[N/X]

BCA-C08_XLVP_2023_DD Internal use Trang 251


Tài liệu thiết kế hệ thống V1.0

1 P_MA VARCHAR2(100 N Mã nơi cấp giấy tờ


CHAR)
2 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa
lấy ra
Kết quả trả về của thủ tục gồm thông tin của NCGT được tìm thấy theo mã NCGT.
d.1.2.2.2.4. Xử lý ngoại lệ

- Bẫy lỗi ResourceDoesNotExistException khi


o Mã nơi cấp giấy tờ không tồn tại trong hệ thống

d.1.2.2.3. Thêm mới Nơi cấp giấy tờ

d.1.2.2.3.1. API

Mô tả: Gọi API để thêm mới nơi cấp giấy tờ


Method URL
POST xlvp/api/v1/danh-muc/noi-cap-giay-to

d.1.2.2.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên của nơi cấp giấy tờ
2 ma String Mã của nơi cấp giấy tờ
3 diaChi String Địa chỉ
4 dienThoai String Số điện thoại
5 email String Email
6 ghiChu String Ghi chú

7 trangThai Boolean Trạng thái của nơi cấp giấy tờ (1:


Kích hoạt, 0: Không kích hoạt)
8 maDiaDanhHanhChinh String Mã địa danh hành chính
9 isDonViCsgt Boolean Nơi cấp giấy tờ là đơn vị csgt
hay không (1: có, 0: không)
10 maLoaiGiayTo List Danh sách mã loại giấy tờ
Các giá trị trả về:

BCA-C08_XLVP_2023_DD Internal use Trang 252


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu Mô tả


dữ liệu
1 ma String Mã nơi cấp giấy tờ
2 ten String Tên nơi cấp giấy tờ
3 maLoaiGiayTo List Danh sách mã loại giấy tờ
4 trangThai Boolean Trạng thái của nơi cấp giấy tờ (true: kích
hoạt, false: không kích hoạt)
5 nguoiSua String Người sửa
6 ngaySua Date Ngày sửa
7 diaChi String Địa chỉ
8 dienThoai String Số điện thoại
9 email String Email
10 ghiChu String Ghi chú
11 nguoiTao String Người tạo
12 ngayTao Date Ngày tạo
13 maDiaDanhHanhChinh String Mã địa danh hành chính
14 isDonViCsgt Boolean Nơi cấp giấy tờ có phải đơn vị csgt hay
không (true: có, false: không)

d.1.2.2.3.3. Mô tả chi tiết

Service:
- Kiểm tra xem NCGT đã tồn tại trong bảng NCGT chưa?
- Kiểm tra xem NCGT có phải là đơn vị csgt hay không?
o Nếu có: kiểm tra mã NCGT gửi xuống có tồn tại trong đơn vị csgt hay không?
Nếu tồn tại thì thực hiện gán các thông tin mã địa danh hành chính, địa chỉ,
điện thoại, email theo địa chỉ đơn vị csgt đầu tiên ứng với mã NCGT trên
o Nếu không: kiểm tra mã NCGT có phải là mã của đơn vị csgt hay không? Nếu
không phải là mã của đơn vị csgt thì kiểm tra tiếp trong bảng
NOI_CAP_GIAY_TO xem đã tồn tại hay chưa
- Kiểm tra mã địa danh hành chính xem đã tồn tại hay chưa?

BCA-C08_XLVP_2023_DD Internal use Trang 253


Tài liệu thiết kế hệ thống V1.0

- Từ mã NCGT bên trên và danh sách mã loại giấy tờ thực hiện gọi procedure
CREATE_NOI_CAP_LOAI_GIAY_TO để lưu thông tin NCLGT vào bảng
NOI_CAP_LOAI_GIAY_TO
- Gọi procedure CREATE_ITEM để lưu thông tin NCGT mới

Procedure:
- Hàm CREATE_ITEM được sử dụng để thêm một bản ghi mới vào bảng
NOI_CAP_GIAY_TO. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
- Đầu vào:

o P_TEN: Kiểu dữ liệu tương ứng với trường TEN trong bảng.

o P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng.

o P_DIA_CHI: Kiểu dữ liệu tương ứng với trường DIA_CHI trong bảng.

o P_DIEN_THOAI: Kiểu dữ liệu tương ứng với trường DIEN_THOAI trong


bảng.
o P_EMAIL: Kiểu dữ liệu tương ứng với trường EMAIL trong bảng.

o P_GHI_CHU: Kiểu dữ liệu tương ứng với trường GHI_CHU trong bảng.

o P_TRANG_THAI: Kiểu dữ liệu tương ứng với trường TRANG_THAI


trong bảng.
o P_NGUOI_TAO: Kiểu dữ liệu tương ứng với trường NGUOI_TAO trong
bảng.
o P_MA_DDHC: Kiểu dữ liệu tương ứng với trường
MA_DIA_DANH_HANH_CHINH trong bảng.
o P_IS_DVCSGT: Kiểu dữ liệu tương ứng với trường IS_DON_VI_CSGT
trong bảng.
- Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào
bảng NOI_CAP_GIAY_TO.
Hàm này sẽ chèn dữ liệu vào bảng NOI_CAP_GIAY_TO với các thông tin tương ứng từ
các tham số đầu vào, sau đó gọi hàm GET_BY_MA để lấy thông tin bản ghi vừa được
thêm và trả về.
Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 254


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Nhập / Mô tả


Xuất
[N/X]
1 P_TEN VARCHAR2(255 N Tên của nơi cấp giấy tờ
CHAR)
2 P_MA VARCHAR2(100 N Mã của nơi cấp giấy tờ
CHAR)
3 P_DIA_CHI VARCHAR2(500 N Địa chỉ
CHAR
4 P_DIEN_THOAI VARCHAR2(250 N Số điện thoại
CHAR)
5 P_EMAIL VARCHAR2(255 N Email
CHAR)
6 P_GHI_CHU VARCHAR2(1000 N Ghi chú
CHAR
7 P_TRANG_THAI NUMBER(1,0) N Trạng thái của nơi cấp
giấy tờ (1: Kích hoạt, 0:
Không kích hoạt)
8 P_NGUOI_TAO VARCHAR2(50 N Người tạo nơi cấp giấy
CHAR tờ
9 P_MA_DDHC VARCHAR2(50 N Mã địa danh hành chính
CHAR)
10 P_IS_DVCSGT NUMBER(1,0) N Nơi cấp giấy tờ là đơn vị
csgt hay không (1: có, 0:
không)
11 V_CURSOR CURSOR X Trả về dòng dữ liệu nơi
cấp giấy tờ vừa tạo
d.1.2.2.3.4. Xử lý ngoại lệ

- Bẫy lỗi ConstaintViolationException xảy ra khi:

o Mã NCGT: rỗng hoặc không tồn tại trong bảng NOI_CAP_GIAY_TO

o Danh sách mã loại giấy tờ: rỗng hoặc mã giấy tờ không tồn tại trong hệ
thống
BCA-C08_XLVP_2023_DD Internal use Trang 255
Tài liệu thiết kế hệ thống V1.0

o Tên NCGT: rỗng hoặc vượt quá 255 kí tự

o Địa chỉ: nhiều hơn 255 kí tự

o Email: nhiều hơn 50 kí tự

o Ghi chú: nhiều hơn 500 kí tự

o Trạng thái: null

o Nơi cấp giấy tờ là đv csgt hay không: null

- Bẫy lỗi ResourceExistedException xảy ra khi:

o Mã NCGT đã tồn tại trong hệ thống

- Bẫy lỗi ResourceDoesNotExistException:

o Đơn vị csgt không tồn tại trong hệ thống

o Mã địa danh hành chính không tồn tại trong hệ thống

- Bẫy lỗi ResourceDuplicateException:


o Nơi cấp giấy tờ không phải là đơn vị CSGT nhưng có mã trùng lặp với đơn vị
CSGT
d.1.2.2.4. Sửa Nơi cấp giấy tờ

d.1.2.2.4.1. API

Mô tả: Gọi API để lấy cập nhật thông tin nơi cấp giấy tờ
Method URL
PUT xlvp/api/v1/danh-muc/noi-cap-giay-to/{ma}

d.1.2.2.4.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên của nơi cấp giấy tờ
2 diaChi String Địa chỉ
3 dienThoai String Số điện thoại
4 email String Email
5 ghiChu String Ghi chú

6 trangThai Boolean Trạng thái của nơi cấp giấy tờ (1:

BCA-C08_XLVP_2023_DD Internal use Trang 256


Tài liệu thiết kế hệ thống V1.0

Kích hoạt, 0: Không kích hoạt)


7 maDiaDanhHanhChinh String Mã địa danh hành chính
8 isDonViCsgt Boolean Nơi cấp giấy tờ là đơn vị csgt
hay không (1: có, 0: không)
9 maLoaiGiayTo List Danh sách mã loại giấy tờ
Các giá trị trả về là:
STT Tham số Kiểu Mô tả
dữ liệu
1 ma String Mã nơi cấp giấy tờ
2 ten String Tên nơi cấp giấy tờ
3 maLoaiGiayTo List Danh sách mã loại giấy tờ
4 trangThai Boolean Trạng thái của nơi cấp giấy tờ (true: kích
hoạt, false: không kích hoạt)
5 nguoiSua String Người sửa
6 ngaySua Date Ngày sửa
7 diaChi String Địa chỉ
8 dienThoai String Số điện thoại
9 email String Email
10 ghiChu String Ghi chú
11 nguoiTao String Người tạo
12 ngayTao Date Ngày tạo
13 maDiaDanhHanhChinh String Mã địa danh hành chính
14 isDonViCsgt Boolean Nơi cấp giấy tờ có phải đơn vị csgt hay
không (true: có, false: không)
d.1.2.2.4.3. Mô tả chi tiết

Service:
- Kiểm tra xem NCGT đã tồn tại trong bảng NCGT chưa
- Kiểm tra xem NCGT có phải là đơn vị csgt hay không?

o Nếu có: kiểm tra mã NCGT gửi xuống có tồn tại trong đơn vị csgt hay

BCA-C08_XLVP_2023_DD Internal use Trang 257


Tài liệu thiết kế hệ thống V1.0

không? Nếu tồn tại thì thực hiện gán các thông tin mã địa danh hành chính,
địa chỉ, điện thoại, email theo địa chỉ đơn vị csgt đầu tiên ứng với mã
NCGT trên
o Nếu không: kiểm tra mã NCGT có phải là mã của đơn vị csgt hay không?
Nếu không phải là mã của đơn vị csgt thì kiểm tra tiếp trong bảng
NOI_CAP_GIAY_TO xem đã tồn tại hay chưa
- Kiểm tra mã địa danh hành chính xem đã tồn tại hay chưa?
- Từ mã NCGT bên trên, thực hiện gọi procedure
DELETE_NOI_CAP_LOAI_GIAY_TO để xóa thông tin NCLGT theo mã NCGT
khỏi bảng NOI_CAP_LOAI_GIAY_TO, sau đó dựa vào mã NCGT và danh sách mã
loại giấy tờ thực hiện gọi procedure CREATE_NOI_CAP_LOAI_GIAY_TO để lưu
thông tin NCLGT vào bảng NOI_CAP_LOAI_GIAY_TO
- Gọi procedure UPDATE_ITEM để cập nhật lại thông tin NCGT theo mã

Procedure:
o Hàm UPDATE_ITEM() được sử dụng để chỉnh sửa thông tin một bản ghi
tồn tại trong bảng NOI_CAP_GIAY_TO. Hàm nhận các tham số đầu vào là
thông tin cập nhật của bản ghi có mã nơi cấp giấy tờ là P_MA và trả về kết
quả thông qua một con trỏ REF_CURSOR.
o Đầu vào:

o P_TEN: Kiểu dữ liệu tương ứng với trường TEN trong bảng.

o P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng.

o P_DIA_CHI: Kiểu dữ liệu tương ứng với trường DIA_CHI trong bảng.

o P_DIEN_THOAI: Kiểu dữ liệu tương ứng với trường DIEN_THOAI trong


bảng.
o P_EMAIL: Kiểu dữ liệu tương ứng với trường EMAIL trong bảng.

o P_GHI_CHU: Kiểu dữ liệu tương ứng với trường GHI_CHU trong bảng.

o P_TRANG_THAI: Kiểu dữ liệu tương ứng với trường TRANG_THAI


trong bảng.
o P_NGUOI_SUA: Kiểu dữ liệu tương ứng với trường NGUOI_SUA trong
bảng.
o P_MA_DDHC: Kiểu dữ liệu tương ứng với trường
MA_DIA_DANH_HANH_CHINH trong bảng.

BCA-C08_XLVP_2023_DD Internal use Trang 258


Tài liệu thiết kế hệ thống V1.0

o P_IS_DVCSGT: Kiểu dữ liệu tương ứng với trường IS_DON_VI_CSGT


trong bảng.
o Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào
bảng NOI_CAP_GIAY_TO.
o Hàm này sẽ cập nhật thông tin trong bảng NOI_CAP_GIAY_TO dựa vào
dữ liệu có sẵn được lấy theo P_MA với các thông tin tương ứng từ các
tham số đầu vào, sau đó gọi hàm GET_BY_MA để lấy thông tin bản ghi
vừa được cập nhật và trả về.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Mô tả
Xuất
[N/X]
1 P_TEN VARCHAR2(255 N Tên của nơi cấp giấy tờ
CHAR)
2 P_MA VARCHAR2(100 N Mã của nơi cấp giấy tờ
CHAR)
3 P_DIA_CHI VARCHAR2(500 N Địa chỉ
CHAR
4 P_DIEN_THOAI VARCHAR2(250 N Số điện thoại
CHAR)
5 P_EMAIL VARCHAR2(255 N Email
CHAR)
6 P_GHI_CHU VARCHAR2(1000 N Ghi chú
CHAR
7 P_TRANG_THAI NUMBER(1,0) N Trạng thái của nơi cấp
giấy tờ (1: Kích hoạt, 0:
Không kích hoạt)
8 P_NGUOI_SUA VARCHAR2(50 N Người sửa nơi cấp giấy
CHAR tờ
9 P_MA_DDHC VARCHAR2(50 N Mã địa danh hành chính
CHAR)

BCA-C08_XLVP_2023_DD Internal use Trang 259


Tài liệu thiết kế hệ thống V1.0

10 P_IS_DVCSGT NUMBER(1,0) N Nơi cấp giấy tờ là đơn vị


csgt hay không (1: có, 0:
không)
11 V_CURSOR CURSOR X Trả về dòng dữ liệu nơi
cấp giấy tờ vừa tạo

d.1.2.2.4.4. Xử lý ngoại lệ

- Bẫy lỗi ConstaintViolationException xảy ra khi:


o Mã NCGT: rỗng hoặc không tồn tại trong bảng NOI_CAP_GIAY_TO
o Danh sách mã loại giấy tờ: rỗng hoặc mã giấy tờ không tồn tại trong hệ
thống
o Tên NCGT: rỗng hoặc vượt quá 255 kí tự
o Địa chỉ: nhiều hơn 255 kí tự
o Email: nhiều hơn 50 kí tự
o Ghi chú: nhiều hơn 500 kí tự
o Trạng thái: null
o Nơi cấp giấy tờ là đv csgt ha không: null
- Bẫy lỗi ResourceExistedException xảy ra khi:
o Mã NCGT đã tồn tại trong hệ thống
- Bẫy lỗi ResourceDoesNotExistException:
o Đơn vị csgt không tồn tại trong hệ thống
o Mã địa danh hành chính không tồn tại trong hệ thống
- Bẫy lỗi ResourceDuplicateException:
o NCGT không phải là đơn vị csgt nhưng có mã trùng lặp với đơn vị csgt

d.1.2.2.5. Xóa Nơi cấp giấy tờ

d.1.2.2.5.1. API

Mô tả: Gọi API để lấy cập nhật trạng thái xóa của nơi cấp giấy tờ
Method URL
DELETE xlvp/api/v1/danh-muc/noi-cap-giay-to/{ma}

d.1.2.2.5.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 260


Tài liệu thiết kế hệ thống V1.0

1 ma String Mã nơi cấp giấy tờ


2 nguoiSua String Thông tin người sửa
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 Boolean True: thành công
False: thất bại
d.1.2.2.5.3. Mô tả chi tiết

Service:
- Kiểm tra xem mã NCGT gửi lên đã tồn tại trong bảng NCGT hay chưa
- Gọi procedure DELETE_ITEM để cập nhật lại trang thái xóa trong database

Procedure:
- Đây là một thủ tục, không có giá trị trả về, nhưng sẽ cập nhật cột IS_DELETED thành
giá trị 1 để đánh dấu nơi cấp giấy tờ đã bị xóa.
- Đầu vào:

o P_MA: Mã nơi cấp giấy tờ có kiểu dữ liệu tương ứng với cột MA trong
bảng
o P_DELETE_BY: Tên người sửa có kiểu dữ liệu tương ứng với cột
NGUOI_SUA trong bảng.
- Đầu ra: NA

Các giá trị nhập vào và trả ra gồm:


STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả
[N/X]
1 P_MA VARCHAR2(100 N Mã nơi cấp giấy tờ
CHAR)
2 P_DELETE_BY VARCHAR2(50 N Thông tin người sửa
CHAR)

BCA-C08_XLVP_2023_DD Internal use Trang 261


Tài liệu thiết kế hệ thống V1.0

d.1.2.2.5.4. Xử lý ngoại lệ

- Bẫy lỗi ResourceDoesNotExistException khi

o Mã nơi cấp giấy tờ không tồn tại trong hệ thống

d.1.2.2.6. Thêm mới nơi cấp loại giấy tờ

d.1.2.2.6.1. API

d.1.2.2.6.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maNoiCap String Mã NCGT
2 maGiayto String Mã loại giấy tờ
Các giá trị trả về là:
STT Tham số Kiểu dữ liệu Mô tả
1 maNoiCap String Mã NCGT
2 maGiayto String Mã loại giấy tờ
d.1.2.2.6.3. Mô tả chi tiết

Service:
- Hàm này được sử dụng khi gọi API [POST]/v1/danh-muc/noi-cap-giay-to, thực hiện
gọi procedure CREATE_NOI_CAP_LOAI_GIAY_TO để lưu thông tin loại giấy tờ
tương ứng với mã nơi cấp giấy tờ vào bảng NOI_CAP_LOAI_GIAY_TO
Procedure:
- Hàm này sẽ lấy hết tất cả mã loại giấy tờ người dùng gửi lên ứng với mã nơi cấp giấy
tờ để lưu vào trong bảng NOI_CAP_LOAI_GIAY_TO theo cặp mã nơi cấp và mã
loại giấy tờ
- Đầu vào:

o P_MA_NOI_CAP: Mã của nơi cấp giấy tờ, có kiểu dữ liệu trùng với kiểu
dữ liệu của cột MA_NOI_CAP trong bảng
o P_MA_GIAY_TO: Mã loại giấy tờ, có kiểu dữ liệu trùng với kiểu dữ liệu
của cột MA_GIAY_TO trong bảng
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 262


Tài liệu thiết kế hệ thống V1.0

Xuất
[N/X]
1 P_MA_NOI_CAP VARCHAR2(100 N Mã nơi cấp giấy tờ
CHAR
2 P_MA_GIAY_TO VARCHAR2(50 N Mã loại giấy tờ
CHAR)
d.1.2.2.6.4. Xử lý ngoại lệ

d.1.2.2.7. Xóa nơi cấp loại giấy tờ

d.1.2.2.7.1. API

d.1.2.2.7.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã NCGT
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 Boolean True: thành công
False: thất bại
d.1.2.2.7.3. Mô tả chi tiết

Service:
- Khi thực hiện cập nhật thông tin loại giấy tờ của NCGT thông qua API [PUT]/v1/noi-
cap-giay-to/{ma} thì gọi đến procedure DELETE_NOI_CAP_LOAI_GIAY_TO để
xóa đi thông tin loại giấy tờ cũ ứng với mã NCGT, sau đó gọi tiếp procedure
CREATE_NOI_CAP_LOAI_GIAY_TO để thêm mới thông tin loại giấy tờ mới vào
trong bảng NOI_CAP_LOAI_GIAY_TO
Procedure:
- Hàm DELETE_NOI_CAP_LOAI_GIAY_TO sử dụng để xóa bản ghi ra khỏi bảng
NOI_CAP_LOAI_GIAY_TO được lấy theo mã NCGT
- Đầu vào:

o P_MA_NOI_CAP: Mã của nơi cấp giấy tờ cần kiểm tra, có kiểu dữ liệu

BCA-C08_XLVP_2023_DD Internal use Trang 263


Tài liệu thiết kế hệ thống V1.0

trùng với kiểu dữ liệu của cột MA_NOI_CAP trong bảng


Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập / Mô tả
Xuất
[N/X]
1 P_MA_NOI_CAP VARCHAR2(100 N Mã nơi cấp giấy tờ
CHAR
d.1.2.2.7.4. Xử lý ngoại lệ

Các xử lý ngoại lệ được dùng chung toàn bộ dự án

d.1.2.2.8. Danh mục Tuyến đường quốc lộ

d.2. Danh mục tuyến đường quốc lộ


d.2.1. Mục đích

- Quản lý danh mục Tuyến đường quốc lộ


- Chức năng quản lý danh mục Tuyến đường quốc lộ gồm:
o Thêm mới Tuyến đường quốc lộ
o Sửa Tuyến đường quốc lộ
o Hiển thị chi tiết Tuyến đường quốc lộ
o Xóa Tuyến đường quốc lộ
o Xuất excel danh mục Tuyến đường quốc lộ

BCA-C08_XLVP_2023_DD Internal use Trang 264


Tài liệu thiết kế hệ thống V1.0

d.2.2. Chi tiết từng mục

d.2.2.1. Thiết kế dữ liệu

d.2.2.1.1. Mô hình quan hệ dữ liệu

d.2.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 TUYEN_DUONG_QUOC_LO Bảng lưu trữ danh mục Tuyến đường quốc lộ
d.2.2.1.3. Chi tiết các bảng

d.2.2.1.3.1. Bảng DANH_MUC_TUYEN_DUONG_QUOC_LO

Tên trường Kiểu dữ liệu Bắt P/F Mặc Diễn giải


buộc? Key? định
MA VARCHAR2 X P Mã của tuyến đường
(50 CHAR) quốc lộ
LOAI NUMBER(1, X Loại hình của tuyến
0) đường quốc lộ
TEN VARCHAR2 X Tên tuyến đường
(255 CHAR) quốc lộ
MA_TINH_THA VARCHAR2 Mã tỉnh thành tuyến
NH (50 CHAR) đường quốc lộ đi qua
BAT_DAU_TU VARCHAR2 Địa điểm tuyến
(100 CHAR) đường quốc lộ bắt
đầu
KET_THUC_TA VARCHAR2 Địa điểm tuyến

BCA-C08_XLVP_2023_DD Internal use Trang 265


Tài liệu thiết kế hệ thống V1.0

I (100 CHAR) đường quốc lộ kết


thúc
CHIEU_DAI NUMBER(6, Chiều dài của tuyến
0) đường quốc lộ
TRANG_THAI NUMBER(1, X 1 Trạng thái của tuyến
0) đường quốc lộ
GHI_CHU VARCHAR2 Ghi chú
(500 CHAR)
NGUOI_TAO VARCHAR2 Người tạo
(50 CHAR)
NGAY_TAO DATE CURR Ngày tạo
ENT_
TIME
STAM
P
NGUOI_SUA VARCHAR2 Người sửa
(50 CHAR)
NGAY_SUA DATE Ngày sửa
IS_DELETED NUMBER(1, X 0 Trạng thái xóa
0)
a) Các ràng buộc
Tên Nội dung
Primary key trên cột "MA": Đảm bảo rằng mỗi giá trị trong cột "MA"
là duy nhất và không rỗng.
b) Index
NA
c) Trigger
NA
d) Packages
Tên package: PKG_TUYEN_DUONG_QUOC_LO

BCA-C08_XLVP_2023_DD Internal use Trang 266


Tài liệu thiết kế hệ thống V1.0

d.1.2.1. Thiết kế màn hình

d.1.2.1.1. Xem danh sách, tìm kiếm tuyến đường quốc lộ

d.1.2.1.1.1. Giao diện

Hình 36: Màn hình danh sách tuyến đường quốc lộ


d.1.2.1.1.2. Danh sách control/thành phần giao diện (*)

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Tên thành
Bắt
STT Tên label phần / Định dạng Mô tả
buộc?
Control
Form tìm kiếm/lọc dữ liệu danh mục
1 Loại hình loai Dropdownlist Chọn loại hình là
X “Tuyến đường” hoặc
“Quốc lộ”
2 Mã tuyến ma Textbox Nhập mã tuyến
đường – quốc lộ đường, quốc lộ
3 Tên tuyến ten Textbox Nhập tên tuyến
đường – quốc lộ đường, quốc lộ
4 Bắt đầu từ diemBatDau Textbox Nhập nơi bắt đầu của
tuyến đường, quốc lộ
5 Kết thúc tại diemKetThuc Textbox Nhập nơi kết thúc
của tuyến đường,

BCA-C08_XLVP_2023_DD Internal use Trang 267


Tài liệu thiết kế hệ thống V1.0

quốc lộ
6 Trạng thái trangThai Dropdownlist Chọn loại trạng thái
tuyến đường, quốc lộ
Danh sách dữ liệu danh mục
7 Loại hình loai Text Hiển thị loại hình
-
tuyến đường, quốc lộ
8 Mã tuyến ma Text Hiển thị mã tuyến
-
đường - quốc lộ đường, quốc lộ
9 Tên tuyến ten Text Hiển thị tên tuyến
-
đường – quốc lộ đường, quốc lộ
10 Bắt đầu từ diemBatDau Text Hiển thị nơi bắt đầu
- của tuyến đường,
quốc lộ
11 Kết thúc tại diemKetThuc Text Hiển thị nơi kết thúc
- của tuyến đường,
quốc lộ
12 Chiều dài (km) chieuDai Text Hiển thị chiều dài của
-
tuyến đường, quốc lộ
13 Trạng thái trangThai Text Hiển thị trạng thái
-
tuyến đường, quốc lộ
14 Ngày sửa gần ngaySua Text Hiển thị ngày sửa
-
nhất tuyến đường, quốc lộ
15 Cán bộ sửa gần nguoiSua Text Hiển thị ngày sửa
-
nhất tuyến đường, quốc lộ
d.1.2.1.1.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Chọn menu Danh mục/Tuyến đường quốc lộ → Xem
thông tin danh sách danh mục tuyến đường quốc lộ
BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh
mục → Click Tìm kiếm
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập

BCA-C08_XLVP_2023_DD Internal use Trang 268


Tài liệu thiết kế hệ thống V1.0

→ Màn hình hiển thị danh sách danh mục thỏa mãn bộ
lọc
BtnReset_Click Click nút Thiết lập lại.
Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin
đã nhập và hoàn tác về trạng thái mặc định ban đầu
BtnCollapse/BtnExtend_Click Click nút Thu hẹp/Mở rộng.
Thu hẹp/Mở rộng Form tìm kiếm/lọc dữ liệu danh
mục.
BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới danh mục tuyến
đường quốc lộ
BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh
sách.
Màn hình chuyển đến trang Chỉnh sửa danh mục tuyến
đường quốc lộ tương ứng với bản ghi
BtnView_Click Click nút Xem chi tiết ở cuối mỗi bản ghi trong danh
sách.
Màn hình chuyển đến trang Xem chi tiết danh mục
tuyến đường quốc lộ tương ứng với bản ghi
BtnDelete_Click Click nút Xóa ở cuối mỗi bản ghi trong danh sách →
Chọn Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình reload
và cập nhật lại danh sách danh mục.

d.1.2.1.2. Thêm mới tuyến đường quốc lộ

BCA-C08_XLVP_2023_DD Internal use Trang 269


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.2.1. Giao diện

Hình 37: Thêm mới danh mục Tuyến đường quốc lộ


d.1.2.1.2.2. Danh sách control/thành phần giao diện (*)

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Tên thành Bắt
STT Tên label phần / buộc Định dạng Mô tả
Control nhập?
Form thêm mới dữ liệu tuyến đường quốc lộ
Dropdownlist Chọn loại hình là
1 Loại hình loai X tuyến đường hoặc
quốc lộ
Textbox Hiển thị mã tuyến
Mã tuyến
đường, quốc lộ
2 đường - quốc ma
Mã là tự sinh, không
lộ
thể nhập
Tên tuyến Textbox Nhập tên tuyến
3 đường – quốc ten X đường, quốc lộ
lộ
Textbox Nhập nơi tuyến
4 Bắt đầu từ diemBatDau đường, quốc lộ bắt
đầu

BCA-C08_XLVP_2023_DD Internal use Trang 270


Tài liệu thiết kế hệ thống V1.0

Textbox Nhập nơi tuyến


5 Kết thúc tại diemKetThuc đường, quốc lộ kết
thúc
Textbox Nhập chiều dài của
6 Chiều dài (km) chieuDai
tuyến đường, quốc lộ
Dropdownlist Chọn địa bàn trong
7 Địa bàn diaBan danh sách
Tỉnh/Thành phố
Dropdownlist Chọn loại trạng thái
8 Trạng thái trangThai X của tuyến đường,
quốc lộ
Textbox Nhập thông tin ghi
9 Ghi chú ghiChu
chú
d.1.2.1.2.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Thêm mới tại màn hình danh sách Danh mục
tuyến đường, quốc lộ → Màn hình chuyển đến màn
Thêm mới
Màn hình hiển thị như hình 2.
BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu danh mục
→ Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
thêm mới.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục.

BCA-C08_XLVP_2023_DD Internal use Trang 271


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.2.4. Các ràng buộc

Tên Điều kiện


Loại hình Bắt buộc chọn
Mã tuyến đường – quốc Không cho phép nhập, hệ thống tự sinh
lộ
Tên tuyến đường – quốc Bắt buộc nhập, độ dài không quá 255 ký tự
lộ
Bắt đầu từ Độ dài không quá 50 ký tự
Kết thúc tại Độ dài không quá 50 ký tự
Chiều dài (km) Nhập số, độ dài không quá 5 ký tự
Trạng thái Bắt buộc chọn
Ghi chú Độ dài không quá 500 ký tự

d.1.2.1.3. Chỉnh sửa tuyến đường quốc lộ

d.1.2.1.3.1. Giao diện

Hình 38: Chỉnh sửa danh mục Tuyến đường quốc lộ


d.1.2.1.3.2. Danh sách control/thành phần giao diện (*)

Tên thành Bắt


STT Tên label phần / buộc Định dạng Vai trò
Control nhập?

BCA-C08_XLVP_2023_DD Internal use Trang 272


Tài liệu thiết kế hệ thống V1.0

Form chỉnh sửa dữ liệu danh mục


Loại hình loai Dropdownlist Chọn loại hình là
1 X tuyến đường hoặc
quốc lộ
Mã tuyến đường ma Textbox Hiển thị mã tuyến
2 - quốc lộ đường, quốc lộ
Không thể chỉnh sửa
Tên tuyến đường ten Textbox Nhập tên tuyến
3 X
– quốc lộ đường, quốc lộ
Bắt đầu từ diemBatDau Textbox Nhập nơi tuyến
4 đường, quốc lộ bắt
đầu
Kết thúc tại diemKetThuc Textbox Nhập nơi tuyến
5 đường, quốc lộ kết
thúc
Chiều dài (km) chieuDai Textbox Nhập chiều dài của
6 tuyến đường, quốc
lộ
Địa bàn diaBan Dropdownlist Chọn địa bàn trong
7 danh sách
Tỉnh/Thành phố
Trạng thái trangThai Dropdownlist Chọn loại trạng thái
8 X của tuyến đường,
quốc lộ
Ghi chú ghiChu Textbox Nhập thông tin ghi
9
chú
d.1.2.1.3.3. Xử lý sự kiện

Các sự kiện cần xử lý:


Sự kiện Quy trình
Page_Load Cách 1: Click nút Chỉnh sửa ở cuối mỗi bản ghi tại màn
hình danh sách Danh mục tuyến đường, quốc lộ → Màn
hình chuyển đến màn Chỉnh sửa.

BCA-C08_XLVP_2023_DD Internal use Trang 273


Tài liệu thiết kế hệ thống V1.0

Cách 2: Click nút Chỉnh sửa tại màn hình chi tiết Danh
mục tuyến đường, quốc lộ → Màn hình chuyển đến màn
Chỉnh sửa.
Màn hình hiển thị như hình 3.
BtnSave_Click Nhập thông tin trong Form chỉnh sửa dữ liệu danh mục →
Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu thỏa
mãn → lưu danh mục theo thông tin vừa nhập → Màn
hình chuyển đến màn xem chi tiết danh mục vừa chỉnh
sửa.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu thỏa
mãn → lưu danh mục theo thông tin vừa nhập → Màn
hình chuyển đến màn xem danh sách danh mục.
d.1.2.1.3.4. Các ràng buộc

Tên Điều kiện


Loại hình Bắt buộc chọn
Mã tuyến đường – quốc Không cho phép nhập, hệ thống tự sinh
lộ
Tên tuyến đường – quốc Bắt buộc nhập, độ dài không quá 255 ký tự
lộ
Bắt đầu từ Độ dài không quá 50 ký tự
Kết thúc tại Độ dài không quá 50 ký tự
Chiều dài (km) Nhập số, độ dài không quá 5 ký tự
Trạng thái Bắt buộc chọn
Ghi chú Độ dài không quá 500 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 274


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.4. Xem chi tiết tuyến đường quốc lộ

d.1.2.1.4.1. Giao diện

Hình 4: Xem chi tiết danh mục Tuyến đường quốc lộ


d.1.2.1.4.2. Danh sách control/thành phần giao diện (*)

Tên thành
Bắt
STT Tên label phần / Định dạng Vai trò
buộc?
Control
Form tìm kiếm/lọc dữ liệu danh mục
loai Dropdownlist Hiển thị loại hình là
1 Loại hình tuyến đường hoặc
quốc lộ
Mã tuyến ma Textbox Hiển thị mã tuyến
2
đường - quốc lộ đường, quốc lộ
Tên tuyến ten Textbox Hiển thị tên tuyến
3 đường – quốc đường, quốc lộ
lộ
diemBatDau Textbox Hiển thị nơi tuyến
4 Bắt đầu từ đường, quốc lộ bắt
đầu
diemKetThuc Textbox Hiển thị nơi tuyến
5 Kết thúc tại đường, quốc lộ kết
thúc

BCA-C08_XLVP_2023_DD Internal use Trang 275


Tài liệu thiết kế hệ thống V1.0

chieuDai Textbox Hiển thị chiều dài của


6 Chiều dài (km)
tuyến đường, quốc lộ
diaBan Dropdownlist Hiển thị địa bàn của
7 Địa bàn
tuyến đường, quốc lộ
trangThai Dropdownlist Hiển thị loại trạng
8 Trạng thái thái của tuyến
đường, quốc lộ
ghiChu Textbox Hiển thị thông tin ghi
9 Ghi chú
chú

d.1.2.1.4.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục tuyến đường quốc lộ → Màn hình
chuyển đến màn Xem chi tiết.
Màn hình hiển thị như hình 4.
BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh
sách danh mục.

d.1.2.2. Thiết kế các hàm, thủ tục

d.1.2.2.1. Tìm kiếm danh sách Tuyến đường quốc lộ

d.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách Tuyến đường quốc lộ theo nhiều tiêu chí tìm kiếm
Method URL
GET xlvp/api/v1/danh-muc/tuyen-duong-quoc-lo?

III.1.2.3.1.2. Các tham số gửi lên và trả về


Các tham số gửi lên gồm:
STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên Tuyến đường quốc lộ
2 ma String Mã Tuyến đường quốc lộ

BCA-C08_XLVP_2023_DD Internal use Trang 276


Tài liệu thiết kế hệ thống V1.0

3 trangThai Boolean Trạng thái của Tuyến đường quốc lộ


+ true : kích hoạt
+ false : không kích hoạt
4 page Number Trang cần tìm kiếm ( bắt đầu từ 0)
5 pageSize Number Số bản ghi cần lấy trên 1 trang
6 isFetchAll Boolean Lấy tất cả các bản ghi Tuyến đường quốc
lộ
7 timKiemNhanh String Tìm kiếm nhanh
8 diemBatDau String Điểm bắt đầu
9 diemKetThuc String Điểm kết thúc
10 Loai String Loại tuyến đường quốc lộ
Các tham số trả về là:
STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên Tuyến đường quốc lộ
2 ma String Mã Tuyến đường quốc lộ
3 moTa String Mô tả Tuyến đường quốc lộ
4 ghiChu String Ghi chú Tuyến đường quốc lộ
5 updateTime Date Ngày sửa
6 createTime Date Ngày tạo
7 total Integer Tổng số lượng bản ghi
8 maTinhThanh String Mã tỉnh thành
9 loaiHinh String Loại hình
10 diemBatDau String Điểm bắt đầu
11 diemKetThuc String Điểm kết thúc
12 chieuDai Number Chiều dài
13 ghiChu String Ghi chú
14 updateBy String Người sửa

BCA-C08_XLVP_2023_DD Internal use Trang 277


Tài liệu thiết kế hệ thống V1.0

III.1.2.3.1.3. Mô tả chi tiết


a) Services
- Gọi hàm search xử lý lấy danh sách Tuyến đường quốc lộ từ database

- Hàm này có chức năng tìm kiếm danh sách Tuyến đường quốc lộ dựa trên các tiêu
chí được cung cấp trong NgheNghiepSearchDto
- Đầu vào:
o Request: đối tượng TuyenDuongQuocLoSearchDto chứa các tiêu chí tìm
kiếm
- Đầu ra:
o PaginationResponseDto<TuyenDuongQuocLoDetailDto>: đối tượng chứa
thông tin về trang kết quả tìm kiếm của các TuyenDuongQuocLo
- Cách hoạt động:
o Phương thức gọi repository để đọc danh sách TuyenDuongQuocLo dựa trên
các tiêu chí tìm kiếm được đưa ra trong đối tượng
TuyenDuongQuocLoSearchDto. Kết quả trả về được lưu trong đối tượng
Page<TuyenDuongQuocLoEntity>.
o Sử dụng đối tượng mapper để chuyển đổi các đối tượng
TuyenDuongQuocLoEntity trong Page<TuyenDuongQuocLoEntity> thành
đối tượng TuyenDuongQuocLoDetailDto.
o Tạo đối tượng PaginationResponseDto<TuyenDuongQuocLoDetailDto>
bao gồm danh sách các đối tượng TuyenDuongQuocLoDetailDto và các
thông tin phân trang, sau đó trả về kết quả này.
b) Packages
Procedure PKG_TUYEN_DUONG_QUOC_LO.READ_PAGING là một thủ tục
được sử dụng để truy vấn dữ liệu của bảng "TUYEN_DUONG_QUOC_LO" theo
trang và các tiêu chí tìm kiếm được cung cấp.
Các giá trị nhập vào và trả ra gồm:
Nhập
STT Tham số Kiểu dữ liệu / Xuất Mô tả
[N/X]
1 P_TIM_KIEM_NHANH VARCHAR2 N Tìm kiếm nhanh
2 P_LOAI VARCHAR2 N Loại tuyến đường
3 P_MA VARCHAR2 N Mã tuyến đường

BCA-C08_XLVP_2023_DD Internal use Trang 278


Tài liệu thiết kế hệ thống V1.0

4 P_TEN VARCHAR2 N Tên tuyến đường


P_BAT_DAU_TU VARCHAR2 N Địa điểm tuyến đường quốc
5
lộ bắt đầu
P_KET_THUC_TAI VARCHAR2 N Địa điểm tuyến đường quốc
6
lộ kết thúc
P_TRANG_THAI NUMBER N Trạng thái của tuyến đường
7
quốc lộ
8 P_PAGE_NUMBER NUMBER N Page
9 P_PAGE_SIZE NUMBER N Size
10 V_CURSOR CURSOR X REF_CURSOR
o P_TIM_KIEM_NHANH: chuỗi tìm kiếm nhanh theo mã hoặc tên của
tuyến đường quốc lộ (kiểu dữ liệu là VARCHAR2).
o P_LOAI: loại hình của tuyến đường quốc lộ (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.LOAI%TYPE).
o P_MA: mã của tuyến đường quốc lộ (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.MA%TYPE).
o P_TEN: tên của tuyến đường quốc lộ (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.TEN%TYPE).
o P_BAT_DAU_TU: địa điểm bắt đầu của tuyến đường quốc lộ (kiểu dữ liệu
là TUYEN_DUONG_QUOC_LO.BAT_DAU_TU%TYPE).
o P_KET_THUC_TAI: địa điểm kết thúc của tuyến đường quốc lộ (kiểu dữ
liệu là TUYEN_DUONG_QUOC_LO.KET_THUC_TAI%TYPE).
o P_TRANG_THAI: trạng thái của tuyến đường quốc lộ (kiểu dữ liệu là
NUMBER).
o P_PAGE_NUMBER: số trang hiện tại (kiểu dữ liệu là NUMBER).
o P_PAGE_SIZE: số lượng bản ghi trên một trang (kiểu dữ liệu là
NUMBER).
o V_CURSOR: biến out REF_CURSOR để trả về kết quả.
- Trong hàm này, biến P_PAGE_BEGIN và P_PAGE_END được tính toán để xác
định các bản ghi trên trang được trả về trong câu lệnh SELECT.
- Câu lệnh SELECT trong hàm này được sử dụng để truy vấn thông tin của các
tuyến đường quốc lộ trong bảng "TUYEN_DUONG_QUOC_LO" theo các tiêu
chí tìm kiếm được cung cấp. Câu lệnh SELECT này sử dụng các điều kiện
WHERE để lọc các bản ghi có giá trị của các cột được truyền vào thông qua các

BCA-C08_XLVP_2023_DD Internal use Trang 279


Tài liệu thiết kế hệ thống V1.0

tham số. Giá trị của cột "IS_DELETED" cũng được kiểm tra để đảm bảo rằng chỉ
các bản ghi chưa bị đánh dấu là đã xóa mới được truy vấn. Câu lệnh SELECT này
cũng tính toán số bản ghi trả về (được đánh số từ 1 đến tổng số bản ghi) và thêm
các thông tin này vào kết quả trả về.
- Kết quả trả về của hàm này là một cursor (V_CURSOR) chứa các bản ghi tương
ứng với các tiêu chí tìm kiếm được cung cấp, đóng vai trò như một trang dữ liệu
để hiển thị lên giao diện cho người dùng. Kết quả trả về bao gồm các cột trong
bảng "TUYEN_DUONG_QUOC_LO" và hai cột phụ trợ là
"TOTAL_ELEMENTS" (tổng số bản ghi trả về) và "RN" (số thứ tự của bản ghi
trên trang hiện tại).
- Trong hàm này, tham số đầu vào P_TIM_KIEM_NHANH có thể là null nên nó sẽ
không được sử dụng trong điều kiện WHERE khi nó là null. Nếu tham số này có
giá trị, nó sẽ được sử dụng để tìm kiếm theo mã hoặc tên của tuyến đường quốc lộ.
Nếu tham số này là null, các điều kiện WHERE sẽ được áp dụng dựa trên các
tham số khác để lọc bản ghi. Các điều kiện WHERE sẽ được kết hợp bằng toán tử
OR để lấy các bản ghi thỏa mãn bất kỳ điều kiện nào.
- Đầu ra:
o Hàm này trả về các bản ghi đã được phân trang và sắp xếp theo thứ tự giảm
dần của ngày tạo. Giá trị của các tham số đầu vào sẽ quyết định số lượng
bản ghi trả về và thứ tự sắp xếp của chúng. Kết quả trả về có thể được sử
dụng để hiển thị dữ liệu trên giao diện của ứng dụng.
b.1.2.1.1.1. Xử lý ngoại lệ
NA
b.1.2.1.2. Thêm mới Tuyến đường quốc lộ

b.1.2.1.2.1. API

Mô tả: Gọi API để thêm mới Tuyến đường quốc lộ


Method URL
POST xlvp/api/v1/danh-muc/tuyen-duong-quoc-lo

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Mã văn bản pháp luật
2 trangThai Boolean Trạng thái Tuyến đường quốc lộ:

BCA-C08_XLVP_2023_DD Internal use Trang 280


Tài liệu thiết kế hệ thống V1.0

+true: kích hoạt


+false: không kích hoạt
3 ghiChu String Ghi chú
4 Loai String Loại tuyến đường
5 diemBatDau String Điểm bắt đầu
6 diemKetThuc String Điểm kết thúc
7 maTinhThanh String Mã tỉnh thành
8 chieuDai Number Chiều dài
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ten String Tên Tuyến đường quốc lộ
2 ma String Mã Tuyến đường quốc lộ
3 trangThai Boolean Trạng thái Tuyến đường quốc lộ
4 ghiChu String Ghi chú Tuyến đường quốc lộ
5 updateTime Date Ngày sửa
6 updateBy String Người sửa
7 createTime Date Thời gian tạo
8 loaiHinh String Loại tuyến đường quốc lộ
9 maTinhThanh String Mã tỉnh thành
10 diemBatDau String Điểm bắt đầu
11 diemKetThuc String Điểm kết thúc
12 chieuDai Number Chiều dài
13 createBy String Người tạo
b.1.2.1.2.3. Mô tả chi tiết
a) Services
Gọi hàm create để thêm một tuyến đường quốc lộ mới vào cơ sở dữ liệu.
- Đầu vào:

BCA-C08_XLVP_2023_DD Internal use Trang 281


Tài liệu thiết kế hệ thống V1.0

o TuyenDuongQuocLoCreationDto request: đối tượng DTO chứa thông tin


để tạo mới một TuyenDuongQuocLoEntity.
o String createBy: chuỗi định danh người tạo.
- Đầu ra:
o TuyenDuongQuocLoDetailDto: đối tượng DTO chứa thông tin chi tiết của
TuyenDuongQuocLoEntity được tạo mới.
- Cách hoạt động:
o Convert đối tượng TuyenDuongQuocLoCreationDto thành
TuyenDuongQuocLoEntity.
o Tính giá trị maMax - mã lớn nhất hiện có tương ứng với loai (loại hình
đường) của TuyenDuongQuocLoEntity sử dụng repository
this.repository.getMaMax(entity.getLoai()) và ép kiểu về int.
o Kiểm tra loai của TuyenDuongQuocLoEntity để thiết lập giá trị cho trường
ma (mã) của đối tượng. Nếu là TUYEN_DUONG, ma sẽ được thiết lập là
"10000" nếu maMax bằng 1 hoặc là chuỗi số nguyên maMax cộng thêm số
"0" phù hợp nếu maMax lớn hơn 1. Nếu là QUOC_LO, thực hiện tương tự
với "20000" làm giá trị khởi tạo cho mã.
o Kiểm tra tính hợp lệ của trường maTinhThanh (mã tỉnh/thành phố) của
TuyenDuongQuocLoEntity.
o Gọi phương thức create trên repository để lưu TuyenDuongQuocLoEntity
vào cơ sở dữ liệu và trả về kết quả.
o Convert kết quả từ TuyenDuongQuocLoEntity thành
TuyenDuongQuocLoDetailDto và ghi log hoạt động.
b) Packages
Procedure PKG_TUYEN_DUONG_QUOC_LO. CREATE_ITEM là một thủ tục được
sử dụng để thêm một bản ghi mới vào bảng
DANH_MUC_TUYEN_DUONG_QUOC_LO.
Các giá trị nhập vào và trả ra gồm:

Nhập
/
STT Tham số Kiểu dữ liệu Mô tả
Xuất
[N/X]
1 P_LOAI VARCHAR2 N Loại hình của tuyến đường
quốc lộ

BCA-C08_XLVP_2023_DD Internal use Trang 282


Tài liệu thiết kế hệ thống V1.0

2 P_MA VARCHAR2 N Mã của tuyến đường quốc lộ


3 P_TEN VARCHAR2 N Tên tuyến đường quốc lộ
4 P_BAT_DAU_ VARCHAR2 N Địa điểm tuyến đường quốc lộ
TU bắt đầu
5 P_KET_THUC_ VARCHAR2 N Địa điểm tuyến đường quốc lộ
TAI kết thúc
6 P_CHIEU_DAI NUMBER N Chiều dài của tuyến đường
quốc lộ
7 P_MA_TINH_T VARCHAR2 N Mã tỉnh thành tuyến đường
HANH quốc lộ đi qua
8 P_TRANG_TH NUMBER N Trạng thái của tuyến đường
AI quốc lộ
9 P_GHI_CHU VARCHAR2 N Ghi chú
10 P_NGUOI_TA VARCHAR2 N Người tạo
O
11 V_CURSOR X REF_CURSOR

- Đầu vào:
o P_LOAI: loại hình của tuyến đường quốc lộ (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.LOAI%TYPE).
o P_MA: mã của tuyến đường quốc lộ (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.MA%TYPE).
o P_TEN: tên của tuyến đường quốc lộ (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.TEN%TYPE).
o P_BAT_DAU_TU: địa điểm tuyến đường quốc lộ bắt đầu (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.BAT_DAU_TU%TYPE).
o P_KET_THUC_TAI: địa điểm tuyến đường quốc lộ kết thúc (kiểu dữ liệu
là TUYEN_DUONG_QUOC_LO.KET_THUC_TAI%TYPE).
o P_CHIEU_DAI: chiều dài của tuyến đường quốc lộ (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.CHIEU_DAI%TYPE).
o P_MA_TINH_THANH: mã tỉnh thành tuyến đường quốc lộ đi qua (kiểu dữ
liệu là TUYEN_DUONG_QUOC_LO.MA_TINH_THANH%TYPE).
o P_TRANG_THAI: trạng thái của tuyến đường quốc lộ (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.TRANG_THAI%TYPE).

BCA-C08_XLVP_2023_DD Internal use Trang 283


Tài liệu thiết kế hệ thống V1.0

o P_GHI_CHU: ghi chú (kiểu dữ liệu là


TUYEN_DUONG_QUOC_LO.GHI_CHU%TYPE).
o P_NGUOI_TAO: người tạo (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.NGUOI_TAO%TYPE).
o V_CURSOR: biến out REF_CURSOR để trả về kết quả.

o Đầu ra:

o Trong hàm này, trước khi chèn bản ghi mới vào bảng
"TUYEN_DUONG_QUOC_LO", giá trị của cột "NGAY_TAO" và
"NGAY_SUA" được tự động gán bằng giá trị thời gian hiện tại
(CURRENT_TIMESTAMP).
o Kết quả trả về của hàm này là một con trỏ CURSOR (biến V_CURSOR),
chứa thông tin về bản ghi mới được tạo ra trong bảng
"TUYEN_DUONG_QUOC_LO", thông qua thủ tục "READ_BY_MA".
b.1.2.1.1.1. Xử lý ngoại lệ

- ResourceExistedException khi mã Tuyến đường quốc lộ đã tồn tại

b.1.2.1.2. Lấy thông tin Tuyến đường quốc lộ

b.1.2.1.2.1. API

Mô tả: Gọi API để lấy thông tin Tuyến đường quốc lộ


Method URL
GET xlvp/api/v1/danh-muc/tuyen-duong-quoc-lo/{ma}

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã Tuyến đường quốc lộ
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ten String Tên Tuyến đường quốc lộ
2 ma String Mã Tuyến đường quốc lộ
3 trangThai Boolean Trạng thái Tuyến đường quốc lộ

BCA-C08_XLVP_2023_DD Internal use Trang 284


Tài liệu thiết kế hệ thống V1.0

4 ghiChu String Ghi chú Tuyến đường quốc lộ


5 updateTime Date Ngày sửa
6 updateBy String Người sửa
7 createTime Date Thời gian tạo
8 loaiHinh String Loại tuyến đường quốc lộ
9 maTinhThanh String Mã tỉnh thành
10 diemBatDau String Điểm bắt đầu
11 diemKetThuc String Điểm kết thúc
12 chieuDai Number Chiều dài
13 createBy String Người tạo

b.1.2.1.2.3. Mô tả chi tiết


a) Services
Gọi hàm readByMa xử lý lấy thông tin chi tiết Tuyến đường quốc lộ từ database
- Hàm getDetail được sử dụng để lấy chi tiết một đối tượng Tuyến đường quốc lộ từ
cơ sở dữ liệu.
- Đầu vào:
o ma: mã của TuyenDuongQuocLo cần đọc
- Đầu ra:
o TuyenDuongQuocLoDetailDto: đối tượng chứa thông tin chi tiết của
TuyenDuongQuocLo tương ứng với mã tuyến đường quốc lộ
- Cách hoạt động:
o Phương thức gọi repository để đọc TuyenDuongQuocLo dựa trên mã ma.
Kết quả trả về được lưu trong đối tượng TuyenDuongQuocLoEntity.
o Kiểm tra xem TuyenDuongQuocLo có tồn tại hay không. Nếu không tồn
tại, ném ngoại lệ ResourceDoesNotExistException.
o Sử dụng đối tượng mapper để chuyển đổi đối tượng
TuyenDuongQuocLoEntity thành đối tượng
TuyenDuongQuocLoDetailDto.
o Trả về đối tượng TuyenDuongQuocLoDetailDto chứa thông tin chi tiết của
TuyenDuongQuocLo.
b) Packages

BCA-C08_XLVP_2023_DD Internal use Trang 285


Tài liệu thiết kế hệ thống V1.0

Procedure PKG_TUYEN_DUONG_QUOC_LO. READ_BY_MA là một thủ tục lấy


thông tin một bản ghi theo mã Tuyến đường quốc lộ
Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Mô tả


Xuất
[N/X]
1 P_MA VARCHAR2 N Mã Tuyến đường quốc lộ
2 V_CURSOR CURSOR X REF_CURSOR

- Thủ tục truy truy vấn thông tin của một tuyến đường quốc lộ trong bảng
"TUYEN_DUONG_QUOC_LO" dựa trên mã của tuyến đường đó.
- Đầu vào:
o P_MA: mã của tuyến đường quốc lộ cần truy vấn (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.MA%TYPE).
o V_CURSOR: biến out REF_CURSOR để trả về kết quả.
- Trong hàm này, giá trị của cột "IS_DELETED" được kiểm tra để đảm bảo rằng chỉ
các bản ghi chưa bị đánh dấu là đã xóa mới được truy vấn.
- Hàm này sử dụng câu lệnh SELECT để truy vấn thông tin về tuyến đường quốc lộ
trong bảng "TUYEN_DUONG_QUOC_LO". Câu lệnh SELECT này sử dụng điều
kiện WHERE để lọc các bản ghi có giá trị cột "MA" giống với giá trị được truyền
vào thông qua tham số "P_MA", và cột "IS_DELETED" bằng 0 (tức là chưa bị
đánh dấu là đã xóa).
- Đầu ra:
o Kết quả trả về của hàm này là một con trỏ CURSOR (biến V_CURSOR),
chứa thông tin về tuyến đường quốc lộ được truy vấn trong bảng
"TUYEN_DUONG_QUOC_LO".
b.1.2.1.1.1. Xử lý ngoại lệ

- ResourceDoesNotExistException khi mã Tuyến đường quốc lộ không hợp lệ

b.1.2.1.2. Sửa Tuyến đường quốc lộ

b.1.2.1.2.1. API

Mô tả: Gọi API để sửa thông tin Tuyến đường quốc lộ


Method URL
PUT xlvp/api/v1/danh-muc/tuyen-duong-quoc-lo/{ma}

BCA-C08_XLVP_2023_DD Internal use Trang 286


Tài liệu thiết kế hệ thống V1.0

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã Tuyến đường quốc lộ
2 ten String Tên Tuyến đường quốc lộ
3 ma String Mã Tuyến đường quốc lộ
4 trangThai Boolean Trạng thái Tuyến đường quốc lộ
5 ghiChu String Ghi chú Tuyến đường quốc lộ
6 updateTime Date Ngày sửa
7 updateBy String Người sửa
8 createTime Date Thời gian tạo
9 loaiHinh String Loại tuyến đường quốc lộ
10 maTinhThanh String Mã tỉnh thành
11 diemBatDau String Điểm bắt đầu
12 diemKetThuc String Điểm kết thúc
13 chieuDai Number Chiều dài
14 createBy String Người tạo
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ten String Tên Tuyến đường quốc lộ
2 ma String Mã Tuyến đường quốc lộ
3 trangThai Boolean Trạng thái Tuyến đường quốc lộ
4 ghiChu String Ghi chú Tuyến đường quốc lộ
5 updateTime Date Ngày sửa
6 updateBy String Người sửa
7 createTime Date Thời gian tạo
8 loaiHinh String Loại tuyến đường quốc lộ

BCA-C08_XLVP_2023_DD Internal use Trang 287


Tài liệu thiết kế hệ thống V1.0

9 maTinhThanh String Mã tỉnh thành


10 diemBatDau String Điểm bắt đầu
11 diemKetThuc String Điểm kết thúc
12 chieuDai Number Chiều dài
13 createBy String Người tạo
b.1.2.1.2.3. Mô tả chi tiết
a) Services
Gọi hàm update xử lý sửa thông tin chi tiết Tuyến đường quốc lộ từ database
- Đầu vào:
o Ma: mã của TuyenDuongQuocLo cần cập nhật
o TuyenDuongQuocLoUpdateDto: đối tượng chứa thông tin cập nhật của
TuyenDuongQuocLo.
o updateBy: tên người cập nhật
- Đầu ra:
o TuyenDuongQuocLoDetailDto: đối tượng chứa thông tin chi tiết của
TuyenDuongQuocLo đã được cập nhật
- Cách hoạt động:
o Bắt đầu ghi nhận thời điểm bắt đầu thực thi hàm.
o Sử dụng đối tượng mapper để chuyển đổi thông tin cập nhật thành đối
tượng Entity.
o Gọi phương thức readByMa() từ repository để đọc TuyenDuongQuocLo
cần cập nhật dựa trên mã ma.
o Kiểm tra xem TuyenDuongQuocLo có tồn tại hay không. Nếu không tồn
tại, ném ngoại lệ ResourceDoesNotExistException.
o Gọi phương thức validateMaTinhThanh() để kiểm tra tính hợp lệ của mã
tỉnh/thành trong thông tin cập nhật.
o Gọi phương thức update() từ repository để cập nhật thông tin
TuyenDuongQuocLo.
o Sử dụng đối tượng mapper để chuyển đổi đối tượng Entity đã được cập
nhật thành đối tượng DetailDto.
o Gọi phương thức log() từ service applicationLogService để ghi log hoạt
động cập nhật TuyenDuongQuocLo.
o Trả về đối tượng DetailDto của TuyenDuongQuocLo đã được cập nhật.

BCA-C08_XLVP_2023_DD Internal use Trang 288


Tài liệu thiết kế hệ thống V1.0

b) Packages
Procedure PKG_TUYEN_DUONG_QUOC_LO.UPDATE_ITEM là một thủ tục
được sử dụng để cập nhật thông tin của một Tuyến đường quốc lộ đã có trong cơ sở dữ
liệu.
Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập/Xuất Mô tả


[N/X]
1 P_MA VARCHAR2 N Mã của tuyến đường
quốc lộ
2 P_TEN VARCHAR2 N Tên tuyến đường quốc lộ
3 P_BAT_DAU_TU VARCHAR2 N Địa điểm tuyến đường
quốc lộ bắt đầu
4 P_KET_THUC_TAI VARCHAR2 N Địa điểm tuyến đường
quốc lộ kết thúc
5 P_CHIEU_DAI NUMBER N Chiều dài của tuyến
đường quốc lộ
6 P_MA_TINH_THANH VARCHAR2 N Mã tỉnh thành tuyến
đường quốc lộ đi qua
7 P_TRANG_THAI VARCHAR2 N Trạng thái của tuyến
đường quốc lộ
8 P_GHI_CHU VARCHAR2 N Ghi chú
9 P_NGUOI_SUA VARCHAR2 N Người sửa
10 V_CURSOR CURSOR X REF_CURSOR

- Dùng để cập nhật thông tin của một tuyến đường quốc lộ đã tồn tại trong bảng
TUYEN_DUONG_QUOC_LO.
- Đầu vào:
o P_MA: Mã tuyến đường quốc lộ cần cập nhật thông tin (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.MA%TYPE)
o P_TEN: Tên tuyến đường quốc lộ mới (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.TEN%TYPE)
o P_BAT_DAU_TU: Địa điểm tuyến đường quốc lộ bắt đầu mới (kiểu dữ
liệu là TUYEN_DUONG_QUOC_LO.BAT_DAU_TU%TYPE)

BCA-C08_XLVP_2023_DD Internal use Trang 289


Tài liệu thiết kế hệ thống V1.0

o P_KET_THUC_TAI: Địa điểm tuyến đường quốc lộ kết thúc mới (kiểu dữ
liệu là TUYEN_DUONG_QUOC_LO.KET_THUC_TAI%TYPE)
o P_CHIEU_DAI: Chiều dài tuyến đường quốc lộ mới (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.CHIEU_DAI%TYPE)
o P_MA_TINH_THANH: Mã tỉnh thành tuyến đường quốc lộ đi qua mới
(kiểu dữ liệu là TUYEN_DUONG_QUOC_LO.MA_TINH_THANH
%TYPE)
o P_TRANG_THAI: Trạng thái tuyến đường quốc lộ mới (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.TRANG_THAI%TYPE)
o P_GHI_CHU: Ghi chú mới (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.GHI_CHU%TYPE)
o P_NGUOI_SUA: Tên người cập nhật thông tin (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.NGUOI_SUA%TYPE)
o V_CURSOR: biến out kiểu REF_CURSOR.
- Đầu ra:
o Cập nhật thông tin của tuyến đường quốc lộ cần cập nhật
o Biến V_CURSOR chứa kết quả truy vấn thông tin tuyến đường quốc lộ sau
khi cập nhật thông tin
- Cách hoạt động của thủ tục này như sau:
o Truy vấn cập nhật thông tin của tuyến đường quốc lộ có mã P_MA
o Cập nhật các trường thông tin mới cho tuyến đường quốc lộ đó
o Đánh dấu ngày giờ cập nhật mới nhất (P_NGUOI_SUA, NGAY_SUA)
- Gọi thủ tục READ_BY_MA để trả về kết quả truy vấn tuyến đường quốc lộ sau
khi đã cập nhật thông tin.
b.1.2.1.1.1. Xử lý ngoại lệ

- ResourceDoesNotExistException khi không tồn tại mã Tuyến đường quốc lộ

b.1.2.1.2. Xóa Tuyến đường quốc lộ

b.1.2.1.2.1. API

Mô tả: Gọi API để xóa thông tin Tuyến đường quốc lộ


Method URL
DELETE xlvp/api/v1/danh-muc/tuyen-duong-quoc-lo/{ma}

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 290


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Mô tả


1 ma String Mã Tuyến đường quốc lộ
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 Http status code Boolean True : đã xóa thành công
b.1.2.1.2.3. Mô tả chi tiết
a) Services
Gọi hàm delete xử lý xóa thông tin chi tiết Tuyến đường quốc lộ từ database
- Đầu vào:
o ma: mã của TuyenDuongQuocLo cần xóa
o updateBy: tên người cập nhật
- Đầu ra:
o boolean: trả về true nếu xóa thành công
- Cách hoạt động:
o Bắt đầu ghi nhận thời điểm bắt đầu thực thi hàm.
o Gọi phương thức readByMa() từ repository để đọc TuyenDuongQuocLo
cần xóa dựa trên mã ma.
o Kiểm tra xem TuyenDuongQuocLo có tồn tại hay không. Nếu không tồn
tại, ném ngoại lệ ResourceDoesNotExistException.
o Gọi phương thức delete() từ repository để xóa thông tin
TuyenDuongQuocLo.
o Gọi phương thức log() từ service applicationLogService để ghi log hoạt
động xóa TuyenDuongQuocLo.
o Trả về true để chỉ ra rằng xóa thành công.
b) Packages
Procedure PKG_TUYEN_DUONG_QUOC_LO.DELETE_ITEM là một thủ tục được
sử dụng để đánh dấu một Tuyến đường quốc lộ trong danh mục Tuyến đường quốc lộ đã
bị xóa bỏ.
Các giá trị nhập vào và trả ra gồm:
Nhập/Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]

BCA-C08_XLVP_2023_DD Internal use Trang 291


Tài liệu thiết kế hệ thống V1.0

1 P_MA VARCHAR2 N Mã tuyến đường quốc lộ


2 P_DELETE_BY VARCHAR2 N Người xóa
3 V_CURSOR CURSOR X REF_CURSOR

- Cập nhật trạng thái của một bản ghi trong bảng
"DANH_MUC_TUYEN_DUONG_QUOC_LO" bằng cách đặt "IS_DELETED"
của bản ghi này thành 1, đồng thời cập nhật thông tin người sửa và ngày sửa của
bản ghi này. Sau đó, hàm sẽ trả về kết quả thông qua con trỏ "V_CURSOR".
- Đầu vào:

o P_MA: mã của tuyến đường quốc lộ cần xóa (kiểu dữ liệu là


TUYEN_DUONG_QUOC_LO.MA%TYPE).
o P_DELETE_BY: người sửa đổi thông tin để xóa bản ghi (kiểu dữ liệu là
TUYEN_DUONG_QUOC_LO.NGUOI_SUA%TYPE).
o V_CURSOR: biến out REF_CURSOR để trả về kết quả.

o Trong hàm này, giá trị của cột "IS_DELETED" được đặt là 1 để đánh dấu
rằng bản ghi đã bị xóa. Giá trị của cột "NGUOI_SUA" và "NGAY_SUA"
được cập nhật bằng giá trị được truyền vào thông qua tham số
"P_DELETE_BY" và thời gian hiện tại (CURRENT_TIMESTAMP) tương
ứng.
- Đầu ra:

o Kết quả trả về của hàm này là một con trỏ CURSOR (biến V_CURSOR),
chứa thông tin về bản ghi đã bị xóa trong bảng
"TUYEN_DUONG_QUOC_LO", thông qua thủ tục "READ_BY_MA".
o Các bản ghi đã bị đánh dấu là đã xóa chỉ được đánh dấu tại chỗ và vẫn
được lưu trữ trong bảng. Để xóa vĩnh viễn các bản ghi đã bị đánh dấu là đã
xóa, chúng ta có thể sử dụng các thủ tục xóa dựa trên các bản ghi đã được
đánh dấu là đã xóa.
b.1.2.1.1.1. Xử lý ngoại lệ

- ResourceDoesNotExistException khi mã Tuyến đường quốc lộ không tồn tại

b.1.2.1.2. Xuất excel danh sách Tuyến đường quốc lộ

b.1.2.1.2.1. API

Mô tả: Gọi API để xuất excel danh sách Tuyến đường quốc lộ

BCA-C08_XLVP_2023_DD Internal use Trang 292


Tài liệu thiết kế hệ thống V1.0

Method URL
GET xlvp/api/v1/danh-muc/tuyen-duong-quoc-lo/export/excel

b.1.2.1.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên Tuyến đường quốc lộ
2 ma String Mã Tuyến đường quốc lộ
3 trangThai Boolean Trạng thái của Tuyến đường quốc
lộ
+ true : kích hoạt
+ false : không kích hoạt
4 page Number Trang cần tìm kiếm ( bắt đầu từ
0)
5 pageSize Number Số bản ghi cần lấy trên 1 trang
6 isFetchAll Boolean Lấy tất cả các bản ghi Tuyến
đường quốc lộ
7 timKiemNhanh String Tìm kiếm nhanh
8 diemBatDau String Điểm bắt đầu
9 diemKetThuc String Điểm kết thúc
10 Loai String Loại tuyến đường quốc lộ
Các tham số trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 File Excel File excel xuất ra
b.1.2.1.2.3. Mô tả chi tiết
a) Services
Gọi hàm exportExcel xử lý xuất ra một file Excel
- Đầu vào:
o request: đối tượng TuyenDuongQuocLoSearchDto chứa các tiêu chí tìm
kiếm

BCA-C08_XLVP_2023_DD Internal use Trang 293


Tài liệu thiết kế hệ thống V1.0

- Đầu ra:
o InputStreamResource: đối tượng chứa nội dung của file Excel được tạo ra
- Cách hoạt động:
o Đối tượng TuyenDuongQuocLoSearchDto được truyền vào sẽ được cấu
hình để lấy tất cả các bản ghi, bằng cách gọi phương thức
setIsFetchAll(true) cho đối tượng này.
o Tạo danh sách header bằng cách lấy các thông tin từ thông điệp được định
nghĩa trong
BaseMessages.TuyenDuongQuocLo.HEADER_REPORT_EXCEL, sau đó
chia chuỗi thành các phần tử của danh sách bằng cách sử dụng phương thức
split().
o Gọi phương thức read() từ repository để đọc danh sách
TuyenDuongQuocLo dựa trên các tiêu chí tìm kiếm được đưa ra trong đối
tượng TuyenDuongQuocLoSearchDto. Kết quả trả về là một đối tượng
Page<TuyenDuongQuocLoEntity>.
o Sử dụng phương thức stream() để chuyển đổi danh sách
TuyenDuongQuocLoEntity thành danh sách
TuyenDuongQuocLoReportDto bằng cách sử dụng đối tượng mapper.
o Gọi phương thức exportExcelCommon() của baseExportExcelService để
tạo ra file Excel. Đối tượng BaseExportExcel được cấu hình để đặt tên cho
sheet và được truyền vào đối tượng header và danh sách
TuyenDuongQuocLoReportDto. Kết quả trả về là đối tượng
InputStreamResource.
b) Packages
Procedure PKG_TUYEN_DUONG_QUOC_LO.READ_PAGING là một thủ tục
được sử dụng để truy vấn dữ liệu của bảng "TUYEN_DUONG_QUOC_LO" theo trang
và các tiêu chí tìm kiếm được cung cấp.
b.1.2.1.1.1. Xử lý ngoại lệ

NA

b.2. Danh mục Nơi tạm giữ


b.2.1. Mục đích

- Quản lý danh mục Nơi tạm giữ


- Chức năng quản lý danh mục Nơi tạm giữ gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 294


Tài liệu thiết kế hệ thống V1.0

o Tìm kiếm nơi tạm giữ


o Xem chi tiết nơi tạm giữ
o Thêm mới nơi tạm giữ
o Sửa nơi tạm giữ
o Xóa nơi tạm giữ
o Thêm mới NTGDVCSGT
o Xóa NTGDVCSGT

b.2.2. Chi tiết từng mục

b.2.2.1. Thiết kế dữ liệu

b.2.2.1.1. Mô hình quan hệ dữ liệu

b.2.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 NOI_TAM_GIU Bảng lưu trữ danh mục nơi tạm giữ
2 NOI_TAM_GIU_DON_VI_CSGT Bảng lưu trữ danh mục NTGDVCSGT

BCA-C08_XLVP_2023_DD Internal use Trang 295


Tài liệu thiết kế hệ thống V1.0

b.2.2.1.3. Chi tiết các bảng

b.2.2.1.3.1. Bảng NOI_TAM_GIU

Tên trường Kiểu dữ liệu Bắt P/F Mặc Mô tả


buộc? Key? định
MA VARCHAR2(5 x Mã nơi tạm giữ
0 CHAR)
TEN VARCHAR2(1 Tên nơi tạm giữ
00 CHAR)
DIA_CHI VARCHAR2(2 X Địa chỉ nơi tạm giữ
55 CHAR)
SO_DIEN_T VARCHAR2(1 Điện thoại của nơi tạm giữ
HOAI 5 CHAR)
EMAIL VARCHAR2(5 Email nơi tạm giữ
0 CHAR)
GHI_CHU VARCHAR(10 Ghi chú
00 CHAR)
TRANG_TH NUMBER(1,0) X 1 Trạng thái của nơi tạm giữ
AI (1: Kích hoạt, 0: Không
kích hoạt)
NGUOI_TA VARCHAR2(5 Người tạo
O 0 CHAR)
NGAY_TA DATE CURR Ngày tạo
O ENT_
TIME
STAM
P
NGUOI_SU VARCHAR2(5 Người sửa
A 0 CHAR)
NGAY_SU DATE Ngày sửa
A
IS_DELETE NUMBER(1,0) X 0 Trạng thái xóa(1: đã xóa, 0:
D chưa xóa)

BCA-C08_XLVP_2023_DD Internal use Trang 296


Tài liệu thiết kế hệ thống V1.0

MA_DIA_D VARCHAR2(5 Mã địa danh hành chính


ANH_HAN 0 BYTE)
H_CHINH

a) Các ràng buộc


Tên cột Nội dung
MA Khóa chính, Mã của nơi tạm giữ không được để trống
DIA_CHI Địa chỉ không được để trống
TRANG_THAI Trạng thái không được để trống
IS_DELETED Trạng thái xóa không được để trống
b) Index
NA
c) Trigger
NA
d) Packages
PKG_NOI_TAM_GIU

d.1.2.1.1.1. Bảng NOI_TAM_GIU_DON_VI_CSGT

Tên trường Kiểu dữ liệu Bắt P/F Mặc Diễn giải


buộc? Key? định
MA_NOI_TAM_GIU VARCHAR2(50 x Mã của nơi tạm
CHAR) giữ
MA_DON_VI_CSGT VARCHAR2(50 x Mã đơn vị csgt
CHAR)
a) Các ràng buộc
Tên cột Nội dung
MA_NOI_TAM_GIU Mã nơi tạm giữ không được để trống
MA_DON_VI_CSGT Mã đơn vị csgt không được để trống
FK_NOI_TAM_GIU_DON_VI_CSGT_ Khóa ngoại đến bảng NOI_TAM_GIU theo
NOI_TAM_GIU trường MA_NOI_TAM_GIU

BCA-C08_XLVP_2023_DD Internal use Trang 297


Tài liệu thiết kế hệ thống V1.0

b) Index
- NA
c) Trigger
- NA
d) Packages
- PKG_NOI_TAM_GIU
d.1.2.1. Thiết kế màn hình

d.1.2.1.1. Màn hình xem danh sách, tìm kiếm nơi tạm giữ

d.1.2.1.1.1. Giao diện

Hình 39: Màn hình danh sách nơi tạm giữ


d.1.2.1.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Tên label Tên thành phần / Định dạng Mô tả
STT
Control
Form tìm kiếm/lọc dữ liệu danh mục
Tìm kiếm nhanh timKiemNhanh Textbox Nhập thông tin
1 Đơn vị CSGT,
Nơi tạm giữ
Đơn vị CSGT maDonViCsgt Cascader Chọn đơn vị
2 cảnh sát giao
thông

BCA-C08_XLVP_2023_DD Internal use Trang 298


Tài liệu thiết kế hệ thống V1.0

Tên nơi tạm giữ ten Textbox Nhập tên nơi


3
tạm giữ
Địa chỉ maDiaDanhHanhChinh Cascader Chọn địa danh
4 hành chính của
nơi tạm giữ
Địa chỉ chi tiết diaChi Textbox Nhập địa chỉ chi
5 tiết của nơi tạm
giữ
Trạng thái trangThai Dropdownlist Chọn loại trạng
6 thái cho nơi tạm
giữ
Danh sách nơi tạm giữ
Đơn vị CSGT maDonViCsgt Textbox Hiển thị tên của
7
đơn vị cảnh sát
Tên nơi tạm giữ ten Textbox Hiển thị tên nơi
8
tạm giữ
Địa chỉ diaChi Textbox Hiển thị địa chỉ
9
chi tiết
Tỉnh/Thành phố maTinhThanh Textbox Hiển thị tên tỉnh
10
thành
Quận/Huyện maQuanHuyen Textbox Hiển thị tên
11
phường xã
Phường xã maPhuongXa Textbox Hiển thị tên
12
quận huyện
Trạng thái trangThai Textbox Hiển thị trạng
13 thái của nơi tạm
giữ
Ngày sửa gần nhất ngaySua Date Hiển thị ngày
14 chỉnh sửa gần
nhất
Cán bộ sửa gần nguoiSua Textbox Hiển thị người
15
nhất chỉnh sửa gần

BCA-C08_XLVP_2023_DD Internal use Trang 299


Tài liệu thiết kế hệ thống V1.0

nhất

d.1.2.1.1.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Chọn menu Danh mục/Nơi tạm giữ → Xem thông tin
danh sách danh mục nơi tạm giữ.
BtnSearch_Click Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh
mục → Click Tìm kiếm.
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập →
Màn hình hiển thị danh sách danh mục nơi tạm giữ thỏa
mãn bộ lọc.
BtnReset_Click Click nút Thiết lập lại.
Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin đã
nhập và hoàn tác về trạng thái mặc định ban đầu.
BtnCollapse/BtnExtend Click nút Thu hẹp/Mở rộng. Thu hẹp/Mở rộng Form tìm
kiếm/lọc dữ liệu danh mục.
BtnCreate_Click Click nút Thêm mới.
Màn hình chuyển đến trang Thêm mới danh mục nơi tạm
giữ.
BtnEdit_Click Click nút Chỉnh sửa ở cột thao tác theo từng bản ghi.
Màn hình chuyển đến trang Chỉnh sửa danh mục nơi tạm
giữ tương ứng với bản ghi đó.
BtnView_Click Click nút Xem chi tiết ở cột thao tác theo từng bản ghi.
Màn hình chuyển đến trang Xem chi tiết danh mục nơi
tạm giữ tương ứng với bản ghi đó.
BtnDelete_Click Click nút Xóa ở cột thao tác theo từng bản ghi → Chọn
Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình reload và
cập nhật lại danh sách danh mục.
d.1.2.1.2. Thêm mới nơi tạm giữ

BCA-C08_XLVP_2023_DD Internal use Trang 300


Tài liệu thiết kế hệ thống V1.0

d.1.2.1.2.1. Giao diện

Hình 40: Màn hình thêm mới danh mục nơi tạm giữ
d.1.2.1.2.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Tên thành phần / Bắt
STT Tên label Định dạng Mô tả
Control buộc?
1 Mã nơi ma Textbox Hiển thị mã của
tạm giữ nơi tạm giữ
Mã tự sinh,
không thể nhập
2 Tên nơi ten x Textbox Hiện thị tên nơi
tạm giữ tạm giữ
3 Địa chỉ maDiaDanhHanh x Cascader Chọn địa danh
Chinh hành chính của
nơi tạm giữ
4 Địa chỉ chi diaChi x Textbox Chọn địa chỉ của
tiết nơi tạm giữ
5 Số điện soDienThoai Textbox Nhập số điện
thoại thoại nơi tạm giữ
6 Email email Textbox Nhập email của
nơi tạm giữ

BCA-C08_XLVP_2023_DD Internal use Trang 301


Tài liệu thiết kế hệ thống V1.0

7 Đơn vị maDonViCsgt x Cascader Chọn đơn vị


CSGT cảnh sát giao
thông cho nơi
tạm giữ.
Chọn nhiều đơn
vi cảnh sát cùng
lúc
8 Ghi chú ghiChu Textbox Nhập ghi chú cho
nơi tạm giữ
9 Trạng thái trangThai x Dropdownlist Chọn trạng thái
nơi tạm giữ

d.1.2.1.2.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Thêm mới tại màn hình danh sách Danh mục
nơi tạm giữ → Màn hình chuyển đến màn Thêm mới
BtnSave_Click Nhập thông tin trong Form thêm mới dữ liệu danh mục
→ Click Lưu.
Hệ thống kiểm tra ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
thêm mới.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem danh sách danh mục nơi
tạm giữ.
d.1.2.1.2.4. Các ràng buộc

Tên Điều kiện


Tên nơi tạm giữ Bắt buộc nhập, độ dài không quá 255 kí tự
Địa chỉ Bắt buộc nhập

BCA-C08_XLVP_2023_DD Internal use Trang 302


Tài liệu thiết kế hệ thống V1.0

Địa chỉ chi tiết Bắt buộc nhập, độ dài không quá 255 kí tự
Đơn vị CSGT Bắt buộc nhập
Trạng thái Bắt buộc nhập

d.1.2.1.3. Chỉnh sửa nơi tạm giữ

d.1.2.1.3.1. Giao diện

Hình 41: Màn hình chỉnh sửa danh mục Nơi tạm giữ
d.1.2.1.3.2. Danh sách control/thành phần giao diện

STT Tên label Tên thành Bắt Định Mô tả


phần / Control buộc? dạng
1 Mã nơi tạm giữ ma Textbox Hiển thị mã của nơi
tạm giữ
Mã tự sinh, không thể
nhập
2 Tên nơi tạm giữ ten x Textbox Hiện thị tên nơi tạm
giữ
3 Địa chỉ maDiaDanhHan x Cascader Chọn địa danh hành
hChinh chính của nơi tạm giữ
4 Địa chỉ chi tiết diaChi x Textbox Chọn địa chỉ của nơi
tạm giữ

BCA-C08_XLVP_2023_DD Internal use Trang 303


Tài liệu thiết kế hệ thống V1.0

5 Số điện thoại soDienThoai Textbox Nhập số điện thoại nơi


tạm giữ
6 Email email Textbox Nhập email của nơi
tạm giữ
7 Đơn vị CSGT maDonViCsgt x Cascader Chọn đơn vị cảnh sát
giao thông cho nơi tạm
giữ.
Chọn nhiều đơn vi
cảnh sát cùng lúc
8 Ghi chú ghiChu Textbox Nhập ghi chú cho nơi
tạm giữ
9 Trạng thái trangThai x Dropdo Chọn trạng thái nơi tạm
wnlist giữ

d.1.2.1.3.3. Xử lý sự kiện

Các sự kiện cần xử lý:


Sự kiện Quy trình
Page_Load Cách 1: Click nút Chỉnh sửa ở cuối mỗi bản ghi tại màn
hình danh sách Danh mục nơi tạm giữ → Màn hình
chuyển đến màn Chỉnh sửa.
Cách 2: Click nút Chỉnh sửa tại màn hình chi tiết Danh
mục nơi tạm giữ → Màn hình chuyển đến màn Chỉnh
sửa.
BtnSave_Click Nhập thông tin trong Form chỉnh sửa dữ liệu danh mục
→ Click Lưu.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết danh mục vừa
chỉnh sửa.
BtnClose_Click Click nút Đóng → Click Đồng ý.
Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu danh mục theo thông tin vừa nhập →

BCA-C08_XLVP_2023_DD Internal use Trang 304


Tài liệu thiết kế hệ thống V1.0

Màn hình chuyển đến màn xem danh sách danh mục.

d.1.2.1.3.4. Các ràng buộc

Tên Điều kiện


Tên nơi tạm giữ Bắt buộc nhập, độ dài không quá 255 kí tự
Địa chỉ Bắt buộc nhập
Địa chỉ chi tiết Bắt buộc nhập, độ dài không quá 255 kí tự
Đơn vị CSGT Bắt buộc nhập
Trạng thái Bắt buộc nhập

d.1.2.1.4. Xem chi tiết nơi tạm giữ

d.1.2.1.4.1. Giao diện

Hình 42: Màn hình xem chi tiết nơi tạm giữ
d.1.2.1.4.2. Danh sách control/thành phần giao diện

Tên thành phần /


STT Tên label Định dạng Mô tả
Control
1 Mã nơi tạm ma Textbox Hiển thị mã của nơi tạm
giữ giữ
2 Tên nơi tạm ten Textbox Hiện thị tên nơi tạm giữ
giữ

BCA-C08_XLVP_2023_DD Internal use Trang 305


Tài liệu thiết kế hệ thống V1.0

3 Địa chỉ maDiaDanhHanhChinh Cascader Hiển thị địa danh hành


chính của nơi tạm giữ
4 Địa chỉ chi diaChi Textbox HIển thị địa chỉ của nơi
tiết tạm giữ
5 Số điện soDienThoai Textbox Hiển thị số điện thoại
thoại nơi tạm giữ
6 Email email Textbox Hiển thị email của nơi
tạm giữ
7 Đơn vị maDonViCsgt Cascader Hiển thị đơn vị cảnh sát
CSGT giao thông cho nơi tạm
giữ
8 Ghi chú ghiChu Textbox Hiển thị ghi chú cho nơi
tạm giữ
9 Trạng thái trangThai Dropdownlist Hiển thị trạng thái nơi
tạm giữ

d.1.2.1.4.3. Xử lý sự kiện

Sự kiện Quy trình


Page_Load Click nút Xem chi tiết ở cuối mỗi bản ghi tại màn hình
danh sách Danh mục nơi tạm giữ → Màn hình chuyển đến
màn Xem chi tiết.
BtnClose_Click Click nút Đóng → Màn hình chuyển đến màn xem danh
sách danh mục.

d.1.2.1.4.4. Các ràng buộc

Tên Điều kiện


Tên nơi tạm giữ Độ dài không quá 255 kí tự
Địa chỉ chi tiết Độ dài không quá 255 kí tự

BCA-C08_XLVP_2023_DD Internal use Trang 306


Tài liệu thiết kế hệ thống V1.0

d.1.2.2. Thiết kế các hàm, thủ tục

d.1.2.2.1. Tìm kiếm nơi tạm giữ

d.1.2.2.1.1. API

Mô tả: Gọi API để lấy danh sách nơi tạm giữ theo nhiều tiêu chí tìm kiếm
Method URL
GET xlvp/api/v1/danh-muc/noi-tam-giu?

d.1.2.2.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 timKiemNhanh String Chuỗi tìm kiếm nhanh
2 maDonViCsgt String Mã đơn vị csgt
3 maDiaDanhHanhChinh String Mã địa danh hành chính của nơi
tạm giữ
4 ten String Tên nơi tạm giữ
5 diaChi String Địa chỉ nơi tạm giữ
6 trangThai Boolean Trạng thái của nơi tạm giữ
7 page Int Trang hiện tại
8 pageSize Int Dữ liệu trên một trang

Các giá trị trả về là:

STT Tham số Kiểu dữ Mô tả


liệu
1 ma String Mã nơi tạm giữ
2 ten String Tên nơi tạm giữ
3 maDonViCsgt List<String> Danh sách mã đơn vị csgt
4 trangThai Boolean Trạng thái
5 diaChi String Địa chỉ nơi tạm giữ
6 nguoiSua String Người sửa
7 ngaySua Date Ngày sửa

BCA-C08_XLVP_2023_DD Internal use Trang 307


Tài liệu thiết kế hệ thống V1.0

8 maDiaDanhHanhChinh String Mã địa danh hành chính

d.1.2.2.1.3. Mô tả chi tiết

Service:
- Gọi procedure SEARCH() để lấy ra danh sách nơi tạm giữ theo điều kiện truyền vào
từ đầu vào
Procedure:
- Hàm SEARCH() được sử dụng để lấy danh sách nơi tạm giữ theo các điều kiện
tìm kiếm được cung cấp. Kết quả trả về được sắp xếp theo ngày tạo mới nhất. Đây
là một thủ tục, không có giá trị trả về, nhưng nó sẽ trả về một con trỏ tham chiếu
trỏ đến danh sách nơi tạm giữ.
- Đầu vào:
o P_SEARCH: Chuỗi tìm kiếm thông tin của tên nơi tạm giữ
o P_TEN: Tên nơi tạm giữ.
o P_MA_DON_VI_CSGT: Mã đơn vị csgt
o P_MA_TINH_THANH: Mã địa danh hành chính
o P_DIA_CHI: Địa chỉ nơi tạm giữ.
o P_TRANG_THAI: Trạng thái kích hoạt của nơi tạm giữ
o P_PAGE: Trang hiện tại của danh sách nơi tạm giữ
o P_PSIZE: Số bản ghi trên một trang
- Đầu ra:
o V_CURSOR: Một con trỏ tham chiếu trỏ đến một danh sách các nơi tạm
giữ tìm kiếm được. Các thông tin bao gồm tất cả các trường trong bảng
NOI_TAM_GIU kết hợp với bảng NOI_TAM_GIU_DON_VI_CSGT được
lấy giữa 2 bảng theo mã nơi tạm giữ. Các nơi tạm giữ được sắp xếp theo
ngày tạo mới nhất.
Các giá trị nhập vào và trả ra gồm:

Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
1 P_SEARCH VARCHAR2(255 N Chuỗi tìm kiếm nhanh

BCA-C08_XLVP_2023_DD Internal use Trang 308


Tài liệu thiết kế hệ thống V1.0

CHAR)
2 P_TEN VARCHAR2(255 N Tên nơi tạm giữ
CHAR)
3 P_MA_DON_VI_CSGT VARCHAR2(50 N Mã đơn vị csgt
CHAR)
4 P_MA_TINH_THANH VARCHAR2(50 N Mã địa danh hành
CHAR) chính
5 P_DIA_CHI VARCHAR2(255 N Địa chỉ
CHAR)
6 P_TRANG_THAI NUMBER(1,0) N Trạng thái kích hoạt
nơi tạm giữ
7 P_PAGE NUMBER N Trang hiện tại
8 P_PSIZE NUMBER N Dữ liệu trên một trang
9 V_CURSOR CURSOR X Con trỏ tham chiếu đến
danh sách nơi tạm giữ
tìm được
Kết quả trả về của thủ tục bao gồm một danh sách các nơi tạm giữ được tìm thấy, phù
hợp với các tiêu chí tìm kiếm được cung cấp. Các kết quả được phân trang và sắp xếp
theo ngày sửa nơi tạm giữ.
d.1.2.2.1.4. Xử lý ngoại lệ

d.1.2.2.2. Xem chi tiết nơi tạm giữ

d.1.2.2.2.1. API

Mô tả: Gọi API để xem chi tiết nơi tạm giữ


Method URL
GET xlvp/api/v1/danh-muc/noi-tam-giu/{ma}

d.1.2.2.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã Nơi tạm giữ
Các giá trị trả về là:

BCA-C08_XLVP_2023_DD Internal use Trang 309


Tài liệu thiết kế hệ thống V1.0

Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã nơi tạm giữ
2 ten String Tên nơi tạm giữ
3 maDonViCsgt List<String> Danh sách mã đơn vị csgt
4 trangThai Boolean Trạng thái
5 diaChi String Địa chỉ nơi tạm giữ
8 soDienThoai String Số điện thoại của nơi tạm giữ
9 email String Email của nơi tạm giữ
10 ghiChu String Ghi chú của nơi tạm giữ
11 maDiaDanhHanhChinh String Mã địa danh hành chính của nơi tạm
giữ

d.1.2.2.2.3. Mô tả chi tiết

Service:
- Kiểm tra xem mã nơi tạm giữ tồn tại trong bảng NOI_TAM_GIU hay chưa
- Gọi procedure GET xử lý lấy lên nơi tạm giữ theo mã từ DB

Procedure:
- Thêm tham số vào là mã nơi tạm giữ

- Đầu vào:

o P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng


NOI_TAM_GIU
- Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được lấy ra

- Kết quả trả về thông tin của Nơi tạm giữ gồm các trường như bảng bên dưới
Các giá trị nhập vào và trả ra gồm:

STT Tham số Kiểu dữ liệu Nhập / Xuất Mô tả


[N/X]
1 P_MA VARCHAR2(50 N Mã nơi tạm giữ

BCA-C08_XLVP_2023_DD Internal use Trang 310


Tài liệu thiết kế hệ thống V1.0

CHAR)
2 V_CURSOR CURSOR X Trả về dòng dữ liệu vừa lấy
ra
Kết quả trả về của thủ tục gồm thông tin của nơi tạm giữ được tìm thấy theo mã nơi tạm
giữ.
d.1.2.2.2.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi: Mã nơi tạm giữ không tồn tại trong hệ
thống
d.1.2.2.3. Thêm mới nơi tạm giữ

d.1.2.2.3.1. API

Mô tả: Gọi API để thêm mới nơi tạm giữ


Method URL
POST xlvp/api/v1/danh-muc/noi-tam-giu

d.1.2.2.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ten String Tên của Nơi tạm giữ
2 diaChi String Địa chỉ
3 soDienThoai String Số điện thoại
4 email String Email
5 ghiChu String Ghi chú

6 trangThai Boolean Trạng thái của Nơi tạm giữ (1:


Kích hoạt, 0: Không kích hoạt)
7 maDiaDanhHanhChinh String Mã địa danh hành chính
8 maDonViCsgt List Danh sách mã đơn vị csgt
Các giá trị trả về là:
STT Tham số Kiểu Mô tả
dữ liệu
1 ma String Mã Nơi tạm giữ

BCA-C08_XLVP_2023_DD Internal use Trang 311


Tài liệu thiết kế hệ thống V1.0

2 ten String Tên Nơi tạm giữ


3 maDonViCsgt List Danh sách mã đơn vị csgt
4 trangThai Boolean Trạng thái của Nơi tạm giữ (true: kích hoạt,
false: không kích hoạt)
5 diaChi String Địa chỉ
6 soDienThoai String Số điện thoại
7 email String Email
8 ghiChu String Ghi chú
9 maDiaDanhHanhChinh String Mã địa danh hành chính

d.1.2.2.3.3. Mô tả chi tiết

Service:
- Kiểm tra mã địa danh hành chính xem đã tồn tại hay chưa?
- Kiểm tra từng mã đơn vị csgt trong danh sách mã đơn vị csgt có tồn tại trong hệ
thống hay không?
- Từ mã nơi tạm giữ bên trên và danh sách mã đơn vị csgt thực hiện gọi procedure
CREATE_NTG_THUOC_CSGT để lưu thông tin mã đơn vị csgt tương ứng với
mã nơi tạm giữ vào bảng NOI_TAM_GIU_DON_VI_CSGT
- Gọi procedure CREATE_ITEM để lưu thông tin nơi tạm giữ mới

Procedure:
- Hàm CREATE_NTG được sử dụng để thêm một bản ghi mới vào bảng
NOI_TAM_GIU. Hàm nhận các tham số đầu vào là thông tin của bản ghi mới và
trả về kết quả thông qua một con trỏ REF_CURSOR.
- Đầu vào:

o P_TEN: Kiểu dữ liệu tương ứng với trường TEN trong bảng.

o P_DIA_CHI: Kiểu dữ liệu tương ứng với trường DIA_CHI trong bảng.

o P_SO_DIEN_THOAI: Kiểu dữ liệu tương ứng với trường


SO_DIEN_THOAI trong bảng.
o P_EMAIL: Kiểu dữ liệu tương ứng với trường EMAIL trong bảng.

o P_GHI_CHU: Kiểu dữ liệu tương ứng với trường GHI_CHU trong bảng.

BCA-C08_XLVP_2023_DD Internal use Trang 312


Tài liệu thiết kế hệ thống V1.0

o P_TRANG_THAI: Kiểu dữ liệu tương ứng với trường TRANG_THAI


trong bảng.
o P_NGUOI_TAO: Kiểu dữ liệu tương ứng với trường NGUOI_TAO trong
bảng.
o P_MA_DIA_DANH_HANH_CHINH: Kiểu dữ liệu tương ứng với trường
MA_DIA_DANH_HANH_CHINH trong bảng.
- Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào
bảng NOI_TAM_GIU.
- Hàm này sẽ chèn dữ liệu vào bảng NOI_TAM_GIU với các thông tin tương ứng
từ các tham số đầu vào, sau đó gọi hàm GET để lấy thông tin bản ghi vừa được
thêm và trả về.
- Sau khi chèn dữ liệu vào bảng NOI_TAM_GIU, lấy hết tất cả mã đơn vị csgt
người dùng gửi lên ứng với mã nơi tạm giữ để lưu vào trong bảng
NOI_TAM_GIU_DON_VI_CSGT theo cặp mã nơi tạm giữ và mã đơn vị csgt
- Đầu vào:
o P_MA_NOI_TAM_GIU: Mã của nơi tạm giữ, có kiểu dữ liệu trùng với
kiểu dữ liệu của cột MA_NOI_TAM_GIU trong bảng
o P_MA_DON_VI_CSGT: Mã đơn vị csgt, có kiểu dữ liệu trùng với kiểu dữ
liệu của cột MA_DON_VI_CSGT trong bảng
Các giá trị nhập vào và trả ra gồm:

Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
VARCHAR2(255 N
1 P_TEN Tên của nơi tạm giữ
CHAR)
VARCHAR2(500 N
2 P_DIA_CHI Địa chỉ
CHAR
P_SO_DIEN_ VARCHAR2(250 N
3 Số điện thoại
THOAI CHAR)
VARCHAR2(255 N
4 P_EMAIL Email
CHAR)

BCA-C08_XLVP_2023_DD Internal use Trang 313


Tài liệu thiết kế hệ thống V1.0

VARCHAR2(1000 N
5 P_GHI_CHU Ghi chú
CHAR
N Trạng thái của nơi tạm giữ
P_TRANG_T
6 NUMBER(1,0) (1: Kích hoạt, 0: Không kích
HAI
hoạt)
P_NGUOI_TA VARCHAR2(50 N
7 Người tạo nơi tạm giữ
O CHAR
P_MA_DIA_ N
VARCHAR2(50
8 DANH_HAN Mã địa danh hành chính
CHAR)
H_CHINH
X Trả về dòng dữ liệu nơi tạm
9 V_CURSOR CURSOR
giữ vừa tạo

d.1.2.2.3.4. Xử lý ngoại lệ

- Bẫy lỗi ConstaintViolationException xảy ra khi:


o Danh sách mã đơn vị csgt: rỗng
o Tên nơi tạm giữ: rỗng hoặc vượt quá 255 kí tự
o Địa chỉ: rỗng hoặc nhiều hơn 255 kí tự
o Mã địa danh hành chính: rỗng
o Ghi chú: nhiều hơn 500 kí tự
- Bẫy lỗi ResourceDoesNotExistException:
o Đơn vị csgt không tồn tại trong hệ thống
o Mã địa danh hành chính không tồn tại trong hệ thống

d.1.2.2.4. Sửa nơi tạm giữ

d.1.2.2.4.1. API

Mô tả: Gọi API để lấy cập nhật thông tin Nơi tạm giữ
Method URL
PUT xlvp/api/v1/danh-muc/noi-tam-giu/{ma}

d.1.2.2.4.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 314


Tài liệu thiết kế hệ thống V1.0

1 ten String Tên của Nơi tạm giữ


2 diaChi String Địa chỉ
3 soDienThoai String Số điện thoại
4 email String Email
5 ghiChu String Ghi chú

6 trangThai Boolean Trạng thái của Nơi tạm giữ (1:


Kích hoạt, 0: Không kích hoạt)
7 maDiaDanhHanhChinh String Mã địa danh hành chính
8 maDonViCsgt List Danh sách mã đơn vị csgt
Các giá trị trả về là:
STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã Nơi tạm giữ
2 ten String Tên Nơi tạm giữ
3 maDonViCsgt List Danh sách mã đơn vị csgt
trangThai Boolean Trạng thái của Nơi tạm giữ (true: kích hoạt,
4
false: không kích hoạt)
5 diaChi String Địa chỉ
6 soDienThoai String Số điện thoại
7 email String Email
8 ghiChu String Ghi chú
maDiaDanhHan String Mã địa danh hành chính
9
hChinh

d.1.2.2.4.3. Mô tả chi tiết

Service:
- Kiểm tra mã nơi tạm giữ đã tồn tại hay chưa?
- Kiểm tra mã địa danh hành chính xem đã tồn tại hay chưa?
- Kiểm tra từng mã đơn vị csgt trong danh sách mã đơn vị csgt có tồn tại trong hệ
thống hay không?

BCA-C08_XLVP_2023_DD Internal use Trang 315


Tài liệu thiết kế hệ thống V1.0

- Từ mã nơi tạm giữ bên trên, thực hiện gọi procedure


DELETE_NTG_THUOC_CSGT để xóa thông tin NTGDVCSGT theo mã nơi tạm
giữ khỏi bảng NOI_TAM_GIU_DON_VI_CSGT, sau đó dựa vào mã NTG và
danh sách mã đơn vị csgt thực hiện gọi procedure
CREATE_NTG_THUOC_CSGT để lưu thông tin NTGDVCSGT vào bảng
NOI_TAM_GIU_DON_VI_CSGT
- Gọi procedure UPDATE_NTG để cập nhật lại thông tin nơi tạm giữ theo mã

Procedure:
- Hàm UPDATE_NTG() được sử dụng để chỉnh sửa thông tin một bản ghi tồn tại
trong bảng NOI_TAM_GIU. Hàm nhận các tham số đầu vào là thông tin cập nhật
của bản ghi có mã nơi tạm giữ là P_MA và trả về kết quả thông qua một con trỏ
REF_CURSOR.
- Đầu vào:

o P_MA: Kiểu dữ liệu tương ứng với trường MA trong bảng

o P_TEN: Kiểu dữ liệu tương ứng với trường TEN trong bảng.

o P_DIA_CHI: Kiểu dữ liệu tương ứng với trường DIA_CHI trong bảng.

o P_SO_DIEN_THOAI: Kiểu dữ liệu tương ứng với trường


SO_DIEN_THOAI trong bảng.
o P_EMAIL: Kiểu dữ liệu tương ứng với trường EMAIL trong bảng.

o P_GHI_CHU: Kiểu dữ liệu tương ứng với trường GHI_CHU trong bảng.

o P_TRANG_THAI: Kiểu dữ liệu tương ứng với trường TRANG_THAI


trong bảng.
o P_NGUOI_TAO: Kiểu dữ liệu tương ứng với trường NGUOI_TAO trong
bảng.
o P_MA_DIA_DANH_HANH_CHINH: Kiểu dữ liệu tương ứng với trường
MA_DIA_DANH_HANH_CHINH trong bảng.
- Đầu ra:

o V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được sửa trong
bảng NOI_TAM_GIU.
- Hàm này sẽ cập nhật lại thông tin vào bảng NOI_TAM_GIU với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET để lấy thông tin bản ghi

BCA-C08_XLVP_2023_DD Internal use Trang 316


Tài liệu thiết kế hệ thống V1.0

vừa được sửa và trả về.


- Sau khi cập nhật thông tin nơi tạm giữ mà có sự thay đổi liên quan đến đơn vị csgt
thì cần xóa thông tin đơn vị csgt cũ đi và thêm đơn vị csgt mới
- Đầu vào:
o P_MA_NOI_TAM_GIU: Mã của nơi tạm giữ, có kiểu dữ liệu trùng với
kiểu dữ liệu của cột MA_NOI_TAM_GIU trong bảng

Các giá trị nhập vào và trả ra gồm:


Nhập /
STT Tham số Kiểu dữ liệu Xuất Mô tả
[N/X]
VARCHAR2 N
1 P_MA Mã của nơi tạm giữ
(50 CHAR)
VARCHAR2 N
2 P_TEN Tên của nơi tạm giữ
(255 CHAR)
VARCHAR2 N
3 P_DIA_CHI Địa chỉ
(500 CHAR
P_SO_DIEN_THO VARCHAR2 N
4 Số điện thoại
AI (250 CHAR)
VARCHAR2 N
5 P_EMAIL Email
(255 CHAR)
VARCHAR2 N
6 P_GHI_CHU Ghi chú
(1000 CHAR
NUMBER(1, N Trạng thái của nơi tạm giữ (1:
7 P_TRANG_THAI
0) Kích hoạt, 0: Không kích hoạt)
VARCHAR2 N
8 P_NGUOI_SUA Người sửa nơi tạm giữ
(50 CHAR
P_MA_DIA_DAN VARCHAR2 N
9 Mã địa danh hành chính
H_HANH_CHINH (50 CHAR)
X Trả về dòng dữ liệu nơi tạm giữ
10 V_CURSOR CURSOR
vừa tạo

BCA-C08_XLVP_2023_DD Internal use Trang 317


Tài liệu thiết kế hệ thống V1.0

d.1.2.2.4.4. Xử lý ngoại lệ

- Bẫy lỗi ConstaintViolationException xảy ra khi:


o Danh sách mã đơn vị csgt: rỗng
o Tên nơi tạm giữ: rỗng hoặc vượt quá 255 kí tự
o Địa chỉ: rỗng hoặc nhiều hơn 255 kí tự
o Mã địa danh hành chính: rỗng
o Ghi chú: nhiều hơn 500 kí tự
- Bẫy lỗi ResourceDoesNotExistException:
o Mã nơi tạm giữ không tồn tại
o Đơn vị csgt không tồn tại trong hệ thống
o Mã địa danh hành chính không tồn tại trong hệ thống

d.1.2.2.5. Xóa nơi tạm giữ

d.1.2.2.5.1. API

Mô tả: Gọi API để lấy cập nhật trạng thái xóa của nơi tạm giữ
Method URL
DELETE xlvp/api/v1/danh-muc/noi-tam-giu/{ma}

d.1.2.2.5.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã nơi tạm giữ
2 nguoiSua String Thông tin người sửa
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 Boolean True: thành công
False: thất bại
d.1.2.2.5.3. Mô tả chi tiết

Service:
- Kiểm tra xem mã nơi tạm giữ gửi lên đã tồn tại trong bảng nơi tạm giữ hay chưa

BCA-C08_XLVP_2023_DD Internal use Trang 318


Tài liệu thiết kế hệ thống V1.0

- Gọi procedure DELETE_ITEM để cập nhật lại trang thái xóa trong database

Procedure:
- Đây là một thủ tục, không có giá trị trả về, nhưng sẽ cập nhật cột IS_DELETED
thành giá trị 1 để đánh dấu nơi tạm giữ đã bị xóa.
- Đầu vào:
o P_MA: Mã nơi tạm giữ có kiểu dữ liệu tương ứng với cột MA trong bảng
o P_NGUOI_SUA: Tên người sửa có kiểu dữ liệu tương ứng với cột
NGUOI_SUA trong bảng.
- Đầu ra: NA

Các giá trị nhập vào và trả ra gồm:


Nhập / Xuất
STT Tham số Kiểu dữ liệu Mô tả
[N/X]
VARCHAR2(50 N
1 P_MA Mã nơi tạm giữ
CHAR)
VARCHAR2(50 N
2 P_NGUOI_SUA Thông tin người sửa
CHAR)

d.1.2.2.5.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi: Mã nơi tạm giữ không tồn tại trong hệ
thống

d.2. Các màn hình sử dụng chung


d.2.1. Mục đích

Mô tả các màn hình sử dụng chung cho toàn bộ biên bản quyết định.

BCA-C08_XLVP_2023_DD Internal use Trang 319


Tài liệu thiết kế hệ thống V1.0

d.2.2. Chi tiết các màn hình

d.2.2.1. Màn hình tang vật, phương tiện, giấy tờ

d.2.2.1.1. Màn hình danh sách tang vật tạm giữ

d.2.2.1.1.1. Giao diện

Hình 43: Màn hình danh sách tang vật tạm giữ
d.2.2.1.1.2. Danh sách control/ thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
- Giải thích các item
STT Tên label Tên thành phần / Định Mô tả
Control dạng
1 Tên tang ten Text Tên tang vật, phương tiện, giấy tờ
vật, phương bị tạm giữ
tiện, giấy tờ
2 Nội dung chi noiDung Text Nội dung chi tiết của tang vật,
tiết phương tiện, giấy tờ(mã số, số
lượng, …)
- Giải thích các xử lý
STT Tên button Sự kiện Mô tả
1 Thêm mới BtnAdd_Click Mở popup thêm mới tang vật, phương
tiện, giấy tờ cho BBQĐ
2 Chi tiết BtnView_Click Mở popup xem chi tiết thông tin tang
vật, phương tiện, giấy tờ cho BBQĐ
3 Chỉnh sửa BtnEdit_Click Mở popup chỉnh sửa thông tin tang
vật, phương tiện, giấy tờ cho BBQĐ
4 Xóa BtnDelete_Click Xóa tang vật khỏi danh sách tang vật
của BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 320


Tài liệu thiết kế hệ thống V1.0

d.2.2.1.1.3. Xử lý sự kiện

STT Sự kiện Quy trình


1 BtnAdd_Click Click nút Thêm mới → Màn hình hiển thị Pop-up
Thêm mới tang vật, phương tiện, giấy tờ
2 BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh
sách.
Mở pop-up chỉnh sửa tang vật có các thông tin của
bản ghi
3 BtnView_Click Click nút Xem chi tiết ở tang vật muốn xem
Mở pop-up xem chi tiết tang vật tương ứng với tang
vật được chọn
4 BtnDelete_Click Click nút Xóa ở tang vật trong danh sách → Hệ
thống xóa bản ghi tương ứng → Cập nhật lại danh
sách Tang vật.
d.2.2.1.2. Màn hình thêm mới/ sửa tang vật

d.2.2.1.2.1. Giao diện

Hình 44: Pop-up thêm mới tang vật

BCA-C08_XLVP_2023_DD Internal use Trang 321


Tài liệu thiết kế hệ thống V1.0

Hình 45: Pop-up thêm mới Loại tang vật Phương tiện – Lĩnh vực đường bộ

Hình 46: Pop-up thêm mới Loại tang Phương tiện - Linh vực Đường sắt

BCA-C08_XLVP_2023_DD Internal use Trang 322


Tài liệu thiết kế hệ thống V1.0

Hình 47: Pop-up thêm mới Loại tang Phương tiện - Linh vực Đường thủy

Hình 48: Pop-up thêm mới Loại tang vật Giấy phép lái xe

BCA-C08_XLVP_2023_DD Internal use Trang 323


Tài liệu thiết kế hệ thống V1.0

Hình 49: Pop-up thêm mới Loại tang vật Giấy tờ

d.2.2.1.2.2. Danh sách control/ thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
- Giải thích các item
Tên thành Bắt
Định
STT Tên label phần / buộc Mô tả
dạng
Control ?
Pop-up thêm mới tang vật
1 Loại tang loai Dropdown X Lựa chọn loại tang vật, phương
vật, list tiện, giấy tờ
phương Danh sách được lấy từ danh
tiện, giấy mục tang vật, phương tiện, giấy

BCA-C08_XLVP_2023_DD Internal use Trang 324


Tài liệu thiết kế hệ thống V1.0

tờ tờ
Pop-up thêm mới tang vật Phương tiện – Lĩnh vực Đường Bộ
Phương chungLoai Textbox Hiển thị chủng loại phương
tiện tiện trong danh sách danh mục
2
phương tiện
Thông tin lấy từ Vụ việc
Biển số bienSo Textbox Hiển thị biển số của phương
3 tiện trong Vụ việc sinh ra Biên
bản
Biển số bienSo2 Textbox Hiển thị biển số thứ hai của
4 thứ hai phương tiện trong Vụ việc sinh
ra Biên bản
Số khung soKhung Textbox Hiển thị số khung của phương
5 tiện trong Vụ việc sinh ra Biên
bản
Số máy soMay Textbox Hiển thị số máy của phương
6 tiện trong Vụ việc sinh ra Biên
bản
Nhãn nhanHieu Textbox Hiển thị nhãn hiệu của phương
7 hiệu tiện trong Vụ việc sinh ra Biên
bản
Màu sơn mauSon Textbox Hiển thị màu sơn của phương
8 tiện trong Vụ việc sinh ra Biên
bản
Số loại soLoai Textbox Hiển thị số loại của phương
9 tiện trong Vụ việc sinh ra Biên
bản
Số lượng soLuong Textbox Hiển thị số lượng cho tang vật
10
phương tiện
Đơn vị donViTinh Textbox Hiển thị đơn vị tính cho tang
11
tính vật phương tiện
Pop-up thêm mới tang vật Phương tiện – Lĩnh vực Đường sắt

BCA-C08_XLVP_2023_DD Internal use Trang 325


Tài liệu thiết kế hệ thống V1.0

Biển số bienSo Textbox Hiển thị biển số của phương


12 tiện trong Vụ việc sinh ra Biên
bản
Biển số bienSo2 Textbox Hiển thị biển số thứ hai của
13 thứ hai phương tiện trong Vụ việc sinh
ra Biên bản
Số lượng soLuong Textbox Hiển thị số lượng cho tang vật
14
phương tiện
Đơn vị donViTinh Textbox Hiển thị đơn vị tính cho tang
15
tính vật phương tiện
Pop-up thêm mới tang vật Phương tiện – Lĩnh vực Đường thủy
Số đăng soDangKy Textbox Hiển thị số đăng ký của
16 ký phương tiện trong Vụ việc sinh
ra Biên bản
Số đăng soDangKy2 Textbox Hiển thị số đăng ký thứ 2 của
17 ký thứ phương tiện trong Vụ việc sinh
hai ra Biên bản
Trọng tải trongTai Textbox Hiển thị trọng tải của phương
18 tiện trong Vụ việc sinh ra Biên
bản
Trọng tải trongTai2 Textbox Hiển thị trọng tải thứ 2 của
19 thứ hai phương tiện trong Vụ việc sinh
ra Biên bản
Công congSuat Textbox Hiển thị công suất của phương
20 suất tiện trong Vụ việc sinh ra Biên
bản
Công congSuat2 Textbox Hiển thị công suất thứ 2 của
21 suất thứ 2 phương tiện trong Vụ việc sinh
ra Biên bản
Số lượng soLuong Textbox Hiển thị số lượng cho tang vật
22
phương tiện
23 Đơn vị donViTinh Textbox Hiển thị đơn vị tính cho tang

BCA-C08_XLVP_2023_DD Internal use Trang 326


Tài liệu thiết kế hệ thống V1.0

tính vật phương tiện


Pop-up thêm mới tang vật Giấy phép lái xe
Hạng hang Dropdown x Chọn hạng cho giấy phép lái xe
24
list
25 Số so Textbox x Nhập số của giấy phép lái xe
Có giá trị giaTriDen Datepicke Nhập ngày hết hạn của giấy
26
đến r phép lái xe
27 Số lượng soLuong Textbox Hiển thị số lượng của tang vật
Nơi cấp noiCap Dropdown Chọn nơi cấp giấy tờ, danh
28
list sách lọc theo tang vật
Pop-up thêm mới tang vật Giấy tờ
29 Số so Textbox x Nhập số của giấy phép lái xe
Có giá trị giaTriDen Datepicke Nhập ngày hết hạn của giấy
30
đến r phép lái xe
31 Số lượng soLuong Textbox Hiển thị số lượng cho tang vật
Nơi cấp noiCap Dropdown Chọn nơi cấp giấy tờ, danh
32
list sách lọc theo tang vật
Pop-up thêm mới tang vật Khác
33 Tên ten Textbox x Nhập tên của tang vật
34 Số lượng soLuong Textbox x Nhập số lượng của tang vật
Đơn vị donViTinh Textbox x Nhập đơn vị tính của tang vật
35
tính
Tình tinhTrang Textbox Nhập giá trị tình trạng tang vật
36 trạng đặc
điểm
37 Ghi chú ghiChu Textbox Nhập giá trị ghi chú
- Giải thích các xử lý
STT Tên button Sự kiện Mô tả
1 Thêm mới BtnAdd_Click Mở popup thêm mới tang vật, phương
tiện, giấy tờ cho BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 327


Tài liệu thiết kế hệ thống V1.0

2 Chi tiết BtnView_Click Mở popup xem chi tiết thông tin tang
vật, phương tiện, giấy tờ cho BBQĐ
3 Chỉnh sửa BtnEdit_Click Mở popup chỉnh sửa thông tin tang vật,
phương tiện, giấy tờ cho BBQĐ
4 Xóa BtnDelete_Click Xóa tang vật khỏi danh sách tang vật
của BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 328


Tài liệu thiết kế hệ thống V1.0

Hình 50: Thông báo khi tang vật không bị tạm giữ/tước

Hình 51: Cảnh báo khi tang vật bị tạm giữ, tước

BCA-C08_XLVP_2023_DD Internal use Trang 329


Tài liệu thiết kế hệ thống V1.0

Hình 52: Pop-up thêm mới Loại tang vật Phương tiện

Hình 53: Pop-up thêm mới Loại tang vật Giấy phép lái xe

BCA-C08_XLVP_2023_DD Internal use Trang 330


Tài liệu thiết kế hệ thống V1.0

Hình 54: Pop-up thêm mới Loại tang vật Giấy tờ

Hình 55: Pop-up thêm mới Loại tang vật Khác


d.2.2.1.2.3. Xử lý sự kiện

STT Sự kiện Quy trình


1 BtnAdd_Click Click nút Thêm mới → Màn hình hiển thị Pop-up
Thêm mới tang vật, phương tiện, giấy tờ
2 BtnSave_Click Nhập thông tin trong Form thêm mới tang vật,
phương tiện, giấy tờ

Hệ thống check ràng buộc của các trường dữ liệu


nếu thỏa mãn → lưu tang vật theo thông tin vừa
nhập → Form thêm mới tang vật, phương tiện,
giấy tờ được clear để người dùng tiếp tục thêm

BCA-C08_XLVP_2023_DD Internal use Trang 331


Tài liệu thiết kế hệ thống V1.0

Tang vật mới


3 BtnEdit_Click Click nút Chỉnh sửa ở cuối mỗi bản ghi trong
danh sách.
Mở pop-up chỉnh sửa tang vật có các thông tin của
bản ghi
4 BtnView_Click Click nút Xem chi tiết ở tang vật muốn xem
Mở pop-up xem chi tiết tang vật tương ứng với
tang vật được chọn
5 BtnDelete_Click Click nút Xóa ở tang vật trong danh sách → Hệ
thống xóa bản ghi tương ứng → Cập nhật lại danh
sách Tang vật.
6 BtnKiểmTraTangVật_Click Nhập thông tin trong Form thêm mới tang vật,
phương tiện, giấy tờ

Hệ thống check ràng buộc của các trường dữ liệu


nếu thỏa mãn → Api lấy dữ liệu tang vật
[GET]/tang-vat → Hệ thống hiển thị cảnh báo
theo kết quả trả về (xem thêm ở phần Kiểm tra
tang vật)

d.2.2.1.2.4. Các ràng buộc

Tên/Label Diễn giải


Loại tang vật, phương Bắt buộc chọn, mỗi tang vật chỉ được thêm 1 bản ghi
tiện, giấy tờ
Hạng Bắt buộc chọn, tối đa 3 hạng
Số Bắt buộc nhập, tối đa 15 ký tự
Tình trạng đặc điểm Tối đa 255 ký tự
Ghi chú Tối đa 255 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 332


Tài liệu thiết kế hệ thống V1.0

d.2.2.1.3. Kiểm tra tang vật

d.2.2.1.3.1. Mục đích

Kiểm tra Tang vật có đang bị Tạm giữ, Tước, Đình chỉ ở Biên bản, Quyết định trước khi
Thêm mới tang vật.
d.2.2.1.3.2. Giao diện

Hình 56: Button Kiểm tra tang vật

Hình 57: Thông báo khi tang vật không bị tạm giữ/tước

Hình 58: Cảnh báo khi tang vật bị tạm giữ, tước

BCA-C08_XLVP_2023_DD Internal use Trang 333


Tài liệu thiết kế hệ thống V1.0

d.2.2.1.3.3. Tham số tra cứu

Tham số Mô tả
ma Mã của loại tang vật
trangThai Bao gồm 3 trạng thái cần kiểm tra là tạm giữ (TAM_GIU), tước
(TUOC), đình chỉ (DINH_CHI)
Phương tiện
bienSo Biển số của phương tiện
Giấy tờ
so Số giấy tờ
Giấy phép lái
so Số của giấy phép lái xe
hang Hạng của giấy phép lái xe

d.2.2.2. Màn hình đối tượng vi phạm

d.2.2.2.1. Giao diện

Hình 59: Thông tin Đối tượng vi phạm Cá nhân

Hình 60: Thông tin đối tượng vi phạm Tổ chức


d.2.2.2.2. Danh sách control/ thành phần giao diện

Tên thành phần / Định


STT Tên label Mô tả
Control dạng
Đối tượng vi phạm Cá nhân

BCA-C08_XLVP_2023_DD Internal use Trang 334


Tài liệu thiết kế hệ thống V1.0

Họ và tên ten Textbox Hiển thị tên của đối tượng vi


1
phạm
Số định soDinhDanh Textbox Hiển thị số định danh của cá
2
danh nhân vi phạm
3 Nơi cấp noiCap Textbox Hiển thị nơi cấp của giấy tờ
4 Ngày cấp ngayCap Textbox Hiển thị ngày cấp của giấy tờ
Địa chỉ maDiaDanh Textbox Hiển thị địa chỉ thường trú của
5 thường cá nhân vi phạm
trú
Địa chỉ chiTiet Textbox Hiển thị địa chỉ chi tiết của cá
6
chi tiết nhân vi phạm
Nơi ở noiOHienTai Textbox Hiển thị nơi ở hiện tại của cá
7
hiện tại nhân vi phạm
Quốc tịch quocTich Textbox Hiển thị quốc tịch của cá nhân
8 vi phạm theo danh mục dùng
chung Quốc tịch
Giới tính gioiTinh Textbox Hiển thị giới tính của cá nhân
9
vi phạm
ngaySinh Textbox Hiển thị số lượng cho tang vật
10
phương tiện
Ngày sinh
loaiNgaySinh Textbox Hiển thị định dạng ngày sinh
11
của cá nhân vi phạm
Nghề ngheNghiep Textbox Hiển thị nghề nghiệp theo
12 nghiệp danh mục dùng chung Nghề
nghiệp
Số điện soDienThoai Textbox Hiển thị số điện thoại của cá
13
thoại nhân vi phạm
Email email Textbox Hiển thị email của cá nhân vi
14
phạm
15 Nơi sinh noiSinh Textbox Hiển thị nơi sinh của cá nhân

BCA-C08_XLVP_2023_DD Internal use Trang 335


Tài liệu thiết kế hệ thống V1.0

vi phạm
Đối tượng vi phạm Tổ chức
Tên tổ ten Textbox Hiển thị tên của Tổ chức vi
16
chức phạm
Số GCN soGcn Textbox Hiển thị số giấy chứng nhận
17
(GCN) của Tổ chức
18 Nơi cấp noiCap Textbox Hiển thị nơi cấp của GCN
19 Ngày cấp ngayCap Textbox Hiển thị ngày cấp của GCN
Địa chỉ maDiaDanh Textbox Hiển thị địa chỉ trụ sở chính
20 trụ sở của tổ chức vi phạm
chính
Địa chỉ chiTiet Textbox Hiển thị địa chỉ chi tiết của trụ
21
chi tiết sở chính
Người đại tenNguoiDaiDien Textbox Hiển thị tên người đại diện
22 diện pháp pháp luật của tổ chức vi phạm
luật
Chức chucDanhNguoiDaiDien Textbox Hiển thị chức danh người đại
23 danh diện pháp luật của tổ chức vi
phạm
Giới tính gioiTinhNguoiDaiDien Textbox Hiển thị giới tính người đại
24
diện của tổ chức vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 336


Tài liệu thiết kế hệ thống V1.0

d.2.2.3. Màn hình Người có thẩm quyền lập biên bản/quyết định

d.2.2.3.1. Giao diện

Hình 61 Người có thẩm quyền lập quyết định

Hình 62 Người có thẩm quyền lập biên bản

d.2.2.3.2. Danh sách control/thành phần giao diện

Tên
Tên thành Bắt
STT Định dạng Mô tả
label phần / buộc?
Control
Chọn đơn vị CSGT từ danh
mục Đơn vị cảnh sát giao

1 donVi Dropdownlist/Cascade X thông
quan
Giá trị mặc định là đơn vị
của user
Chọn cán bộ từ danh sách
cán bộ của Đơn vị cảnh sát
Họ
giao thông
2 và ma Dropdownlist X
Giá trị hiển thị theo định
tên
dạng {ten}({ma}) của cán
bộ
Cấp Hiển thị cấp bậc, chức vụ
3 capBac Textbox
bậc của cán bộ
4 Chức chucVu Textbox Sử dụng tên của cấp bậc,
vụ chức vụ thay cho mã để
phục vụ việc lưu lại cấp
bậc, chức vụ tại thời điểm

BCA-C08_XLVP_2023_DD Internal use Trang 337


Tài liệu thiết kế hệ thống V1.0

lập biên bản

d.2.2.4. Màn hình biên bản lập xong hồi

d.2.2.4.1. Giao diện

Hình 63: Màn hình Biên bản lập xong hồi


d.2.2.4.2. Danh sách các control/thành phần giao diện

Tên thành
Tên Bắt
STT phần / Định dạng Mô tả
label buộc?
Control
Chọn hồi lập biên bản
1 Hồi thoiGian DatePicker X Giá trị mặc định là ngày giờ
hiện tại
Nhập số tờ của biên bản
2 Số tờ soTo Textbox X
Giá trị mặc định là 2
Nhập số bản của biên bản
3 Số bản soBan Textbox X
Giá trị mặc định là 2

d.2.2.4.3. Các ràng buộc

STT Tên Nội dung


1 Hồi Bắt buộc nhập
Số tờ Bắt buộc nhập
2
Tối đa 2 ký tự
Số bản Bắt buộc nhập
3
Tối đa 2 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 338


Tài liệu thiết kế hệ thống V1.0

d.3. Các bảng dữ liệu sử dụng chung


d.3.1. Mục đích

Mô tả các bảng dữ liệu sử dụng chung cho toàn bộ biên bản quyết định
d.3.2. Chi tiết các bảng

d.3.2.1. Bảng BIEN_BAN_QUYET_DINH

d.3.2.1.1. Thông tin chi tiết

Bắt
STT Tên cột Kiểu dữ liệu Mô tả
buộc
PK - Mã biên bản tự
1 MA VARCHAR2(30 CHAR) X sinh theo loại biên
bản
2 MA_NHAP_TAY VARCHAR2(50 CHAR) Mã biên bản nhâp tay
FK - Mã vụ việc của
3 MA_VU_VIEC VARCHAR2(30 CHAR) X
biên bản
PK - Mã loại biên
4 MA_BIEU_MAU VARCHAR2(50 CHAR) X bản hoặc quyết định
(VD BB01)
Mã biên bản hoặc
5 MA_CHA VARCHAR2(30 CHAR) quyết định cha (tham
chiếu cột MA)
Mã loại biên bản/
MA_BIEU_MAU_
6 VARCHAR2(50 CHAR) quyết định của biên
CHA
bản/ quyết định cha
VARCHAR2(4000 Nội dung của biên
7 NOI_DUNG
CHAR) bản/ quyết định
Thời gian lập biên
8 THOI_GIAN_LAP DATE
bản/ quyết định
VARCHAR2(500 Địa điểm lập biên
9 DIA_DIEM_LAP
CHAR) bản/ quyết định
10 TU_NGAY DATE Có hiệu lực từ ngày
11 DEN_NGAY DATE Có hiệu lực đến ngày
Thời gian hoàn thành
THOI_GIAN_HO
12 DATE của biên bản/ quyết
AN_THANH
định
VARCHAR2(4000 Thông tin người tạo
13 CAN_BO_TAO
CHAR) biên bản/ quyết định
14 CAN_BO_SUA VARCHAR2(4000 Thông tin người lập

BCA-C08_XLVP_2023_DD Internal use Trang 339


Tài liệu thiết kế hệ thống V1.0

Bắt
STT Tên cột Kiểu dữ liệu Mô tả
buộc
CHAR) biên bản/ quyết định
Trạng thái biên bản/
15 TRANG_THAI VARCHAR2(2 CHAR)
quyết định
MA_DON_VI_CS VARCHAR2(255
16 Mã đơn vị CSGT
GT CHAR)
17 IS_DELETED NUMBER(1,0) Trạng thái xóa
VARCHAR2(255
18
NGUOI_TAO CHAR) Người tạo
VARCHAR2(255
19
NGUOI_SUA CHAR) Ngày tạo
20 NGAY_TAO DATE Người sửa
21 NGAY_SUA DATE Ngày Sửa
NGUOI_PHE_DU
22
YET VARCHAR2(50 CHAR) Mã cán bộ phê duyệt
CAN_BO_PHE_D VARCHAR2(4000 Thông tin cán bộ phê
23
UYET CHAR) duyệt
NGAY_PHE_DU
24
YET DATE Ngày phê duyệt
Nguồn tạo biên bản/
25 quyết định (tạo bù,
NGUON VARCHAR2(15 CHAR) trực tiếp, …)
ID lưu thông tin địa
26 DIA_CHI_DON_V danh của đơn vị
I_CSGT_ID NUMBER CSGT tạo biên bản

d.3.2.1.2. Các ràng buộc

STT Tên Nội dung


1 PK_MA_LOAI_BIEU_MAU Khóa chính của bảng, đảm bảo cặp MA,
MA_BIEU_MAU không bị trùng lặp
2 FK_LOAI_BB_TTVP Khóa ngoài liên kết (MA_BIEU_MAU)
đến bảng
DANH_MUC_MAU_BIEN_BAN_QUYE
T_DINH(MA)
3 FK_MA_VU_VIEC_TTVP Khóa ngoài liên kết (MA_VU_VIEC) đến

BCA-C08_XLVP_2023_DD Internal use Trang 340


Tài liệu thiết kế hệ thống V1.0

bảng VU_VIEC(MA)
4 FK_SEFL_REFERENCE_PAR Khóa ngoài liên kết(MA_CHA,
ENT MA_BIEU_MAU_CHA) đến biên bản
quyết định cha – bảng
BIEN_BAN_QUYET_DINH(MA,
MA_BIEU_MAU)
5 Tự sinh MA là bắt buộc
MA_VU_VIEC là bắt buộc
MA_BIEU_MAU là bắt buộc

d.3.2.1.3. Trigger

STT Tên Nội dung


1 TRG_BIEN_BAN_QUYET_DI Trigger lưu thông tin lịch sử biên bản quyết
NH_AFTER_UPDATE định mỗi lần tạo mới, cập nhật vào bảng
LICH_SU_BIEN_BAN_QUYET_DINH
d.3.2.1.4. Package

Tên package sử dụng: PKG_BIEN_BAN_QUYET_DINH

d.3.2.2. Bảng VU_VIEC

d.3.2.2.1. Thông tin chi tiết


Bắt
STT Tên cột Kiểu dữ liệu Mô tả
buộc
VARCHAR2(3
1 MA X (PK)Mã Số Vụ Việc
0 CHAR)
VARCHAR2(1
2 TEN Tên Vụ Việc
50 CHAR)
THOI_GIAN_
3 DATE X Thời gian tạo Vụ Việc
LAP
MA_DON_VI_ VARCHAR2(5
4 X Mã đơn vị CSGT
CSGT 0 CHAR)
THONG_TIN_ VARCHAR2(4
5 Thông Tin của đơn vị tạo
DON_VI 000 CHAR)
6 LOAI_DOI_T NUMBER(1,0)   Loại Đối Tượng vi phạm, 0 là Cá

BCA-C08_XLVP_2023_DD Internal use Trang 341


Tài liệu thiết kế hệ thống V1.0

Bắt
STT Tên cột Kiểu dữ liệu Mô tả
buộc
UONG nhân, 1 là Tổ Chức
DINH_DANH_ VARCHAR2(5 Số định danh của đối tượng vi
7  
DTVP 0 CHAR) phạm
VARCHAR2(2
8 TEN_DTVP X  Tên của đối tượng vi phạm
55 CHAR)
THONG_TIN_ VARCHAR2(4
9   thông tin đối tượng vi phạm
DTVP 000 CHAR)
Loại lĩnh vực của vụ việc (Đường
10 LINH_VUC NUMBER X
Sắt, Đường Thủy, Đường bộ)
THOI_GIAN_
11 DATE X Thời gian vi phạm
VP
DIA_DIEM_V VARCHAR2(5
12 X  Địa điểm xảy ra vi phạm
P 12 CHAR)
CAN_BO_TA VARCHAR2(4
13   Thông tin cán bộ tạo
O 000 CHAR)
CAN_BO_SU VARCHAR2(4
14   Thông tin cán bộ sửa
A 000 CHAR)
VARCHAR2(2
15 TRANG_THAI   Trạng Thái của vụ việc
CHAR)
16 IS_DELETED NUMBER(1,0) Trạng thái xóa
VARCHAR2(2
17 NGUOI_TAO Người tạo
55 CHAR)
VARCHAR2(2
18 NGUOI_SUA Người sửa
55 CHAR)
19 NGAY_TAO DATE Ngày tạo
20 NGAY_SUA DATE Ngày sửa
VARCHAR2(5
21 NGUON Nguồn tạo vụ việc
0 CHAR)
DIA_CHI_DO
ID lưu thông tin địa danh của đơn
22 N_VI_CSGT_I NUMBER
vị CSGT tạo vụ việc
D

d.3.2.2.2. Các ràng buộc

STT Tên Nội dung


1 PK_VU_VIEC Khóa chính của bảng, đảm MA không bị

BCA-C08_XLVP_2023_DD Internal use Trang 342


Tài liệu thiết kế hệ thống V1.0

trùng lặp
2 Tự sinh MA là bắt buộc
THOI_GIAN_LAP là bắt buộc
MA_DON_VI_CSGT là bắt buộc
TEN_DTVP là bắt buộc
THOI_GIAN_VP là bắt buộc
DIA_DIEM_VP là bắt buộc
LINH_VUC là bắt buộc
d.3.2.2.3. Trigger

STT Tên Nội dung


1 TRG_VU_VIEC_AFTER_UPD Trigger lưu thông tin lịch sử vụ việc mỗi
ATE lần tạo mới, cập nhật vào bảng
LICH_SU_VU_VIEC

d.3.2.3. Bảng BB_QD_HANH_VI_VI_PHAM

d.3.2.3.1. Thông tin chi tiết


Bắt
STT Tên cột Kiểu dữ liệu Mô tả
buộc
VARCHAR2(255  FK – Mã biên bản quyết
1 X
MA_BB_QD CHAR) đinh
VARCHAR2(255  FK – Mã biểu mẫu biên
2  X
MA_BIEU_MAU CHAR) bản/ quyết định
MA_HANH_VI_VI_P VARCHAR2(20
3 X
HAM CHAR)  Mã hành vi vi phạm
VARCHAR2(10
4 X
MA_TT_ND CHAR)  Mã thông tư nghị định
 Mức tiền phạt cho hành
5
MUC_TIEN_PHAT NUMBER vi vi phạm
VARCHAR2(200  Thông tin bổ sung cho
6
BO_SUNG_HVVP CHAR) hành viv I phạm
7 THOI_GIAN_VP DATE  Thời gian xảy ra vi phạm
VARCHAR2(512
8
DIA_DIEM_VP CHAR)  Địa điểm xảy ra vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 343


Tài liệu thiết kế hệ thống V1.0

d.3.2.3.2. Các ràng buộc

STT Tên Nội dung


1 FK_BB_QD_HANH_VI_VI_P Khóa ngoài liên kết(MA_BB_QD,
HAM MA_BIEU_MA) đến biên bản quyết định –
bảng BIEN_BAN_QUYET_DINH(MA,
MA_BIEU_MAU)
2 Tự sinh MA_BB_QD là bắt buộc
MA_BIEU_MAU là bắt buộc
MA_HANH_VI_VI_PHAM là bắt buộc
MA_TT_ND là bắt buộc
d.3.2.4. Bảng BB_QD_NOI_DUNG_CHI_TIET

d.3.2.4.1. Thông tin chi tiết


Bắt
STT Tên cột Kiểu dữ liệu Mô tả
buộc
VARCHAR2(50  FK – Mã biên bản quyết
1 X
MA_BB_QD CHAR) định
VARCHAR2(50  FK – Mã loại biểu mẫu biên
2  X
MA_BIEU_MAU CHAR) bản/ quyết định
 Loại nội dung in (HPBS:
3 VARCHAR2(50 X hình phạt bổ sung, HVVP:
LOAI CHAR) Hành vi vi phạm)
VARCHAR2(3000
4 X
NOI_DUNG CHAR)  Nội dung khi in ra

d.3.2.4.2. Các ràng buộc

STT Tên Nội dung


1 PK_BBQĐ_NOI_DUNG_CHI_ Khóa chính đảm bảo (MA_BB_QD,
TIET MA_BIEU_MAU, LOAI) lkhoong bị trùng
lặp
2 FK_MA_BBQĐ_NOI_DUNG_ Khóa ngoài liên kết(MA_BB_QD,
CHI_TIET MA_BIEU_MA) đến biên bản quyết định –
bảng BIEN_BAN_QUYET_DINH(MA,
MA_BIEU_MAU)

BCA-C08_XLVP_2023_DD Internal use Trang 344


Tài liệu thiết kế hệ thống V1.0

d.3.2.5. Bảng TANG_VAT

d.3.2.5.1. Thông tin chi tiết


Bắt
STT Tên cột Kiểu dữ liệu Mô tả
buộc
1 ID NUMBER(10,0) X PK - Id của tang vật
VARCHAR2(255
2  X
MA_VU_VIEC CHAR) FK - Mã Số Vụ Việc
FK - Mã Biên bản/
3 VARCHAR2(255 X quyết định của tang
MA_BB_QD CHAR) vật
FK - Mã loại biên
4 VARCHAR2(255  X bản/ quyết định của
MA_BIEU_MAU CHAR) tang vật
Loại tang vật
5 VARCHAR2(50   (Phương tiện/ giấy
MA_GIAY_TO CHAR) tờ/ khác)
VARCHAR2(4000 Thông tin chi tiết của
6  
THONG_TIN CHAR) tang vật
Nhóm tang vật
(GIAY_TO,
GIAY_PHEP_LAI_
7  
XE,
NHOM_TANG_V VARCHAR2(50 PHUONG_TIEN,
AT CHAR) KHAC)

d.3.2.5.2. Các ràng buộc

STT Tên Nội dung


1 PK_TANG_VAT Khóa chính ID của tang vật
2 FK_MA_BB_QD_TV Khóa ngoài liên kết(MA_BB_QD,
MA_BIEU_MA) đến biên bản quyết định –
bảng BIEN_BAN_QUYET_DINH(MA,
MA_BIEU_MAU)
3 FK_MA_VU_VIEC_TANG_V Khóa ngoài liên kết (MA_VU_VIEC) đến
AT bảng VU_VIEC(MA)
4 Tự sinh MA_VU_VIEC là bắt buộc

BCA-C08_XLVP_2023_DD Internal use Trang 345


Tài liệu thiết kế hệ thống V1.0

d.3.2.6. Bảng DANH_MUC_MAU_BIEN_BAN_QUYET_DINH

d.3.2.6.1. Thông tin chi tiết


ST Bắt
Tên cột Kiểu dữ liệu Mô tả
T buộc
PK - Mã được tạo bởi
VARCHAR2(50
1 MA X ký hiệu TTND và mã
CHAR)
biên bản quyết định
VARCHAR2(255 Tên mẫu biên bản
2 TEN
CHAR) quyết định
VARCHAR2(50 Mã biên bản quyết
3 MA_BB_QD
CHAR) định
Loại biên bản quyết
4 LOAI NUMBER(1,0) định (1: Biên bản, 2:
Quyết định)
VARCHAR2(15 Ký hiệu mẫu biên bản
5 KY_HIEU
CHAR) quyết định
6 TRANG_THAI NUMBER(1,0) Trạng thái
Có sử dụng chữ ký số
7 IS_CHU_KY_SO NUMBER(1,0)
không
Lặp lại mẫu biên bản
8 LAP_LAI NUMBER(1,0)
quyết định
VARCHAR2(50
9 NGUOI_TAO
CHAR) Người tạo
10 NGAY_TAO DATE Ngày tạo
VARCHAR2(50
11 NGUOI_SUA
CHAR) Người sửa
12 NGAY_SUA DATE Ngày Sửa
13 IS_DELETED NUMBER(1,0) Trạng thái xóa
IS_LAP_TU_VU_VIE
14 NUMBER(1,0)
C Lặp lại từ vụ việc
VARCHAR2(10 Mã thông tư nghị
15 MA_TT_ND
CHAR) định
d.3.2.6.2. Các ràng buộc

STT Tên Nội dung


1 MA_BB_QD_PK Khóa chính đảm bảo MA không bị trùng
lặp
2 MAU_BBQĐ_MA_TTND_FK Khóa ngoài liên kết(MA_TT_ND) đến

BCA-C08_XLVP_2023_DD Internal use Trang 346


Tài liệu thiết kế hệ thống V1.0

THONG_TU_NGHI_DINH (MA)

d.4. Các Procedure và Services dùng chung


d.4.1. Mục đích

Mô tả Service và Procedures sử dụng chung cho toàn bộ biên bản quyết định
d.4.2. Chi tiết từng mục

d.4.2.1. Services

d.4.2.1.1. Thêm mới BBQĐ

d.4.2.1.1.1. Danh sách các lớp

STT Tên lớp Mô tả


1 BBQĐController.java Lớp làm nhiệm vụ điều hướng các thao tác với
1 biên bản quyết định
2 BBQĐService.java Interface các xử lý cho BBQĐ
2
3 BBQĐServiceImpl.java Lớp triển khai chi tiết các phương thức của
3 BBQĐService.java
4 BBQĐRepository.java Lớp giao tiếp với database làm nhiệm vụ cập
4 nhật liên quan đến BBQĐ
5 TangVatService.java Lớp làm nhiệm vụ tạo và quản lý tang vật của
6 BBQĐ nếu có
6 BBQĐHinhThucXuPhatS Lớp làm nhiệm vụ tạo và quản lý các hình thức
7 ervice.java xử phạt cho BBQĐ nếu có
7 BBQĐNoiDungChiTietSe Lớp làm nhiệm vụ tạo và quản lý các nội dung in
8 vice.java cho BBQĐ nếu có
d.4.2.1.1.2. Danh sách các phương thức

STT Tên method Tên lớp Mô tả


1 create BBQĐController. Cung cấp endpoint tạo mới BBQĐ và điều
java hướng đến service tạo BBQĐ
2 create BBQĐServiceImp Thực hiện các thao tác validate, chuẩn hóa
l.java lại dữ liệu và tạo mới BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 347


Tài liệu thiết kế hệ thống V1.0

3 create BBQĐRepository Gọi hàm


.java PKG_BIEN_BAN_QUYET_DINH.CREATE
_BB_QD để tạo BBQĐ trong database

4 isValid BB01ValidatorSe Kiểm tra tính hợp lệ dữ liệu gửi lên khi
rvice tạo BBQĐ
.java
5 bulkCreate TangVatService.j Tạo các tang vật thuộc BBQĐ
ava
6 bulkCreate BBQĐHinhThuc Tạo các hình thức xử phạt cho BBQĐ
XuPhatService.ja
va
7 upsert BBQĐNoiDungC Tạo hoặc cập nhật các nội dung in cho
hiTietSevice.java BBQĐ

d.4.2.1.2. Chỉnh sửa BBQĐ

d.4.2.1.2.1. Danh sách các lớp

Tương tự như Thêm mới BBQĐ


d.4.2.1.2.2. Danh sách các phương thức

STT Tên method Tên lớp Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 348


Tài liệu thiết kế hệ thống V1.0

1 update BBQĐController. Cung cấp endpoint cập nhật BBQĐ và


1 java điều hướng đến service cập nhật BBQĐ

2 update BBQĐServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 l.java lại dữ liệu và cập nhật BBQĐ

3 update BBQĐRepository Gọi hàm


3 .java PKG_BIEN_BAN_QUYET_DINH.UPDATE
_BB_QD để sửa BBQĐ trong database

4 updateTang TangVatService.j Cập nhật thông tin các tang vật thuộc
5 Vat ava BBQĐ

5 bulkUpdate BBQĐHinhThuc Cập nhật hình thức xử phạt cho BBQĐ


6 XuPhatService.ja
va
6 upsert BBQĐNoiDungC Tạo hoặc cập nhật các nội dung in cho
7 hiTietSevice.java BBQĐ

d.4.2.1.3. Chi tiết BBQĐ

d.4.2.1.3.1. Danh sách các lớp

STT Tên lớp Mô tả


1 BBQĐController.java Lớp làm nhiệm vụ điều hướng các thao tác với
biên bản quyết định
2 BBQĐService.java Interface các xử lý cho BBQĐ
3 BBQĐServiceImpl.java Lớp triển khai chi tiết các phương thức của
BBQĐService.java
4 BBQĐRepository.java Lớp giao tiếp với database làm nhiệm vụ lấy
thông tin chi tiết BBQĐ
d.4.2.1.3.2. Danh sách các phương thức

STT Tên method Tên lớp Mô tả


1 get BBQĐController. Cung cấp endpoint cập nhật BBQĐ và
java điều hướng đến service cập nhật BBQĐ
2 get BBQĐServiceImp Thực hiện các thao tác chuẩn hóa lại dữ

BCA-C08_XLVP_2023_DD Internal use Trang 349


Tài liệu thiết kế hệ thống V1.0

l.java liệu BBQĐ trước khi trả ra


3 get BBQĐRepository Gọi hàm GET_BB_QD_DETAILS để lấy
.java thông tin chi tiết BBQĐ trong database

d.4.2.2. Procedure

d.4.2.2.1. Thêm mới BBQĐ


- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được sử
dụng để tạo mới BBQĐ trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
1 P_MA VARCHAR2(50 N Mã BBQĐ
CHAR)
2 P_MA_NHAP_TA VARCHAR2(50 N Mã nhập tay khi tạo BBQĐ
Y CHAR)
3 P_MA_VU_VIEC VARCHAR2(50 N Mã vụ việc tạo BBQĐ
CHAR)
4 P_MA_CHA VARCHAR2(50 N Mã BBQĐ cha nếu có
CHAR)
5 P_MA_BIEU_MA VARCHAR2(50 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
6 P_THOI_GIAN_LA DATE N Thời gian lập BBQĐ
P
7 P_DIA_DIEM_LAP VARCHAR2(50 N Địa điểm lập BBQĐ
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
10 P_THOI_GIAN_H DATE N Thời gian hoàn thành xử lý
OAN_THANH
11 P_TRANG_THAI VARCHAR2(2 N Trạng thái BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 350


Tài liệu thiết kế hệ thống V1.0

CHAR)
12 P_MA_DON_VI_C VARCHAR2(25 N Mã đơn vị CSGT
SGT 5 CHAR)
13 P_DIA_CHI_DON_ NUMBER(12,0) N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID
14 P_NOI_DUNG VARCHAR2(40 N Nội dung cụ thể của BBQĐ
00 CHAR)
15 P_NGUON VARCHAR2(15 N Nguồn tạo BBQĐ
CHAR)
16 P_CAN_BO_TAO VARCHAR2(40 N Thông tin cán bộ tạo
00 CHAR) BBQĐ
17 P_NGUOI_TAO VARCHAR2(25 N Tài khoản tạo BBQĐ
5 CHAR)
18 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQĐ
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để
lấy thông tin bản ghi vừa được thêm và trả về.
d.4.2.2.2. Chỉnh sửa BBQĐ
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được sử
dụng để cập nhật BBQĐ trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
1 P_MA VARCHAR2(50 N Mã BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 351


Tài liệu thiết kế hệ thống V1.0

CHAR)
2 P_MA_NHAP_TA VARCHAR2(50 N Mã nhập tay khi tạo BBQĐ
Y CHAR)
3 P_THOI_GIAN_LA DATE N Thời gian lập BBQĐ
P
4 P_DIA_DIEM_LAP VARCHAR2(50 N Địa điểm lập BBQĐ
0 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
7 P_THOI_GIAN_H DATE N Thời gian hoàn thành xử lý
OAN_THANH
8 P_TRANG_THAI VARCHAR2(2 N Trạng thái BBQĐ
CHAR)
9 P_NOI_DUNG VARCHAR2(40 N Nội dung cụ thể của BBQĐ
00 CHAR)
10 P_CAN_BO_SUA VARCHAR2(40 N Thông tin cán bộ sửa
00 CHAR) BBQĐ
11 P_NGUOI_SUA VARCHAR2(25 N Tài khoản sửa BBQĐ
5 CHAR)
12 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQĐ
vừa tạo
Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQĐ được cập nhật.
d.4.2.2.3. Chi tiết BBQĐ

Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 352


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Nhập/ Mô tả


Xuất
(N/X)
1 P_MA VARCHAR2(5 N Mã BBQĐ
0 CHAR)
2 P_MA_BIEU_MA VARCHAR2(5 N Mã biểu mẫu BBQĐ
U 0 CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQĐ
Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.

d.5. Biên bản 01 – Biên bản vi phạm hành chính


d.5.1. Mục đích

- Quản lý biên bản 01 – Biên bản vi phạm hành chính.


- Chức năng quản lý biên bản 01 – Biên bản vi phạm hành chính:
o Thêm mới biên bản 01
o Sửa biên bản 01
o Hiển thị chi tiết biên bản 01
o Xóa biên bản 01

BCA-C08_XLVP_2023_DD Internal use Trang 353


Tài liệu thiết kế hệ thống V1.0

d.5.2. Chi tiết từng mục

d.5.2.1. Thiết kế dữ liệu

d.5.2.1.1. Mô hình quan hệ dữ liệu

HÌnh 64: Mô hình quan hệ dữ liệu biên bản 01


d.5.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 BIEN_BAN_QUYET_DIN Xem chi tiết ở Các bảng sử dụng chung/Bảng
H BIEN_BAN_QUYET_DINH
2 VU_VIEC Xem chi tiết ở Các bảng sử dụng chung/Bảng
VU_VIEC
3 BB_QD_HANH_VI_VI_PH Xem chi tiết ở Các bảng sử dụng chung/Bảng
AM BB_QD_HANH_VI_VI_PHAM
4 BB_QD_NOI_DUNG_CHI Xem chi tiết ở Các bảng sử dụng chung/Bảng
_TIET BB_QD_NOI_DUNG_CHI_TIET
5 TANG_VAT Xem chi tiết ở Các bảng sử dụng chung/Bảng
TANG_VAT
6 DANH_MUC_MAU_BIEN Xem chi tiết ở Các bảng sử dụng chung/Bảng
_BAN_QUYET_DINH DANH_MUC_MAU_BIEN_BAN_QUYET_D

BCA-C08_XLVP_2023_DD Internal use Trang 354


Tài liệu thiết kế hệ thống V1.0

INH
d.5.2.2. Thiết kế các hàm, thủ tục

d.5.2.2.1. Thêm mới biên bản vi phạm hành chính

d.5.2.2.1.1. API

Api thêm mới dùng chung cho tất cả BBQĐ (xem thêm ở Biên bản 01)
Method URL
POST xlvp/api/v1/bb-qd

d.5.2.2.1.2. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng

STT Tên lớp Mô tả


Xem chi tiết ở Các Procedure và Services dùng chung/Chi tiết từng mục/Services/Thêm mới
BBQĐ/Danh sách các lớp

1 BB01ValidatorService Lớp kiểm tra tính hợp lệ của BBQĐ


.java

- Danh sách các phương thức sử dụng

STT Tên method Tên lớp Mô tả


Xem chi tiết ở Các Procedure và Services dùng chung/Chi tiết từng mục/Services/Thêm mới
BBQĐ/Danh sách các phương thức

1 isValid BB01ValidatorService Kiểm tra tính hợp lệ dữ liệu gửi lên


.java khi tạo BBQĐ

Procedure:
Xem chi tiết ở Các Procedure và Services dùng chung/Chi tiết từng mục/ Procedure
/Thêm mới BBQĐ
d.5.2.2.2. Chỉnh sửa Biên bản vi phạm hành chính

d.5.2.2.2.1. API

Api chỉnh sửa dùng chung cho tất cả BBQĐ (xem thêm ở Biên bản 01)
d.5.2.2.2.2. Mô tả chi tiết

Service:

BCA-C08_XLVP_2023_DD Internal use Trang 355


Tài liệu thiết kế hệ thống V1.0

- Danh sách các lớp sử dụng

STT Tên lớp Mô tả


Xem chi tiết ở Các Procedure và Services dùng chung/Chi tiết từng mục/Services/Chỉnh sửa
BBQĐ/Danh sách các lớp

1 BB01ValidatorService Lớp kiểm tra tính hợp lệ của BBQĐ


.java

- Danh sách các phương thức sử dụng

STT Tên method Tên lớp Mô tả


Xem chi tiết ở Các Procedure và Services dùng chung/Chi tiết từng mục/Services/Chỉnh sửa
BBQĐ/Danh sách các phương thức

1 isValid BB01ValidatorService Kiểm tra tính hợp lệ dữ liệu gửi lên


.java khi tạo BBQĐ

Procedure:
Xem chi tiết ở Các Procedure và Services dùng chung/Chi tiết từng mục/ Procedure
/Chỉnh sửa BBQĐ

d.5.2.2.3. Xem chi tiết biên bản vi phạm hành chính

d.5.2.2.3.1. API

Api chi tiết dùng chung cho tất cả BBQĐ (xem thêm ở Biên bản 01)
d.5.2.2.3.2. Mô tả chi tiết

Service:
Xem chi tiết ở Các Procedure và Services dùng chung/Chi tiết từng mục/Services/Chi tiết
BBQĐ
Procedure:
Xem chi tiết ở Các Procedure và Services dùng chung/Chi tiết từng mục/Procedure/Chi
tiết BBQĐ
d.6. Biên bản 03 – Biên bản Phiên giải trình trực tiếp
d.6.1. Mục đích

- Quản lý Biên bản 03 – Biên bản Phiên giải trình trực tiếp.
- Chức năng quản lý Biên bản 03 – Biên bản Phiên giải trình trực tiếp:

BCA-C08_XLVP_2023_DD Internal use Trang 356


Tài liệu thiết kế hệ thống V1.0

o Thêm mới Biên bản 03


o Sửa Biên bản 03
o Hiển thị chi tiết Biên bản 03
o Xóa Biên bản 03

d.6.2. Chi tiết từng mục

d.6.2.1. Thiết kế dữ liệu

d.6.2.1.1. Mô hình quan hệ dữ liệu

Hình 65: Mô hình quan hệ dữ liệu biên bản 03


d.6.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 BIEN_BAN_QUYE Xem chi tiết ở Các bảng sử dụng chung/Bảng
T_DINH BIEN_BAN_QUYET_DINH
2 VU_VIEC Xem chi tiết ở Các bảng sử dụng chung/Bảng
VU_VIEC
3 DANH_MUC_MAU Xem chi tiết ở Các bảng sử dụng chung/Bảng
_BIEN_BAN_QUY DANH_MUC_MAU_BIEN_BAN_QUYET_
ET_DINH DINH

BCA-C08_XLVP_2023_DD Internal use Trang 357


Tài liệu thiết kế hệ thống V1.0

d.6.2.2. Thiết kế màn hình

d.6.2.2.1. Thêm mới/Sửa Biên bản 03- Biên bản phiên giải trình trực tiếp

d.6.2.2.1.1. Giao diện

Tại màn chi tiết Biên bản 01 và Biên bản 05, Click vào nút Button Tạo BB/QĐ

Hình 66: Popup tạo mới BB/QĐ

BCA-C08_XLVP_2023_DD Internal use Trang 358


Tài liệu thiết kế hệ thống V1.0

Hình 67: Màn hình Thêm/Sửa Biên bản 03


d.6.2.2.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
- Giải thích các item
Bắt
Tên thành phần /
STT Label buộc Định dạng Miêu tả
Control
nhập
Thông tin chung
Mã tự sinh, hoặc
1 Số biên bản ma/maNhapTay Textbox
nhập tay
Chọn thời gian
2 Ngày tạo thoiGianLap X DatePicker
lập biên bản
Nhập địa điểm
3 Tại diaDiemLap X Textbox
lập biên bản
4 Trạng thái trangThai Text Hiển thị trạng
thái hiện tại của

BCA-C08_XLVP_2023_DD Internal use Trang 359


Tài liệu thiết kế hệ thống V1.0

biên bản
Căn cứ
Hiển thị thông
Bao gồm nội tin số QĐ, Ngày
dung tương ra QĐ, Đơn vị
5 ứng với canCu.bbqd X Text có thẩm quyền
BB01/BB05 ra QĐ của
sinh ra BB03 BB01/BB05
sinh ra BB07
Văn bản yêu
canCu.ngayLapVbg Chọn ngày giải
6 cầu được giải Datepicker
t trình trực tiếp
trình trực tiếp
canCu.tbGiaiTrinh.s Nhập số thông
7 Textbox
o báo
canCu.tbGiaiTrinh.k Nhập ký hiệu
8 Thông báo về Textbox
yHieu thông báo
việc tổ chức
9 phiên giải trình canCu.tbGiaiTrinh.n Datepicker
Chọn ngày
trực tiếp gayRaTb thông báo
canCu.tbGiaiTrinh.n
Nhập người
10 guoiCoThamQuyen Textbox
thông báo
Tb
Đối tượng vi phạm
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình đối
tượng vi phạm
Thông tin người lập biên bản
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình
người có thẩm quyền lập biên bản/quyết định
Ý kiến của người có thẩm quyền xử phạt vi phạm hành chính về
Nhập ý kiến căn
11 Căn cứ pháp lý yKienCcpl Textbox
cứ pháp lý
Tình tiết, Nhập ý tình tiết,
12 yKienTtlq Textbox
chứng cứ chứng cứ

BCA-C08_XLVP_2023_DD Internal use Trang 360


Tài liệu thiết kế hệ thống V1.0

HTXP, Nhập HTXP,


13 BPKPHQ dự yKienHtxp Textbox BPKPHQ dự
kiến áp dụng kiến áp dụng
Ý kiến của <cá nhân/người đại diện của tổ chức> vi phạm hoặc của người đại diện
hợp pháp của <cá nhân/tổ chức> vi phạm
Nhập ý kiến của
14 Ý kiến yKienNvp x Textbox cá nhân hoặc tổ
chức vi phạm
Lý do không ký biên bản
Nhập lý do
15 Lý do lyDo Textbox không ký biên
bản
Biên bản lập xong hồi
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình biên
bản lập xong hồi

d.6.2.2.1.3. Các ràng buộc

STT Tên Nội dung


Thông tin chung
1
Số biên bản Tối đa 29 ký tự
1
Bắt buộc chọn
2
Thời gian lập biên bản Phải lớn hơn thời gian lập của quyết định
2
26 tương ứng

3 Bắt buộc nhập


Tại
3 Tối đa 255 ký tự
Thông báo về việc tổ chức phiên giải trình trực tiếp
4
Số Tối đa 5 kí tự
4
5
Ký hiệu Tối đa 10 kí tự
5
6 Của Tối đa 255 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 361


Tài liệu thiết kế hệ thống V1.0

Người có thầm quyền lập quyết định


7
Cơ quan Phải có ít nhất 1 tang vật phát hiện được
6
8 Họ và tên Tối đa 500 ký tự
Ý kiến của người có thẩm quyền xử phạt vi phạm hành chính
9 Căn cứ pháp lý Tối đa 500 ký tự
10 Tình tiết, chứng cứ Tối đa 500 ký tự
11 HTXP, BPKPHQ dự kiến áp
Tối đa 500 ký tự
7 dụng
Ý kiến của <cá nhân/người đại diện của tổ chức> vi phạm hoặc của người đại diện
hợp pháp của <cá nhân/tổ chức> vi phạm

12 Bắt buộc nhập


Ý kiến
8 Tối đa 500 ký tự
Lý do không ký biên bản
13
Lý do Tối đa 500 ký tự
9

d.6.2.2.1.4. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn Biên bản 03 ở Pop-up Tạo BB/QĐ → Màn
hình hiển thị Form thêm mới Biên bản với dữ liệu lấy
từ Biên bản cha và giá trị mặc định
1 Page_Load Chọn BtnEdit ở Danh sách biên bản hoặc màn Chi
tiết Biên bản → Màn hình hiển thị Form chỉnh sửa
Biên bản với dữ liệu tương ứng với Biên bản 03đã
chọn
Nhập thông tin trong Form biên bản 03

2 BtnSave_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu biên bản theo thông tin vừa nhập

BCA-C08_XLVP_2023_DD Internal use Trang 362


Tài liệu thiết kế hệ thống V1.0

Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh
sách hoặc ở trong màn Chi tiết biên bản
3 BtnEdit_Click
Đi đến màn hình Chỉnh sửa biên bản tương ứng BB
được chọn
Click nút Đóng → Hiển thị popup xác nhận “Thực
hiện lưu thông tin vào hệ thống không?”
TH1: Chọn Đồng ý → Hệ thống check ràng buộc của
các trường dữ liệu nếu thỏa mãn → lưu BB theo
4 BtnClose_Click
thông tin vừa nhập → Màn hình chuyển đến màn
xem chi tiết BB.
TH2: Chọn Không → Màn hình chuyển đến xem chi
tiết BB

BCA-C08_XLVP_2023_DD Internal use Trang 363


Tài liệu thiết kế hệ thống V1.0

d.6.2.2.2. Xem chi tiết Biên bản 03

d.6.2.2.2.1. Giao diện

Hình 68: Màn hinh xem chi tiết biên bản 03


d.6.2.2.2.2. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn nút Xem chi tiết tại Danh sách Biên bản →
1 Page_Load
Màn hình hiển thị Biên bản 03 đã chọn
2 BtnTạoBB/QĐ Chọn nút Tạo BB/QĐ ở cuối màn hình → Hiển thị

BCA-C08_XLVP_2023_DD Internal use Trang 364


Tài liệu thiết kế hệ thống V1.0

Pop – up chọn Mẫu biên bản và quyết định để tạo


Click nút Chỉnh sửa ở cuối màn hình → Đi đến màn
3 BtnEdit_Click
hình Chỉnh sửa biên bản
Click nút Xem lịch sử ở cuối màn hình → Đi đến
4 BtnLichSu_Click
màn hình xem Lịch sử biên bản
Click nút Tạo QD02 CBCS, UBND ở cuối màn hình
5 BtnTaoQD02Bu_Click
→ Đi đến màn hình Thêm mới QD02 tạo bù
Click nút In ở cuối màn hình → Màn hình hiển thị
6 BtnPrint_Click
Pop-up xem trước bản in của Biên bản
Click nút Xóa ở cuối màn hình → Chọn Đồng ý.
7 BtnDelete_Click Hệ thống xóa bản ghi tương ứng → Màn hình quay
lại danh sách biên bản.
ButtonClose_Click Click nút Đóng ở cuối màn hình -> Đi đến màn danh
8
sách biên bản

d.6.2.3. Thiết kế các hàm, thủ tục

d.6.2.3.1. Thêm mới Biên bản Phiên giải trình trực tiếp

d.6.2.3.1.1. API

Mô tả: Gọi API để tạo mới Biên bản Phiên giải trình trực tiếp
Method URL
POST xlvp/api/v1/bb-qd

d.6.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

STT Tham số Kiểu Bắt Mô tả


dữ liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD
2 maBieuMau String X Mã biểu mẫu BBQD
3 maCha String Mã BBQD cha

BCA-C08_XLVP_2023_DD Internal use Trang 365


Tài liệu thiết kế hệ thống V1.0

4 maBieuMauC String Mã biểu mẫu cha


ha
5 thoiGianLap Date X Thời gian lập BBQD
6 diaDiemLap String Địa điểm lập BBQD
7 maNhapTay String Mã số nhập tay BBQD
8 tangVat List Danh sách các tang vật của biên bản, tham
khảo bảng dữ liệu đầu vào tang vật dưới
đây
9 hanhViViPha List X Danh sách các hành vi vi phạm của
m BBQD, tham khảo bảng dữ liệu đầu vào
Hành vi vi phạm dưới đây
10 noiDungChiTi List Danh sách nội dung in hành vi vi phạm
et của BBQD, tham khảo bảng dữ liệu đầu
vào nội dung chi tiết dưới đây
11 noiDung Object X Nội dung chi tiết của Biên bản Phiên giải
trình trực tiếp

- Dữ liệu nội dung Biên bản Phiên giải trình trực tiếp:

STT Tham số Kiểu Bắt Mô tả


dữ liệu buộc
1 canCu Json Căn cứ của BB03
2 nguoiCoTham Json X Thông tin người có thẩm quyền lập BB
Quyen Example: {“ma”: “admin”}
3 yKienCcpl String Ý kiến căn cứ pháp lý
4 yKienTtlq String Ý kiến về các tình tiết, chứng cứ liên quan
đến hành vi vi phạm
5 yKienHtxp String Ý kiến về các hình thức xử phạt, biện
pháp khắc phục hậu quả dự kiến áp dụng
đối với hành vi vi phạm
6 yKienNvp X Ý kiến của <cá nhân/người đại diện của tổ
chức> vi phạm hoặc người đại diện hợp

BCA-C08_XLVP_2023_DD Internal use Trang 366


Tài liệu thiết kế hệ thống V1.0

pháp của <cá nhân/tổ chức> vi phạm


7 lyDoKhongK String Lý do người vi phạm không ký biên bản
yBienBan
8 lapXong Json X Số tờ, số bản và thời gian lập xong biên
bản

Ví dụ:
Method: POST
{
    "maBieuMau": "118-2022-nd-cp-bb03",
    "maVuViec": "G01.308.000.000-981-23-000605",
    "maBieuMauCha": "118-2022-nd-cp-bb01",
    "maCha": "G01.308.000.000-981-23-000311",
    "diaDiemLap": "Cục Cảnh Sát Giao Thông - BỘ CÔNG AN",
    "thoiGianLap": "2023-03-30T02:24:29.000Z",
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-bb01",
                    "so": "G01.308.000.000-981-23-000311",
                    "ngay": "2023-03-30T02:24:29.000Z",
                    "maNhapTay": null
                }
            ],
            "ngayLapVbgt": "2023-03-23T04:01:38.168Z",
            "tbGiaiTrinh": {
                "so": "12345",
                "kyHieu": "GTTT",
                "ngayRaTb": "2023-03-23T04:01:44.031Z",
                "nguoiCoThamQuyenTb": "Trưởng công an thị trấn - Cục Cảnh Sát Giao Thô
ng"
            }
        },
        "nguoiCoThamQuyen": {
            "donVi": "G01.308.000.000",
            "capBac": "Hạ sĩ",
            "chucVu": "Trưởng phòng",
            "ma": "bahd"
        },
        "lapXong": {
            "thoiGian": "2023-03-30T04:01:31.008Z",
            "soTo": "2",
            "soBan": "2"
        },
        "yKienNvp": "Không ý kiến gì",
        "lyDoKhongKyBienBan": "Không chấp nhận biên bản",

BCA-C08_XLVP_2023_DD Internal use Trang 367


Tài liệu thiết kế hệ thống V1.0

        "yKienCcpl": "Căn cứ pháp lý",
        "yKienHtxp": "Chưa có",
        "yKienTtlq": "Tình tiết, chứng cứ"
    }
}

Các giá trị trả về là:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCh String Mã biểu mẫu cha
a
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
9 tangVat List Danh sách các tang vật của biên bản, tham
khảo bảng dữ liệu đầu vào tang vật dưới
đây
10 hanhViViPham List Danh sách các hành vi vi phạm của
BBQD, tham khảo bảng dữ liệu đầu vào
Hành vi vi phạm dưới đây
11 noiDungChiTi List Danh sách nội dung in hành vi vi phạm
et của BBQD, tham khảo bảng dữ liệu đầu
vào nội dung chi tiết dưới đây
12 noiDung Object Nội dung chi tiết của Biên bản Phiên giải
trình trực tiếp
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:

BCA-C08_XLVP_2023_DD Internal use Trang 368


Tài liệu thiết kế hệ thống V1.0

{
    "ma": "G01.308.000.000-981-23-000009",
    "maCha": "G01.308.000.000-981-23-000311",
    "maBieuMauCha": "118-2022-nd-cp-bb01",
    "maNhapTay": null,
    "maVuViec": "G01.308.000.000-981-23-000605",
    "maBieuMau": "118-2022-nd-cp-bb03",
    "thoiGianLap": "2023-03-30T02:24:29.000+00:00",
    "ngayTao": "2023-03-30T04:01:56.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "diaDiemLap": "Cục Cảnh Sát Giao Thông - BỘ CÔNG AN",
    "tuNgay": null,
    "denNgay": null,
    "thoiGianHoanThanh": null,
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-bb01",
                    "so": "G01.308.000.000-981-23-000311",
                    "maNhapTay": null,
                    "ngay": "2023-03-30T02:24:29.000+00:00",
                    "tenDonVi": null
                }
            ],
            "ngayLapVbgt": "2023-03-23T04:01:38.000+00:00",
            "tbGiaiTrinh": {
                "so": "12345",
                "kyHieu": "GTTT",
                "ngayRaTb": "2023-03-23T04:01:44.000+00:00",
                "nguoiCoThamQuyenTb": "Trưởng công an thị trấn - Cục Cảnh Sát Giao Thô
ng"
            }
        },
        "nguoiCoThamQuyen": {
            "ma": "bahd",
            "ten": "Hoàng Đình Ba",
            "maCapBac": "3.7",
            "capBac": "Hạ sĩ",
            "chucVu": "Trưởng phòng",
            "maChucVu": "005",
            "donVi": "G01.308.000.000",
            "tenDonVi": "Cục Cảnh Sát Giao Thông"
        },
        "lyDoKhongKyBienBan": "Không chấp nhận biên bản",
        "lapXong": {
            "thoiGian": "2023-03-30T04:01:31.000+00:00",
            "soTo": 2,
            "soBan": 2
        },
        "yKienCcpl": "Căn cứ pháp lý",

BCA-C08_XLVP_2023_DD Internal use Trang 369


Tài liệu thiết kế hệ thống V1.0

        "yKienTtlq": "Tình tiết, chứng cứ",
        "yKienHtxp": "Chưa có",
        "yKienNvp": "Không ý kiến gì"
    },
    "nguoiTao": "phucnx",
    "nguoiSua": null,
    "hanhViViPham": [],
    "tangVat": [],
    "hinhThucXuPhat": [],
    "thongBao": null,
    "noiDungChiTiet": null,
    "canBoTao": {
        "email": "nguyenxuan.phuc1@etc.vn\",
        "userName": "phucnx",
        "ten": "Nguyễn Xuân Phúc",
        "capBac": "3.7",
        "chucVu": "005",
        "donVi": "G01.308.000.000",
        "diaDanh": "Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.308.000.000-981-23-000605",
        "ten": "BB01",
        "nguon": null,
        "doiTuongViPham": {
            "ten": "NGUYỄN VĂN A",
            "diaChi": {
                "maDiaDanh": ""
            },
            "loaiNgaySinh": "DATE",
            "quocTich": "VN",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": null,
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}

d.6.2.3.1.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
1 BBQDController.java Lớp làm nhiệm vụ điều hướng các thao tác với

BCA-C08_XLVP_2023_DD Internal use Trang 370


Tài liệu thiết kế hệ thống V1.0

biên bản quyết định


2 BBQDService.java Interface các xử lý cho BBQD
3 BBQDServiceImpl.java Lớp triển khai chi tiết các phương thức của
BBQDService.java
4 BBQDRepository.java Lớp giao tiếp với database làm nhiệm vụ cập
nhật liên quan đến BBQD
5 BB03ValidatorService Lớp kiểm tra tính hợp lệ của BBQD
.java
6 TangVatService.java Lớp làm nhiệm vụ tạo và quản lý tang vật của
BBQD nếu có
7 BbQdHinhThucXuPhatSe Lớp làm nhiệm vụ tạo và quản lý các hình thức
rvice.java xử phạt cho BBQD nếu có
8 BbQdNoiDungChiTietSe Lớp làm nhiệm vụ tạo và quản lý các nội dung in
vice.java cho BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
1 create BBQDController. Cung cấp endpoint tạo mới BBQD và điều
java hướng đến service tạo BBQD
2 create BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
l.java lại dữ liệu và tạo mới BBQD
3 create BBQDRepository Gọi hàm
.java PKG_BIEN_BAN_QUYET_DINH.CREATE
_BB_QD để tạo BBQD trong database

4 isValid BB03ValidatorSe Kiểm tra tính hợp lệ dữ liệu gửi lên khi
rvice tạo BBQD
.java
5 bulkCreate TangVatService.j Tạo các tang vật thuộc BBQD
ava
6 bulkCreate BbQdHinhThucX Tạo các hình thức xử phạt cho BBQD
uPhatService.java
7 upsert BbQdNoiDungCh Tạo hoặc cập nhật các nội dung in cho

BCA-C08_XLVP_2023_DD Internal use Trang 371


Tài liệu thiết kế hệ thống V1.0

iTietSevice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được
sử dụng để tạo mới BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
1 P_MA VARCHAR2(50 N Mã BBQD
CHAR)
2 P_MA_NHAP_TA VARCHAR2(50 N Mã nhập tay khi tạo BBQD
Y CHAR)
3 P_MA_VU_VIEC VARCHAR2(50 N Mã vụ việc tạo BBQD
CHAR)
4 P_MA_CHA VARCHAR2(50 N Mã BBQD cha nếu có
CHAR)
5 P_MA_BIEU_MA VARCHAR2(50 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
6 P_THOI_GIAN_LA DATE N Thời gian lập BBQD
P
7 P_DIA_DIEM_LAP VARCHAR2(50 N Địa điểm lập BBQD
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
10 P_THOI_GIAN_H DATE N Thời gian hoàn thành xử lý
OAN_THANH
11 P_TRANG_THAI VARCHAR2(2 N Trạng thái BBQD
CHAR)
12 P_MA_DON_VI_C VARCHAR2(25 N Mã đơn vị CSGT
SGT 5 CHAR)
13 P_DIA_CHI_DON_ NUMBER(12,0) N Mã địa chỉ đơn vị CSGT

BCA-C08_XLVP_2023_DD Internal use Trang 372


Tài liệu thiết kế hệ thống V1.0

VI_CSGT_ID
14 P_NOI_DUNG VARCHAR2(40 N Nội dung cụ thể của BBQD
00 CHAR)
15 P_NGUON VARCHAR2(15 N Nguồn tạo BBQD
CHAR)
16 P_CAN_BO_TAO VARCHAR2(40 N Thông tin cán bộ tạo
00 CHAR) BBQD
17 P_NGUOI_TAO VARCHAR2(25 N Tài khoản tạo BBQD
5 CHAR)
18 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để lấy
thông tin bản ghi vừa được thêm và trả về.
d.6.2.3.1.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã vụ việc không tồn tại.
- Mã biểu mẫu không tồn tại.
- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Số bbqd liên quan nhiều hơn 1
o Thông báo giải trình có số thông báo nhiều hơn 5 ký tự, ký hiệu nhiều hơn
10 ký tự và người có thẩm quyền ra thông báo nhiều hơn 255 ký tự
- Người có thẩm quyền trống
- Ý kiến căn cứ pháp lý vượt quá 255 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 373


Tài liệu thiết kế hệ thống V1.0

- Ý kiến về tình tiết, chứng cứ liên quan vượt quá 255 ký tự


- Ý kiến về hình thức xử phạt vượt quá 255 ký tự
- Ý kiến của người vi phạm trống hoặc vượt quá 255 ký tự
- Lý do không ký vượt quá 255 ký tự
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Thời gian, số lượng tờ biên bản lập xong không có và số tờ số bản nằm ngoài
khoảng 0 - 99
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.6.2.3.2. Chỉnh sửa Biên bản Phiên giải trình trực tiếp

d.6.2.3.2.1. API

Mô tả: Gọi API để chỉnh sửa bbqd


Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.6.2.3.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên và trả về tương tự tạo mới Biên bản Phiên giải trình trực tiếp, ngoài
ra còn có:
STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã BBQD

d.6.2.3.2.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
1 BBQDController.java Lớp làm nhiệm vụ điều hướng các thao tác
với biên bản quyết định

BCA-C08_XLVP_2023_DD Internal use Trang 374


Tài liệu thiết kế hệ thống V1.0

2 BBQDService.java Interface các xử lý cho BBQD


3 BBQDServiceImpl.java Lớp triển khai chi tiết các phương thức
của BBQDService.java
4 BBQDRepository.java Lớp giao tiếp với database làm nhiệm vụ
cập nhật liên quan đến BBQD
5 BB03ValidatorService Lớp kiểm tra tính hợp lệ của BBQD
.java
6 TangVatService.java Lớp làm nhiệm vụ quản lý tang vật của
BBQD nếu có
7 BbQdHinhThucXuPhatService.java Lớp làm nhiệm vụ quản lý các hình thức
xử phạt cho BBQD nếu có
8 BbQdNoiDungChiTietSevice.java Lớp làm nhiệm vụ quản lý các nội dung in
cho BBQD nếu có
- Danh sách các phương thức:
STT Tên Tên lớp Mô tả
method
1 update BBQDController.java Cung cấp endpoint cập nhật BBQD và
điều hướng đến service cập nhật
BBQD
2 update BBQDServiceImpl.java Thực hiện các thao tác validate, chuẩn
hóa lại dữ liệu và cập nhật BBQD
3 update BBQDRepository.java Gọi hàm
PKG_BIEN_BAN_QUYET_DINH.UPD
ATE_BB_QD để sửa BBQD trong
database
4 isValid BB03ValidatorService Kiểm tra tính hợp lệ dữ liệu gửi lên
.java khi tạo BBQD

5 updateTa TangVatService.java Cập nhật thông tin các tang vật thuộc
ngVat BBQD
6 bulkUpda BbQdHinhThucXuPhatSer Cập nhật hình thức xử phạt cho BBQD
te vice.java

BCA-C08_XLVP_2023_DD Internal use Trang 375


Tài liệu thiết kế hệ thống V1.0

7 upsert BbQdNoiDungChiTietSev Tạo hoặc cập nhật các nội dung in cho
ice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được
sử dụng để cập nhật BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
1 P_MA VARCHAR2(50 N Mã BBQD
CHAR)
2 P_MA_NHAP_TA VARCHAR2(50 N Mã nhập tay khi tạo BBQD
Y CHAR)
3 P_THOI_GIAN_LA DATE N Thời gian lập BBQD
P
4 P_DIA_DIEM_LAP VARCHAR2(50 N Địa điểm lập BBQD
0 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
7 P_THOI_GIAN_H DATE N Thời gian hoàn thành xử lý
OAN_THANH
8 P_TRANG_THAI VARCHAR2(2 N Trạng thái BBQD
CHAR)
9 P_NOI_DUNG VARCHAR2(40 N Nội dung cụ thể của BBQD
00 CHAR)
10 P_CAN_BO_SUA VARCHAR2(40 N Thông tin cán bộ sửa
00 CHAR) BBQD
11 P_NGUOI_SUA VARCHAR2(25 N Tài khoản sửa BBQD
5 CHAR)
12 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
vừa tạo

BCA-C08_XLVP_2023_DD Internal use Trang 376


Tài liệu thiết kế hệ thống V1.0

Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQD được cập nhật.
d.6.2.3.2.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Số bbqd liên quan nhiều hơn 1
o Thông báo giải trình có số thông báo nhiều hơn 5 ký tự, ký hiệu nhiều hơn
10 ký tự và người có thẩm quyền ra thông báo nhiều hơn 255 ký tự
- Người có thẩm quyền trống
- Ý kiến căn cứ pháp lý vượt quá 255 ký tự
- Ý kiến về tình tiết, chứng cứ liên quan vượt quá 255 ký tự
- Ý kiến về hình thức xử phạt vượt quá 255 ký tự
- Ý kiến của người vi phạm trống hoặc vượt quá 255 ký tự
- Lý do không ký vượt quá 255 ký tự
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Thời gian, số lượng tờ biên bản lập xong không có và số tờ số bản nằm ngoài
khoảng 0 - 99
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án
d.6.2.3.3. Xem chi tiết Biên bản Phiên giải trình trực tiếp

d.6.2.3.3.1. API

Mô tả: Gọi API để lấy thông tin chi tiết bbqd


Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.6.2.3.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 377


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Mô tả


1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã biên bản quyết định
Các giá trị trả về là:
STT Tham số Kiểu dữ Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
9 tangVat List Danh sách các tang vật của biên bản, tham khảo
bảng dữ liệu đầu vào tang vật dưới đây
10 hanhViViPham List Danh sách các hành vi vi phạm của BBQD,
tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
11 noiDungChiTiet List Danh sách nội dung in hành vi vi phạm của
BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
12 noiDung Object Nội dung chi tiết của Biên bản Phiên giải trình
trực tiếp
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000009",
    "maCha": "G01.308.000.000-981-23-000311",

BCA-C08_XLVP_2023_DD Internal use Trang 378


Tài liệu thiết kế hệ thống V1.0

    "maBieuMauCha": "118-2022-nd-cp-bb01",
    "maNhapTay": null,
    "maVuViec": "G01.308.000.000-981-23-000605",
    "maBieuMau": "118-2022-nd-cp-bb03",
    "thoiGianLap": "2023-03-30T02:24:29.000+00:00",
    "ngayTao": "2023-03-30T04:01:56.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "diaDiemLap": "Cục Cảnh Sát Giao Thông - BỘ CÔNG AN",
    "tuNgay": null,
    "denNgay": null,
    "thoiGianHoanThanh": null,
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-bb01",
                    "so": "G01.308.000.000-981-23-000311",
                    "maNhapTay": null,
                    "ngay": "2023-03-30T02:24:29.000+00:00",
                    "tenDonVi": null
                }
            ],
            "ngayLapVbgt": "2023-03-23T04:01:38.000+00:00",
            "tbGiaiTrinh": {
                "so": "12345",
                "kyHieu": "GTTT",
                "ngayRaTb": "2023-03-23T04:01:44.000+00:00",
                "nguoiCoThamQuyenTb": "Trưởng công an thị trấn - Cục Cảnh Sát Giao Thô
ng"
            }
        },
        "nguoiCoThamQuyen": {
            "ma": "bahd",
            "ten": "Hoàng Đình Ba",
            "maCapBac": "3.7",
            "capBac": "Hạ sĩ",
            "chucVu": "Trưởng phòng",
            "maChucVu": "005",
            "donVi": "G01.308.000.000",
            "tenDonVi": "Cục Cảnh Sát Giao Thông"
        },
        "lyDoKhongKyBienBan": "Không chấp nhận biên bản",
        "lapXong": {
            "thoiGian": "2023-03-30T04:01:31.000+00:00",
            "soTo": 2,
            "soBan": 2
        },
        "yKienCcpl": "Căn cứ pháp lý",
        "yKienTtlq": "Tình tiết, chứng cứ",
        "yKienHtxp": "Chưa có",
        "yKienNvp": "Không ý kiến gì"

BCA-C08_XLVP_2023_DD Internal use Trang 379


Tài liệu thiết kế hệ thống V1.0

    },
    "nguoiTao": "phucnx",
    "nguoiSua": null,
    "hanhViViPham": [],
    "tangVat": [],
    "hinhThucXuPhat": [],
    "thongBao": null,
    "noiDungChiTiet": null,
    "canBoTao": {
        "email": "{\"email\":\"nguyenxuan.phuc1@etc.vn\",\"placeCodeOto\":null,\"place
CodeMoto\":null}",
        "userName": "phucnx",
        "ten": "Nguyễn Xuân Phúc",
        "capBac": "3.7",
        "chucVu": "005",
        "donVi": "G01.308.000.000",
        "diaDanh": "Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.308.000.000-981-23-000605",
        "ten": "BB01",
        "nguon": null,
        "doiTuongViPham": {
            "ten": "NGUYỄN VĂN A",
            "diaChi": {
                "maDiaDanh": ""
            },
            "loaiNgaySinh": "DATE",
            "quocTich": "VN",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": null,
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}

d.6.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
1 BBQDController.java Lớp làm nhiệm vụ điều hướng các thao tác với
biên bản quyết định

BCA-C08_XLVP_2023_DD Internal use Trang 380


Tài liệu thiết kế hệ thống V1.0

2 BBQDService.java Interface các xử lý cho BBQD


3 BBQDServiceImpl.java Lớp triển khai chi tiết các phương thức của
BBQDService.java
4 BBQDRepository.java Lớp giao tiếp với database làm nhiệm vụ lấy
thông tin chi tiết BBQD
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
1 get BBQDController. Cung cấp endpoint cập nhật BBQD và
java điều hướng đến service cập nhật BBQD
2 get BBQDServiceImp Thực hiện các thao tác chuẩn hóa lại dữ
l.java liệu BBQD trước khi trả ra
3 get BBQDRepository Gọi hàm GET_BB_QD_DETAILS để lấy
.java thông tin chi tiết BBQD trong database

Procedure:
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập/ Mô tả
Xuất
(N/X)
1 P_MA VARCHAR2(5 N Mã BBQD
0 CHAR)
2 P_MA_BIEU_MA VARCHAR2(5 N Mã biểu mẫu BBQD
U 0 CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.
d.6.2.3.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.
- BBQD đã được đánh dấu IS_DELETED = 1.

BCA-C08_XLVP_2023_DD Internal use Trang 381


Tài liệu thiết kế hệ thống V1.0

Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.


d.6.2.3.4. In Biên bản Phiên giải trình trực tiếp

Tham khảo phần In của Biên bản 01


d.6.2.3.5. Xóa Biên bản Phiên giải trình trực tiếp

Tham khảo phần Xóa của Biên bản 01

d.7. Biên bản 04 – Biên bản xác định giá trị tang vật, phương tiện vi phạm hành
chính
d.7.1. Mục đích

- Quản lý biên bản 04 – Biên bản xác định giá trị tang vật, phương tiện vi phạm
hành chính.
- Chức năng quản lý biên bản 04 – Biên bản xác định giá trị tang vật, phương tiện
vi phạm hành chính:
o Thêm mới biên bản 04
o Sửa biên bản 04
o Hiển thị chi tiết biên bản 04
o Xóa biên bản 04

d.7.2. Chi tiết từng mục

d.7.2.1. Thiết kế dữ liệu

d.7.2.1.1. Mô hình quan hệ dữ liệu

BCA-C08_XLVP_2023_DD Internal use Trang 382


Tài liệu thiết kế hệ thống V1.0

HÌnh 69: Mô hình quan hệ dữ liệu biên bản 04


d.7.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 BIEN_BAN_QUYET_DINH Bảng lưu trữ biên bản quyết định
2 VU_VIEC Bảng lưu trữ vụ việc xảy ra
Bảng lưu trữ thông tin các hành vi vi vi
3 BB_QD_HANH_VI_VI_PHAM
phạm trong biên bản
Bảng lưu trữ thông tin nội dung in các hành
4 BB_QD_NOI_DUNG_CHI_TIET vi vi phạm hoặc hình phạt bổ sung của biên
bản
Bảng lưu trữ thông tin các tang vật của biên
5 TANG_VAT
bản
DANH_MUC_MAU_BIEN_BA Bảng lưu trữ thông tin các mẫu biên bản
6
N_QUYET_DINH quyết định

BCA-C08_XLVP_2023_DD Internal use Trang 383


Tài liệu thiết kế hệ thống V1.0

d.7.2.2. Thiết kế màn hình

d.7.2.2.1. Danh sách giá trị của tang vật, phương tiện vi phạm hành chính

d.7.2.2.1.1. Giao diện

Hình 70: Danh sách giá trị của tang vật, phương tiện vi phạm hành chính

Hình 71: Chỉnh sửa giá trị của tang vật, phương tiện vi phạm hành chính
d.7.2.2.1.2. Danh sách control/thành phần giao diện

Tên thành Bắt


STT Label phần / buộc Định dạng Mô tả
Control nhập
Danh sách giá trị tang vật, phương tiện vi phạm hành chính
Hiển thị các tang vật nhóm Phương tiện/Tang vật khác từ QD20 trong luồng tạo BB04
Tên tang vật,
Hiển thị tên tang vật,
1 phương tiện, ma Text
phương tiện, giấy tờ.
giấy tờ
Nội dung chi
2 thongTin Text Hiển thị nội dung chi tiết
tiết

BCA-C08_XLVP_2023_DD Internal use Trang 384


Tài liệu thiết kế hệ thống V1.0

3 Đơn giá donGia Text Hiển thị đơn giá


4 Thành tiền thanhTien Text Hiển thị thành tiền
Popup thông tin định giá tang vật, phương tiện vi phạm hành chính
Xem chi tiết tại Màn hình sử dụng chung/Tang vật, phương tiện giấy tờ (TH Phương
tiện – Tang vật khác).
Thông tin tang vật chỉ hiển thị.
5 Đơn giá donGia x Textbox Nhập đơn giá
Hiển thị thành tiền = đơn
6 Thành tiền thanhTien Text
giá * số lượng

d.7.2.2.1.3. Các ràng buộc

STT Tên Điều kiện


Bắt buộc nhập
1 Đơn giá
Chỉ nhập số, tối đa 12 ký tự.
2 Thành tiền

d.7.2.2.1.4. Xử lý sự kiện

d.7.2.2.2. Thêm mới/Sửa - Biên bản 04

d.7.2.2.2.1. Giao diện

Tại màn chi tiết QD20 - QD21, Click vào nút Button Tạo BB/QĐ

BCA-C08_XLVP_2023_DD Internal use Trang 385


Tài liệu thiết kế hệ thống V1.0

Hình 72: Popup tạo mới BB/QĐ

BCA-C08_XLVP_2023_DD Internal use Trang 386


Tài liệu thiết kế hệ thống V1.0

Hình 73: Màn hình Thêm/Sửa Biên bản 04


d.7.2.2.2.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Giải thích các item
STT Label Tên thành Bắt Định dạng Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 387


Tài liệu thiết kế hệ thống V1.0

phần / buộc
Control nhập
Thông tin chung
Mã tự sinh, hoặc nhập tay
1 Số biên bản ma Textbox Không được sửa trong màn
Sửa BB04
2 Tại diaDiemLap X Textbox Nhập địa điểm lập biên bản
3 Ngày tạo thoiGianLap X Datepicker Chọn ngày tạo biên bản
Căn cứ
Biên bản
tạm giữ tang
vật, phương Hiển thị số và ngày ra BB
tiện vi phạm của BB15 thuộc luồng sinh
4 canCu.bbqd Text ra BB04 này.
hành chính,
giấy phép,
chứng chỉ
hành nghề
Quyết định
tạm giữ tang
vật, Phương Hiển thị số và ngày ra QD
tiện vi phạm của QD20 thuộc luồng sinh
5 canCu.bbqd Text ra BB04 này.
hành chính,
giấy phép,
chứng chỉ
hành nghề
Quyết định
kéo dài thời
hạn tạm giữ
tang vật, Hiển thị số và ngày ra QD
6 Phương tiện canCu.bbqd Text của QD21 thuộc luồng sinh
vi phạm ra BB04 này.
hành chính,
giấy phép,
chứng chỉ

BCA-C08_XLVP_2023_DD Internal use Trang 388


Tài liệu thiết kế hệ thống V1.0

hành nghề
Thông tin người lập biên bản
Xem tại mục Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình người
có thẩm quyền lập biên bản
Đối tượng vi phạm
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình đối
tượng vi phạm
Hội đồng định giá tang vật, phương tiện vi phạm hành chính
Hiển thị thông tin từ trường
Người ra Họ và tên phần Người có
7 ten Textbox
quyết định thẩm quyền lập quyết định
tạm giữ tang của QD20.
vật, Phương
Hiển thị thông tin từ trường
tiện vi
Chức vụ phần Người có
8 phạm, chucVu Textbox
thẩm quyền lập quyết định
Phương tiện
của QD20.
vi phạm
hành chính, Hiển thị thông tin từ trường
giấy phép, Hiển thị thông tin từ trường
9 chứng chỉ coQuan Textbox Cơ quan phần Người có
hành nghề thẩm quyền lập quyết định
của QD20.
Nhập họ và tên đại diện cơ
10 ten x Textbox
quan tài chính
Đại diện cơ
Nhập chức vụ đại diện cơ
11 quan tài chucVu x Textbox
quan tài chính
chính
Nhập cơ quan đại diện cơ
12 coQuan x Textbox
quan tài chính
Đại diện cơ Nhập họ và tên đại diện cơ
13 ten x Textbox
quan chuyên quan chuyên môn
môn có liên Nhập chức vụ đại diện cơ
14 quan đến chucVu x Textbox
quan chuyên môn
tang vật,
15 phương tiện coQuan x Textbox Nhập cơ quan đại diện cơ

BCA-C08_XLVP_2023_DD Internal use Trang 389


Tài liệu thiết kế hệ thống V1.0

quan chuyên môn


vi phạm
hành chính
Đại diện bộ Nhập họ và tên đại diện bộ
16 ten Textbox
phận chuyên phận chuyên môn
môn của cơ Nhập chức vụ đại diện bộ
17 quan của chucVu Textbox
phận chuyên môn
người ra
quyết định
tạm giữ tang
vật vi phạm,
phương tiên Nhập cơ quan đại diện bộ
18 vi phạm coQuan Textbox
phận chuyên môn
hành chính,
giấy phép,
chứng chỉ
hành nghề
Căn cứ xác định giá trị của tang vật, phương tiện vi phạm hành chính
canCuXacDi
19 Căn cứ x Textbox Nhập căn cứ xác định
nh
Giá trị của tang vật, phương tiện vi phạm hành chính
Xem chi tiết ở Danh sách giá trị của tang vật, phương tiện vi phạm hành chính
Biên bản lập xong hồi
Chọn hồi lập biên bản
20 Hồi thoiGian X Datepicker Có giá trị mặc định là ngày
giờ hiện tại
Nhập số tờ
21 Số tờ soTo X Textbox
Giá trị mặc định là 2
Nhập số bản
22 Số bản soBan X Textbox
Giá trị mặc định là 2

BCA-C08_XLVP_2023_DD Internal use Trang 390


Tài liệu thiết kế hệ thống V1.0

d.7.2.2.2.3. Các ràng buộc

STT Tên Nội dung


1 Số biên bản Tối đa 29 ký tự
Giá trị mặc định là ngày giờ hiện tại của hệ
2 Ngày tạo
thống
Bắt buộc nhập
3 Tại
Tối đa 255 ký tự

Họ và tên (Đại diện cơ quan tài Bắt buộc nhập.


4
chính) Tối đa 150 ký tự

Cơ quan (Đại diện cơ quan tài Bắt buộc nhập.


5
chính) Tối đa 150 ký tự

Chức vụ (Đại diện cơ quan tài Bắt buộc nhập.


6
chính) Tối đa 150 ký tự

Họ và tên (Đại diện cơ quan Bắt buộc nhập.


7
chuyên môn) Tối đa 150 ký tự

Cơ quan (Đại diện cơ quan Bắt buộc nhập.


8
chuyên môn) Tối đa 150 ký tự

Chức vụ (Đại diện cơ quan Bắt buộc nhập.


9
chuyên môn) Tối đa 150 ký tự
Họ và tên (Đại diện bộ phận
10 Tối đa 150 ký tự
chuyên môn)
Cơ quan (Đại diện bộ phận
11 Tối đa 150 ký tự
chuyên môn)
Chức vụ (Đại diện bộ phận
12 Tối đa 150 ký tự
chuyên môn)
Bắt buộc nhập
13 Căn cứ xác định giá trị tang vật
Tối đa 255 ký tự
14 Danh sách giá trị của tang vật Bắt buộc phải chọn ít nhất 1 tang vật định
giá.

BCA-C08_XLVP_2023_DD Internal use Trang 391


Tài liệu thiết kế hệ thống V1.0

Thông tin định giá tang vật được chọn phải


hợp lệ. (Xem tại Popup định giá tang vật)
15 Hồi Bắt buộc nhập
Bắt buộc nhập
16 Số tờ
Tối đa 2 ký tự
Bắt buộc nhập
17 Số bản
Tối đa 2 ký tự

d.7.2.2.2.4. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn Biên bản 04 ở Pop-up Tạo BB/QĐ → Màn
hình hiển thị Form thêm mới Biên bản với dữ liệu lấy
từ Vụ việc và giá trị mặc định
1 Page_Load Chọn BtnEdit ở Danh sách biên bản hoặc màn Chi
tiết Biên bản → Màn hình hiển thị Form chỉnh sửa
Biên bản với dữ liệu tương ứng với Biên bản 04 đã
chọn
Nhập thông tin trong Form Biên bản 04

2 BtnSave_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu biên bản theo thông tin vừa nhập

Click nút Đóng


Màn hình hiển thị tooltip Thực hiện lưu thông tin vào
hệ thống không?
TH1: Click Đồng ý.
3 BtnClose_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → Lưu BB04 theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết BB04.
TH2: Click nút Đóng
Màn hình chuyển đến màn xem danh sách BB.

BCA-C08_XLVP_2023_DD Internal use Trang 392


Tài liệu thiết kế hệ thống V1.0

d.7.2.2.3. Xem chi tiết Biên bản 04

d.7.2.2.3.1. Giao diện

Hình 74: Xem chi tiết Biên bản 04

d.7.2.2.3.2. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Chọn nút Xem chi tiết tại Danh sách Biên bản → Màn hình

BCA-C08_XLVP_2023_DD Internal use Trang 393


Tài liệu thiết kế hệ thống V1.0

hiển thị Biên bản 04 đã chọn


Click nút Chỉnh sửa ở cuối màn hình → Đi đến màn hình
2 BtnEdit_Click
Chỉnh sửa biên bản
Click nút Xem lịch sử ở cuối màn hình → Đi đến màn hình
3 BtnLichSu_Click
xem Lịch sử biên bản
Click nút In ở cuối màn hình → Màn hình hiển thị Pop-up
4 BtnPrint_Click
xem trước bản in của Biên bản
Click nút Xóa ở cuối màn hình → Chọn Đồng ý.
5 BtnDelete_Click Hệ thống xóa bản ghi tương ứng → Màn hình quay lại
danh sách biên bản.
Click nút Đóng ở cuối màn hình → Màn hình quay lại
6 BtnClose
danh sách biên bản.

d.7.2.3. Thiết kế các hàm, thủ tục

d.7.2.3.1. Thêm mới biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

d.7.2.3.1.1. API

Mô tả: Gọi API để tạo mới biên bản xác định giá trị tang vật, phương tiện vi phạm hành
chính
Method URL
POST xlvp/api/v1/bb-qd

d.7.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD
2 maBieuMau String X Mã biểu mẫu BBQD
3 maCha String Mã BBQD cha
4 maBieuMauC String Mã biểu mẫu cha

BCA-C08_XLVP_2023_DD Internal use Trang 394


Tài liệu thiết kế hệ thống V1.0

ha
5 thoiGianLap Date X Thời gian lập BBQD
6 diaDiemLap String Địa điểm lập BBQD
7 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham
8 tangVat List khảo bảng dữ liệu đầu vào tang vật dưới
đây
Danh sách các hành vi vi phạm của
hanhViViPha
9 List X BBQD, tham khảo bảng dữ liệu đầu vào
m
Hành vi vi phạm dưới đây
Danh sách nội dung in hành vi vi phạm
noiDungChiTi
10 List của BBQD, tham khảo bảng dữ liệu đầu
et
vào nội dung chi tiết dưới đây
Nội dung chi tiết của biên bản xác định
11 noiDung Object X giá trị tang vật, phương tiện vi phạm hành
chính

- Dữ liệu nội dung biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 canCu Object X Căn cứ lập BB

nguoiCoTham Thông tin người có thẩm quyền lập BB


2 Json X
Quyen Example: {“ma”: “admin”}
hoiDongDinh Hội đồng định giá tang vật, phương tiện vi
3 Object X
Gia phạm hành chính
canCuXacDin Căn cứ xác định giá trị của tang vật,
4 String X
h phương tiện vi phạm hành chính
Thông tin biên bản khi lập xong.
bienBanLapX
5 Json X Example: {“thoiGian”: “2022-01-
ong
01T00:00:00.000+00:00”}
Căn cứ BB 04

BCA-C08_XLVP_2023_DD Internal use Trang 395


Tài liệu thiết kế hệ thống V1.0

Căn cứ BB 04
List
1 bbqd X Example: [{“maBieuMau” : “118-2022-
Object
nd-cp-bb04”}]
Hội đồng định giá
Người ra quyết định tam giữ tang vật,
nguoiQuyetDi phương tiện vi phạm hành chính
1 Json X
nh Example: {“ten” : “Bùi Anh” , “chucVu” :
“Đội trưởng”, “coQuan” : “Công An Tp”}
Đại diện cơ quan tài chính
daiDienCqTai
2 Json X Example: {“ten” : “Bùi Anh” , “chucVu” :
Chinh
“Đội trưởng”, “coQuan” : “Công An Tp”}
Đại diện cơ quan chuyên môn có liên quan
đến tang vật, phương tiện vi phạm hành
daiDienCqLie
3 Json X chính
nQuan
Example: {“ten” : “Bùi Anh” , “chucVu” :
“Đội trưởng”, “coQuan” : “Công An Tp”}
Đại diện bộ phàn chuyên môn của cơ quan
của người ra quyết định tạm giữ tang vật,
daiDienBoPha
4 Json X phương tiện
n
Example: {“ten” : “Bùi Anh” , “chucVu” :
“Đội trưởng”, “coQuan” : “Công An Tp”}

- Dữ liệu tang vật:

Kiểu dữ Bắt
STT Tham số Mô tả
liệu buộc
Mã tang vật ( trong danh mục tang vật,
1 ma String X
phương tiện, giấy tờ)
2 nhomTang String X Mã nhóm tang vật:
Vat - PHUONG_TIEN: Phương tiện

- GIAY_TO: Giấy tờ

- GIAY_PHEP_LAI_XE: Giấy phép

BCA-C08_XLVP_2023_DD Internal use Trang 396


Tài liệu thiết kế hệ thống V1.0

lái xe
- KHAC: Tang vật khác

Thông tin chi tiết của tang vật tùy nhóm


3 thongTin Object
tang vật
Nhóm tang vật phương tiện
1 soLuong Number X Số lượng tang vật
2 donViTinh String X Đơn vị tính của tang vật
3 tinhTrang String Tình trạng của tang vật
4 chungLoai String Mã phương tiện
5 bienSo String Biển số thứ nhất của phương tiện
6 bienSo2 String Biển số thứ 2 của phương tiện
7 soDangKy String Số đăng ký thứ 1 của phương tiện
soDangKy
8 String Số đăng ký thứ 2 của phương tiện
2
9 soKhung String Số khung của phương tiện
10 soMay String Số máy của phương tiện
11 congSuat String Công suất thứ 1 của phương tiện
12 congSuat2 String Công suất thứ 2 của phương tiện
13 trongTai String Trọng tải thứ 1 của phương tiện
14 trongTai2 String Trọng tải thứ 2 của phương tiện
15 donGia String Đơn giá tạm tính của phương tiện
16 nhanHieu String Nhãn hiệu của phương tiện
17 mauSon String Màu sơn của phương tiện
18 soLoai String Số loại của phương tiện
Nhóm tang vật giấy phép lái xe
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật

BCA-C08_XLVP_2023_DD Internal use Trang 397


Tài liệu thiết kế hệ thống V1.0

4 so String X Mã số của giấy phép lái xe


5 hang List X Danh sách các hạng in trên GPLX
6 giaTriDen Date Ngày hết hạn GPLX
7 noiCap String Mã số nơi cấp giấy tờ
Nhóm tang vật giấy tờ
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 so String X Mã số của giấy phép lái xe
5 giaTriDen Date Ngày hết hạn GPLX
6 noiCap String Mã số nơi cấp giấy tờ
Nhóm tang vật khác
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 ten String X Tên gọi của tang vật
5 donViTinh String X Đơn vị tính của tang vật
6 donGia String Đơn giá thành tiền tạm tính
Ví dụ:
Method: POST
{
    "maCha": "G01.308.000.000-981-23-000044",
    "maBieuMauCha": "118-2022-nd-cp-qd20",
    "maVuViec": "G01.308.000.000-981-23-000599",
    "maBieuMau": "118-2022-nd-cp-bb04",
    "thoiGianLap": "2023-03-29T06:33:44.000Z",
    "diaDiemLap": "Lê Văn Lương",
    "tangVat": [
        {
            "ma": "043",
            "nhomTangVat": "PHUONG_TIEN",
            "thongTin": {
                "soLuong": 1,
                "tinhTrang": "Còn mới",
                "ghiChu": "Chưa bóc tem",

BCA-C08_XLVP_2023_DD Internal use Trang 398


Tài liệu thiết kế hệ thống V1.0

                "chungLoai": "51",
                "bienSo": "28F1.247844",
                "bienSo2": "21447556",
                "donViTinh": "Chiếc",
                "soKhung": "023157FWQA5612",
                "soMay": "1357744563",
                "nhanHieu": null,
                "mauSon": null,
                "soLoai": null,
                "ma": "043",
                "nhomTangVat": "PHUONG_TIEN",
                "donGia": 5000000000
            }
        }
    ],
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-bb15",
                    "so": "G01.308.000.000-981-23-000059",
                    "ngay": "2023-03-29T06:33:44.000Z",
                    "maNhapTay": null
                },
                {
                    "maBieuMau": "118-2022-nd-cp-qd20",
                    "so": "G01.308.000.000-981-23-000044",
                    "ngay": "2023-03-29T06:33:44.000Z",
                    "maNhapTay": null
                }
            ],   
        },
        "bienBanLapXong": {
            "thoiGian": "2023-03-29T06:39:46.205Z",
            "soTo": "2",
            "soBan": "2"
        },
        "nguoiCoThamQuyen": {
            "donVi": "G01.308.000.000",
            "capBac": "Hạ sĩ",
            "chucVu": "Cục trưởng",
            "ma": "anhbc"
        },
        "canCuXacDinh": "Ngân hàng",
        "hoiDongDinhGia": {
            "nguoiQuyetDinh": {
                "ten": "Nguyễn Văn Minh",
                "chucVu": "Trưởng phòng",
                "coQuan": "CÔNG AN THÀNH PHỐ HÀ NỘI"
            },
            "daiDienCqTaiChinh": {
                "ten": "Bùi Anh",
                "chucVu": "Trưởng phòng",

BCA-C08_XLVP_2023_DD Internal use Trang 399


Tài liệu thiết kế hệ thống V1.0

                "coQuan": "CÔNG AN THÀNH PHỐ HÀ NỘI"
            },
            "daiDienCqLienQuan": {
                "ten": "Bùi Anh",
                "chucVu": "Trưởng phòng",
                "coQuan": "CÔNG AN THÀNH PHỐ HÀ NỘI"
            },
            "daiDienBoPhan": {
                "ten": "Bùi Anh",
                "chucVu": "Trưởng phòng",
                "coQuan": "CÔNG AN THÀNH PHỐ HÀ NỘI"
            }
        }
    }
}
Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây
Danh sách các hành vi vi phạm của BBQD,
10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của biên bản xác định giá trị
12 noiDung Object
tang vật, phương tiện vi phạm hành chính
13 canBoTao Object Thông tin cán bộ tạo BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 400


Tài liệu thiết kế hệ thống V1.0

14 trangThai String Trạng thái BBQD


Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000058",
    "maCha": "G01.308.000.000-981-23-000044",
    "maBieuMauCha": "118-2022-nd-cp-qd20",
    "maNhapTay": null,
    "maVuViec": "G01.308.000.000-981-23-000599",
    "maBieuMau": "118-2022-nd-cp-bb04",
    "thoiGianLap": "2023-03-29T06:33:44.000+00:00",
    "ngayTao": "2023-03-29T06:41:17.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": "2023-03-29T07:55:49.000+00:00",
    "nguon": null,
    "canBoTao": {
        "email": "abc@gmail.com",
        "userName": "anhbc",
        "ten": "Bùi Anh",
        "capBac": "3.7",
        "chucVu": "003",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": {
        "email": "abc@gmail.com",
        "userName": "anhbc",
        "ten": "Bùi Anh",
        "capBac": "3.7",
        "chucVu": "003",
        "donVi": "G01.308.000.000"
    },
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.308.000.000-981-23-000599",
        "ten": "BB04",
        "nguon": null,
        "doiTuongViPham": {
            "soDinhDanh": "013114557",
            "ten": "Nguyễn Văn A",
            "ngayCap": "2023-03-06T06:34:19.153Z",
            "noiCap": "Cục cảnh sát",
            "diaChi": {
                "maDiaDanh": "00006",
                "chiTiet": "63 Lê Văn Lương"
            },
            "noiOHienTai": "63 Lê Văn Lương, Phường Vĩnh Phúc, Quận Ba 
Đình, Thành phố Hà Nội",

BCA-C08_XLVP_2023_DD Internal use Trang 401


Tài liệu thiết kế hệ thống V1.0

            "ngaySinh": "1999-03-03T06:34:34.387Z",
            "loaiNgaySinh": "DATE",
            "gioiTinh": 1.0,
            "quocTich": "VN",
            "ngheNghiep": "00008",
            "soDienThoai": "0546467788",
            "email": "abc@gmail.com",
            "noiSinh": "Hà Nội",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "28F1.247844",
            "bienSo2": "21447556",
            "maPhuongTien": "51",
            "soDangKy": "55446887",
            "soDangKy2": null,
            "soKhung": "023157FWQA5612",
            "soMay": "1357744563",
            "mauBien": "0",
            "nhanHieu": null,
            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,
            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}
d.7.2.3.1.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQĐ
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQĐ
5 BB04ValidatorService Lớp kiểm tra tính hợp lệ của BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 402


Tài liệu thiết kế hệ thống V1.0

.java
Lớp làm nhiệm vụ tạo và quản lý tang vật của
6 TangVatService.java
BBQĐ nếu có
BBQDHinhThucXuPhatS Lớp làm nhiệm vụ tạo và quản lý các hình thức
7
ervice.java xử phạt cho BBQĐ nếu có
BBQDNoiDungChiTietSe Lớp làm nhiệm vụ tạo và quản lý các nội dung in
8
vice.java cho BBQĐ nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint tạo mới BBQĐ và điều
1 create
java hướng đến service tạo BBQĐ
BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 create
l.java lại dữ liệu và tạo mới BBQĐ
Gọi hàm
BBQDRepository
3 create PKG_BIEN_BAN_QUYET_DINH.CREATE
.java
_BB_QD để tạo BBQĐ trong database

BB04ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid rvice
tạo BBQĐ
.java
TangVatService.j
5 bulkCreate Tạo các tang vật thuộc BBQĐ
ava
BBQDHinhThuc
6 bulkCreate XuPhatService.ja Tạo các hình thức xử phạt cho BBQĐ
va
BBQDNoiDungC Tạo hoặc cập nhật các nội dung in cho
7 upsert
hiTietSevice.java BBQĐ
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được
sử dụng để tạo mới BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
STT Tham số Kiểu dữ liệu Nhập/ Mô tả
Xuất

BCA-C08_XLVP_2023_DD Internal use Trang 403


Tài liệu thiết kế hệ thống V1.0

(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
VARCHAR2(50
3 P_MA_VU_VIEC N Mã vụ việc tạo BBQD
CHAR)
VARCHAR2(50
4 P_MA_CHA N Mã BBQD cha nếu có
CHAR)
P_MA_BIEU_MA VARCHAR2(50
5 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
P_THOI_GIAN_LA
6 DATE N Thời gian lập BBQD
P
VARCHAR2(50
7 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
10 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
11 P_TRANG_THAI N Trạng thái BBQD
CHAR)
P_MA_DON_VI_C VARCHAR2(25
12 N Mã đơn vị CSGT
SGT 5 CHAR)
P_DIA_CHI_DON_
13 NUMBER(12,0) N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID
VARCHAR2(40
14 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(15
15 P_NGUON N Nguồn tạo BBQD
CHAR)
VARCHAR2(40 Thông tin cán bộ tạo
16 P_CAN_BO_TAO N
00 CHAR) BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 404


Tài liệu thiết kế hệ thống V1.0

VARCHAR2(25
17 P_NGUOI_TAO N Tài khoản tạo BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
18 V_CURSOR CURSOR X
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để lấy
thông tin bản ghi vừa được thêm và trả về.

d.7.2.3.1.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã vụ việc không tồn tại.
- Mã biểu mẫu không tồn tại.
- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Danh sách biên bản liên quan bị trống hoặc có nhiều hơn 3
- Người ra quyết định, đại diện cơ quan tài chính, đại diện cơ quan liên quan, đại
diện bộ phận chuyên môn không có
- Nội dung BBQD không có.
- Căn cứ xác định không có hoặc nhiều hơn 255 ký tự.
- Thông tin biên bản lập xong không có.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.

BCA-C08_XLVP_2023_DD Internal use Trang 405


Tài liệu thiết kế hệ thống V1.0

d.7.2.3.2. Chỉnh sửa Biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

d.7.2.3.2.1. API

Mô tả: Gọi API để chỉnh sửa biên bản xác định giá trị tang vật, phương tiện vi phạm hành
chính
Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.7.2.3.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên và trả về tương tự tạo mới biên bản xác định giá trị tang vật, phương
tiện vi phạm hành chính, ngoài ra còn có:
STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã BBQD

d.7.2.3.2.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao
1 BBQDController.java
tác với biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQĐ
Lớp triển khai chi tiết các phương thức
3 BBQDServiceImpl.java
của BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ
4 BBQDRepository.java
cập nhật liên quan đến BBQĐ
BB04ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQĐ
.java
Lớp làm nhiệm vụ quản lý tang vật của
6 TangVatService.java
BBQĐ nếu có
Lớp làm nhiệm vụ quản lý các hình thức
7 BBQDHinhThucXuPhatService.java
xử phạt cho BBQĐ nếu có

BCA-C08_XLVP_2023_DD Internal use Trang 406


Tài liệu thiết kế hệ thống V1.0

Lớp làm nhiệm vụ quản lý các nội dung


8 BBQDNoiDungChiTietSevice.java
in cho BBQĐ nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
Cung cấp endpoint cập nhật BBQĐ
1 update BBQDController.java và điều hướng đến service cập nhật
BBQĐ
Thực hiện các thao tác validate,
2 update BBQDServiceImpl.java chuẩn hóa lại dữ liệu và cập nhật
BBQĐ
Gọi hàm
PKG_BIEN_BAN_QUYET_DINH.UP
3 update BBQDRepository.java
DATE_BB_QD để sửa BBQĐ trong
database
BB01ValidatorService Kiểm tra tính hợp lệ dữ liệu gửi lên
4 isValid
.java khi tạo BBQĐ

updateTang Cập nhật thông tin các tang vật thuộc


5 TangVatService.java
Vat BBQĐ
BBQDHinhThucXuPhat Cập nhật hình thức xử phạt cho
6 bulkUpdate
Service.java BBQĐ
BBQDNoiDungChiTiet Tạo hoặc cập nhật các nội dung in
7 upsert
Sevice.java cho BBQĐ
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được
sử dụng để cập nhật BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Hàm UPDATE_BBQD được sử dụng để cập nhật thông tin của một BBQD đã có trong
cơ sở dữ liệu.
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
1 P_MA VARCHAR2(50 N Mã BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 407


Tài liệu thiết kế hệ thống V1.0

CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
P_THOI_GIAN_LA
3 DATE N Thời gian lập BBQD
P
VARCHAR2(50
4 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
7 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
8 P_TRANG_THAI N Trạng thái BBQD
CHAR)
VARCHAR2(40
9 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(40 Thông tin cán bộ sửa
10 P_CAN_BO_SUA N
00 CHAR) BBQD
VARCHAR2(25
11 P_NGUOI_SUA N Tài khoản sửa BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
12 V_CURSOR CURSOR X
vừa tạo

Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQD được cập nhật.
d.7.2.3.2.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:

BCA-C08_XLVP_2023_DD Internal use Trang 408


Tài liệu thiết kế hệ thống V1.0

o Danh sách biên bản liên quan bị trống hoặc có nhiều hơn 3
- Người ra quyết định, đại diện cơ quan tài chính, đại diện cơ quan liên quan, đại
diện bộ phận chuyên môn không có
- Nội dung BBQD không có.
- Căn cứ xác định không có hoặc nhiều hơn 255 ký tự.
- Thông tin biên bản lập xong không có.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.7.2.3.3. Xem chi tiết biên bản xác định giá trị tang vật, phương tiện vi phạm hành
chính
d.7.2.3.3.1. API

Mô tả: Gọi API để lấy thông tin chi tiết biên bản xác định giá trị tang vật, phương tiện vi
phạm hành chính
Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

STT Tham số Kiểu dữ liệu Mô tả


1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã biên bản quyết định

Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây

BCA-C08_XLVP_2023_DD Internal use Trang 409


Tài liệu thiết kế hệ thống V1.0

Danh sách các hành vi vi phạm của BBQD,


10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của biên bản xác định giá trị
12 noiDung Object
tang vật, phương tiện vi phạm hành chính
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000058",
    "maCha": "G01.308.000.000-981-23-000044",
    "maBieuMauCha": "118-2022-nd-cp-qd20",
    "maNhapTay": null,
    "maVuViec": "G01.308.000.000-981-23-000599",
    "maBieuMau": "118-2022-nd-cp-bb04",
    "thoiGianLap": "2023-03-29T06:33:44.000+00:00",
    "ngayTao": "2023-03-29T06:41:17.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": "2023-03-29T07:55:49.000+00:00",
    "nguon": null,
    "canBoTao": {
        "email": "abc@gmail.com",
        "userName": "anhbc",
        "ten": "Bùi Anh",
        "capBac": "3.7",
        "chucVu": "003",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": {
        "email": "abc@gmail.com",
        "userName": "anhbc",
        "ten": "Bùi Anh",
        "capBac": "3.7",
        "chucVu": "003",
        "donVi": "G01.308.000.000"
    },
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.308.000.000-981-23-000599",

BCA-C08_XLVP_2023_DD Internal use Trang 410


Tài liệu thiết kế hệ thống V1.0

        "ten": "BB04",
        "nguon": null,
        "doiTuongViPham": {
            "soDinhDanh": "013114557",
            "ten": "Nguyễn Văn A",
            "ngayCap": "2023-03-06T06:34:19.153Z",
            "noiCap": "Cục cảnh sát",
            "diaChi": {
                "maDiaDanh": "00006",
                "chiTiet": "63 Lê Văn Lương"
            },
            "noiOHienTai": "63 Lê Văn Lương, Phường Vĩnh Phúc, Quận Ba 
Đình, Thành phố Hà Nội",
            "ngaySinh": "1999-03-03T06:34:34.387Z",
            "loaiNgaySinh": "DATE",
            "gioiTinh": 1.0,
            "quocTich": "VN",
            "ngheNghiep": "00008",
            "soDienThoai": "0546467788",
            "email": "abc@gmail.com",
            "noiSinh": "Hà Nội",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "28F1.247844",
            "bienSo2": "21447556",
            "maPhuongTien": "51",
            "soDangKy": "55446887",
            "soDangKy2": null,
            "soKhung": "023157FWQA5612",
            "soMay": "1357744563",
            "mauBien": "0",
            "nhanHieu": null,
            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,
            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}
d.7.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 411


Tài liệu thiết kế hệ thống V1.0

Lớp làm nhiệm vụ điều hướng các thao tác với


1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQĐ
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ lấy
4 BBQDRepository.java
thông tin chi tiết BBQĐ
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQĐ và
1 get
java điều hướng đến service cập nhật BBQĐ
BBQDServiceImp Thực hiện các thao tác chuẩn hóa lại dữ
2 get
l.java liệu BBQĐ trước khi trả ra
BBQDRepository Gọi hàm GET_BB_QD_DETAILS để lấy
3 get
.java thông tin chi tiết BBQĐ trong database

Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH. GET_BB_QD_DETAILS là một thủ tục
được sử dụng để lấy thông tin chi tiết BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(5
1 P_MA N Mã BBQD
0 CHAR)
P_MA_BIEU_MA VARCHAR2(5
2 N Mã biểu mẫu BBQD
U 0 CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.

BCA-C08_XLVP_2023_DD Internal use Trang 412


Tài liệu thiết kế hệ thống V1.0

d.7.2.3.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.
- BBQD đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.7.2.3.4. In biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần In của Biên bản 01

d.7.2.3.5. Xóa biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần Xóa của Biên bản 01

d.8. Biên bản 05 – Biên bản xác minh tình tiết của vụ việc vi phạm hành chính
d.8.1. Mục đích

- Quản lý biên bản 05 – Biên bản xác minh tình tiết của vụ việc vi phạm hành
chính.
- Chức năng quản lý biên bản 05 – Biên bản xác minh tình tiết của vụ việc vi
phạm hành chính:
o Thêm mới biên bản 05
o Sửa biên bản 05
o Hiển thị chi tiết biên bản 05
o Xóa biên bản 05

BCA-C08_XLVP_2023_DD Internal use Trang 413


Tài liệu thiết kế hệ thống V1.0

d.8.2. Chi tiết từng mục

d.8.2.1. Thiết kế dữ liệu

d.8.2.1.1. Mô hình quan hệ dữ liệu

HÌnh 75: Mô hình quan hệ dữ liệu biên bản 05


d.8.2.1.2. Danh sách các bảng và mô tả

TT Tên bảng Mô tả
1 BIEN_BAN_QUYET_DINH Bảng lưu trữ biên bản quyết định
2 VU_VIEC Bảng lưu trữ vụ việc xảy ra
BB_QD_HANH_VI_VI_PH Bảng lưu trữ thông tin các hành vi vi phạm trong
3
AM biên bản
BB_QD_NOI_DUNG_CHI_ Bảng lưu trữ thông tin nội dung in các hành vi vi
4
TIET phạm hoặc hình phạt bổ sung của biên bản
5 TANG_VAT Bảng lưu trữ thông tin các tang vật của biên bản
DANH_MUC_MAU_BIEN_ Bảng lưu trữ thông tin các mẫu biên bản quyết
6
BAN_QUYET_DINH định

BCA-C08_XLVP_2023_DD Internal use Trang 414


Tài liệu thiết kế hệ thống V1.0

d.8.2.2. Thiết kế màn hình

d.8.2.2.1. Thêm mới/Sửa Biên bản 05- Biên bản xác minh tình tiết của vụ việc vi phạm
hành chính
d.8.2.2.1.1. Giao diện

BCA-C08_XLVP_2023_DD Internal use Trang 415


Tài liệu thiết kế hệ thống V1.0

BCA-C08_XLVP_2023_DD Internal use Trang 416


Tài liệu thiết kế hệ thống V1.0

Hình 76: Màn hình Thêm mới,sửa BB05


d.8.2.2.1.2. Danh sách control/thành phần giao diện

Tên thành Bắt


STT Label phần / buộc Định dạng Miêu tả
Control nhập
Thông tin chung
Nhập mã nhập tay
Hiển thị mã tự sinh
maNhapTa
1 Số biên bản Textbox nếu không có mã nhập
y/ ma
tay
Không cho phép sửa

thoiGianLa Datetimepick Nhập ngày tạo của BB


2 Ngày tạo X
p er Giá trị mặc định:

BCA-C08_XLVP_2023_DD Internal use Trang 417


Tài liệu thiết kế hệ thống V1.0

Ngày, giờ hiện tại của


hệ thống
diaDiemLa
3 Tại X Textbox Nhập địa điểm lập BB
p
Căn cứ
Chọn căn cứ trong
4 Căn cứ maCancu X Dropdownlist danh mục căn cứ
Cho phép chọn nhiều
Thông tin người lập biên bản
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình
Người có thẩm quyền lập biên bản/quyết định
Cá nhân/ tổ chức cung cấp thông tin xác minh
Cá nhân/Tổ chức cung cấp thông tin xác minh gồm 2 phần:
- Bảng thông tin người xác minh: hiển thị các thông tin người xác minh khi được thêm
mới/ sửa tại màn hình popup thêm mới/ sửa Người xác minh
- Popup Thêm mới/ sửa người xác minh. Được mô tả tại mục Popup người xác minh
Bảng thông tin người xác minh
9 STT index Text Số thứ tự bản ghi
Hiển thị loại đối tượng
loaiDoiTuo
10 Đối tượng Text cung cấp thông tin xác
ng
minh
Hiển thị thông tin đối
11 Nội dung chi tiết noiDung Text tượng cung cấp thông
tin xác minh
Popup Thêm mới/ sửa người xác minh
Chọn loại đối tượng:
loaiDoiTuo
12 Đối tượng Dropdownlist - Cá nhân
ng
- Tổ chức
Nhập tên cho đối
13 Họ và tên ten Textbox
tượng chứng kiến
14 Nghề nghiệp ngheNghie Dropdownlist Chọn nghề nghiệp

BCA-C08_XLVP_2023_DD Internal use Trang 418


Tài liệu thiết kế hệ thống V1.0

p Áp dụng cho Cá nhân


Nhập địa chỉ
15 Địa chỉ diaChi Textbox
Áp dụng cho Cá nhân
Nhập chức vụ
16 Chức vụ chucVu Textbox
Áp dụng cho Tổ chức
Nhập cơ quan
17 Cơ quan coQuan Textbox
Áp dụng cho Tổ chức
Thông tin hành vi vi phạm
Thông tin hành vi vi phạm gồm 2 phần:
- Danh sách Hành vi vi phạm
- Popup Hành vi vi phạm
Danh sách Hành vi vi phạm
Hiển thị số thứ tự của
18 STT index Textbox
bản ghi
Hiển thị các thông tin
19 Nội dung chi tiết - Texbox
của hành vi vi phạm
Pop-up Hành vi vi phạm
Chọn thông tư nghị
20 Nghị đinh maTTND X Dropdownlist
định
Chọn hành vi vi phạm
Danh sách hành vi vi
21 Hành vi vi phạm maHVVP X Dropdownlist phạm được lọc dựa
theo Thông tư nghị
định
Hiển thị Điều của
22 Điều dieu Text
Hành vi vi phạm
Hiển thị Khoản của
23 Khoản khoan Text
hành vi vi phạm
Hiển thị Điểm của
24 Điểm diem Text
hành vi vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 419


Tài liệu thiết kế hệ thống V1.0

Danh sách cá nhân/tổ chức bị thiệt hại


Hiển thị số thứ tự của
25 STT index Text
đối tượng bị thiệt hại
loaiDoiTuo Hiển thị loại đối tượng
26 Đối tượng Text
ng bị thiệt hại
Hiển thị các thông tin
27 Chi tiết noiDung Text của đối tượng bị thiệt
hại
Tính chất, mức mucDoThi
28 Textbox Nhập mức độ thiệt hại
độ thiệt hại etHai
Popup Thêm mới/sửa cá nhân/tổ chức bị thiệt hại
loaiDoiTuo
29 Đối tượng Dropdownlist Chọn loại đối tượng
ng
Nhập tên cho đối
tượng thiệt hại
30 Họ và tên hoVaTen Textbox
Áp dụng cho đối
tượng Cá nhân
Nhập tên cho người
đại diện của tổ chức
31 Người đại diện hoVaTen Textbox thiệt hại
Áp dụng cho đối
tượng Tổ chức
Nhập tên tổ chức thiệt
hại
32 Tên tổ chức tenToChuc Textbox
Áp dụng cho đối
tượng Tổ chức
Nhập chức vụ cho
người đại diện của tổ
33 Chức vụ chucVu Textbox chức thiệt hại
Áp dụng cho đối
tượng Tổ chức

Tình tiết tăng nặng/giảm nhẹ Tình tiết tăng nặng/giảm nhẹ

BCA-C08_XLVP_2023_DD Internal use Trang 420


Tài liệu thiết kế hệ thống V1.0

Tình tiết giảm Nhập tình tiết tăng


34 ttGiam Textbox
nhẹ nặng
Tình tiết tăng Nhập tình tiết giảm
35 ttTang Textbox
nặng nhẹ
Ý kiến trình bày
Nhập ý kiến người vi
Ý kiến Người vi yKienBen phạm
36 Textbox
phạm ViPham Giá trị mặc định “Tôi
đồng ý”
Ý kiến Người yKienBen Nhập ý kiến người
37 Textbox
chứng kiến ChungKien chứng kiến
Ý kiến Người yKienBenT Nhập ý kiến người
38 Textbox
thiệt hại hietHai thiệt hại
Những tình tiết xác minh khác
Nhập tình tiết xác
39 Tình tiết ttKhac Textbox
minh khác
Nhập lý do không ký biên bản
lyDoKhon
Nhập lý do không ký
40 Lý do gKyBienB Textbox
biên bản
an
Biên bản lập xong hồi
Chọn hồi lập biên bản
41 Hồi thoiGian X Datepicker Có giá trị mặc định là
ngày giờ hiện tại
Nhập số tờ
42 Số tờ soTo X Textbox
Giá trị mặc định là 2
Nhập số bản
43 Số bản soBan X Textbox
Giá trị mặc định là 2

BCA-C08_XLVP_2023_DD Internal use Trang 421


Tài liệu thiết kế hệ thống V1.0

d.8.2.2.1.3. Các ràng buộc

STT Tên Nội dung


Thông tin chung
1 Số biên bản Tối đa 29 ký tự
2 Ngày tạo Bắt buộc nhập
Tại Bắt buộc nhập
3
Tối đa 255 ký tự
Popup Thêm mới/Sửa cá nhân/tổ chức cung cấp thông tin xác minh
4 Họ và tên Tối đa 150 ký tự
5 Địa chỉ Tối đa 255 ký tự
6 Chức vụ Tối đa 150 ký tự
7 Cơ quan Tối đa 150 ký tự
Cá nhân/tổ chức bị thiệt hại
8 Tình tiết Tối đa 255 ký tự
Popup Thêm mớ\i/Sửa Cá nhân/tổ chức bị thiệt hại
9 Họ và tên Tối đa 150 ký tự
10 Tên tổ chức Tối đa 150 ký tự
11 Người đại diện Tối đa 150 ký tự
12 Chức vụ Tối đa 150 ký tự
Tình tiết tăng nặng giảm nhẹ
13 Tình tiết giảm nhẹ Tối đa 255 ký tự
14 Tình tiết tăng nặng Tối đa 255 ký tự
Ý kiến trình bày
15 Ý kiến Người vi phạm Tối đa 500 ký tự
16 Ý kiến Người chứng kiến Tối đa 500 ký tự
17 Ý kiến Người thiệt hại Tối đa 500 ký tự
Những tình tiết xác minh khác
18 Tình tiết Tối đa 255 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 422


Tài liệu thiết kế hệ thống V1.0

Lý do không ký biên bản


19 Lý do Tối đa 500 ký tự
Biên bản lập xong hồi
20 Hồi Bắt buộc nhập
Số tờ Bắt buộc nhập
21
Tối đa 2 ký tự
Số bản Bắt buộc nhập
12
Tối đa 2 ký tự

d.8.2.2.1.4. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn Biên bản 05 ở Pop-up Tạo BB/QĐ → Màn
hình hiển thị Form thêm mới Biên bản với dữ liệu lấy
từ biên bản cha và giá trị mặc định
1 Page_Load Chọn BtnEdit ở Danh sách biên bản hoặc màn Chi
tiết Biên bản → Màn hình hiển thị Form thêm mới
Biên bản với dữ liệu tương ứng với Biên bản 01 đã
chọn
Nhập thông tin trong Form biên bản 05

2 BtnSave_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu biên bản theo thông tin vừa nhập

Click nút Đóng → Hiển thị popup xác nhận “Thực


hiện lưu thông tin vào hệ thống không?”
- Chọn Đồng ý → Hệ thống check ràng buộc của các
trường dữ liệu nếu thỏa mãn → lưu BB theo thông
3 BtnClose_Click
tin vừa nhập → Màn hình chuyển đến màn xem chi
tiết BB.
- Chọn Không → Màn hình chuyển đến xem chi tiết
BB

BCA-C08_XLVP_2023_DD Internal use Trang 423


Tài liệu thiết kế hệ thống V1.0

d.8.2.2.2. Xem chi tiết Biên bản 05

d.8.2.2.2.1. Giao diện

BCA-C08_XLVP_2023_DD Internal use Trang 424


Tài liệu thiết kế hệ thống V1.0

BCA-C08_XLVP_2023_DD Internal use Trang 425


Tài liệu thiết kế hệ thống V1.0

Hình 77: Màn hình chi tiết BB05


d.8.2.2.2.2. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Chọn nút Xem chi tiết tại Danh sách Biên bản →
Màn hình hiển thị Biên bản 05 đã chọn
2 BtnTạoBB/QĐ Chọn nút Tạo BB/QĐ ở cuối màn hình → Hiển thị
Pop – up chọn Mẫu biên bản và quyết định để tạo
3 BtnTạoQD02_Click Click nút Tạo QD02 CBCS, UBND → Đi đến màn
hình tạo mới Quyết định 02 cho Cán bộ cơ sở/UNBD
4 BtnEdit_Click Click nút Chỉnh sửa ở cuối màn hình → Đi đến màn
hình Chỉnh sửa biên bản
5 BtnLịchSử_Click Click nút Xem lịch sử ở cuối màn hình → Đi đến
màn hình xem Lịch sử biên bản
6 BtnPrint_Click Click nút In ở cuối màn hình → Màn hình hiển thị
Pop-up xem trước bản in của Biên bản
7 BtnDelete_Click Click nút Xóa ở cuối màn hình → Chọn Đồng ý.

BCA-C08_XLVP_2023_DD Internal use Trang 426


Tài liệu thiết kế hệ thống V1.0

Hệ thống xóa bản ghi tương ứng → Màn hình quay


lại danh sách biên bản.
8 ButtonClose_Click Click nút Đóng ở cuối màn hình -> Đi đến màn danh
sách biên bản

d.8.2.3. Thiết kế các hàm, thủ tục

d.8.2.3.1. Lấy danh sách và tìm kiếm biên bản

d.8.2.3.1.1. API

Mô tả: Gọi API để lấy danh sách biên bản xác minh tình tiết của vụ việc vi phạm hành
chính theo nhiều tiêu chí tìm kiếm
Method URL
GET xlvp/api/v1/bb-qd?

d.8.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã biên bản/ quyết định
2 maBieuMau String Mã biểu mẫu biên bản quyết định
3 trangThai String Trạng thái của biên bản/ quyết định:
- DA_LUU: Đã lưu

- DA_IN: Đã in

- DA_RA_BB_QD: Đã ra biên bản


quyết định
- DA_PHE_DUYET: Đã phê duyệt

- DA_GUI_SMS: Đã gửi tin nhắn


SMS
- DA_THANH_TOAN: Đã thanh
toán trực tiếp
- DA_THANH_TOAN_DVC: Đã
thanh toán qua dịch vụ công

BCA-C08_XLVP_2023_DD Internal use Trang 427


Tài liệu thiết kế hệ thống V1.0

- DA_THANH_TOAN_BUU_DIEN:
Đã thanh toán qua bưu điện
Từ khóa tìm kiếm nhanh để tìm kiếm, có
4 timKiemNhanh String thể là; Mã BBQD, mã vụ việc, biển số
xe, số định danh đối tượng vi phạm.
Loại biểu mẫu cần tìm kiếm:
- BIEN_BAN: tìm kiếm kiên bản
5 loaiBieuMau String
- QUYET_DINH: tìm kiếm quyết
định
6 bienSo String Biển số xe của phương tiện vi phạm
7 soDinhDanh String Số định danh của đối tượng vi phạm
8 tenDoiTuongViPham String Tên đối tượng vi phạm
Mã đơn vị cảnh sát giao thông lập biên
9 maDonViCsgt String
bản/ quyết định
Thời gian lập biên bản, quyết định từ
10 tuNgay Datetime
ngày
Thời gian lập biên bản, quyết định đến
11 denNgay Datetime
ngày
12 maCha String Mã biên bản, quyết định cha
13 maBieuMauCha String Mã biểu mẫu biên bản, quyết định cha
Lĩnh vực giao thông lập biên bản, quyết
đinh:

14 linhVuc String - DUONG_BO: Đường bộ

- DUONG_SAT: Đường sắt

- DUONG_THUY: Đường thủy

Nguồn tạo biên bản quyết định:


- BBQD: Biên bản, quyết định lập từ
15 nguonBBQD String BBQD khác
- VU_VIEC: Biên bản, quyết định
lập trực tiếp từ vụ việc

BCA-C08_XLVP_2023_DD Internal use Trang 428


Tài liệu thiết kế hệ thống V1.0

Ví dụ:
Method: GET

Các giá trị trả về là:


Kiểu dữ
STT Tham số Mô tả
liệu
1 total Number Tổng số bản ghi phù hợp điều kiện tìm kiếm
Danh sách các BBQD phù hợp điều kiện tìm
2 items List
kiếm
3 ma String Mã BBQD
4 maBieuMau String Mã biểu mẫu BBQD
5 maCha String Mã BBQD cha
6 maVuViec String Mã vụ việc tạo BBQD
7 maNhapTay String Mã nhập tay BBQD khi tạo
8 thoiGianLap Date Thời gian lập BBQD
9 trangThai String Trạng thái của biên bản/ quyết định:
- DA_LUU: Đã lưu

- DA_IN: Đã in

- DA_RA_BB_QD: Đã ra biên bản quyết


định
- DA_PHE_DUYET: Đã phê duyệt

- DA_GUI_SMS: Đã gửi tin nhắn SMS

- DA_THANH_TOAN: Đã thanh toán trực


tiếp
- DA_THANH_TOAN_DVC: Đã thanh toán
qua dịch vụ công

BCA-C08_XLVP_2023_DD Internal use Trang 429


Tài liệu thiết kế hệ thống V1.0

- DA_THANH_TOAN_BUU_DIEN: Đã
thanh toán qua bưu điện
maDonViCs
10 String Mã đơn vị CSGT tạo BBQD
gt
Nguồn tạo biên bản quyết định:
- BBQD: Biên bản, quyết định lập từ BBQD
11 nguon String khác
VU_VIEC: Biên bản, quyết định lập trực tiếp từ
vụ việc
BBQD đã tạo bbqd con chưa?

12 hasChild Boolean - True: đã có BBQD con

- False: chưa có BBQD con

13 ngayTao Date Thời gian tạo BBQD trên hệ thống


14 ngaySua Date Thời gian sửa BBQD trên hệ thống
15 canBoTao Object Thông tin cán bộ lập BBQD
16 canBoSua Object Thông tin cán bộ sửa BBQD
17 vuViec Object Thông tin vụ việc của BBQD
Ví dụ:
Kết quả trả về:
{
    "items": [
        {
            "ma": "G01.308.000.000-981-23-000007",
            "maCha": "G01.308.000.000-981-23-000310",
            "maBieuMauCha": "118-2022-nd-cp-bb01",
            "maNhapTay": null,
            "maVuViec": "G01.308.000.000-981-23-000601",
            "maBieuMau": "118-2022-nd-cp-bb05",
            "thoiGianLap": "2023-03-30T02:28:46.000+00:00",
            "ngayTao": "2023-03-30T02:31:14.000+00:00",
            "maDonViCsgt": "G01.308.000.000",
            "ngaySua": null,
            "nguon": null,
            "canBoTao": {
                "email": "abc@gmail.com",
                "userName": "anhbc",
                "ten": "Bùi Anh",

BCA-C08_XLVP_2023_DD Internal use Trang 430


Tài liệu thiết kế hệ thống V1.0

                "capBac": "3.7",
                "chucVu": "003",
                "donVi": "G01.308.000.000",
                "diaDanh": "Thượng Thanh - Hà Nội"
            },
            "canBoSua": null,
            "trangThai": "DA_LUU",
            "vuViec": {
                "ma": "G01.308.000.000-981-23-000601",
                "ten": "BB16",
                "nguon": null,
                "doiTuongViPham": {
                    "soDinhDanh": "003112111450",
                    "ten": "Bùi Công Anh",
                    "ngayCap": "2023-03-10T09:15:47.192Z",
                    "noiCap": "Cục cảnh sát quản lý hành chính về trật tự xã hội",
                    "diaChi": {
                        "maDiaDanh": "00721",
                        "chiTiet": "Lê Văn Lương"
                    },
                    "noiOHienTai": "Lê Văn Lương, Thị trấn Đồng Văn, Huyện Đồng Văn, T
ỉnh Hà Giang",
                    "ngaySinh": "1996-05-29T09:16:04.677Z",
                    "loaiNgaySinh": "MONTH",
                    "gioiTinh": 1.0,
                    "quocTich": "VN",
                    "ngheNghiep": "00002",
                    "soDienThoai": "0315487451",
                    "email": "abc@gmail.com",
                    "noiSinh": "Hà Nội",
                    "isC06Data": false
                },
                "loaiDoiTuong": "CA_NHAN",
                "phuongTien": {
                    "bienSo": "2157853",
                    "maPhuongTien": "47"
                },
                "linhVuc": "DUONG_BO"
            },
            "hasChild": false
        }
    ],
    "total": 1
}

d.8.2.3.1.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:

BCA-C08_XLVP_2023_DD Internal use Trang 431


Tài liệu thiết kế hệ thống V1.0

STT Tên lớp Mô tả


Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQD
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint tìm kiếm BBQD và
1 search
java điều hướng đến service tìm kiếm BBQD
BBQDServiceImp Thực hiện các thao tác chuẩn hóa dữ liệu
2 search
l.java tìm kiếm BBQD
Gọi tới hàm
BBQDRepository PKG_BIEN_BAN_QUYET_DINH.SEARCH
3 search
.java _BB_QD để tìm kiếm BBQD trong database
phù hợp các điều kiện nhập vào

Procedure:
-Hàm PKG_BIEN_BAN_QUYET_DINH.SEARCH_BB_QD là một thủ tục được
sử dụng để tìm kiếm các BBQD dựa trên các tiêu chí khác nhau.
Các giá trị nhập vào và trả ra gồm:

Nhập/
Kiểu dữ
STT Tham số Xuất Mô tả
liệu
(N/X)
VARCHAR
1 P_MA 2(30 N Mã BBQD cần tìm kiếm
CHAR)
VARCHAR
2 P_MA_VU_VIEC 2(30 N Mã vụ việc lập BBQD
CHAR)
3 P_MA_BIEU_MAU VARCHAR N Trạng thái của căn cứ

BCA-C08_XLVP_2023_DD Internal use Trang 432


Tài liệu thiết kế hệ thống V1.0

Nhập/
Kiểu dữ
STT Tham số Xuất Mô tả
liệu
(N/X)
2(50 + 1 : kích hoạt
CHAR) + 0 : không kích hoạt
Trang cần tìm kiếm ( bắt đầu từ
4 P_IS_CHU_KY_SO NUMBER N
0)
Loại biểu mẫu
P_LOAI_BIEU_MA
5 NUMBER N + 1 : biên bản
U
+ 2 : quyết định
VARCHAR
6 P_BIEN_SO N Biển số xe cần tra cứu
2
VARCHAR Số định danh đối tượng vi
7 P_SO_CMTND N
2 phạm
VARCHAR
8 P_TEN_NVP N Tên đối tượng vi phạm
2
9 P_TU_NGAY DATE N Thời gian lập BBQD từ ngày
10 P_DEN_NGAY DATE N Thời gian lập BBQD đến ngày
Trạng thái BBQD:
- 01: Đã lưu

- 02: Đã in

- 03: Đã ra biên bản quyết


định

VARCHAR - 06: Đã phê duyệt


11 P_TRANG_THAI N
2(2)
- 07: Đã gửi tin nhắn SMS

- 08: Đã thanh toán trực tiếp

- 11: Đã thanh toán qua dịch


vụ công
- 12: Đã thanh toán qua bưu
điện

BCA-C08_XLVP_2023_DD Internal use Trang 433


Tài liệu thiết kế hệ thống V1.0

Nhập/
Kiểu dữ
STT Tham số Xuất Mô tả
liệu
(N/X)
VARCHAR
P_MA_DON_VI_CS
12 2(255 N Mã đơn vị CSGT cần tìm kiếm
GT
CHAR)
VARCHAR
13 P_SEARCH N Từ khóa tìm kiếm nhanh
2
VARCHAR
14 P_MA_CHA 2(30 N Mã BBQD cha
CHAR)
VARCHAR
P_MA_BIEU_MAU_
15 2(50 N Mã biểu mẫu của BBQD cha
CHA
CHAR)
Lĩnh vực giao thông cần tìm
kiếm:

16 P_LINH_VUC NUMBER N - 981: Đường bộ

- 982: Đường sắt

- 983: Đường thủy

Nguồn tạo BBQD:

17 P_NGUON_BBQD NUMBER N - 1: từ BBQD khác

- 2: trực tiếp từ vụ việc

Được phép phê duyệt:

18 P_CAN_APPROVAL NUMBER N - 1: được phê duyệt

- 0: Không được phê duyệt

Lấy dữ liệu từ trang, giá trị mặc


19 P_PAGE NUMBER NN
định là 0
Số bản ghi trên 1 trang, mặc
20 P_PSIZE NUMBER N
định là 10
21 V_CURSOR REF X Con trỏ tham chiếu đến kết quả

BCA-C08_XLVP_2023_DD Internal use Trang 434


Tài liệu thiết kế hệ thống V1.0

Nhập/
Kiểu dữ
STT Tham số Xuất Mô tả
liệu
(N/X)
CURSOR tìm kiếm
Kết quả trả về của thủ tục bao gồm một danh sách các BBQD được tìm thấy, phù hợp với
các tiêu chí tìm kiếm được cung cấp. Các kết quả được phân trang và sắp xếp theo thời
gian lập BBQD mới nhất.
d.8.2.3.1.4. Xử lý ngoại lệ

Xử lý ngoại lệ được dùng chung toàn bộ dự án


d.8.2.3.2. Thêm mới biên bản xác minh tình tiết của vụ việc vi phạm hành chính

d.8.2.3.2.1. API

Mô tả: Gọi API để tạo mới biên bản xác minh tình tiết của vụ việc vi phạm hành chính
Method URL
POST xlvp/api/v1/bb-qd

d.8.2.3.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD
2 maBieuMau String X Mã biểu mẫu BBQD
3 maCha String Mã BBQD cha
maBieuMauC
4 String Mã biểu mẫu cha
ha
5 thoiGianLap Date X Thời gian lập BBQD
6 diaDiemLap String Địa điểm lập BBQD
7 maNhapTay String Mã số nhập tay BBQD
8 tangVat List Danh sách các tang vật của biên bản, tham
khảo bảng dữ liệu đầu vào tang vật dưới

BCA-C08_XLVP_2023_DD Internal use Trang 435


Tài liệu thiết kế hệ thống V1.0

đây
Danh sách các hành vi vi phạm của
hanhViViPha
9 List X BBQD, tham khảo bảng dữ liệu đầu vào
m
Hành vi vi phạm dưới đây
Danh sách nội dung in hành vi vi phạm
noiDungChiTi
10 List của BBQD, tham khảo bảng dữ liệu đầu
et
vào nội dung chi tiết dưới đây
Nội dung chi tiết của biên bản xác minh
11 noiDung Object X
tình tiết của vụ việc vi phạm hành chính

- Dữ liệu nội dung biên bản xác minh tình tiết của vụ việc vi phạm hành chính:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
List
1 canCu X Căn cứ lập BB lấy từ danh mục căn cứ
String

nguoiCoTham Thông tin người có thẩm quyền lập BB


2 Json X
Quyen Example: {“ma”: “admin”}
Danh sách đối tượng xác minh
doiTuongXac Example: [{“ten” : “Bùi Anh”,
3 Json
Minh “ngheNgiep” : “IT”} , {“ten” : “Minh
Tuấn”}}]
Danh sách người thiệt hại
doiTuongThie
4 Json Example: [{“ten” : “Bùi Anh”, “chucVu” :
tHai
“Giám đốc”} , {“ten” : “Minh Tuấn”}}]
mucDoThietH
5 String Tính chất, mức độ thiệt hại
ai
6 ttTang String Tình tiết tăng nặng
7 ttGiam String Tình tiết giảm nhẹ
yKienBenViP
8 String Ý kiến trình bày bên vi phạm
ham
9 yKienBenChu String Ý kiến trình bày bên chứng kiến

BCA-C08_XLVP_2023_DD Internal use Trang 436


Tài liệu thiết kế hệ thống V1.0

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
ngKien
yKienBenThi
10 String Ý kiến trình bày bên thiệt hại
etHai
11 ttKhac String Tình tiết xác minh khác
lyDoKhongK
12 String Lý do không ký biên bản
yBienBan
13 lapXong Json X Thông tin biên bản lập xong

- Dữ liệu tang vật:

Kiểu dữ Bắt
STT Tham số Mô tả
liệu buộc
Mã tang vật ( trong danh mục tang vật,
1 ma String X
phương tiện, giấy tờ)
Mã nhóm tang vật:
- PHUONG_TIEN: Phương tiện

nhomTang - GIAY_TO: Giấy tờ


2 String X
Vat
- GIAY_PHEP_LAI_XE: Giấy phép
lái xe
- KHAC: Tang vật khác

Thông tin chi tiết của tang vật tùy nhóm


3 thongTin Object
tang vật
Nhóm tang vật phương tiện
1 soLuong Number X Số lượng tang vật
2 donViTinh String X Đơn vị tính của tang vật
3 tinhTrang String Tình trạng của tang vật
4 chungLoai String Mã phương tiện
5 bienSo String Biển số thứ nhất của phương tiện

BCA-C08_XLVP_2023_DD Internal use Trang 437


Tài liệu thiết kế hệ thống V1.0

6 bienSo2 String Biển số thứ 2 của phương tiện


7 soDangKy String Số đăng ký thứ 1 của phương tiện
soDangKy
8 String Số đăng ký thứ 2 của phương tiện
2
9 soKhung String Số khung của phương tiện
10 soMay String Số máy của phương tiện
11 congSuat String Công suất thứ 1 của phương tiện
12 congSuat2 String Công suất thứ 2 của phương tiện
13 trongTai String Trọng tải thứ 1 của phương tiện
14 trongTai2 String Trọng tải thứ 2 của phương tiện
15 donGia String Đơn giá tạm tính của phương tiện
16 nhanHieu String Nhãn hiệu của phương tiện
17 mauSon String Màu sơn của phương tiện
18 soLoai String Số loại của phương tiện
Nhóm tang vật giấy phép lái xe
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 so String X Mã số của giấy phép lái xe
5 hang List X Danh sách các hạng in trên GPLX
6 giaTriDen Date Ngày hết hạn GPLX
7 noiCap String Mã số nơi cấp giấy tờ
Nhóm tang vật giấy tờ
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 so String X Mã số của giấy phép lái xe
5 giaTriDen Date Ngày hết hạn GPLX

BCA-C08_XLVP_2023_DD Internal use Trang 438


Tài liệu thiết kế hệ thống V1.0

6 noiCap String Mã số nơi cấp giấy tờ


Nhóm tang vật khác
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 ten String X Tên gọi của tang vật
5 donViTinh String X Đơn vị tính của tang vật
6 donGia String Đơn giá thành tiền tạm tính

- Dữ liệu hành vi vi phạm:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maHVVP String X Mã hành vi vi phạm
2 maTTND String X Mã thông tư nghị định
3 boSungHVVP String Thông tin bổ sung thêm cho HVVP
4 mucTienPhat String Mức tiền phạt cho HVVP
5 thoiGianVp Date Thời gian xảy ra vi phạm
6 diaDiemVp String Địa điểm xảy ra vi phạm
Ví dụ:
Method: POST
{
    "maBieuMau": "118-2022-nd-cp-bb05",
    "maVuViec": "G01.308.000.000-981-23-000601",
    "maBieuMauCha": "118-2022-nd-cp-bb01",
    "maCha": "G01.308.000.000-981-23-000310",
    "thoiGianLap": "2023-03-30T02:28:46.041Z",
    "diaDiemLap": "Lê Văn Lương",
    "tangVat": [
        {
            "ma": "044",
            "nhomTangVat": "GIAY_PHEP_LAI_XE",
            "thongTin": {
                "soLuong": 1,
                "tinhTrang": "Còn nguyên",
                "ghiChu": "Còn nguyên",
                "hang": [
                    "gplx-a2"

BCA-C08_XLVP_2023_DD Internal use Trang 439


Tài liệu thiết kế hệ thống V1.0

                ],
                "so": "24747845111",
                "giaTriDen": "2026-03-05T09:18:05.000+00:00",
                "noiCap": null
            }
        },
        {
            "ma": "043",
            "nhomTangVat": "PHUONG_TIEN",
            "thongTin": {
                "soLuong": 1,
                "tinhTrang": "Còn nguyên",
                "ghiChu": "Còn nguyên",
                "ten": null,
                "chungLoai": "47",
                "bienSo": "2157853",
                "bienSo2": "5786331",
                "donViTinh": "Chiếc",
                "soDangKy": null,
                "soKhung": "5222157QSZA",
                "soMay": "24873215457",
                "soDangKy2": null,
                "congSuat": null,
                "trongTai": null,
                "congSuat2": null,
                "trongTai2": null,
                "donGia": null,
                "nhanHieu": null,
                "mauSon": null,
                "soLoai": null
            }
        }
    ],
    "hanhViViPham": [
        {
            "maBBQD": "G01.308.000.000-981-23-000310",
            "maBieuMau": "118-2022-nd-cp-bb01",
            "maHVVP": "013-258.45.78.sa.3",
            "maTTND": "014",
            "boSungHvvp": null,
            "thoiGianVp": "2023-03-29T09:15:20.000+00:00",
            "diaDiemVp": "Lê Văn Lương",
            "mucTienPhat": null,
            "noiDungHanhViViPham": "Điều khiển xe trên đường mà trong cơ thể có chất m
a túysd3erdwessds",
            "diem": "sa",
            "khoan": "78",
            "dieu": "45",
            "soTTND": "11822",
            "ngayBanHanhTTND": "2021-09-30T09:51:10.719+00:00",
            "noiDungTTND": "Nghị định mới 2022",
            "kyHieuTTND": "118/2022/NĐ-CP",
            "soTienPhatCaNhanNhoNhat": 20000,

BCA-C08_XLVP_2023_DD Internal use Trang 440


Tài liệu thiết kế hệ thống V1.0

            "soTienPhatCaNhanLonNhat": 2000000,
            "soTienPhatCaNhanMacDinh": 1010000,
            "soTienPhatToChucNhoNhat": 40000,
            "soTienPhatToChucLonNhat": 4000000,
            "soTienPhatToChucMacDinh": 2020000,
            "key": "5d7a0fdb3858466da36af2788c991e36"
        }
    ],
    "noiDung": {
        "doiTuongXacMinh": [
            {
                "ten": "Bùi Anh",
                "loai": "CA_NHAN",
                "ngheNghiep": "00008",
                "diaChi": "Lê Văn Lương"
            }
        ],
        "lyDoKhongKyBienBan": "Tôi đồng ý",
        "canCu": {
            "maCanCu": [
                "20",
                "01",
                "03"
            ],
        },
        "nguoiCoThamQuyen": {
            "donVi": "G01.308.000.000",
            "capBac": "Hạ sĩ",
            "chucVu": "Cục trưởng",
            "ma": "anhbc"
        },
        "doiTuongThietHai": [
            {
                "loaiDoiTuong": "CA_NHAN",
                "hoVaTen": "Bùi Anh"
            }
        ],
        "mucDoThietHai": "Nghiêm trọng",
        "lapXong": {
            "thoiGian": "2023-03-30T02:28:37.600Z",
            "soTo": "2",
            "soBan": "2"
        },
        "ttGiam": "Không có",
        "ttTang": "Chống đối",
        "ttKhac": "Không có",
        "yKienBenViPham": "Tôi đồng ý",
        "yKienBenChungKien": "Tôi đồng ý",
        "yKienBenThietHai": "Tôi đồng ý"
    }
}

Các giá trị trả về là:

BCA-C08_XLVP_2023_DD Internal use Trang 441


Tài liệu thiết kế hệ thống V1.0

Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây
Danh sách các hành vi vi phạm của BBQD,
10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của biên bản xác minh tình tiết
12 noiDung Object
của vụ việc vi phạm hành chính
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{

    "ma": "G01.308.000.000-981-23-000007",

    "maCha": "G01.308.000.000-981-23-000310",

    "maBieuMauCha": "118-2022-nd-cp-bb01",

    "maNhapTay": null,

    "maVuViec": "G01.308.000.000-981-23-000601",

    "maBieuMau": "118-2022-nd-cp-bb05",

BCA-C08_XLVP_2023_DD Internal use Trang 442


Tài liệu thiết kế hệ thống V1.0

    "thoiGianLap": "2023-03-30T02:28:46.000+00:00",

    "ngayTao": "2023-03-30T02:31:14.000+00:00",

    "maDonViCsgt": "G01.308.000.000",

    "ngaySua": null,

    "nguon": null,

    "canBoTao": {

        "email": "abc@gmail.com",

        "userName": "anhbc",

        "ten": "Bùi Anh",

        "capBac": "3.7",

        "chucVu": "003",

        "donVi": "G01.308.000.000",

        "diaDanh": "Thượng Thanh - Hà Nội"

    },

    "canBoSua": null,

    "trangThai": "DA_LUU",

    "vuViec": {

        "ma": "G01.308.000.000-981-23-000601",

        "ten": "BB16",

        "nguon": null,

        "doiTuongViPham": {

            "soDinhDanh": "003112111450",

            "ten": "Bùi Công Anh",

            "ngayCap": "2023-03-10T09:15:47.192Z",

            "noiCap": "Cục cảnh sát quản lý hành chính về trật tự xã hội",

            "diaChi": {

                "maDiaDanh": "00721",

                "chiTiet": "Lê Văn Lương"

            },

            "noiOHienTai": "Lê Văn Lương, Thị trấn Đồng Văn, Huyện Đồng Văn, Tỉnh Hà G
iang",

            "ngaySinh": "1996-05-29T09:16:04.677Z",

            "loaiNgaySinh": "MONTH",

            "gioiTinh": 1.0,

            "quocTich": "VN",

            "ngheNghiep": "00002",

            "soDienThoai": "0315487451",

BCA-C08_XLVP_2023_DD Internal use Trang 443


Tài liệu thiết kế hệ thống V1.0

            "email": "abc@gmail.com",

            "noiSinh": "Hà Nội",

            "isC06Data": false

        },

        "loaiDoiTuong": "CA_NHAN",

        "phuongTien": {

            "bienSo": "2157853",

            "bienSo2": "5786331",

            "maPhuongTien": "47",

            "soDangKy": "2121488",

            "soDangKy2": null,

            "soKhung": "5222157QSZA",

            "soMay": "24873215457",

            "mauBien": "0",

            "nhanHieu": null,

            "mauSon": null,

            "trongTai": null,

            "trongTai2": null,

            "congSuat": null,

            "congSuat2": null,

            "soLoai": null

        },

        "linhVuc": "DUONG_BO"

    },

    "hasChild": false

IV.8.2.3.2.1. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao
1 BBQDController.java
tác với biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức
3 BBQDServiceImpl.java
của BBQDService.java

BCA-C08_XLVP_2023_DD Internal use Trang 444


Tài liệu thiết kế hệ thống V1.0

Lớp giao tiếp với database làm nhiệm vụ


4 BBQDRepository.java
cập nhật liên quan đến BBQD
BB05ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ tạo và quản lý tang vật
6 TangVatService.java
của BBQD nếu có
Lớp làm nhiệm vụ tạo và quản lý các
7 BBQDHinhThucXuPhatService.java
hình thức xử phạt cho BBQD nếu có
Lớp làm nhiệm vụ tạo và quản lý các nội
8 BBQDNoiDungChiTietSevice.java
dung in cho BBQD nếu có
- Danh sách các phương thức:
Tên
STT Tên lớp Mô tả
method
Cung cấp endpoint tạo mới BBQD và
1 create BBQDController.java
điều hướng đến service tạo BBQD
Thực hiện các thao tác validate, chuẩn
2 create BBQDServiceImpl.java
hóa lại dữ liệu và tạo mới BBQD
Gọi hàm
PKG_BIEN_BAN_QUYET_DINH.CREA
3 create BBQDRepository.java
TE_BB_QD để tạo BBQD trong
database
BB01ValidatorService Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid
.java tạo BBQD

bulkCre
5 TangVatService.java Tạo các tang vật thuộc BBQD
ate
bulkCre BBQDHinhThucXuPhatSer
6 Tạo các hình thức xử phạt cho BBQD
ate vice.java
BBQDNoiDungChiTietSev Tạo hoặc cập nhật các nội dung in cho
7 upsert
ice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được
sử dụng để tạo mới BBQD trong database.

BCA-C08_XLVP_2023_DD Internal use Trang 445


Tài liệu thiết kế hệ thống V1.0

Các giá trị nhập vào và trả ra gồm:


Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
VARCHAR2(50
3 P_MA_VU_VIEC N Mã vụ việc tạo BBQD
CHAR)
VARCHAR2(50
4 P_MA_CHA N Mã BBQD cha nếu có
CHAR)
P_MA_BIEU_MA VARCHAR2(50
5 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
P_THOI_GIAN_LA
6 DATE N Thời gian lập BBQD
P
VARCHAR2(50
7 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
10 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
11 P_TRANG_THAI N Trạng thái BBQD
CHAR)
P_MA_DON_VI_C VARCHAR2(25
12 N Mã đơn vị CSGT
SGT 5 CHAR)
P_DIA_CHI_DON_
13 NUMBER(12,0) N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID
VARCHAR2(40
14 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
15 P_NGUON VARCHAR2(15 N Nguồn tạo BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 446


Tài liệu thiết kế hệ thống V1.0

Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
CHAR)
VARCHAR2(40 Thông tin cán bộ tạo
16 P_CAN_BO_TAO N
00 CHAR) BBQD
VARCHAR2(25
17 P_NGUOI_TAO N Tài khoản tạo BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
18 V_CURSOR CURSOR X
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để
lấy thông tin bản ghi vừa được thêm và trả về.
d.8.2.3.2.2. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã vụ việc không tồn tại.
- Mã biểu mẫu không tồn tại.
- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Mã căn cứ để trống
- Người có thẩm quyển để trống
- Lý do không ký biên bản, tình tiết xác mình khác, tình tiết tăng nặng, giảm nhẹ,
mức đồ thiệt hại vượt quá 255 ký tự.
- Ý kiến của các bên chứng kiến, thiệt hại, cá nhân vi phạm vượt quá 500 ký tự.
- Thời gian, địa điểm lập không có.

BCA-C08_XLVP_2023_DD Internal use Trang 447


Tài liệu thiết kế hệ thống V1.0

- Nội dung BBQD không có.


- Thông tin biên bản lập xong không có.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.8.2.3.3. Chỉnh sửa biên bản xác minh tình tiết của vụ việc vi phạm hành chính

d.8.2.3.3.1. API

Mô tả: Gọi API để chỉnh sửa biên bản xác minh tình tiết của vụ việc vi phạm hành chính
Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.8.2.3.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên và trả về tương tự tạo mới biên bản xác minh tình tiết của vụ việc vi
phạm hành chính, ngoài ra còn có:
STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã BBQD

d.8.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 448


Tài liệu thiết kế hệ thống V1.0

BB05ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ quản lý tang vật của BBQD
6 TangVatService.java
nếu có
BBQDHinhThucXuPhatS Lớp làm nhiệm vụ quản lý các hình thức xử phạt
7
ervice.java cho BBQD nếu có
BBQDNoiDungChiTietSe Lớp làm nhiệm vụ quản lý các nội dung in cho
8
vice.java BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQD và
1 update
java điều hướng đến service cập nhật BBQD
BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 update
l.java lại dữ liệu và cập nhật BBQD
Gọi hàm
BBQDRepository
3 update PKG_BIEN_BAN_QUYET_DINH.UPDATE
.java
_BB_QD để sửa BBQD trong database

BB01ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid rvice
tạo BBQD
.java
updateTang TangVatService.j Cập nhật thông tin các tang vật thuộc
5
Vat ava BBQD
BBQDHinhThuc
6 bulkUpdate XuPhatService.ja Cập nhật hình thức xử phạt cho BBQD
va
BBQDNoiDungC Tạo hoặc cập nhật các nội dung in cho
7 upsert
hiTietSevice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được
sử dụng để cập nhật BBQD trong database.
Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 449


Tài liệu thiết kế hệ thống V1.0

Hàm UPDATE_ITEM được sử dụng để cập nhật thông tin của một BBQD đã có trong cơ
sở dữ liệu.
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
P_THOI_GIAN_LA
3 DATE N Thời gian lập BBQD
P
VARCHAR2(50
4 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
7 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
8 P_TRANG_THAI N Trạng thái BBQD
CHAR)
VARCHAR2(40
9 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(40 Thông tin cán bộ sửa
10 P_CAN_BO_SUA N
00 CHAR) BBQD
VARCHAR2(25
11 P_NGUOI_SUA N Tài khoản sửa BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
12 V_CURSOR CURSOR X
vừa tạo

Bẫy lỗi ConstraintViolationException khi:


- Căn cứ:
o Mã căn cứ để trống

BCA-C08_XLVP_2023_DD Internal use Trang 450


Tài liệu thiết kế hệ thống V1.0

- Người có thẩm quyển để trống


- Lý do không ký biên bản, tình tiết xác mình khác, tình tiết tăng nặng, giảm nhẹ,
mức đồ thiệt hại vượt quá 255 ký tự.
- Ý kiến của các bên chứng kiến, thiệt hại, cá nhân vi phạm vượt quá 500 ký tự.
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Thông tin biên bản lập xong không có.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.

d.8.2.3.4. Xem chi tiết biên bản xác minh tình tiết của vụ việc vi phạm hành chính

d.8.2.3.4.1. API

Mô tả: Gọi API để lấy thông tin chi tiết biên bản xác minh tình tiết của vụ việc vi phạm
hành chính
Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.8.2.3.4.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã biên bản quyết định
Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 451


Tài liệu thiết kế hệ thống V1.0

8 maNhapTay String Mã số nhập tay BBQD


Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây
Danh sách các hành vi vi phạm của BBQD,
10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của biên bản xác minh tình tiết
12 noiDung Object
của vụ việc vi phạm hành chính
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000007",
    "maCha": "G01.308.000.000-981-23-000310",
    "maBieuMauCha": "118-2022-nd-cp-bb01",
    "maNhapTay": null,
    "maVuViec": "G01.308.000.000-981-23-000601",
    "maBieuMau": "118-2022-nd-cp-bb05",
    "thoiGianLap": "2023-03-30T02:28:46.000+00:00",
    "ngayTao": "2023-03-30T02:31:14.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "diaDiemLap": "Lê Văn Lương",
    "tuNgay": null,
    "denNgay": null,
    "thoiGianHoanThanh": null,
    "noiDung": {
        "canCu": {
            "maCanCu": [
                "20",
                "01",
                "03"
            ]
        },
        "nguoiCoThamQuyen": {
            "ma": "anhbc",
            "ten": "Bùi Anh",

BCA-C08_XLVP_2023_DD Internal use Trang 452


Tài liệu thiết kế hệ thống V1.0

            "maCapBac": "3.7",
            "capBac": "Hạ sĩ",
            "chucVu": "Cục trưởng",
            "maChucVu": "003",
            "donVi": "G01.308.000.000",
            "tenDonVi": "Cục Cảnh Sát Giao Thông"
        },
        "doiTuongXacMinh": [
            {
                "loai": "CA_NHAN",
                "ten": "Bùi Anh",
                "ngheNghiep": "00008",
                "diaChi": "Lê Văn Lương",
                "chucVu": null,
                "coQuan": null
            }
        ],
        "doiTuongThietHai": [
            {
                "loaiDoiTuong": "CA_NHAN",
                "hoVaTen": "Bùi Anh",
                "chucVu": null,
                "tenToChuc": null
            }
        ],
        "mucDoThietHai": "Nghiêm trọng",
        "ttTang": "Chống đối",
        "ttGiam": "Không có",
        "ttKhac": "Không có",
        "lyDoKhongKyBienBan": "Tôi đồng ý",
        "lapXong": {
            "thoiGian": "2023-03-30T02:28:37.000+00:00",
            "soTo": 2,
            "soBan": 2
        },
        "yKienBenViPham": "Tôi đồng ý",
        "yKienBenChungKien": "Tôi đồng ý",
        "yKienBenThietHai": "Tôi đồng ý"
    },
    "nguoiTao": "anhbc",
    "nguoiSua": null,
    "hanhViViPham": [
        {
            "maBBQD": "G01.308.000.000-981-23-000007",
            "maBieuMau": "118-2022-nd-cp-bb05",
            "maHVVP": "013-258.45.78.sa.3",
            "maTTND": "014",
            "boSungHvvp": null,
            "thoiGianVp": "2023-03-29T09:15:20.000+00:00",
            "diaDiemVp": "Lê Văn Lương",
            "mucTienPhat": null,
            "noiDungHanhViViPham": "Điều khiển xe trên đường mà trong cơ thể có chất m
a túysd3erdwessds",

BCA-C08_XLVP_2023_DD Internal use Trang 453


Tài liệu thiết kế hệ thống V1.0

            "diem": "sa",
            "khoan": "78",
            "dieu": "45",
            "soTTND": "11822",
            "ngayBanHanhTTND": "2021-09-30T09:51:10.719+00:00",
            "noiDungTTND": "Nghị định mới 2022",
            "kyHieuTTND": "118/2022/NĐ-CP",
            "soTienPhatCaNhanNhoNhat": 20000,
            "soTienPhatCaNhanLonNhat": 2000000,
            "soTienPhatCaNhanMacDinh": 1010000,
            "soTienPhatToChucNhoNhat": 40000,
            "soTienPhatToChucLonNhat": 4000000,
            "soTienPhatToChucMacDinh": 2020000
        }
    ],
    "tangVat": [
        {
            "ma": "044",
            "nhomTangVat": "GIAY_PHEP_LAI_XE",
            "thongTin": {
                "soLuong": 1,
                "tinhTrang": "Còn nguyên",
                "ghiChu": "Còn nguyên",
                "hang": [
                    "gplx-a2"
                ],
                "so": "24747845111",
                "giaTriDen": "2026-03-05T09:18:05.000+00:00",
                "noiCap": null
            }
        },
        {
            "ma": "043",
            "nhomTangVat": "PHUONG_TIEN",
            "thongTin": {
                "soLuong": 1,
                "tinhTrang": "Còn nguyên",
                "ghiChu": "Còn nguyên",
                "ten": null,
                "chungLoai": "47",
                "bienSo": "2157853",
                "bienSo2": "5786331",
                "donViTinh": "Chiếc",
                "soDangKy": null,
                "soKhung": "5222157QSZA",
                "soMay": "24873215457",
                "soDangKy2": null,
                "congSuat": null,
                "trongTai": null,
                "congSuat2": null,
                "trongTai2": null,
                "donGia": null,
                "nhanHieu": null,

BCA-C08_XLVP_2023_DD Internal use Trang 454


Tài liệu thiết kế hệ thống V1.0

                "mauSon": null,
                "soLoai": null
            }
        }
    ],
    "hinhThucXuPhat": [],
    "thongBao": null,
    "noiDungChiTiet": null,
    "canBoTao": {
        "email": "abc@gmail.com",
        "userName": "anhbc",
        "ten": "Bùi Anh",
        "capBac": "3.7",
        "chucVu": "003",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.308.000.000-981-23-000601",
        "ten": "BB16",
        "nguon": null,
        "doiTuongViPham": {
            "soDinhDanh": "003112111450",
            "ten": "Bùi Công Anh",
            "ngayCap": "2023-03-10T09:15:47.192Z",
            "noiCap": "Cục cảnh sát quản lý hành chính về trật tự xã hội",
            "diaChi": {
                "maDiaDanh": "00721",
                "chiTiet": "Lê Văn Lương"
            },
            "noiOHienTai": "Lê Văn Lương, Thị trấn Đồng Văn, Huyện Đồng Văn, Tỉnh Hà G
iang",
            "ngaySinh": "1996-05-29T09:16:04.677Z",
            "loaiNgaySinh": "MONTH",
            "gioiTinh": 1.0,
            "quocTich": "VN",
            "ngheNghiep": "00002",
            "soDienThoai": "0315487451",
            "email": "abc@gmail.com",
            "noiSinh": "Hà Nội",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "2157853",
            "bienSo2": "5786331",
            "maPhuongTien": "47",
            "soDangKy": "2121488",
            "soDangKy2": null,
            "soKhung": "5222157QSZA",
            "soMay": "24873215457",

BCA-C08_XLVP_2023_DD Internal use Trang 455


Tài liệu thiết kế hệ thống V1.0

            "mauBien": "0",
            "nhanHieu": null,
            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,
            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}

d.8.2.3.4.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ lấy
4 BBQDRepository.java
thông tin chi tiết BBQD
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQD và
1 get
java điều hướng đến service cập nhật BBQD
BBQDServiceImp Thực hiện các thao tác chuẩn hóa lại dữ
2 get
l.java liệu BBQD trước khi trả ra
BBQDRepository Gọi hàm GET_BB_QD_DETAILS để lấy
3 get
.java thông tin chi tiết BBQD trong database

Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH. GET_BB_QD_DETAILS là một thủ tục
được sử dụng để lấy thông tin chi tiết BBQD trong database.
Các giá trị nhập vào và trả ra gồm:

BCA-C08_XLVP_2023_DD Internal use Trang 456


Tài liệu thiết kế hệ thống V1.0

Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(5
1 P_MA N Mã BBQD
0 CHAR)
P_MA_BIEU_MA VARCHAR2(5
2 N Mã biểu mẫu BBQD
U 0 CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.
d.8.2.3.4.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.
- BBQD đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.

d.8.2.3.5. In biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần In của Biên bản 01


d.8.2.3.6. Xóa biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần Xóa của Biên bản 01

d.9. Biên bản 06 – Biên bản Về việc không nhận quyết định xử phạt vi phạm hành
chính
d.9.1. Mục đích

- Quản lý biên bản 06 – Biên bản về việc không nhận xử phạt vi phạm hành
chính.
- Chức năng quản lý biên bản 06 – Biên bản về việc không nhận xử phạt vi phạm
hành chính:
o Thêm mới biên bản 06

BCA-C08_XLVP_2023_DD Internal use Trang 457


Tài liệu thiết kế hệ thống V1.0

o Sửa biên bản 06


o Hiển thị chi tiết biên bản 06
o Xóa biên bản 06

d.9.2. Chi tiết từng mục

d.9.2.1. Thiết kế dữ liệu

d.9.2.1.1. Mô hình quan hệ dữ liệu

Hình 78: Mô hình quan hệ dữ liệu biên bản 06


d.9.2.1.2. Danh sách các bảng và mô tả

TT Tên bảng Mô tả
1 BIEN_BAN_QUYET_DINH Bảng lưu trữ biên bản quyết định
2 VU_VIEC Bảng lưu trữ vụ việc xảy ra
DANH_MUC_MAU_BIEN_BA Bảng lưu trữ thông tin các mẫu biên bản
3
N_QUYET_DINH quyết định

BCA-C08_XLVP_2023_DD Internal use Trang 458


Tài liệu thiết kế hệ thống V1.0

d.9.2.2. Thiết kế màn hình

d.9.2.2.1. Màn hình xem danh sách, tìm kiếm căn cứ

d.9.2.2.1.1. Giao diện

HÌnh 79: Màn hình danh sách căn cứ


d.9.2.2.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
Bắt
Tên thành phần /
buộc Định dạng Vai trò Ghi chú
Control
nhập?
Form tìm kiếm/lọc dữ liệu danh mục
ma NO Textbox Nhập mã căn cứ
ten NO Textbox Nhập tên căn cứ
Chọn loại trạng thái căn
trangThai NO Dropdownlist
cứ
Danh sách dữ liệu danh mục
ma - Text Hiển thị mã căn cứ
ten - Text Hiển thị tên căn cứ
Hiển thị trạng thái căn
trangThai - Text
cứ
ngaySua - Text Hiển thị ngày sửa căn cứ
nguoiSua - Text Hiển thị ngày sửa căn cứ

BCA-C08_XLVP_2023_DD Internal use Trang 459


Tài liệu thiết kế hệ thống V1.0

d.9.2.2.1.3. Xử lý sự kiện

Sự kiện Quy trình


Chọn menu Danh mục/Căn cứ → Xem thông tin danh sách
Page_Load
danh mục căn cứ.
Nhập thông tin trong Form tìm kiếm/lọc dữ liệu danh mục
→ Click Tìm kiếm.
BtnSearch_Click
Hệ thống tìm kiếm danh mục theo thông tin vừa nhập →
Màn hình hiển thị danh sách danh mục thỏa mãn bộ lọc.
Click nút Thiết lập lại.
BtnReset_Click Form tìm kiếm/lọc dữ liệu danh mục xóa các thông tin đã
nhập và hoàn tác về trạng thái mặc định ban đầu.

BtnCollapse/ Click nút Thu hẹp/Mở rộng.


BtnExtend_Click Thu hẹp/Mở rộng Form tìm kiếm/lọc dữ liệu danh mục.
Click nút Thêm mới.
BtnCreate_Click
Màn hình chuyển đến trang Thêm mới danh mục căn cứ.
Click nút Chỉnh sửa ở cuối mỗi bản ghi trong danh sách.
BtnEdit_Click Màn hình chuyển đến trang Chỉnh sửa danh mục căn cứ
tương ứng với bản ghi.
Click nút Xem chi tiết ở cuối mỗi bản ghi trong danh sách.
BtnView_Click Màn hình chuyển đến trang Xem chi tiết danh mục căn cứ
tương ứng với bản ghi.
Click nút Xóa ở cuối mỗi bản ghi trong danh sách → Chọn
Đồng ý.
BtnDelete_Click
Hệ thống xóa bản ghi tương ứng → Màn hình reload và cập
nhật lại danh sách danh mục.

BCA-C08_XLVP_2023_DD Internal use Trang 460


Tài liệu thiết kế hệ thống V1.0

d.9.2.2.2. Thêm mới/Chỉnh sửa biên bản 06

d.9.2.2.2.1. Giao diện

Hình 80: Màn hình Thêm mới/Chỉnh sửa BB06


d.9.2.2.2.2. Danh sách control/thành phần giao diện

Tên thành Bắt


STT Label phần / buộc Định dạng Vai trò
Control nhập
Thông tin chung
Nhập số biên bản,
maNhapTay/
1 Số biên bản Textbox không nhập hệ thống
ma
tự sinh mã

BCA-C08_XLVP_2023_DD Internal use Trang 461


Tài liệu thiết kế hệ thống V1.0

Ký hiệu biên Hiển thị ký hiệu của


2 kyHieu Text
bản biên bản
Chọn thời gian lập
biên bản
3 Ngày tạo thoiGianLap X Datepicker
Giá trị mặc định là
ngày tạo của QĐ02
Nhập địa điểm lập
4 Tại diaDsiemLap Textbox
biên bản
Căn cứ
Hiển thị thông tin số
QĐ, Ngày ra QĐ,
Quyết định xử
Đơn vị có thẩm quyền
5 phạt vi phạm canCu.bbqd Text
ra QĐ của Quyết định
hành chính
02 sinh ra Biên bản
06
Người có thẩm quyền lập biên bản
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/ Người có
6
thẩm quyền lập biên bản
Đối tượng vi phạm
- Hiển thị thông tin đối tượng vi phạm từ Vụ việc
9 - Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn
hình đối tượng vi phạm
Với sự chứng kiến của
10 STT index Text Số thứ tự bản ghi
Hiển thị loại đối
11 Đối tượng loaiDoiTuong Text
tượng chứng kiến
Hiển thị thông tin đối
12 Nội dung chi tiết noiDung Text
tượng chứng kiến
Popup đối tượng chứng kiến
13 Đối tượng loaiDoiTuong x Dropdownlist Chọn loại đối tượng
14 Họ và tên ten Textbox Nhập tên cho đối

BCA-C08_XLVP_2023_DD Internal use Trang 462


Tài liệu thiết kế hệ thống V1.0

tượng chứng kiến


Chọn nghề nghiệp
15 Nghề nghiệp ngheNghiep Dropdownlist
Áp dụng cho Cá nhân
Nhập địa chỉ
16 Địa chỉ diaChi Textbox
Áp dụng cho Cá nhân
Nhập chức vụ
17 Chức vụ chucVu Textbox Áp dụng cho Đại
diện chính quyền
Nhập cơ quan
18 Cơ quan coQuan Textbox Áp dụng cho Đại
diện chính quyền
Lý do không ký biên bản
Nhập lý do tại sao
19 Lý do lyDo Textbox
không ký biên bản
Biên bản lập xong hồi
Nhập thời gian biên
bản lập xong
20 Hồi thoiGian X Textbox Giá trị mặc định Thời
gian hiện tại của hệ
thống
21 Số tờ soTo X Textbox Nhập số tờ của BB
22 Số bản soBan X Textbox Nhập số bản của BB
d.9.2.2.2.3. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Chọn Biên bản 06 ở Pop-up Tạo BB/QĐ
→ Màn hình hiển thị Form thêm mới Biên
bản với dữ liệu lấy từ BB cha và giá trị
mặc định
Chọn BtnEdit ở Danh sách biên bản hoặc
màn Chi tiết Biên bản → Màn hình hiển thị

BCA-C08_XLVP_2023_DD Internal use Trang 463


Tài liệu thiết kế hệ thống V1.0

Form chỉnh sửa Biên bản với dữ liệu tương


ứng với Biên bản 06 đã chọn
Nhập thông tin trong Form biên bản 06
Hệ thống check ràng buộc của các trường
2 BtnSave_Click
dữ liệu nếu thỏa mãn → lưu biên bản theo
thông tin vừa nhập
Click nút Đóng → Hiển thị popup xác
nhận “Thực hiện lưu thông tin vào hệ
thống không?”
- Chọn Đồng ý → Hệ thống check ràng
3 BtnClose_Click buộc của các trường dữ liệu nếu thỏa mãn
→ lưu BB theo thông tin vừa nhập → Màn
hình chuyển đến màn xem chi tiết BB.
- Chọn Không → Màn hình chuyển đến
xem chi tiết BB
d.9.2.2.2.4. Các ràng buộc

STT Tên Điều kiện


Thông tin chung
1 Số biên bản Độ dài tối đa 29 ký tự, không cho phép sửa
2 Ngày tạo Bắt buộc chọn
3 Tại Bắt buộc nhập, độ dài tối đa 500 ký tự
Người có thẩm quyền lập BB
4 Cơ quan Bắt buộc chọn
5 Họ và tên Bắt buộc chọn
Bắt buộc (báo lỗi nếu cán bộ không có cấp
6 Cấp bậc
bậc)
Bắt buộc (báo lỗi nếu cán bộ không có chức
7 Chức vụ
vụ)
Ý kiến trình bày
10 Ý kiến bổ sung Độ dài tối đa 255 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 464


Tài liệu thiết kế hệ thống V1.0

Lý do không ký biên bản


11 Lý do Độ dài tối đa 500 ký tự
Biên bản lập xong hồi
13 Hồi Bắt buộc nhập
14 Số tờ Bắt buộc nhập, độ dài tối đa 2 ký tự
15 Số bản Bắt buộc nhập, độ dài tối đa 2 ký tự

d.9.2.2.3. Xem chi tiết Biên bản 06

d.9.2.2.3.1. Giao diện

HÌnh 81: Màn hình xem chi tiết BB15

BCA-C08_XLVP_2023_DD Internal use Trang 465


Tài liệu thiết kế hệ thống V1.0

d.9.2.2.3.2. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn nút Xem chi tiết tại Danh sách Biên bản →
1 Page_Load
Màn hình hiển thị Biên bản 06 đã chọn
Chọn nút Tạo BB/QĐ ở cuối màn hình → Hiển thị
2 BtnTaoBB/QĐ
Pop – up chọn Mẫu biên bản và quyết định để tạo
Click nút Chỉnh sửa ở cuối màn hình → Đi đến
4 BtnEdit_Click
màn hình Chỉnh sửa biên bản
Click nút Xem lịch sử ở cuối màn hình → Đi đến
5 BtnLichSu_Click
màn hình xem Lịch sử biên bản
Click nút In ở cuối màn hình → Màn hình hiển thị
6 BtnPrint_Click
Pop-up xem trước bản in của Biên bản
Click nút Xóa ở cuối màn hình → Chọn Đồng ý.
7 BtnDelete_Click Hệ thống xóa bản ghi tương ứng → Màn hình quay
lại danh sách biên bản.

d.9.2.3. Thiết kế các hàm, thủ tục

d.9.2.3.1. Thêm mới biên bản vi phạm hành chính

d.9.2.3.1.1. API

Mô tả: Gọi API để tạo mới biên bản vi phạm hành chính
Method URL
POST xlvp/api/v1/bb-qd

d.9.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD
2 maBieuMau String X Mã biểu mẫu BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 466


Tài liệu thiết kế hệ thống V1.0

3 maCha String Mã BBQD cha


4 maBieuMauC
String Mã biểu mẫu cha
ha
5 thoiGianLap Date X Thời gian lập BBQD
6 diaDiemLap String Địa điểm lập BBQD
7 maNhapTay String Mã số nhập tay BBQD
8 Danh sách các tang vật của biên bản, tham
tangVat List khảo bảng dữ liệu đầu vào tang vật dưới
đây
9 Danh sách các hành vi vi phạm của
hanhViViPha
List X BBQD, tham khảo bảng dữ liệu đầu vào
m
Hành vi vi phạm dưới đây
10 Danh sách nội dung in hành vi vi phạm
noiDungChiTi
List của BBQD, tham khảo bảng dữ liệu đầu
et
vào nội dung chi tiết dưới đây
11 Nội dung chi tiết của biên bản vi phạm
noiDung Object X
hành chính

- Dữ liệu nội dung biên bản vi phạm hành chính:

STT Tham số Kiểu Bắt Mô tả


dữ liệu buộc
1 List X
canCu Căn cứ lập BB lấy từ danh mục căn cứ
String
2 nguoiCoTham Thông tin người có thẩm quyền lập BB
Json
Quyen Example: {“ma”: “admin”}
3 doiTuongChu
Json Thông tin đối tượng chứng kiến
ngKien
4 lyDoKhongK
String Lý do không ký biên bản
yBb
6 lapXong Json Thời gian lập xong biên bản

BCA-C08_XLVP_2023_DD Internal use Trang 467


Tài liệu thiết kế hệ thống V1.0

Ví dụ:
Method: POST

Các giá trị trả về là:


Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 468


Tài liệu thiết kế hệ thống V1.0

7 diaDiemLap String Địa điểm lập BBQD


8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây
Danh sách các hành vi vi phạm của BBQD,
10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của biên bản vi phạm hành
12 noiDung Object
chính
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD

Ví dụ:
Kết quả trả về:

BCA-C08_XLVP_2023_DD Internal use Trang 469


Tài liệu thiết kế hệ thống V1.0

    "ma": "G01.308.000.000-981-23-000007",

    "maCha": "G01.308.000.000-981-23-000191",

    "maBieuMauCha": "118-2022-nd-cp-qd02",

    "maNhapTay": null,

    "maVuViec": "G01.897.815.308-981-23-000019",

    "maBieuMau": "118-2022-nd-cp-bb06",

    "thoiGianLap": "2023-03-23T04:46:35.000+00:00",

    "nguoiTao": "anhtt",

    "ngayTao": "2023-03-29T09:00:43.000+00:00",

    "nguoiSua": null,

    "maDonViCsgt": "G01.308.000.000",

    "ngaySua": null,

    "nguon": null,

    "canBoTao": {

        "email": "{\"email\":null,\"placeCodeOto\":null,\"placeCodeMoto\":null}",

        "userName": "anhtt",

        "ten": "Trần Tuấn Anh",

        "capBac": "CB00106",

        "chucVu": "004",

        "donVi": "G01.308.000.000",

        "diaDanh": "Thượng Thanh - Hà Nội"

    },

    "canBoSua": null,

    "trangThai": "DA_LUU",
  "vuViec": {
        "ma": "G01.897.815.308-981-23-000019",
        "ten": "17G1-11111 Bùi Công Anh",
        "nguon": null,
        "doiTuongViPham": {
            "ten": "Bùi Công Anh",
            "diaChi": {
                "maDiaDanh": ""
            },
            "loaiNgaySinh": "DATE",
            "quocTich": "VN"
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "17G1-11111",
BCA-C08_XLVP_2023_DD Internal use Trang 470
Tài liệu thiết kế hệ thống V1.0

IV.9.2.3.1.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQD
BB06ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ tạo và quản lý tang vật của
6 TangVatService.java
BBQD nếu có
BBQDHinhThucXuPhatS Lớp làm nhiệm vụ tạo và quản lý các hình thức
7
ervice.java xử phạt cho BBQD nếu có
BBQDNoiDungChiTietSe Lớp làm nhiệm vụ tạo và quản lý các nội dung in
8
vice.java cho BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint tạo mới BBQD và điều
1 create
java hướng đến service tạo BBQD
BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 create
l.java lại dữ liệu và tạo mới BBQD
Gọi hàm
BBQDRepository
3 create PKG_BIEN_BAN_QUYET_DINH.CREATE
.java
_BB_QD để tạo BBQD trong database

BB06ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid rvice
tạo BBQD
.java

BCA-C08_XLVP_2023_DD Internal use Trang 471


Tài liệu thiết kế hệ thống V1.0

TangVatService.j
5 bulkCreate Tạo các tang vật thuộc BBQD
ava
BBQDHinhThuc
6 bulkCreate XuPhatService.ja Tạo các hình thức xử phạt cho BBQD
va
BBQDNoiDungC Tạo hoặc cập nhật các nội dung in cho
7 upsert
hiTietSevice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được
sử dụng để tạo mới BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
VARCHAR2(50
3 P_MA_VU_VIEC N Mã vụ việc tạo BBQD
CHAR)
VARCHAR2(50
4 P_MA_CHA N Mã BBQD cha nếu có
CHAR)
P_MA_BIEU_MA VARCHAR2(50
5 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
P_THOI_GIAN_LA
6 DATE N Thời gian lập BBQD
P
VARCHAR2(50
7 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
10 DATE N Thời gian hoàn thành xử lý
OAN_THANH

BCA-C08_XLVP_2023_DD Internal use Trang 472


Tài liệu thiết kế hệ thống V1.0

Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(2
11 P_TRANG_THAI N Trạng thái BBQD
CHAR)
P_MA_DON_VI_C VARCHAR2(25
12 N Mã đơn vị CSGT
SGT 5 CHAR)
P_DIA_CHI_DON_
13 NUMBER(12,0) N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID
VARCHAR2(40
14 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(15
15 P_NGUON N Nguồn tạo BBQD
CHAR)
VARCHAR2(40 Thông tin cán bộ tạo
16 P_CAN_BO_TAO N
00 CHAR) BBQD
VARCHAR2(25
17 P_NGUOI_TAO N Tài khoản tạo BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
18 V_CURSOR CURSOR X
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để lấy
thông tin bản ghi vừa được thêm và trả về.
d.9.2.3.1.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã vụ việc không tồn tại.
- Mã biểu mẫu không tồn tại.

BCA-C08_XLVP_2023_DD Internal use Trang 473


Tài liệu thiết kế hệ thống V1.0

- Mã người có thẩm quyền không tồn tại.


- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Lý do không ký biên bản vượt quá 500 ký tự.
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Người có thẩm quyền không có.
- Thời gian, số lượng tờ biên bản lập xong không có.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Bẫy lỗi IncorrectParameterException xảy ra khi:
- Căn cứ không hợp lệ
- Mã biểu mẫu cha không chính xác

Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.


d.9.2.3.2. Chỉnh sửa Biên bản vi phạm hành chính

d.9.2.3.2.1. API

Mô tả: Gọi API để chỉnh sửa căn cứ


Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.9.2.3.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên và trả về tương tự tạo mới biên bản vi phạm hành chính, ngoài ra còn
có:
STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã BBQD
d.9.2.3.2.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 474


Tài liệu thiết kế hệ thống V1.0

Lớp làm nhiệm vụ điều hướng các thao tác với


1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQD
BB06ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ quản lý tang vật của BBQD
6 TangVatService.java
nếu có
BBQDHinhThucXuPhatS Lớp làm nhiệm vụ quản lý các hình thức xử phạt
7
ervice.java cho BBQD nếu có
BBQDNoiDungChiTietSe Lớp làm nhiệm vụ quản lý các nội dung in cho
8
vice.java BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQD và
1 update
java điều hướng đến service cập nhật BBQD
BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 update
l.java lại dữ liệu và cập nhật BBQD
Gọi hàm
BBQDRepository
3 update PKG_BIEN_BAN_QUYET_DINH.UPDATE
.java
_BB_QD để sửa BBQD trong database

BB06ValidatorSe Kiểm tra tính hợp lệ dữ liệu gửi lên khi


4 isValid
rvice.java tạo BBQD
updateTang TangVatService.j Cập nhật thông tin các tang vật thuộc
5
Vat ava BBQD
BBQDHinhThuc
6 bulkUpdate XuPhatService.ja Cập nhật hình thức xử phạt cho BBQD
va

BCA-C08_XLVP_2023_DD Internal use Trang 475


Tài liệu thiết kế hệ thống V1.0

BBQDNoiDungC Tạo hoặc cập nhật các nội dung in cho


7 upsert
hiTietSevice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được
sử dụng để cập nhật BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Hàm UPDATE_ITEM được sử dụng để cập nhật thông tin của một Căn Cứ đã có trong
cơ sở dữ liệu.
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
P_THOI_GIAN_LA
3 DATE N Thời gian lập BBQD
P
VARCHAR2(50
4 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
7 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
8 P_TRANG_THAI N Trạng thái BBQD
CHAR)
VARCHAR2(40
9 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(40 Thông tin cán bộ sửa
10 P_CAN_BO_SUA N
00 CHAR) BBQD
VARCHAR2(25
11 P_NGUOI_SUA N Tài khoản sửa BBQD
5 CHAR)
12 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 476


Tài liệu thiết kế hệ thống V1.0

vừa tạo

Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQD được cập nhật.
d.9.2.3.2.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Lý do không ký biên bản vượt quá 500 ký tự.
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Người có thẩm quyền không có.
- Thời gian, số lượng tờ biên bản lập xong không có.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Bẫy lỗi IncorrectParameterException xảy ra khi:
- Căn cứ không hợp lệ
- Mã biểu mẫu cha không chính xác

d.9.2.3.3. Xem chi tiết biên bản vi phạm hành chính

d.9.2.3.3.1. API

Mô tả: Gọi API để lấy thông tin chi tiết căn cứ


Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.9.2.3.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu

BCA-C08_XLVP_2023_DD Internal use Trang 477


Tài liệu thiết kế hệ thống V1.0

2 maBbQd String Mã biên bản quyết định


Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Nội dung chi tiết của biên bản vi phạm hành
9 noiDung Object
chính
10 canBoTao Object Thông tin cán bộ tạo BBQD
11 trangThai String Trạng thái BBQD

Ví dụ:
Kết quả trả về:

BCA-C08_XLVP_2023_DD Internal use Trang 478


Tài liệu thiết kế hệ thống V1.0

    "ma": "G01.308.000.000-981-23-000007",

    "maCha": "G01.308.000.000-981-23-000191",

    "maBieuMauCha": "118-2022-nd-cp-qd02",

    "maNhapTay": null,

    "maVuViec": "G01.897.815.308-981-23-000019",

    "maBieuMau": "118-2022-nd-cp-bb06",

    "thoiGianLap": "2023-03-23T04:46:35.000+00:00",

    "nguoiTao": "anhtt",

    "ngayTao": "2023-03-29T09:00:43.000+00:00",

    "nguoiSua": null,

    "maDonViCsgt": "G01.308.000.000",

    "ngaySua": null,

    "nguon": null,

    "canBoTao": {

        "email": "{\"email\":null,\"placeCodeOto\":null,\"placeCodeMoto\":null}"

        "userName": "anhtt",

        "ten": "Trần Tuấn Anh",

        "capBac": "CB00106",

        "chucVu": "004",

        "donVi": "G01.308.000.000",

        "diaDanh": "Thượng Thanh - Hà Nội"

    },

    "canBoSua": null,

    "trangThai": "DA_LUU",
  "vuViec": {
        "ma": "G01.897.815.308-981-23-000019",
        "ten": "17G1-11111 Bùi Công Anh",
        "nguon": null,
        "doiTuongViPham": {
            "ten": "Bùi Công Anh",
            "diaChi": {
                "maDiaDanh": ""
            },
            "loaiNgaySinh": "DATE",
            "quocTich": "VN"
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "17G1-11111",
BCA-C08_XLVP_2023_DD Internal use Trang 479
Tài liệu thiết kế hệ thống V1.0

d.9.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ lấy
4 BBQDRepository.java
thông tin chi tiết BBQD
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQD và
1 get
java điều hướng đến service cập nhật BBQD
BBQDServiceImp Thực hiện các thao tác chuẩn hóa lại dữ
2 get
l.java liệu BBQD trước khi trả ra
BBQDRepository Gọi hàm GET_BB_QD_DETAILS để lấy
3 get
.java thông tin chi tiết BBQD trong database

Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH. GET_BB_QD_DETAILS là một thủ tục
được sử dụng để lấy thông tin chi tiết BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(5
1 P_MA N Mã BBQD
0 CHAR)
P_MA_BIEU_MA VARCHAR2(5
2 N Mã biểu mẫu BBQD
U 0 CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 480


Tài liệu thiết kế hệ thống V1.0

Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.
d.9.2.3.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.
- BBQD đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.

d.9.2.3.4. In biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần In của Biên bản 01


d.9.2.3.5. Xóa biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần Xóa của Biên bản 01

d.10. Biên bản 07 – Biên bản về việc không nhận quyết định cưỡng chế thi hành
quyết định xử phạt vi phạm hành chính
d.10.1. Mục đích

- Quản lý biên bản 07 – Biên bản về việc không nhận quyết định cưỡng chế thi hành
quyết định xử phạt vi phạm hành chính.
- Chức năng quản lý biên bản 07 – Biên bản về việc không nhận quyết định cưỡng chế
thi hành quyết định xử phạt vi phạm hành chính:
o Thêm mới biên bản 07
o Sửa biên bản 07
o Hiển thị chi tiết biên bản 07
o Xóa biên bản 07

d.10.2. Chi tiết từng mục

d.10.2.1. Thiết kế dữ liệu

d.10.2.1.1. Mô hình quan hệ dữ liệu

BCA-C08_XLVP_2023_DD Internal use Trang 481


Tài liệu thiết kế hệ thống V1.0

Hình 82: Mô hình quan hệ dữ liệu biên bản 07


d.10.2.1.2. Danh sách các bảng và mô tả

TT Tên bảng Mô tả
1 BIEN_BAN_QUYET_DINH Bảng lưu trữ biên bản quyết định
2 VU_VIEC Bảng lưu trữ vụ việc xảy ra
DANH_MUC_MAU_BIEN_BAN_ Bảng lưu trữ thông tin các mẫu biên bản
3
QUYET_DINH quyết định
d.10.2.2. Thiết kế màn hình

d.10.2.2.1. Thêm mới/Sửa - Biên bản 07

d.10.2.2.1.1. Giao diện

Tại màn chi tiết QĐ07/QĐ08/QĐ09/QĐ10/QĐ11/QĐ12, Click vào nút Button Tạo
BB/QĐ

BCA-C08_XLVP_2023_DD Internal use Trang 482


Tài liệu thiết kế hệ thống V1.0

Hình 83: Popup tạo mới BB/QĐ

BCA-C08_XLVP_2023_DD Internal use Trang 483


Tài liệu thiết kế hệ thống V1.0

Hình 84: Màn hình Thêm/Sửa Biên bản 07


d.10.2.2.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
- Giải thích các item
STT Label Tên thành Bắt Định Miêu tả
phần / buộc dạng

BCA-C08_XLVP_2023_DD Internal use Trang 484


Tài liệu thiết kế hệ thống V1.0

Control nhập
Thông tin chung
1 Số biên bản ma Textbox Mã tự sinh, hoặc nhập tay
Nhập địa điểm lập biên
2 Tại diaDiemLap X Textbox
bản
Nhập thời gian lập biên
3 Ngày tạo thoiGianLap TextBox
bản
Căn cứ
Bao gồm nội
Hiển thị thông tin số QĐ,
dung tương ứng
Ngày ra QĐ, Đơn vị có
với
thẩm quyền ra QĐ của
QĐ07/QĐ08/Q canCu.bbQ
4 Text QĐ07/QĐ08/QĐ09/QĐ1
Đ09/QĐ10/QĐ1 Đ
0/QĐ11/QĐ12A/QĐ12B/
1/QĐ12A/QĐ12
QĐ12C/QĐ15 sinh ra
B/QĐ12C/QĐ15
BB07
sinh ra BB07
Thông tin người lập biên bản
Xem tại mục Màn hình dùng chung/Chi tiết các màn hình/Người có thẩm quyền
lập BB
Đối tượng vi phạm
Xem chi tiết ở Màn hình sử dụng chung/Chi tiết các màn hình/Đối tượng vi phạm
Danh sách người chứng kiến
5 STT index Text Số thứ tự bản ghi
loaiDoiTuon Hiển thị loại đối tượng
6 Đối tượng Text
g chứng kiến
Hiển thị thông tin đối
7 Nội dung chi tiết noiDung Text
tượng chứng kiến
Popup đối tượng chứng kiến
loaiDoiTuon Dropdo
8 Đối tượng x Chọn loại đối tượng
g wnlist
9 Họ và tên ten Textbox Nhập tên cho đối tượng

BCA-C08_XLVP_2023_DD Internal use Trang 485


Tài liệu thiết kế hệ thống V1.0

chứng kiến

Dropdo Chọn nghề nghiệp


10 Nghề nghiệp ngheNghiep
wnlist Áp dụng cho Cá nhân
Nhập địa chỉ
11 Địa chỉ diaChi Textbox
Áp dụng cho Cá nhân
Nhập chức vụ
12 Chức vụ chucVu Textbox Áp dụng cho Đại diện
chính quyền
Nhập cơ quan
13 Cơ quan coQuan Textbox Áp dụng cho Đại diện
chính quyền
Biên bản lập xong hồi
Chọn hồi lập biên bản
Datepic
14 Hồi thoiGian X Có giá trị mặc định là
ker
ngày giờ hiện tại
Nhập số tờ
15 Số tờ soTo X Textbox
Giá trị mặc định là 2
Nhập số bản
16 Số bản soBan X Textbox
Giá trị mặc định là 2

d.10.2.2.1.3. Các ràng buộc

STT Tên Nội dung


1 Số biên bản Tối đa 29 ký tự
Bắt buộc nhập
2 Ngày lập biên bản
Giá trị mặc định là ngày, giờ hiện tại của hệ thống
Bắt buộc nhập
3 Tại
Tối đa 255 ký tự
4 Hồi Bắt buộc nhập

BCA-C08_XLVP_2023_DD Internal use Trang 486


Tài liệu thiết kế hệ thống V1.0

Giá trị mặc định là ngày giờ hiện tại của hệ thống
Bắt buộc nhập
5 Số tờ
Tối đa 2 ký tự
Bắt buộc nhập
6 Số bản
Tối đa 2 ký tự

d.10.2.2.1.4. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn Biên bản 07 ở Pop-up Tạo BB/QĐ → Màn
hình hiển thị Form thêm mới Biên bản với dữ liệu lấy
từ QĐ07/QĐ08/QĐ09/QĐ10/QĐ11/QĐ12 trong
luồng tạo BB07 và giá trị mặc định.
1 Page_Load
Chọn BtnEdit ở Danh sách biên bản hoặc màn Chi
tiết Biên bản → Màn hình hiển thị Form chỉnh sửa
Biên bản với dữ liệu tương ứng với Biên bản 07 đã
chọn
Nhập thông tin trong Form Biên bản 07

2 BtnSave_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu biên bản theo thông tin vừa nhập

Click nút Đóng


Màn hình hiển thị tooltip Thực hiện lưu thông tin vào
hệ thống không?
TH1: Click Đồng ý.
3 BtnClose_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → Lưu BB07 theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết BB07.
TH2: Click nút Đóng
Màn hình chuyển đến màn xem danh sách BB.

BCA-C08_XLVP_2023_DD Internal use Trang 487


Tài liệu thiết kế hệ thống V1.0

d.10.2.2.2. Xem chi tiết Biên bản 07

d.10.2.2.2.1. Giao diện

Hình 85: Xem chi tiết Biên bản 07

d.10.2.2.2.2. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn nút Xem chi tiết tại Danh sách Biên bản →
1 Page_Load
Màn hình hiển thị Biên bản 07 đã chọn

BCA-C08_XLVP_2023_DD Internal use Trang 488


Tài liệu thiết kế hệ thống V1.0

Click nút Đóng ở cuối màn hình → Màn hình quay


3 BtnClose_Click
lại danh sách biên bản.
Click nút Chỉnh sửa ở cuối màn hình → Đi đến màn
4 BtnEdit_Click
hình Chỉnh sửa biên bản
Click nút Xem lịch sử ở cuối màn hình → Đi đến
5 BtnLichSu_Click
màn hình xem Lịch sử biên bản
Click nút In ở cuối màn hình → Màn hình hiển thị
6 BtnPrint_Click
Pop-up xem trước bản in của Biên bản
Click nút Xóa ở cuối màn hình → Chọn Đồng ý.
7 BtnDelete_Click Hệ thống xóa bản ghi tương ứng → Màn hình quay
lại danh sách biên bản.

d.10.2.3. Thiết kế các hàm, thủ tục

d.10.2.3.1. Thêm mới biên bản vi phạm hành chính

d.10.2.3.1.1. API

Mô tả: Gọi API để tạo mới biên bản vi phạm hành chính
Method URL
POST xlvp/api/v1/bb-qd

d.10.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD
2 maBieuMau String X Mã biểu mẫu BBQD
3 maCha String Mã BBQD cha
maBieuMauC
4 String Mã biểu mẫu cha
ha
5 thoiGianLap Date X Thời gian lập BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 489


Tài liệu thiết kế hệ thống V1.0

6 diaDiemLap String Địa điểm lập BBQD


7 maNhapTay String Mã số nhập tay BBQD
Nội dung chi tiết của biên bản vi phạm
8 noiDung Object X
hành chính

- Dữ liệu nội dung biên bản vi phạm hành chính:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 canCu Json X Căn cứ lập BB lấy từ danh mục căn cứ

nguoiCoTham Thông tin người có thẩm quyền lập BB


2 Json
Quyen Example: {“ma”: “admin”}
doiTuongChu
3 Json Thông tin đối tượng chứng kiến
ngKien
4 lapXong Json Thời gian biên bản lập xong

Ví dụ:
Method: POST
{
    "maBieuMau": "118-2022-nd-cp-bb07",
    "maVuViec": "G01.897.815.308-981-23-000001",
    "maBieuMauCha": "118-2022-nd-cp-qd09",
    "maCha": "G01.897.815.308-981-23-000003",
    "diaDiemLap": "63 Lê Văn Lương",
    "thoiGianLap": "2023-02-22T09:30:55.000Z",
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-qd09",
                    "so": "G01.897.815.308-981-23-000003",
                    "ngay": "2023-02-22T09:30:55.000Z",
                    "maNhapTay": null

BCA-C08_XLVP_2023_DD Internal use Trang 490


Tài liệu thiết kế hệ thống V1.0

                }
            ],
            "ttndNhapTay": {
                "ngay": null
            }
        },
        "nguoiCoThamQuyen": {
            "donVi": "G01.897.815.308",
            "capBac": "Thiếu úy",
            "chucVu": "Phó trưởng phòng",
            "ma": "ducvn"
        },
        "doiTuongChungKien": [
            {
                "ten": "Doãn Chí Bình",
                "loaiDoiTuong": "CA_NHAN",
                "thongTin": {
                    "ngheNghiep": "00008",
                    "diaChi": "30 Hàng Than"
                }
            }
        ],
        "lapXong": {
            "thoiGian": "2023-03-30T03:12:02.157Z",
            "soTo": "2",
            "soBan": "2"
        }
    }
}

Các giá trị trả về là:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 491


Tài liệu thiết kế hệ thống V1.0

4 maCha String Mã BBQD cha


maBieuMauCh
5 String Mã biểu mẫu cha
a
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Nội dung chi tiết của biên bản vi phạm
9 noiDung Object
hành chính
10 canBoTao Object Thông tin cán bộ tạo BBQD
11 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000002",
    "maCha": "G01.897.815.308-981-23-000003",
    "maBieuMauCha": "118-2022-nd-cp-qd09",
    "maNhapTay": null,
    "maVuViec": "G01.897.815.308-981-23-000001",
    "maBieuMau": "118-2022-nd-cp-bb07",
    "thoiGianLap": "2023-02-22T09:30:55.000+00:00",
    "ngayTao": "2023-03-30T03:16:45.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "canBoTao": {
        "email": "{\"email\":null,\"placeCodeOto\":null,\"placeCodeMot
o\":null}",
        "userName": "anhtt",
        "ten": "Trần Tuấn Anh",
        "capBac": "CB00106",
        "chucVu": "004",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.897.815.308-981-23-000001",
        "ten": "29H1-11111 NGUYỄN HẢI HOÀNG",
        "nguon": null,
        "doiTuongViPham": {
            "soDinhDanh": "123456789123",
            "ten": "Nguyễn Vũ Minh Khoa Hói",

BCA-C08_XLVP_2023_DD Internal use Trang 492


Tài liệu thiết kế hệ thống V1.0

            "ngayCap": "2023-02-16T17:03:00.031Z",
            "noiCap": "CA Hà Nội",
            "diaChi": {
                "maDiaDanh": "00040",
                "chiTiet": "Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ 
Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Ch
i Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Ti"
            },
            "noiOHienTai": "Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ 
Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ , Phường Đồng Xuân, 
Quận Hoàn Kiếm, Thành phố Hà Nội",
            "ngaySinh": "2023-02-23T17:04:20.366Z",
            "loaiNgaySinh": "DATE",
            "gioiTinh": 1.0,
            "ngheNghiep": "00008",
            "soDienThoai": "0978213112",
            "email": "vungocduc597@gmail.com",
            "noiSinh": "Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi 
Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ , Phường Đồng Xuân, Quậ
n Hoàn Kiếm, Thành phố Hà Nội"
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "29H1-11111",
            "bienSo2": null,
            "maPhuongTien": "21",
            "soDangKy": null,
            "soDangKy2": null,
            "soKhung": null,
            "soMay": null,
            "mauBien": "0",
            "nhanHieu": null,
            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,
            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}

d.10.2.3.1.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 493


Tài liệu thiết kế hệ thống V1.0

1 Lớp làm nhiệm vụ điều hướng các thao tác với


BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
3 Lớp triển khai chi tiết các phương thức của
BBQDServiceImpl.java
BBQDService.java
4 Lớp giao tiếp với database làm nhiệm vụ cập
BBQDRepository.java
nhật liên quan đến BBQD
5 BB07ValidatorService
Lớp kiểm tra tính hợp lệ của BBQD
.java
6 Lớp làm nhiệm vụ tạo và quản lý tang vật của
TangVatService.java
BBQD nếu có
7 BBQDHinhThucXuPhatS Lớp làm nhiệm vụ tạo và quản lý các hình thức
ervice.java xử phạt cho BBQD nếu có
8 BBQDNoiDungChiTietSe Lớp làm nhiệm vụ tạo và quản lý các nội dung in
vice.java cho BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint tạo mới BBQD và điều
1 create
java hướng đến service tạo BBQD
BBQDServiceIm Thực hiện các thao tác validate, chuẩn hóa
2 create
pl.java lại dữ liệu và tạo mới BBQD
Gọi hàm
BBQDRepository
3 create PKG_BIEN_BAN_QUYET_DINH.CREATE_
.java
BB_QD để tạo BBQD trong database

BB07ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi tạo
4 isValid rvice
BBQD
.java
TangVatService.j
5 bulkCreate Tạo các tang vật thuộc BBQD
ava
6 bulkCreate BBQDHinhThuc Tạo các hình thức xử phạt cho BBQD
XuPhatService.ja

BCA-C08_XLVP_2023_DD Internal use Trang 494


Tài liệu thiết kế hệ thống V1.0

va
BBQDNoiDungC Tạo hoặc cập nhật các nội dung in cho
7 upsert
hiTietSevice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được sử
dụng để tạo mới BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
VARCHAR2(50
3 P_MA_VU_VIEC N Mã vụ việc tạo BBQD
CHAR)
VARCHAR2(50
4 P_MA_CHA N Mã BBQD cha nếu có
CHAR)
P_MA_BIEU_MA VARCHAR2(50
5 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
P_THOI_GIAN_LA
6 DATE N Thời gian lập BBQD
P
VARCHAR2(50
7 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
10 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
11 P_TRANG_THAI N Trạng thái BBQD
CHAR)
12 P_MA_DON_VI_C VARCHAR2(25 N Mã đơn vị CSGT

BCA-C08_XLVP_2023_DD Internal use Trang 495


Tài liệu thiết kế hệ thống V1.0

Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
SGT 5 CHAR)
P_DIA_CHI_DON_
13 NUMBER(12,0) N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID
VARCHAR2(40
14 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(15
15 P_NGUON N Nguồn tạo BBQD
CHAR)
VARCHAR2(40 Thông tin cán bộ tạo
16 P_CAN_BO_TAO N
00 CHAR) BBQD
VARCHAR2(25
17 P_NGUOI_TAO N Tài khoản tạo BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
18 V_CURSOR CURSOR X
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để lấy
thông tin bản ghi vừa được thêm và trả về.
d.10.2.3.1.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã vụ việc không tồn tại.
- Mã biểu mẫu không tồn tại.
- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:

BCA-C08_XLVP_2023_DD Internal use Trang 496


Tài liệu thiết kế hệ thống V1.0

- Người có thẩm quyền không có.


- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Thời gian, số lượng tờ biên bản lập xong không có.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Bẫy lỗi IncorrectParrameterException xảy ra khi:
- Căn cứ không chính xác
- Nội dung căn cứ không chính xác
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.10.2.3.2. Chỉnh sửa Biên bản vi phạm hành chính

d.10.2.3.2.1. API

Mô tả: Gọi API để chỉnh sửa căn cứ


Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBBQD}

d.10.2.3.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên và trả về tương tự tạo mới biên bản vi phạm hành chính, ngoài ra còn
có:
STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBBQD String Mã BBQD

d.10.2.3.2.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 497


Tài liệu thiết kế hệ thống V1.0

Lớp triển khai chi tiết các phương thức của


3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQD
BB07ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ quản lý tang vật của BBQD
6 TangVatService.java
nếu có
BBQDHinhThucXuPhatS Lớp làm nhiệm vụ quản lý các hình thức xử phạt
7
ervice.java cho BBQD nếu có
BBQDNoiDungChiTietSe Lớp làm nhiệm vụ quản lý các nội dung in cho
8
vice.java BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQD và
1 update
java điều hướng đến service cập nhật BBQD
BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 update
l.java lại dữ liệu và cập nhật BBQD
Gọi hàm
BBQDRepository
3 update PKG_BIEN_BAN_QUYET_DINH.UPDATE
.java
_BB_QD để sửa BBQD trong database

BB07ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid rvice
tạo BBQD
.java
updateTang TangVatService.j Cập nhật thông tin các tang vật thuộc
5
Vat ava BBQD
BBQDHinhThuc
6 bulkUpdate XuPhatService.ja Cập nhật hình thức xử phạt cho BBQD
va
BBQDNoiDungC Tạo hoặc cập nhật các nội dung in cho
7 upsert
hiTietSevice.java BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 498


Tài liệu thiết kế hệ thống V1.0

Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được sử
dụng để cập nhật BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
P_THOI_GIAN_LA
3 DATE N Thời gian lập BBQD
P
VARCHAR2(50
4 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
7 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
8 P_TRANG_THAI N Trạng thái BBQD
CHAR)
VARCHAR2(40
9 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(40 Thông tin cán bộ sửa
10 P_CAN_BO_SUA N
00 CHAR) BBQD
VARCHAR2(25
11 P_NGUOI_SUA N Tài khoản sửa BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
12 V_CURSOR CURSOR X
vừa tạo
Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQD được cập nhật.

BCA-C08_XLVP_2023_DD Internal use Trang 499


Tài liệu thiết kế hệ thống V1.0

d.10.2.3.2.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Người có thẩm quyền không có.
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Thời gian, số lượng tờ biên bản lập xong không có.
d.10.2.3.3. Xem chi tiết biên bản vi phạm hành chính

d.10.2.3.3.1. API

Mô tả: Gọi API để lấy thông tin chi tiết căn cứ


Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBBQD}

d.10.2.3.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBBQD String Mã biên bản quyết định
Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 500


Tài liệu thiết kế hệ thống V1.0

8 maNhapTay String Mã số nhập tay BBQD


Nội dung chi tiết của biên bản vi phạm hành
9 noiDung Object
chính
10 canBoTao Object Thông tin cán bộ tạo BBQD
11 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000002",
    "maCha": "G01.897.815.308-981-23-000003",
    "maBieuMauCha": "118-2022-nd-cp-qd09",
    "maNhapTay": null,
    "maVuViec": "G01.897.815.308-981-23-000001",
    "maBieuMau": "118-2022-nd-cp-bb07",
    "thoiGianLap": "2023-02-22T09:30:55.000+00:00",
    "ngayTao": "2023-03-30T03:16:45.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "canBoTao": {
        "email": "{\"email\":null,\"placeCodeOto\":null,\"placeCodeMot
o\":null}",
        "userName": "anhtt",
        "ten": "Trần Tuấn Anh",
        "capBac": "CB00106",
        "chucVu": "004",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.897.815.308-981-23-000001",
        "ten": "29H1-11111 NGUYỄN HẢI HOÀNG",
        "nguon": null,
        "doiTuongViPham": {
            "soDinhDanh": "123456789123",
            "ten": "Nguyễn Vũ Minh Khoa Hói",
            "ngayCap": "2023-02-16T17:03:00.031Z",
            "noiCap": "CA Hà Nội",
            "diaChi": {
                "maDiaDanh": "00040",
                "chiTiet": "Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ 
Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Ch
i Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Ti"
            },

BCA-C08_XLVP_2023_DD Internal use Trang 501


Tài liệu thiết kế hệ thống V1.0

            "noiOHienTai": "Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ 
Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ , Phường Đồng Xuân, 
Quận Hoàn Kiếm, Thành phố Hà Nội",
            "ngaySinh": "2023-02-23T17:04:20.366Z",
            "loaiNgaySinh": "DATE",
            "gioiTinh": 1.0,
            "ngheNghiep": "00008",
            "soDienThoai": "0978213112",
            "email": "vungocduc597@gmail.com",
            "noiSinh": "Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi 
Tiết Địa Chỉ Chi Tiết Địa Chỉ Chi Tiết Địa Chỉ , Phường Đồng Xuân, Quậ
n Hoàn Kiếm, Thành phố Hà Nội"
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "29H1-11111",
            "bienSo2": null,
            "maPhuongTien": "21",
            "soDangKy": null,
            "soDangKy2": null,
            "soKhung": null,
            "soMay": null,
            "mauBien": "0",
            "nhanHieu": null,
            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,
            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}
d.10.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
4 BBQDRepository.java Lớp giao tiếp với database làm nhiệm vụ lấy

BCA-C08_XLVP_2023_DD Internal use Trang 502


Tài liệu thiết kế hệ thống V1.0

thông tin chi tiết BBQD


- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQD và
1 get
java điều hướng đến service cập nhật BBQD
BBQDServiceImp Thực hiện các thao tác chuẩn hóa lại dữ
2 get
l.java liệu BBQD trước khi trả ra
BBQDRepository Gọi hàm GET_BB_QD_DETAILS để lấy
3 get
.java thông tin chi tiết BBQD trong database

Procedure:
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
VARCHAR2(50
2 P_MA_BIEU_MAU N Mã biểu mẫu BBQD
CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.
d.10.2.3.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.
- BBQD đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.

BCA-C08_XLVP_2023_DD Internal use Trang 503


Tài liệu thiết kế hệ thống V1.0

d.10.2.3.4. In biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần In của Biên bản 01


d.10.2.3.5. Xóa biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần Xóa của Biên bản 01

d.11. Biên bản 08 – Biên bản giữ giấy phép, chứng chỉ hành nghề
d.11.1. Mục đích

- Quản lý biên bản 08 – Biên bản giữ giấy phép, chứng chỉ hành nghề.
- Chức năng quản lý biên bản 08 – Biên bản giữ giấy phép, chứng chỉ hành nghề:
o Thêm mới biên bản 08
o Sửa biên bản 08
o Hiển thị chi tiết biên bản 08
o Xóa biên bản 08

BCA-C08_XLVP_2023_DD Internal use Trang 504


Tài liệu thiết kế hệ thống V1.0

d.11.2. Chi tiết từng mục

d.11.2.1. Thiết kế dữ liệu

d.11.2.1.1. Mô hình quan hệ dữ liệu

Hình 86: Mô hình quan hệ dữ liệu biên bản 08


d.11.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


BIEN_BAN_QUYET_DIN
1 Bảng lưu trữ biên bản quyết định
H
2 VU_VIEC Bảng lưu trữ vụ việc xảy ra
3 TANG_VAT Bảng lưu trữ thông tin các tang vật của biên bản
DANH_MUC_MAU_BIEN Bảng lưu trữ thông tin các mẫu biên bản quyết
4
_BAN_QUYET_DINH định

d.11.2.2. Thiết kế màn hình

d.11.2.2.1. Thêm mới/Sửa - Biên bản 08

d.11.2.2.1.1. Giao diện

Tại màn chi tiết QD02, Click vào nút Button Tạo BB/QĐ

BCA-C08_XLVP_2023_DD Internal use Trang 505


Tài liệu thiết kế hệ thống V1.0

Hình 87 Popup tạo mới BB/QĐ

BCA-C08_XLVP_2023_DD Internal use Trang 506


Tài liệu thiết kế hệ thống V1.0

BCA-C08_XLVP_2023_DD Internal use Trang 507


Tài liệu thiết kế hệ thống V1.0

Hình 88 Màn hình Thêm/Sửa Biên bản 08


d.11.2.2.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
- Giải thích các item
Tên thành Bắt
STT Label phần / buộc Định dạng Miêu tả
Control nhập
Thông tin chung
Mã tự sinh, hoặc nhập
tay.
17 Số biên bản ma Textbox
Không được sửa trong
màn hình sửa BB08
Nhập địa điểm lập
18 Tại diaDiemLap X Textbox
biên bản
Nhập thời gian lập
19 Ngày tạo thoiGianLap x TextBox
biên bản
Căn cứ
Hiển thị thông tin Số
20 Thi hành QĐ canCu.bbqd Text
và ngày tạo QĐ 02
Thông tin người lập biên bản
Xem tại mục Màn hình dùng chung/Chi tiết các màn hình/Người có thẩm quyền
lập BB
Đối tượng vi phạm
Xem chi tiết ở Màn hình sử dụng chung/Chi tiết các màn hình/Đối tượng vi phạm
Danh sách người chứng kiến

BCA-C08_XLVP_2023_DD Internal use Trang 508


Tài liệu thiết kế hệ thống V1.0

21 STT index Text Số thứ tự bản ghi


Hiển thị loại đối tượng
22 Đối tượng loaiDoiTuong Text
chứng kiến
Nội dung chi Hiển thị thông tin đối
23 noiDung Text
tiết tượng chứng kiến
Popup đối tượng chứng kiến
24 Đối tượng loaiDoiTuong x Dropdownlist Chọn loại đối tượng
Nhập tên cho đối
25 Họ và tên ten Textbox
tượng chứng kiến
Chọn nghề nghiệp
26 Nghề nghiệp ngheNghiep Dropdownlist
Áp dụng cho Cá nhân
Nhập địa chỉ
27 Địa chỉ diaChi Textbox
Áp dụng cho Cá nhân
Nhập chức vụ
28 Chức vụ chucVu Textbox Áp dụng cho Đại diện
chính quyền
Nhập cơ quan
29 Cơ quan coQuan Textbox Áp dụng cho Đại diện
chính quyền
Ý kiến của cá nhân/đại diện tổ chức bị xử phạt
30 Ý kiến yKien Textbox Nhập ý kiến
Lý do không ký biên bản
31 Lý do lyDo Textbox Nhập lý do
Danh sách giấy phép, chứng chỉ hành nghề bị giữ
Xem tại Màn hình sử dụng chung/Tang vật phương tiện giấy tờ.
Lấy các loại tang vật là Giấy phép, chứng chỉ hành nghề trong danh sách tang vật Hình
phạt bổ sung của QD02 trong luồng tạo BB08.
Biên bản lập xong hồi
32 Hồi thoiGian X Datepicker Chọn hồi lập biên bản

BCA-C08_XLVP_2023_DD Internal use Trang 509


Tài liệu thiết kế hệ thống V1.0

Có giá trị mặc định là


ngày giờ hiện tại
Nhập số tờ
33 Số tờ soTo X Textbox
Giá trị mặc định là 2
Nhập số bản
34 Số bản soBan X Textbox
Giá trị mặc định là 2

d.11.2.2.1.3. Các ràng buộc

STT Tên Nội dung


7 Số biên bản Tối đa 29 ký tự
Bắt buộc nhập
8 Ngày lập biên bản Giá trị mặc định là ngày, giờ hiện tại của hệ
thống
Bắt buộc nhập
9 Tại
Tối đa 255 ký tự
Danh sách Giấy phép, chứng chỉ Bắt buộc tích chọn ít nhất 1 tang vật trong
10
hành nghề bị giữ danh sách.
Ý kiến của cá nhân/đại diện tổ
11 Tối đa 255 ký tự
chức bị xử phạt
12 Lý do không ký biên bản Tối đa 500 ký tự
Bắt buộc nhập
13 Hồi Giá trị mặc định là ngày giờ hiện tại của hệ
thống
Bắt buộc nhập
14 Số tờ
Tối đa 2 ký tự
Bắt buộc nhập
15 Số bản
Tối đa 2 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 510


Tài liệu thiết kế hệ thống V1.0

d.11.2.2.1.4. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn Biên bản 08 ở Pop-up Tạo BB/QĐ → Màn
hình hiển thị Form thêm mới Biên bản với dữ liệu lấy
từ QD02 trong luồng tạo BB08 và giá trị mặc định.
1 Page_Load Chọn BtnEdit ở Danh sách biên bản hoặc màn Chi
tiết Biên bản → Màn hình hiển thị Form chỉnh sửa
Biên bản với dữ liệu tương ứng với Biên bản 08 đã
chọn
Nhập thông tin trong Form Biên bản 08

2 BtnSave_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu biên bản theo thông tin vừa nhập

Click nút Đóng


Màn hình hiển thị tooltip Thực hiện lưu thông tin vào
hệ thống không?
TH1: Click Đồng ý.
3 BtnClose_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → Lưu BB08 theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết BB08.
TH2: Click nút Đóng
Màn hình chuyển đến màn xem danh sách BB.

BCA-C08_XLVP_2023_DD Internal use Trang 511


Tài liệu thiết kế hệ thống V1.0

d.11.2.2.2. Xem chi tiết Biên bản 08

d.11.2.2.2.1. Giao diện

Hình 89: Xem chi tiết Biên bản 08

BCA-C08_XLVP_2023_DD Internal use Trang 512


Tài liệu thiết kế hệ thống V1.0

d.11.2.2.2.2. Xử lý sự kiện

STT Sự kiện Quy trình


1 Chọn nút Xem chi tiết tại Danh sách Biên bản →
Page_Load
Màn hình hiển thị Biên bản 08 đã chọn
Click nút Đóng ở cuối màn hình → Màn hình quay
2 BtnClose_Click
lại danh sách biên bản.
Click nút Chỉnh sửa ở cuối màn hình → Đi đến màn
3 BtnEdit_Click
hình Chỉnh sửa biên bản
Click nút Xem lịch sử ở cuối màn hình → Đi đến
4 BtnLichSu_Click
màn hình xem Lịch sử biên bản
Click nút In ở cuối màn hình → Màn hình hiển thị
5 BtnPrint_Click
Pop-up xem trước bản in của Biên bản
Click nút Xóa ở cuối màn hình → Chọn Đồng ý.
6 BtnDelete_Click Hệ thống xóa bản ghi tương ứng → Màn hình quay
lại danh sách biên bản.

d.11.2.3. Thiết kế các hàm, thủ tục

d.11.2.3.1. Thêm mới biên bản vi phạm hành chính

d.11.2.3.1.1. API

Mô tả: Gọi API để tạo mới biên bản vi phạm hành chính
Method URL
POST xlvp/api/v1/bb-qd

d.11.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD
2 maBieuMau String X Mã biểu mẫu BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 513


Tài liệu thiết kế hệ thống V1.0

3 maCha String Mã BBQD cha


maBieuMauC
4 String Mã biểu mẫu cha
ha
5 thoiGianLap Date X Thời gian lập BBQD
6 diaDiemLap String Địa điểm lập BBQD
7 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham
8 tangVat List khảo bảng dữ liệu đầu vào tang vật dưới
đây
Nội dung chi tiết của biên bản vi phạm
9 noiDung Object X
hành chính

- Dữ liệu nội dung biên bản vi phạm hành chính:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 canCu Json X Căn cứ lập BB lấy từ danh mục căn cứ

nguoiCoTham Thông tin người có thẩm quyền lập BB


2 Json X
Quyen Example: {“ma”: “admin”}
doiTuongChu
3 Json Thông tin đối tượng chứng kiến
ngKien
lyDoKhongK
4 String Lý do người vi phạm không ký biên bản
yBB
yKienBenViP
5 String Ý kiến của người vi phạm
ham
6 lapXong Json X Thời gian, số lượng tờ biên bản lập xong

- Dữ liệu tang vật:

Kiểu dữ Bắt
STT Tham số Mô tả
liệu buộc
1 ma String X Mã tang vật ( trong danh mục tang vật,

BCA-C08_XLVP_2023_DD Internal use Trang 514


Tài liệu thiết kế hệ thống V1.0

phương tiện, giấy tờ)


Mã nhóm tang vật:
- PHUONG_TIEN: Phương tiện

nhomTang - GIAY_TO: Giấy tờ


2 String X
Vat
- GIAY_PHEP_LAI_XE: Giấy phép
lái xe
- KHAC: Tang vật khác

Thông tin chi tiết của tang vật tùy nhóm


3 thongTin Object
tang vật
Nhóm tang vật phương tiện
1 soLuong Number X Số lượng tang vật
2 donViTinh String X Đơn vị tính của tang vật
3 tinhTrang String Tình trạng của tang vật
4 chungLoai String Mã phương tiện
5 bienSo String Biển số thứ nhất của phương tiện
6 bienSo2 String Biển số thứ 2 của phương tiện
7 soDangKy String Số đăng ký thứ 1 của phương tiện
soDangKy
8 String Số đăng ký thứ 2 của phương tiện
2
9 soKhung String Số khung của phương tiện
10 soMay String Số máy của phương tiện
11 congSuat String Công suất thứ 1 của phương tiện
12 congSuat2 String Công suất thứ 2 của phương tiện
13 trongTai String Trọng tải thứ 1 của phương tiện
14 trongTai2 String Trọng tải thứ 2 của phương tiện
15 donGia String Đơn giá tạm tính của phương tiện
16 nhanHieu String Nhãn hiệu của phương tiện
17 mauSon String Màu sơn của phương tiện

BCA-C08_XLVP_2023_DD Internal use Trang 515


Tài liệu thiết kế hệ thống V1.0

18 soLoai String Số loại của phương tiện


Nhóm tang vật giấy phép lái xe
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 so String X Mã số của giấy phép lái xe
5 hang List X Danh sách các hạng in trên GPLX
6 giaTriDen Date Ngày hết hạn GPLX
7 noiCap String Mã số nơi cấp giấy tờ
Nhóm tang vật giấy tờ
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 so String X Mã số của giấy phép lái xe
5 giaTriDen Date Ngày hết hạn GPLX
6 noiCap String Mã số nơi cấp giấy tờ
Nhóm tang vật khác
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 ten String X Tên gọi của tang vật
5 donViTinh String X Đơn vị tính của tang vật
6 donGia String Đơn giá thành tiền tạm tính

Ví dụ:
Method: POST
Các giá trị trả về là:
STT Tham số Kiểu dữ liệu Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 516


Tài liệu thiết kế hệ thống V1.0

1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCh String Mã biểu mẫu cha
a
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
9 tangVat List Danh sách các tang vật của biên bản, tham
khảo bảng dữ liệu đầu vào tang vật dưới
đây
10 noiDung Object Nội dung chi tiết của biên bản vi phạm
hành chính
11 canBoTao Object Thông tin cán bộ tạo BBQD
12 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "maBieuMau": "118-2022-nd-cp-bb08",
    "maCha": "G01.897.815.308-981-23-000039",
    "maVuViec": "G01.897.815.308-981-23-000035",
    "maBieuMauCha": "118-2022-nd-cp-qd02",
    "thoiGianLap": "2023-03-27T08:28:28.000Z",
    "diaDiemLap": "63 Lê Văn Lương",
    "tangVat": [
        {
            "ma": "006",
            "thongTin": {
                "so": "1223455",
                "giaTriDen": "2023-03-30T03:56:56.000+00:00",

BCA-C08_XLVP_2023_DD Internal use Trang 517


Tài liệu thiết kế hệ thống V1.0

                "noiCap": null,
                "soLuong": 1
            },
            "nhomTangVat": "GIAY_TO"
        }
    ],
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-qd02",
                    "so": "G01.897.815.308-981-23-000039",
                    "ngay": "2023-03-27T08:28:28.000Z"
                }
            ]
        },
        "nguoiCoThamQuyen": {
            "donVi": "G01.897.815.308",
            "capBac": "Thiếu úy",
            "chucVu": "Phó trưởng phòng",
            "ma": "ducvn"
        },
        "chungKien": [],
        "yKienBenViPham": "Không có ý kiến gì cả",
        "lapXong": {
            "thoiGian": "2023-03-30T03:57:26.532Z",
            "soBan": "2",
            "soTo": "2"
        },
        "lyDoKhongKyBB": "Không muốn ký thôi"
    }
}
IV.11.2.3.1.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 518


Tài liệu thiết kế hệ thống V1.0

Lớp làm nhiệm vụ điều hướng các thao


1 BBQDController.java
tác với biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức
3 BBQDServiceImpl.java
của BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ
4 BBQDRepository.java
cập nhật liên quan đến BBQD
BB01ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ tạo và quản lý tang vật
6 TangVatService.java
của BBQD nếu có
Lớp làm nhiệm vụ tạo và quản lý các
7 BBQDHinhThucXuPhatService.java
hình thức xử phạt cho BBQD nếu có
Lớp làm nhiệm vụ tạo và quản lý các nội
8 BBQDNoiDungChiTietSevice.java
dung in cho BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint tạo mới BBQD và điều
1 create
java hướng đến service tạo BBQD
BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 create
l.java lại dữ liệu và tạo mới BBQD
Gọi hàm
BBQDRepository
3 create PKG_BIEN_BAN_QUYET_DINH.CREATE
.java
_BB_QD để tạo BBQD trong database

BB01ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid rvice
tạo BBQD
.java
TangVatService.j
5 bulkCreate Tạo các tang vật thuộc BBQD
ava
BBQDHinhThuc
6 bulkCreate Tạo các hình thức xử phạt cho BBQD
XuPhatService.ja

BCA-C08_XLVP_2023_DD Internal use Trang 519


Tài liệu thiết kế hệ thống V1.0

va
BBQDNoiDungC Tạo hoặc cập nhật các nội dung in cho
7 upsert
hiTietSevice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được sử
dụng để tạo mới BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
VARCHAR2(50
3 P_MA_VU_VIEC N Mã vụ việc tạo BBQD
CHAR)
VARCHAR2(50
4 P_MA_CHA N Mã BBQD cha nếu có
CHAR)
P_MA_BIEU_MA VARCHAR2(50
5 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
P_THOI_GIAN_LA
6 DATE N Thời gian lập BBQD
P
VARCHAR2(50
7 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
10 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
11 P_TRANG_THAI N Trạng thái BBQD
CHAR)
12 P_MA_DON_VI_C VARCHAR2(25 N Mã đơn vị CSGT

BCA-C08_XLVP_2023_DD Internal use Trang 520


Tài liệu thiết kế hệ thống V1.0

SGT 5 CHAR)
P_DIA_CHI_DON_
13 NUMBER(12,0) N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID
VARCHAR2(40
14 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(15
15 P_NGUON N Nguồn tạo BBQD
CHAR)
VARCHAR2(40 Thông tin cán bộ tạo
16 P_CAN_BO_TAO N
00 CHAR) BBQD
VARCHAR2(25
17 P_NGUOI_TAO N Tài khoản tạo BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
18 V_CURSOR CURSOR X
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để lấy
thông tin bản ghi vừa được thêm và trả về.
d.11.2.3.1.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã vụ việc không tồn tại.
- Mã biểu mẫu không tồn tại.
- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Lý do không ký biên bản vượt quá 500 ký tự.
- Ý kiến của cá nhân vi phạm vượt quá 255 ký tự.
- Thời gian, địa điểm lập không có.

BCA-C08_XLVP_2023_DD Internal use Trang 521


Tài liệu thiết kế hệ thống V1.0

- Nội dung BBQD không có.


- Người có thẩm quyền không có.
- Thời gian, số lượng tờ biên lập xong không có.
- Căn cứ không có.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.11.2.3.2. Chỉnh sửa Biên bản vi phạm hành chính

d.11.2.3.2.1. API

Mô tả: Gọi API để chỉnh sửa căn cứ


Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBBQD}

d.11.2.3.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên và trả về tương tự tạo mới biên bản vi phạm hành chính, ngoài ra còn
có:
STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBBQD String Mã BBQD

d.11.2.3.2.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
1 BBQDController.java Lớp làm nhiệm vụ điều hướng các thao
tác với biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
3 BBQDServiceImpl.java Lớp triển khai chi tiết các phương thức
của BBQDService.java
4 BBQDRepository.java Lớp giao tiếp với database làm nhiệm vụ

BCA-C08_XLVP_2023_DD Internal use Trang 522


Tài liệu thiết kế hệ thống V1.0

cập nhật liên quan đến BBQD


5 BB07ValidatorService Lớp kiểm tra tính hợp lệ của BBQD
.java
6 TangVatService.java Lớp làm nhiệm vụ quản lý tang vật của
BBQD nếu có
7 BBQDHinhThucXuPhatService.java Lớp làm nhiệm vụ quản lý các hình thức
xử phạt cho BBQD nếu có
8 BBQDNoiDungChiTietSevice.java Lớp làm nhiệm vụ quản lý các nội dung
in cho BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
Cung cấp endpoint cập nhật BBQD và
1 update BBQDController.java điều hướng đến service cập nhật
BBQD
BBQDServiceImpl.jav Thực hiện các thao tác validate, chuẩn
2 update
a hóa lại dữ liệu và cập nhật BBQD
Gọi hàm
PKG_BIEN_BAN_QUYET_DINH.UPD
3 update BBQDRepository.java
ATE_BB_QD để sửa BBQD trong
database
BB01ValidatorService Kiểm tra tính hợp lệ dữ liệu gửi lên
4 isValid
.java khi tạo BBQD

updateTang Cập nhật thông tin các tang vật thuộc


5 TangVatService.java
Vat BBQD
BBQDHinhThucXuPh Cập nhật hình thức xử phạt cho
6 bulkUpdate
atService.java BBQD
BBQDNoiDungChiTie Tạo hoặc cập nhật các nội dung in cho
7 upsert
tSevice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được sử
dụng để cập nhật BBQD trong database.

BCA-C08_XLVP_2023_DD Internal use Trang 523


Tài liệu thiết kế hệ thống V1.0

Các giá trị nhập vào và trả ra gồm:


Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
P_THOI_GIAN_LA
3 DATE N Thời gian lập BBQD
P
VARCHAR2(50
4 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
7 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
8 P_TRANG_THAI N Trạng thái BBQD
CHAR)
VARCHAR2(40
9 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(40 Thông tin cán bộ sửa
10 P_CAN_BO_SUA N
00 CHAR) BBQD
VARCHAR2(25
11 P_NGUOI_SUA N Tài khoản sửa BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
12 V_CURSOR CURSOR X
vừa tạo

Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQD được cập nhật.
d.11.2.3.2.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:

BCA-C08_XLVP_2023_DD Internal use Trang 524


Tài liệu thiết kế hệ thống V1.0

- Mã người có thẩm quyền không tồn tại.


- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Lý do không ký biên bản vượt quá 500 ký tự.
- Ý kiến của cá nhân vi phạm vượt quá 255 ký tự.
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Người có thẩm quyền không có.
- Thời gian, số lượng tờ biên lập xong không có.
- Căn cứ không có.
d.11.2.3.3. Xem chi tiết biên bản vi phạm hành chính

d.11.2.3.3.1. API

Mô tả: Gọi API để lấy thông tin chi tiết căn cứ


Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBBQD}

d.11.2.3.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBBQD String Mã biên bản quyết định
Các giá trị trả về là:

BCA-C08_XLVP_2023_DD Internal use Trang 525


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Mô tả


1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
9 tangVat List Danh sách các tang vật của biên bản, tham
khảo bảng dữ liệu đầu vào tang vật dưới
đây
10 noiDung Object Nội dung chi tiết của biên bản vi phạm
hành chính
11 canBoTao Object Thông tin cán bộ tạo BBQD
12 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000004",
    "maCha": "G01.897.815.308-981-23-000039",
    "maBieuMauCha": "118-2022-nd-cp-qd02",
    "maNhapTay": null,
    "maVuViec": "G01.897.815.308-981-23-000035",
    "maBieuMau": "118-2022-nd-cp-bb08",
    "thoiGianLap": "2023-03-27T08:28:28.000+00:00",
    "ngayTao": "2023-03-30T03:59:45.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "diaDiemLap": "63 Lê Văn Lương",
    "tuNgay": null,
    "denNgay": null,
    "thoiGianHoanThanh": null,
    "noiDung": {
        "canCu": {
            "bbqd": [
                {

BCA-C08_XLVP_2023_DD Internal use Trang 526


Tài liệu thiết kế hệ thống V1.0

                    "maBieuMau": "118-2022-nd-cp-qd02",
                    "so": "G01.897.815.308-981-23-000039",
                    "maNhapTay": null,
                    "ngay": "2023-03-27T08:28:28.000+00:00",
                    "tenDonVi": null
                }
            ]
        },
        "nguoiCoThamQuyen": {
            "ma": "ducvn",
            "ten": "Vũ Ngọc Đức",
            "maCapBac": "3.4",
            "capBac": "Thiếu úy",
            "chucVu": "Phó trưởng phòng",
            "maChucVu": "006",
            "donVi": "G01.897.815.308",
            "tenDonVi": "Đội Cảnh sát quản lý hành chính - giao thông 
trật tự, Công an huyện Côn Đảo"
        },
        "chungKien": [],
        "lyDoKhongKyBB": "Không muốn ký thôi",
        "lapXong": {
            "thoiGian": "2023-03-30T03:57:26.000+00:00",
            "soTo": 2,
            "soBan": 2
        },
        "yKienBenViPham": "Không có ý kiến gì cả"
    },
    "nguoiTao": "anhtt",
    "nguoiSua": null,
    "hanhViViPham": [],
    "tangVat": [
        {
            "ma": "006",
            "nhomTangVat": "GIAY_TO",
            "thongTin": {
                "soLuong": 1,
                "tinhTrang": null,
                "ghiChu": null,
                "so": "1223455",
                "giaTriDen": "2023-03-30T03:56:56.000+00:00",
                "noiCap": null
            }
        }
    ],
    "hinhThucXuPhat": [],
    "thongBao": null,
    "noiDungChiTiet": null,
    "canBoTao": {
        "email": "{\"email\":null,\"placeCodeOto\":null,\"placeCodeMot
o\":null}",
        "userName": "anhtt",
        "ten": "Trần Tuấn Anh",

BCA-C08_XLVP_2023_DD Internal use Trang 527


Tài liệu thiết kế hệ thống V1.0

        "capBac": "CB00106",
        "chucVu": "004",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.897.815.308-981-23-000035",
        "ten": "67H1-0000 Cao Đức Anh",
        "nguon": null,
        "doiTuongViPham": {
            "ten": "Cao Đức Anh",
            "diaChi": {
                "maDiaDanh": "00001"
            },
            "loaiNgaySinh": "DATE",
            "gioiTinh": 1.0,
            "quocTich": "VN",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "67H1-0000",
            "bienSo2": null,
            "maPhuongTien": "21",
            "soDangKy": null,
            "soDangKy2": null,
            "soKhung": null,
            "soMay": null,
            "mauBien": "0",
            "nhanHieu": null,
            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,
            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}

d.11.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 528


Tài liệu thiết kế hệ thống V1.0

1 BBQDController.java Lớp làm nhiệm vụ điều hướng các thao tác với
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
3 BBQDServiceImpl.java Lớp triển khai chi tiết các phương thức của
BBQDService.java
4 BBQDRepository.java Lớp giao tiếp với database làm nhiệm vụ lấy
thông tin chi tiết BBQD
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
Cung cấp endpoint cập nhật BBQD và
1 get BBQDController.java
điều hướng đến service cập nhật BBQD
BBQDServiceImpl.ja Thực hiện các thao tác chuẩn hóa lại dữ
2 get
va liệu BBQD trước khi trả ra
BBQDRepository.jav Gọi hàm GET_BB_QD_DETAILS để lấy
3 get
a thông tin chi tiết BBQD trong database

Procedure:
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
VARCHAR2(50
2 P_MA_BIEU_MAU N Mã biểu mẫu BBQD
CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.
d.11.2.3.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:

BCA-C08_XLVP_2023_DD Internal use Trang 529


Tài liệu thiết kế hệ thống V1.0

- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.


- BBQD đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.

d.11.2.3.4. In biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần In của Biên bản 01


d.11.2.3.5. Xóa biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần Xóa của Biên bản 01

d.12. Biên bản 09 – Biên bản xác minh thông tin về tiền, tài sản của cá nhân/tổ chức
bị cưỡng chế
d.12.1. Mục đích

- Quản lý Biên bản 09 – Biên bản xác minh thông tin về tiền, tài sản của cá nhân/tổ
chức bị cưỡng chế.
- Chức năng quản lý Biên bản 09 – Biên bản xác minh thông tin về tiền, tài sản của cá
nhân/tổ chức bị cưỡng chế:
o Thêm mới Biên bản 09
o Sửa Biên bản 09
o Hiển thị chi tiết Biên bản 09
o Xóa Biên bản 09

d.12.2. Chi tiết từng mục

d.12.2.1. Thiết kế dữ liệu

d.12.2.1.1. Mô hình quan hệ dữ liệu

BCA-C08_XLVP_2023_DD Internal use Trang 530


Tài liệu thiết kế hệ thống V1.0

Hình 90: Mô hình quan hệ dữ liệu biên bản 09


d.12.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 BIEN_BAN_QUYET_DINH Bảng lưu trữ biên bản quyết định
2 VU_VIEC Bảng lưu trữ vụ việc xảy ra
3 DANH_MUC_MAU_BIEN_ Bảng lưu trữ thông tin các mẫu biên bản quyết
BAN_QUYET_DINH định

BCA-C08_XLVP_2023_DD Internal use Trang 531


Tài liệu thiết kế hệ thống V1.0

d.12.2.2. Thiết kế màn hình

d.12.2.2.1. Thêm mới/Sửa Biên bản 09

d.12.2.2.1.1. Giao diện

Hình 91: Màn hình Thêm/Sửa Biên bản 09

BCA-C08_XLVP_2023_DD Internal use Trang 532


Tài liệu thiết kế hệ thống V1.0

Hình 92: Popup cá nhân/tổ chức cung cấp thông tin xác minh/Đối tượng là cá
nhân

Hình 93: Popup cá nhân/tổ chức cung cấp thông tin xác minh/Đối tượng là
Tổ chức

Hình 94: Popup Thông tin người xác minh/Thông tin về tiền lương của cá
nhân vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 533


Tài liệu thiết kế hệ thống V1.0

Hình 95: Popup Thông tin người xác minh/Thông tin về thu nhập của cá
nhân vi phạm

Hình 96: Popup Thông tin người xác minh/Thông tin về tài khoản của cá
nhân/tổ chức vi phạm

Hình 97: Popup Thông tin người xác minh/Thông tin về tài sản của cá
nhân/tổ chức vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 534


Tài liệu thiết kế hệ thống V1.0

Hình 98: Popup Thông tin người xác minh/Thông tin về tiền của cá nhân/tổ
chức vi phạm do bên thứ ba đang giữ

Hình 99: Popup Thông tin người xác minh/Thông tin về tài sản của cá
nhân/tổ chức vi phạm do bên thứ ba đang giữ
d.12.2.2.1.2. Danh sách control/thành phần giao diện

Tên thành Bắt


STT Label phần / buộc Định dạng Miêu tả
Control nhập
Thông tin chung

BCA-C08_XLVP_2023_DD Internal use Trang 535


Tài liệu thiết kế hệ thống V1.0

Nhập mã nhập tay


Nếu không có mã
ma Textbox nhập tay hiển thị mã
tự sinh
Không được sửa
1 Số biên bản
Hiển thị giá trị của cột
Ký hiệu mẫu BB/QĐ
kyHieu Text của BB09 trong Danh
mục mẫu Biên bản,
quyết định
thoiGianLa Datetimepick Chọn thời gian lập
3 Ngày tạo X
p er biên bản
Trạng thái của biên
4 Trạng thái trangThai Text
bản (màn chỉnh sửa)
diaDiemLa Nhập địa điểm lập
5 Tại X Textbox
p biên bản
Căn cứ
Hiển thị số, ký hiệu,
Quyết định xử ngày tạo QĐ 02 sinh
canCu.bbq
6 phạt vi phạm Text ra BB 09
d
hành chính (trường hợp BB09
sinh ra từ QĐ02)
Để hoàn trả kinh
phí thực hiện
biện pháp khắc Hiển thị nếu BB09
7 - Text
phục hậu quả sinh ra từ QĐ 15
cho cơ quan nhà
nước
Thông tin người lập biên bản
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình
người có thẩm quyền lập biên bản/quyết định
Đối tượng vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 536


Tài liệu thiết kế hệ thống V1.0

Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình đối
tượng vi phạm
Lý do tiến hành xác minh
Nếu QD02 → BB09
thì hiển thị nội dung:
“Không tự nguyện
canCu.bbq chấp hành Quyết định
Text
d số: <Số QD02>/QĐ-
XPHC ngày <ngày tạo
QD02> xử phạt vi
8 Lý do phạm hành chính”
Nếu QD15 → BB09
thì hiển thị nội dung
“Không tự nguyện
donViThuc
Text hoàn trả kinh phí cho
HienBpkp
<Tên đơn vị thực hiện
biện pháp khắc phục
hậu quả>”
Cá nhân/ tổ chức cung cấp thông tin xác minh
9 STT Index Text Hiển thị số thứ thự
loaiDoiTuo
10 Đối tượng Text Hiển thị loại đối tượng
ng
Hiển thị nội dung chi
11 Nội dung chi tiết noiDung Text tiết thông tin đối
tượng
Popup Cá nhân tổ chức cung cấp thông tin xác minh
loaiDoiTuo Chọn Cá nhân hoặc
12 Đối tượng Dropdownlist
ng Tổ chức
Nhập họ và tên
13 Họ và tên hoVaTen Textbox Hiển thị với đối tượng
Cá nhân hoặc Tổ chức
14 Nghề nghiệp ngheNghie Select Chọn nghề nghiệp
p trong danh mục nghề

BCA-C08_XLVP_2023_DD Internal use Trang 537


Tài liệu thiết kế hệ thống V1.0

nghiệp
Hiển thị với đối tượng
Cá nhân
Nhập địa chỉ
15 Địa chỉ diaChi Textbox Hiển thị với đối tượng
Cá nhân
Nhập chức vụ
16 Chức vụ chucVu Textbox Hiển thị với đối tượng
Tổ chức
Nhập cơ quan
17 Cơ quan coQuan Textbox Hiển thị với đối tượng
Tổ chức
Loại thông tin cần xác minh
Hiển thị số thứ tự loại
18 STT Index Text
thông tin cần xác minh
Loại thông tin Hiển thị loại thông tin
19 loai Text
cần xác minh cần xác minh
Hiển thị nội dung
20 Nội dung chi tiết - Text
thông tin cần xác minh
Popup Thông tin xác minh
Loại thông tin Chọn Loại thông tin
21 Loai X Dropdownlist
cần xác minh cần xác minh
Khi chọn Loại Thông tin về tiền lương của cá nhân vi phạm/Thông tin về thu
nhập của cá nhân vi phạm, popup Thông tin xác minh sẽ hiển thị các trường sau:
Cơ quan/tổ Nhập tên cơ quan/tổ
22 chức/người sử coQuan X Textbox chức/người sử dụng
dụng lao động lao động
23 Địa chỉ diaChi Textbox Nhập địa chỉ
Mức thu soTien.gia
24 Textbox Nhập mức thu nhập
nhập/tháng Tri

BCA-C08_XLVP_2023_DD Internal use Trang 538


Tài liệu thiết kế hệ thống V1.0

Nhập đơn vị
soTien.don
25 Đơn vị Textbox Giá trị mặc định là
Vi
“Đồng”
Khi chọn Loại Thông tin về tài khoản của cá nhân/tổ chức vi phạm, popup Thông
tin xác minh sẽ hiển thị các trường sau:
STK của tổ chức Nhập số tài khoản của
26 stk X Textbox
tín dụng tổ chức tín dụng
Tổ chức tín Nhập tên tổ chức tín
27 toChuc X Textbox
dụng dụng
Địa chỉ tổ chức Nhập địa chỉ tổ chức
28 diaChi Textbox
tín dụng tín dụng
Khi chọn Loại Thông tin về tài sản của cá nhân/tổ chức vi phạm, popup Thông
tin xác minh sẽ hiển thị các trường sau:
Tên gọi/Mô tả Nhập tên gọi, mô tả
29 ten X Textbox
tài sản của tài sản
30 Đơn vị tính donViTinh X Textbox Nhập đơn vị tính
Nhập số lượng của tài
31 Số lượng soLuong X Textbox
sản
Tình trạng đặc Nhập tình trạng, đặc
32 tinhTrang Textbox
điểm điểm của tài sản
33 Ghi chú ghiChu Textbox Nhập ghi chú
Khi chọn Loại Thông tin về tiền của cá nhân/tổ chức vi phạm do bên thứ ba đang
giữ, popup Thông tin xác minh sẽ hiển thị các trường sau:
34 Loại tiền loaiTien X Textbox Nhập tên loại tiền
soTien.gia Textbox
35 Số tiền X Nhập số tiền
Tri
soTien.don Textbox
36 Đơn vị X Nhập đơn vị
Vi
Textbox Hiển thị số tiền bằng
37 Số tiền bằng chữ -
chữ
38 Cá nhân tổ chức doiTuongG X Textbox Nhập tên cá nhân tổ

BCA-C08_XLVP_2023_DD Internal use Trang 539


Tài liệu thiết kế hệ thống V1.0

giữ tiền iu chức giữ tiền


39 Địa chỉ liên hệ diaChi X Textbox Nhập địa chỉ liên hệ
Khi chọn Loại Thông tin về tài sản của cá nhân/tổ chức vi phạm do bên thứ ba
đang giữ, popup Thông tin xác minh sẽ hiển thị các trường sau:
Tên gọi/Mô tả Nhập tên gọi, mô tả
40 ten X Textbox
tài sản của tài sản
41 Đơn vị tính donViTinh X Textbox Nhập đơn vị tính
Textbox Nhập số lượng của tài
42 Số lượng soLuong X
sản
Tình trạng đặc Textbox Nhập tình trạng, đặc
43 tinhTrang
điểm điểm của tài sản
44 Ghi chú ghiChu Textbox Nhập ghi chú
Cá nhân tổ chức doiTuongG Textbox Nhập tên cá nhân tổ
45 X
giữ tài sản iu chức giữ tiền
46 Địa chỉ liên hệ diaChi X Textbox Nhập địa chỉ liên hệ
Ý kiến trình bày của cá nhân/người đại diện tổ chức
Bên cung cấp yKienBen Nhập ý kiến bên cung
47 Textbox
TT xác minh XacMinh cấp thông tin xác minh
Nhập ý kiến bên vi
yKienBen phạm
48 Bên vi phạm Textbox
ViPham Giá trị mặc định “Tôi
đồng ý”
Lý do không ký biên bản/xác nhận
lyDoKhon Nhập lý do không ký
49 Lý do Textbox
gKy biên bản
Biên bản lập xong hồi
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình biên
bản lập xong hồi

BCA-C08_XLVP_2023_DD Internal use Trang 540


Tài liệu thiết kế hệ thống V1.0

d.12.2.2.1.3. Các ràng buộc

STT Tên Nội dung


Thông tin chung
1 Số biên bản Tối đa 29 ký tự
2 Lý do lập biên bản Tối đa 500 ký tự
Bắt buộc nhập
3 Tại
Tối đa 255 ký tự
Người có thẩm quyền lập biên bản
4 Cơ quan Bắt buộc chọn
5 Họ và tên Bắt buộc chọn
Bắt buộc (báo lỗi nếu cán bộ không có cấp
6 Cấp bậc
bậc)
Bắt buộc (báo lỗi nếu cán bộ không có chức
7 Chức vụ
vụ)
Popup Cá nhân/tổ chức cung cấp thông tin xác minh
8 Họ và tên Tối đa 150 ký tự
9 Địa chỉ Tối đa 255 ký tự
10 Chức vụ Tối đa 150 ký tự
11 Cơ quan Tối đa 150 ký tự
Popup Thông tin người xác minh loại thông tin về tiền lương/thu nhập của cá
nhân vi phạm
Cơ quan/tổ chức/người sử dụng
12 Tối đa 255 kí tự
lao động

Cơ quan/tổ chức/người sử dụng Tối đa 100 kí tự


13
lao động Bắt buộc nhập
14 Mức thu nhập Tối đa 11 ký tự
15 Đơn vị mức thu nhập Tối đa 20 ký tự
Popup Thông tin người xác minh loại thông tin về tài khoản của cá nhân/tổ chức
vi phạm

BCA-C08_XLVP_2023_DD Internal use Trang 541


Tài liệu thiết kế hệ thống V1.0

Chỉ nhập số, tối đa 20 ký tự


16 STK của tổ chức tín dụng
Bắt buộc nhập
17 Tổ chức tín dụng Tối đa 100 ký tự
18 Địa chỉ tổ chức tín dụng Tối đa 150 ký tự
Popup Thông tin người xác minh loại thông tin về tài sản của cá nhân/tổ chức vi
phạm
19 Tên gọi/Mô tả tài sản Bắt buộc nhập, tối đa 255 ký tự
20 Đơn vị tính Bắt buộc nhập, tối đa 20 ký tự
Bắt buộc nhập
21 Số lượng
Chỉ nhập số, tối đa 3 ký tự
22 Tình trạng đặc điểm Tối đa 255 ký tự
23 Ghi chú Tối đa 255 ký tự
Popup Thông tin người xác minh loại thông tin về tiền của cá nhân/tổ chức vi
phạm do bên thứ ba đang giữ
24 Loại tiền Bắt buộc nhập, tối đa 50 ký tự
Bắt buộc nhập, tối đa 20 ký tự
25 Số tiền
Chỉ nhập số
26 Đơn vị số tiền Tối đa 20 ký tự
27 Cá nhân tổ chức giữ tiền Bắt buộc nhập, tối đa 100 ký tự
28 Địa chỉ liên hệ Bắt buộc nhập, tối đa 150 ký tự
Popup Thông tin người xác minh loại thông tin về tài sản của cá nhân/tổ chức vi
phạm do bên thứ ba đang giữ
29 Tên gọi/Mô tả tài sản Bắt buộc nhập, tối đa 255 ký tự
30 Đơn vị tính Bắt buộc nhập, tối đa 20 ký tự
Bắt buộc nhập
31 Số lượng
Chỉ nhập số, tối đa 3 ký tự
32 Tình trạng đặc điểm Tối đa 255 ký tự
33 Ghi chú Tối đa 255 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 542


Tài liệu thiết kế hệ thống V1.0

34 Cá nhân tổ chức giữ tiền Bắt buộc nhập, tối đa 100 ký tự


35 Địa chỉ liên hệ Bắt buộc nhập, tối đa 150 ký tự
Ý kiến trình bày của cá nhân/người đại diện tổ chức
36 Bên cung cấp TT xác minh Tối đa 500 ký tự
37 Bên vi phạm Tối đa 500 ký tự
Lý do không ký biên bản
38 Lý do Tối đa 500 ký tự
Biên bản lập xong hồi
Bắt buộc nhập
39 Hồi
Giá trị phải lớn hơn hoặc bằng ngày tạo
Bắt buộc nhập
40 Số tờ
Tối đa 2 ký tự
Bắt buộc nhập
41 Số bản
Tối đa 2 ký tự
d.12.2.2.1.4. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn Biên bản 09 ở Pop-up Tạo BB/QĐ → Màn
hình hiển thị Form thêm mới Biên bản với dữ liệu lấy
từ quyết định cha và giá trị mặc định
1 Page_Load Chọn BtnEdit ở Danh sách biên bản hoặc màn Chi
tiết Biên bản → Màn hình hiển thị Form chỉnh sửa
Biên bản với dữ liệu tương ứng với Biên bản 09 đã
chọn
BtnCreate_Click
(Danh sách Cá nhân/ tổ Mở popup thêm mới Cá nhân/ tổ chức cung cấp
2
chức cung cấp thông thông tin xác minh
tin xác minh)
BtnEdit_Click
Mở popup chỉnh Cá nhân/ tổ chức cung cấp thông tin
3 (Danh sách Cá nhân/ tổ xác minh
chức cung cấp thông

BCA-C08_XLVP_2023_DD Internal use Trang 543


Tài liệu thiết kế hệ thống V1.0

STT Sự kiện Quy trình


tin xác minh)
BtnView_Click
(Danh sách Cá nhân/ tổ Mở popup xem Cá nhân/ tổ chức cung cấp thông tin
4
chức cung cấp thông xác minh
tin xác minh)
BtnDelete_Click
(Danh sách Cá nhân/ tổ Xóa Cá nhân/ tổ chức cung cấp thông tin xác minh
5
chức cung cấp thông trong danh sách
tin xác minh)
BtnCreate_Click
6 (Danh sách Loại thông Mở popup thêm mới thông tin cần xác minh
tin cần xác minh)
BtnEdit_Click
7 (Danh sách Loại thông Mở popup chỉnh sửa thông tin cần xác minh
tin cần xác minh)
BtnView_Click
8 (Danh sách Loại thông Mở popup xem thông tin cần xác minh
tin cần xác minh)
BtnDelete_Click
9 (Danh sách Loại thông Xóa thông tin xác minh trong danh sách
tin cần xác minh)
Nhập thông tin trong Form biên bản 09
10 BtnSave_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu biên bản theo thông tin vừa nhập

BCA-C08_XLVP_2023_DD Internal use Trang 544


Tài liệu thiết kế hệ thống V1.0

d.12.2.2.2. Xem chi tiết Biên bản 09

d.12.2.2.2.1. Giao diện

Hình 100: Màn hình chi tiết BB09


d.12.2.2.2.2. Xử lý sự kiện

BCA-C08_XLVP_2023_DD Internal use Trang 545


Tài liệu thiết kế hệ thống V1.0

STT Sự kiện Quy trình


1 Chọn nút Xem chi tiết tại Danh sách Biên bản →
Page_Load
Màn hình hiển thị Biên bản 09 đã chọn
2 Chọn nút Tạo BB/QĐ ở cuối màn hình → Hiển thị
BtnTạoBB/QĐ
Pop – up chọn Mẫu biên bản và quyết định để tạo
3 Click nút Chỉnh sửa ở cuối màn hình → Đi đến màn
BtnEdit_Click
hình Chỉnh sửa biên bản
4 Click nút Xem lịch sử ở cuối màn hình → Đi đến
BtnLịchSử_Click
màn hình xem Lịch sử biên bản
5 Click nút In ở cuối màn hình → Màn hình hiển thị
BtnPrint_Click
Pop-up xem trước bản in của Biên bản
6 Click nút Xóa ở cuối màn hình → Chọn Đồng ý.
BtnDelete_Click Hệ thống xóa bản ghi tương ứng → Màn hình quay
lại danh sách biên bản.
7 Click nút Đóng ở cuối màn hình -> Đi đến màn danh
ButtonClose_Click
sách biên bản
d.12.2.3. Thiết kế các hàm, thủ tục

d.12.2.3.1. Thêm mới Biên bản xác minh thông tin về tiền, tài sản của cá nhân/tổ chức
bị cưỡng chế
d.12.2.3.1.1. API

Mô tả: Gọi API để tạo mới Biên bản xác minh thông tin về tiền, tài sản của cá nhân/tổ
chức bị cưỡng chế
Method URL
POST xlvp/api/v1/bb-qd

d.12.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 546


Tài liệu thiết kế hệ thống V1.0

2 maBieuMau String X Mã biểu mẫu BBQD


3 maCha String Mã BBQD cha
maBieuMauC
4 String Mã biểu mẫu cha
ha
5 thoiGianLap Date X Thời gian lập BBQD
6 diaDiemLap String Địa điểm lập BBQD
7 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham
8 tangVat List khảo bảng dữ liệu đầu vào tang vật dưới
đây
Danh sách các hành vi vi phạm của
hanhViViPha
9 List X BBQD, tham khảo bảng dữ liệu đầu vào
m
Hành vi vi phạm dưới đây
Danh sách nội dung in hành vi vi phạm
noiDungChiTi
10 List của BBQD, tham khảo bảng dữ liệu đầu
et
vào nội dung chi tiết dưới đây
Nội dung chi tiết của Biên bản xác minh
11 noiDung Object X thông tin về tiền, tài sản của cá nhân/tổ
chức bị cưỡng chế

- Dữ liệu nội dung Biên bản xác minh thông tin về tiền, tài sản của cá nhân/tổ chức bị
cưỡng chế:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 canCu Json Căn cứ của BB09

nguoiCoTham Thông tin người có thẩm quyền lập BB


2 Json X
Quyen Example: {“ma”: “admin”}
3 doiTuongXac Json X Thông tin đối tượng xác minh
Minh "doiTuongXacMinh": [
   {
    "loai": "CA_NHAN",
    "ten": "Nguyễn Minh Tuấn",
    "ngheNghiep": "00021",

BCA-C08_XLVP_2023_DD Internal use Trang 547


Tài liệu thiết kế hệ thống V1.0

    "diaChi": "Hà Nội",
    "chucVu": null,
    "coQuan": null
   }
  ]

Loại thông tin xác minh


"thongTinXacMinh": [
   {
    "loai": "TIEN_LUONG",
    "noiDung": {
     "coQuan": "ETC",
thongTinXac
4 Json X      "diaChi": "63 Lê Văn Lương",
Minh      "soTien": {
      "giaTri": 20000000,
      "donVi": "Đồng"
     }
    }
   }
  ]

yKienBenXac
5 String Ý kiến bên xác minh
Minh
yKienBenViP
6 String X Ý kiến bên vi phạm
ham
lyDoKhongK
7 String Lý do người vi phạm không ký biên bản
y
Số tờ, số bản và thời gian lập xong biên
bản
"lapXong": {
8 lapXong Json X    "thoiGian": "2023-03-
30T07:51:21.000+00:00",
   "soTo": 2,
   "soBan": 2
  }

donViThucHi Tên đơn vị thực hiện biện pháp khắc phục


9 String
enBpkp hậu quả

Ví dụ:
Method: POST
{
    "maBieuMau": "118-2022-nd-cp-bb09",
    "maVuViec": "G01.897.815.308-981-23-000018",
    "maBieuMauCha": "118-2022-nd-cp-qd02",
    "maCha": "G01.308.000.000-981-23-000190",

BCA-C08_XLVP_2023_DD Internal use Trang 548


Tài liệu thiết kế hệ thống V1.0

    "diaDiemLap": "Hà nội",
    "thoiGianLap": "2023-03-23T04:19:15.000Z",
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-qd02",
                    "so": "G01.308.000.000-981-23-000190",
                    "ngay": "2023-03-23T04:19:15.000+00:00",
                    "maNhapTay": "2000"
                }
            ]
        },
        "nguoiCoThamQuyen": {
            "donVi": "G01.308.000.000",
            "capBac": "Thượng úy",
            "chucVu": "Trưởng công an thị trấn",
            "ma": "Khoapd"
        },
        "doiTuongXacMinh": [
            {
                "ten": "Nguyễn Minh Tuấn",
                "loai": "CA_NHAN",
                "ngheNghiep": "00021",
                "diaChi": "Hà Nội"
            }
        ],
        "thongTinXacMinh": [
            {
                "loai": "TIEN_LUONG",
                "noiDung": {
                    "coQuan": "ETC",
                    "soTien": {
                        "donVi": "Đồng",
                        "giaTri": 20000000
                    },
                    "diaChi": "63 Lê Văn Lương"
                }
            }
        ],
        "lapXong": {
            "thoiGian": "2023-03-30T07:51:21.143Z",
            "soTo": "2",
            "soBan": "2"
        },
        "lyDoKhongKy": "Không chấp nhận các điều trong biên bản",
        "yKienBenViPham": "Tôi đồng ý",
        "yKienBenXacMinh": "Không ý kiến gì"
    }
}

Các giá trị trả về là:


STT Tham số Kiểu dữ liệu Mô tả

BCA-C08_XLVP_2023_DD Internal use Trang 549


Tài liệu thiết kế hệ thống V1.0

1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham
9 tangVat List khảo bảng dữ liệu đầu vào tang vật dưới
đây
Danh sách các hành vi vi phạm của
10 hanhViViPham List BBQD, tham khảo bảng dữ liệu đầu vào
Hành vi vi phạm dưới đây
Danh sách nội dung in hành vi vi phạm
11 noiDungChiTiet List của BBQD, tham khảo bảng dữ liệu đầu
vào nội dung chi tiết dưới đây
Nội dung chi tiết của Biên bản xác minh
12 noiDung Object thông tin về tiền, tài sản của cá nhân/tổ
chức bị cưỡng chế
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000049",
    "maCha": "G01.308.000.000-981-23-000190",
    "maBieuMauCha": "118-2022-nd-cp-qd02",
    "maNhapTay": null,
    "maVuViec": "G01.897.815.308-981-23-000018",
    "maBieuMau": "118-2022-nd-cp-bb09",
    "thoiGianLap": "2023-03-23T04:19:15.000+00:00",
    "ngayTao": "2023-03-30T07:51:42.000+00:00",

BCA-C08_XLVP_2023_DD Internal use Trang 550


Tài liệu thiết kế hệ thống V1.0

    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "diaDiemLap": "Hà nội",
    "tuNgay": null,
    "denNgay": null,
    "thoiGianHoanThanh": null,
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-qd02",
                    "so": "G01.308.000.000-981-23-000190",
                    "maNhapTay": "2000",
                    "ngay": "2023-03-23T04:19:15.000+00:00",
                    "tenDonVi": null
                }
            ]
        },
        "nguoiCoThamQuyen": {
            "ma": "Khoapd",
            "ten": "Phạm Đăng Khoa",
            "maCapBac": "3.2",
            "capBac": "Thượng úy",
            "chucVu": "Trưởng công an thị trấn",
            "maChucVu": "034",
            "donVi": "G01.308.000.000",
            "tenDonVi": "Cục Cảnh Sát Giao Thông"
        },
        "doiTuongXacMinh": [
            {
                "loai": "CA_NHAN",
                "ten": "Nguyễn Minh Tuấn",
                "ngheNghiep": "00021",
                "diaChi": "Hà Nội",
                "chucVu": null,
                "coQuan": null
            }
        ],
        "thongTinXacMinh": [
            {
                "loai": "TIEN_LUONG",
                "noiDung": {
                    "coQuan": "ETC",
                    "diaChi": "63 Lê Văn Lương",
                    "soTien": {
                        "giaTri": 20000000,
                        "donVi": "Đồng"
                    }
                }
            }
        ],
        "lyDoKhongKy": "Không chấp nhận các điều trong biên bản",

BCA-C08_XLVP_2023_DD Internal use Trang 551


Tài liệu thiết kế hệ thống V1.0

        "lapXong": {
            "thoiGian": "2023-03-30T07:51:21.000+00:00",
            "soTo": 2,
            "soBan": 2
        },
        "yKienBenXacMinh": "Không ý kiến gì",
        "yKienBenViPham": "Tôi đồng ý",
        "donViThucHienBpkp": null
    },
    "nguoiTao": "phucnx",
    "nguoiSua": null,
    "hanhViViPham": [],
    "tangVat": [],
    "hinhThucXuPhat": [],
    "thongBao": null,
    "noiDungChiTiet": null,
    "canBoTao": {
        "email": "{\"email\":\"nguyenxuan.phuc1@etc.vn\",\"placeCodeOto\":null,\"place
CodeMoto\":null}",
        "userName": "phucnx",
        "ten": "Nguyễn Xuân Phúc",
        "capBac": "3.7",
        "chucVu": "005",
        "donVi": "G01.308.000.000",
        "diaDanh": "Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.897.815.308-981-23-000018",
        "ten": "11J2-2222 Nguyễn Đức Cảnh",
        "nguon": null,
        "doiTuongViPham": {
            "ten": "Nguyễn Đức Cảnh",
            "diaChi": {
                "maDiaDanh": ""
            },
            "loaiNgaySinh": "DATE",
            "gioiTinh": 1,
            "quocTich": "VN",
            "ngheNghiep": "00019"
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "11J2-2222",
            "bienSo2": null,
            "maPhuongTien": "21",
            "soDangKy": null,
            "soDangKy2": null,
            "soKhung": null,
            "soMay": null,
            "mauBien": "0",
            "nhanHieu": null,

BCA-C08_XLVP_2023_DD Internal use Trang 552


Tài liệu thiết kế hệ thống V1.0

            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,
            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}

d.12.2.3.1.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQD
BB09ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ tạo và quản lý tang vật của
6 TangVatService.java
BBQD nếu có
BbQdHinhThucXuPhatSe Lớp làm nhiệm vụ tạo và quản lý các hình thức
7
rvice.java xử phạt cho BBQD nếu có
BbQdNoiDungChiTietSe Lớp làm nhiệm vụ tạo và quản lý các nội dung in
8
vice.java cho BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint tạo mới BBQD và điều
1 create
java hướng đến service tạo BBQD
2 create BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa

BCA-C08_XLVP_2023_DD Internal use Trang 553


Tài liệu thiết kế hệ thống V1.0

l.java lại dữ liệu và tạo mới BBQD


Gọi hàm
BBQDRepository
3 create PKG_BIEN_BAN_QUYET_DINH.CREATE
.java
_BB_QD để tạo BBQD trong database

BB09ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid rvice
tạo BBQD
.java
TangVatService.j
5 bulkCreate Tạo các tang vật thuộc BBQD
ava
BbQdHinhThucX
6 bulkCreate Tạo các hình thức xử phạt cho BBQD
uPhatService.java
BbQdNoiDungCh Tạo hoặc cập nhật các nội dung in cho
7 upsert
iTietSevice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được
sử dụng để tạo mới BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
VARCHAR2(50
3 P_MA_VU_VIEC N Mã vụ việc tạo BBQD
CHAR)
VARCHAR2(50
4 P_MA_CHA N Mã BBQD cha nếu có
CHAR)
P_MA_BIEU_MA VARCHAR2(50
5 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
P_THOI_GIAN_LA
6 DATE N Thời gian lập BBQD
P

BCA-C08_XLVP_2023_DD Internal use Trang 554


Tài liệu thiết kế hệ thống V1.0

VARCHAR2(50
7 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
10 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
11 P_TRANG_THAI N Trạng thái BBQD
CHAR)
P_MA_DON_VI_C VARCHAR2(25
12 N Mã đơn vị CSGT
SGT 5 CHAR)
P_DIA_CHI_DON_
13 NUMBER(12,0) N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID
VARCHAR2(40
14 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(15
15 P_NGUON N Nguồn tạo BBQD
CHAR)
VARCHAR2(40 Thông tin cán bộ tạo
16 P_CAN_BO_TAO N
00 CHAR) BBQD
VARCHAR2(25
17 P_NGUOI_TAO N Tài khoản tạo BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
18 V_CURSOR CURSOR X
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để
lấy thông tin bản ghi vừa được thêm và trả về.

BCA-C08_XLVP_2023_DD Internal use Trang 555


Tài liệu thiết kế hệ thống V1.0

d.12.2.3.1.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã vụ việc không tồn tại.
- Mã biểu mẫu không tồn tại.
- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Số bbqd liên quan trống hoặc nhiều hơn 1
- Người có thẩm quyền trống
- Đối tượng xác minh trống
- Thông tin xác minh trống
- Ý kiến bên xác minh vượt quá 500 ký tự
- Ý kiến bên vi phạm vượt quá 500 ký tự
- Lý do không ký vượt quá 500 ký tự
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Thời gian, số lượng tờ biên bản lập xong không có và số tờ số bản nằm ngoài
khoảng 0 - 99
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.12.2.3.2. Chỉnh sửa Biên bản xác minh thông tin về tiền, tài sản của cá nhân/tổ chức
bị cưỡng chế
d.12.2.3.2.1. API

Mô tả: Gọi API để chỉnh sửa căn cứ


Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.12.2.3.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên và trả về tương tự tạo mới Biên bản xác minh thông tin về tiền, tài
sản của cá nhân/tổ chức bị cưỡng chế, ngoài ra còn có:

BCA-C08_XLVP_2023_DD Internal use Trang 556


Tài liệu thiết kế hệ thống V1.0

STT Tham số Kiểu dữ liệu Mô tả


1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã BBQD

d.12.2.3.2.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác
1 BBQDController.java
với biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức
3 BBQDServiceImpl.java
của BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ
4 BBQDRepository.java
cập nhật liên quan đến BBQD
BB09ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ quản lý tang vật của
6 TangVatService.java
BBQD nếu có
Lớp làm nhiệm vụ quản lý các hình thức
7 BbQdHinhThucXuPhatService.java
xử phạt cho BBQD nếu có
Lớp làm nhiệm vụ quản lý các nội dung in
8 BbQdNoiDungChiTietSevice.java
cho BBQD nếu có
- Danh sách các phương thức:
ST Tên
Tên lớp Mô tả
T method
Cung cấp endpoint cập nhật BBQD và
1 update BBQDController.java điều hướng đến service cập nhật
BBQD
2 update BBQDServiceImpl.java Thực hiện các thao tác validate, chuẩn

BCA-C08_XLVP_2023_DD Internal use Trang 557


Tài liệu thiết kế hệ thống V1.0

hóa lại dữ liệu và cập nhật BBQD


Gọi hàm
PKG_BIEN_BAN_QUYET_DINH.UPD
3 update BBQDRepository.java
ATE_BB_QD để sửa BBQD trong
database
BB09ValidatorService Kiểm tra tính hợp lệ dữ liệu gửi lên
4 isValid
.java khi tạo BBQD

updateTan Cập nhật thông tin các tang vật thuộc


5 TangVatService.java
gVat BBQD
BbQdHinhThucXuPhatSer
6 bulkUpdate Cập nhật hình thức xử phạt cho BBQD
vice.java
BbQdNoiDungChiTietSev Tạo hoặc cập nhật các nội dung in cho
7 upsert
ice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được
sử dụng để cập nhật BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
Mã nhập tay
VARCHAR2(50
2 P_MA_NHAP_TAY N khi tạo
CHAR)
BBQD
Thời gian lập
3 P_THOI_GIAN_LAP DATE N
BBQD
VARCHAR2(500 Địa điểm lập
4 P_DIA_DIEM_LAP N
CHAR) BBQD
Thời gian xử
5 P_TU_NGAY DATE N
lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử

BCA-C08_XLVP_2023_DD Internal use Trang 558


Tài liệu thiết kế hệ thống V1.0

lý đến ngày
Thời gian
7 P_THOI_GIAN_HOAN_THANH DATE N hoàn thành xử

VARCHAR2(2 Trạng thái
8 P_TRANG_THAI N
CHAR) BBQD
Nội dung cụ
VARCHAR2(4000
9 P_NOI_DUNG N thể của
CHAR)
BBQD
VARCHAR2(4000 Thông tin cán
10 P_CAN_BO_SUA N
CHAR) bộ sửa BBQD
VARCHAR2(255 Tài khoản sửa
11 P_NGUOI_SUA N
CHAR) BBQD
Trả về dòng
dữ liệu
12 V_CURSOR CURSOR X
BBQD vừa
tạo

Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQD được cập nhật.
d.12.2.3.2.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Số bbqd liên quan trống hoặc nhiều hơn 1
- Người có thẩm quyền trống
- Đối tượng xác minh trống
- Thông tin xác minh trống
- Ý kiến bên xác minh vượt quá 500 ký tự
- Ý kiến bên vi phạm vượt quá 500 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 559


Tài liệu thiết kế hệ thống V1.0

- Lý do không ký vượt quá 500 ký tự


- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Thời gian, số lượng tờ biên bản lập xong không có và số tờ số bản nằm ngoài
khoảng 0 - 99
d.12.2.3.3. Xem chi tiết Biên bản xác minh thông tin về tiền, tài sản của cá nhân/tổ
chức bị cưỡng chế
d.12.2.3.3.1. API

Mô tả: Gọi API để lấy thông tin chi tiết BBQD


Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.12.2.3.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã biên bản quyết định
Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây
10 hanhViViPham List Danh sách các hành vi vi phạm của BBQD,

BCA-C08_XLVP_2023_DD Internal use Trang 560


Tài liệu thiết kế hệ thống V1.0

tham khảo bảng dữ liệu đầu vào Hành vi vi


phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của Biên bản xác minh thông
12 noiDung Object tin về tiền, tài sản của cá nhân/tổ chức bị cưỡng
chế
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000049",
    "maCha": "G01.308.000.000-981-23-000190",
    "maBieuMauCha": "118-2022-nd-cp-qd02",
    "maNhapTay": null,
    "maVuViec": "G01.897.815.308-981-23-000018",
    "maBieuMau": "118-2022-nd-cp-bb09",
    "thoiGianLap": "2023-03-23T04:19:15.000+00:00",
    "ngayTao": "2023-03-30T07:51:42.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "diaDiemLap": "Hà nội",
    "tuNgay": null,
    "denNgay": null,
    "thoiGianHoanThanh": null,
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-qd02",
                    "so": "G01.308.000.000-981-23-000190",
                    "maNhapTay": "2000",
                    "ngay": "2023-03-23T04:19:15.000+00:00",
                    "tenDonVi": null
                }
            ]
        },
        "nguoiCoThamQuyen": {
            "ma": "Khoapd",
            "ten": "Phạm Đăng Khoa",
            "maCapBac": "3.2",

BCA-C08_XLVP_2023_DD Internal use Trang 561


Tài liệu thiết kế hệ thống V1.0

            "capBac": "Thượng úy",
            "chucVu": "Trưởng công an thị trấn",
            "maChucVu": "034",
            "donVi": "G01.308.000.000",
            "tenDonVi": "Cục Cảnh Sát Giao Thông"
        },
        "doiTuongXacMinh": [
            {
                "loai": "CA_NHAN",
                "ten": "Nguyễn Minh Tuấn",
                "ngheNghiep": "00021",
                "diaChi": "Hà Nội",
                "chucVu": null,
                "coQuan": null
            }
        ],
        "thongTinXacMinh": [
            {
                "loai": "TIEN_LUONG",
                "noiDung": {
                    "coQuan": "ETC",
                    "diaChi": "63 Lê Văn Lương",
                    "soTien": {
                        "giaTri": 20000000,
                        "donVi": "Đồng"
                    }
                }
            }
        ],
        "lyDoKhongKy": "Không chấp nhận các điều trong biên bản",
        "lapXong": {
            "thoiGian": "2023-03-30T07:51:21.000+00:00",
            "soTo": 2,
            "soBan": 2
        },
        "yKienBenXacMinh": "Không ý kiến gì",
        "yKienBenViPham": "Tôi đồng ý",
        "donViThucHienBpkp": null
    },
    "nguoiTao": "phucnx",
    "nguoiSua": null,
    "hanhViViPham": [],
    "tangVat": [],
    "hinhThucXuPhat": [],
    "thongBao": null,
    "noiDungChiTiet": null,
    "canBoTao": {
        "email": "{\"email\":\"nguyenxuan.phuc1@etc.vn\",\"placeCodeOto\":null,\"place
CodeMoto\":null}",
        "userName": "phucnx",
        "ten": "Nguyễn Xuân Phúc",
        "capBac": "3.7",
        "chucVu": "005",

BCA-C08_XLVP_2023_DD Internal use Trang 562


Tài liệu thiết kế hệ thống V1.0

        "donVi": "G01.308.000.000",
        "diaDanh": "Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.897.815.308-981-23-000018",
        "ten": "11J2-2222 Nguyễn Đức Cảnh",
        "nguon": null,
        "doiTuongViPham": {
            "ten": "Nguyễn Đức Cảnh",
            "diaChi": {
                "maDiaDanh": ""
            },
            "loaiNgaySinh": "DATE",
            "gioiTinh": 1,
            "quocTich": "VN",
            "ngheNghiep": "00019"
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "11J2-2222",
            "bienSo2": null,
            "maPhuongTien": "21",
            "soDangKy": null,
            "soDangKy2": null,
            "soKhung": null,
            "soMay": null,
            "mauBien": "0",
            "nhanHieu": null,
            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,
            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}

d.12.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định

BCA-C08_XLVP_2023_DD Internal use Trang 563


Tài liệu thiết kế hệ thống V1.0

2 BBQDService.java Interface các xử lý cho BBQD


Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ lấy
4 BBQDRepository.java
thông tin chi tiết BBQD
- Danh sách các phương thức:
Tên
STT Tên lớp Mô tả
method
Cung cấp endpoint cập nhật BBQD và
1 get BBQDController.java
điều hướng đến service cập nhật BBQD

Thực hiện các thao tác chuẩn hóa lại dữ


2 get BBQDServiceImpl.java
liệu BBQD trước khi trả ra

Gọi hàm GET_BB_QD_DETAILS để lấy


3 get BBQDRepository.java
thông tin chi tiết BBQD trong database

Procedure:
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
VARCHAR2(50
2 P_MA_BIEU_MAU N Mã biểu mẫu BBQD
CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.
d.12.2.3.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:

BCA-C08_XLVP_2023_DD Internal use Trang 564


Tài liệu thiết kế hệ thống V1.0

- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.


- BBQD đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.

d.12.2.3.4. In biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần In của Biên bản 01


d.12.2.3.5. Xóa biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần Xóa của Biên bản 01

d.13. Biên bản 10 – Biên bản cưỡng chế thu tiền, tài sản để thi hành quyết định xử
phạt vi phạm hành chính/hoàn trả kinh phí
d.13.1. Mục đích

- Quản lý Biên bản 10 – Biên bản cưỡng chế thu tiền, tài sản để thi hành quyết định xử
phạt vi phạm hành chính/hoàn trả kinh phí.
- Chức năng quản lý Biên bản 10 – Biên bản cưỡng chế thu tiền, tài sản để thi hành
quyết định xử phạt vi phạm hành chính/hoàn trả kinh phí:
o Thêm mới Biên bản 10
o Sửa Biên bản 10
o Hiển thị chi tiết Biên bản 10
o Xóa Biên bản 10

d.13.2. Chi tiết từng mục

d.13.2.1. Thiết kế dữ liệu

d.13.2.1.1. Mô hình quan hệ dữ liệu

BCA-C08_XLVP_2023_DD Internal use Trang 565


Tài liệu thiết kế hệ thống V1.0

Hình 101: Mô hình quan hệ dữ liệu biên bản 10


d.13.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 BIEN_BAN_QUYET_DINH Bảng lưu trữ biên bản quyết định
2 VU_VIEC Bảng lưu trữ vụ việc xảy ra
DANH_MUC_MAU_BIEN_B Bảng lưu trữ thông tin các mẫu biên bản
3
AN_QUYET_DINH quyết định

d.13.2.2. Thiết kế màn hình

d.13.2.2.1. Thêm mới/Sửa - Biên bản 10

d.13.2.2.1.1. Giao diện

Tại màn chi tiết QD10, Click vào nút Button Tạo BB/QĐ

Hình 102 Popup tạo mới BB/QĐ

BCA-C08_XLVP_2023_DD Internal use Trang 566


Tài liệu thiết kế hệ thống V1.0

Hình 103 Màn hình Thêm/Sửa Biên bản 10


d.13.2.2.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
- Giải thích các item
STT Label Tên thành Bắt Định dạng Miêu tả
phần / buộ

BCA-C08_XLVP_2023_DD Internal use Trang 567


Tài liệu thiết kế hệ thống V1.0

c
Control nhậ
p
Thông tin chung
Mã tự sinh, hoặc nhập
tay.
1 Số biên bản ma Textbox
Không được sửa trong
màn hình sửa BB10
Nhập địa điểm lập
2 Tại diaDiemLap X Textbox
biên bản
Nhập thời gian lập
3 Ngày tạo thoiGianLap X TextBox
biên bản
Căn cứ
Quyết định
cưỡng chế thu
tiền, tài sản để
thi hành quyết Hiển thị thông tin Số
4 canCu.bbqd Text
định xử phạt vi và ngày tạo QĐ10
phạm hành
chính/hoàn trả
kinh phí
Thông tin người lập biên bản
Xem tại mục Màn hình dùng chung/Chi tiết các màn hình/Người có thẩm quyền
lập BB
Đối tượng vi phạm
Xem chi tiết ở Màn hình sử dụng chung/Chi tiết các màn hình/Đối tượng vi phạm
Cơ quan phối hợp
Nhập tên cơ quan phối
5 Họ và tên ten X Textbox
hợp
Nhập chức vụ của cơ
6 Chức vụ chucVu X Textbox
quan phối hợp

BCA-C08_XLVP_2023_DD Internal use Trang 568


Tài liệu thiết kế hệ thống V1.0

Hiển thị trường cơ


7 Cơ quan coQuan Text quan, tổ chức phối hợp
từ QĐ10
Với sự chứng kiến của - Danh sách người chứng kiến
8 STT index Text Số thứ tự bản ghi
loaiDoiTuon Hiển thị loại đối tượng
9 Đối tượng Text
g chứng kiến
Hiển thị thông tin đối
10 Nội dung chi tiết noiDung Text
tượng chứng kiến
Với sự chứng kiến của - Popup đối tượng chứng kiến
loaiDoiTuon
11 Đối tượng X Dropdownlist Chọn loại đối tượng
g
Nhập tên cho đối
12 Họ và tên ten Textbox
tượng chứng kiến
Chọn nghề nghiệp
13 Nghề nghiệp ngheNghiep Dropdownlist
Áp dụng cho Cá nhân
Nhập địa chỉ
14 Địa chỉ diaChi Textbox
Áp dụng cho Cá nhân
Nhập chức vụ
15 Chức vụ chucVu Textbox Áp dụng cho Đại diện
chính quyền
Nhập cơ quan
16 Cơ quan coQuan Textbox Áp dụng cho Đại diện
chính quyền
Thông tin tiền, tài sản – Danh sách thông tin tiền, tài sản
17 STT index Text Số thứ tự bản ghi
Loại thông tin Hiển thị loại thông tin
18 loai Text
cần xác minh tiền, tài sản
Hiển thị nội dung tiền,
19 Nội dung chi tiết noiDung Text
tài sản

BCA-C08_XLVP_2023_DD Internal use Trang 569


Tài liệu thiết kế hệ thống V1.0

Thông tin tiền, tài sản – Popup xem chi tiết thông tin tiền, tài sản
Áp dụng cho Loại
Loại thông tin
20 loai x Dropdownlist thông tin xác minh là
cần xác minh
tiền do bên thứ ba giữ
Áp dụng cho Loại
21 Loại tiền loaiTien x Textbox thông tin xác minh là
tiền do bên thứ ba giữ
Áp dụng cho Loại
22 Số tiền soTien x Textbox thông tin xác minh là
tiền do bên thứ ba giữ
Áp dụng cho Loại
soTienBang
23 Số tiền bằng chữ Text thông tin xác minh là
Chu
tiền do bên thứ ba giữ
Áp dụng cho Loại
Tên gọi/Mô tả thông tin xác minh là
24 ten x Textbox
tài sản tài sản do bên thứ ba
giữ
Áp dụng cho Loại
thông tin xác minh là
25 Đơn vị tính donViTinh x Textbox
tài sản do bên thứ ba
giữ
Áp dụng cho Loại
thông tin xác minh là
26 Số lượng soLuong x Textbox
tài sản do bên thứ ba
giữ
Áp dụng cho Loại
Tình trạng đặc thông tin xác minh là
27 tinhTrang Textbox
điểm tài sản do bên thứ ba
giữ
Áp dụng cho Loại
thông tin xác minh là
28 Ghi chú ghiChu Textbox
tài sản do bên thứ ba
giữ

BCA-C08_XLVP_2023_DD Internal use Trang 570


Tài liệu thiết kế hệ thống V1.0

Hiển thị thông tin cá


Cá nhân tổ chức doiTuongGi
29 x Textbox nhân tổ chức giữ tiền,
giữ tiền u
tài sản
30 Địa chỉ liên hệ diaChi x Textbox Hiển thị địa chỉ liên hệ
Lý do không ký biên bản
31 Lý do lyDo Textbox Nhập lý do
Biên bản lập xong hồi
Chọn hồi lập biên bản
32 Hồi thoiGian X Datepicker Có giá trị mặc định là
ngày giờ hiện tại
Nhập số tờ
33 Số tờ soTo X Textbox
Giá trị mặc định là 2
Nhập số bản
34 Số bản soBan X Textbox
Giá trị mặc định là 2
d.13.2.2.1.3. Các ràng buộc

STT Tên Nội dung


Thông tin chung
1 Số biên bản Tối đa 29 ký tự
Bắt buộc nhập
2 Ngày lập biên bản Giá trị mặc định là ngày, giờ hiện tại của hệ
thống
Bắt buộc nhập
3 Tại
Tối đa 255 ký tự
Cơ quan phối hợp
4 Họ và tên Bắt buộc nhập, tối đa 50 ký tự
5 Chức vụ Bắt buộc nhập, tối đa 50 ký tự
6 Cơ quan Bắt buộc nhập, tối đa 255 ký tự
Lý do không ký biên bản
7 Lý do không ký biên bản Tối đa 500 ký tự

BCA-C08_XLVP_2023_DD Internal use Trang 571


Tài liệu thiết kế hệ thống V1.0

Việc cưỡng chế kết thúc hồi


Bắt buộc nhập
8 Hồi Giá trị mặc định là ngày giờ hiện tại của hệ
thống
Bắt buộc nhập
9 Số tờ
Tối đa 2 ký tự
Bắt buộc nhập
10 Số bản
Tối đa 2 ký tự
d.13.2.2.1.4. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn Biên bản 10 ở Pop-up Tạo BB/QĐ → Màn
hình hiển thị Form thêm mới Biên bản với dữ liệu lấy
từ Vụ việc và giá trị mặc định
1 Page_Load Chọn BtnEdit ở Danh sách biên bản hoặc màn Chi
tiết Biên bản → Màn hình hiển thị Form chỉnh sửa
Biên bản với dữ liệu tương ứng với Biên bản 10 đã
chọn
Nhập thông tin trong Form Biên bản 10

2 BtnSave_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu biên bản theo thông tin vừa nhập

Click nút Đóng


Màn hình hiển thị tooltip Thực hiện lưu thông tin vào
hệ thống không?
TH1: Click Đồng ý.
3 BtnClose_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → Lưu BB10 theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết BB10.
TH2: Click nút Đóng
Màn hình chuyển đến màn xem danh sách BB.

BCA-C08_XLVP_2023_DD Internal use Trang 572


Tài liệu thiết kế hệ thống V1.0

d.13.2.2.2. Xem chi tiết Biên bản 10

d.13.2.2.2.1. Giao diện

Hình 104: Xem chi tiết Biên bản 10

BCA-C08_XLVP_2023_DD Internal use Trang 573


Tài liệu thiết kế hệ thống V1.0

d.13.2.2.2.2. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn nút Xem chi tiết tại Danh sách Biên bản →
1 Page_Load
Màn hình hiển thị Biên bản 10 đã chọn
Click nút Đóng ở cuối màn hình → Màn hình quay
3 BtnClose_Click
lại danh sách biên bản.
Click nút Chỉnh sửa ở cuối màn hình → Đi đến màn
4 BtnEdit_Click
hình Chỉnh sửa biên bản
Click nút Xem lịch sử ở cuối màn hình → Đi đến
5 BtnLichSu_Click
màn hình xem Lịch sử biên bản
Click nút In ở cuối màn hình → Màn hình hiển thị
6 BtnPrint_Click
Pop-up xem trước bản in của Biên bản
Click nút Xóa ở cuối màn hình → Chọn Đồng ý.
7 BtnDelete_Click Hệ thống xóa bản ghi tương ứng → Màn hình quay
lại danh sách biên bản.
d.13.2.3. Thiết kế các hàm, thủ tục

d.13.2.3.1. Thêm mới Biên bản cưỡng chế thu tiền, tài sản để thi hành quyết định xử
phạt vi phạm hành chính/hoàn trả kinh phí
d.13.2.3.1.1. API

Mô tả: Gọi API để tạo mới Biên bản cưỡng chế thu tiền, tài sản để thi hành quyết định xử
phạt vi phạm hành chính/hoàn trả kinh phí
Method URL
POST xlvp/api/v1/bb-qd

d.13.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD
2 maBieuMau String X Mã biểu mẫu BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 574


Tài liệu thiết kế hệ thống V1.0

3 maCha String Mã BBQD cha


maBieuMauC
4 String Mã biểu mẫu cha
ha
5 thoiGianLap Date X Thời gian lập BBQD
6 diaDiemLap String Địa điểm lập BBQD
7 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham
8 tangVat List khảo bảng dữ liệu đầu vào tang vật dưới
đây
Danh sách các hành vi vi phạm của
hanhViViPha
9 List X BBQD, tham khảo bảng dữ liệu đầu vào
m
Hành vi vi phạm dưới đây
Danh sách nội dung in hành vi vi phạm
noiDungChiTi
10 List của BBQD, tham khảo bảng dữ liệu đầu
et
vào nội dung chi tiết dưới đây
Nội dung chi tiết của Biên bản cưỡng chế
11 noiDung Object X thu tiền, tài sản để thi hành quyết định xử
phạt vi phạm hành chính/hoàn trả kinh phí

- Dữ liệu nội dung Biên bản cưỡng chế thu tiền, tài sản để thi hành quyết định xử phạt
vi phạm hành chính/hoàn trả kinh phí:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 canCu Json X Căn cứ của BB10

nguoiCoTham Thông tin người có thẩm quyền lập BB


2 Json X
Quyen Example: {“ma”: “admin”}
coQuanPhoiH
3 Json X Thông tin cơ quan xác minh
op
doiTuongChu
4 Json Thông tin đối tượng chứng kiến
ngKien
5 thongTinXac String X Loại thông tin xác minh

BCA-C08_XLVP_2023_DD Internal use Trang 575


Tài liệu thiết kế hệ thống V1.0

Minh
lyDoKhongK
6 String Lý do người vi phạm không ký biên bản
y
Số tờ, số bản và thời gian lập xong biên
7 lapXong Json X
bản

Ví dụ:
Method: POST
{

 "maBieuMau": "118-2022-nd-cp-bb10",

 "maVuViec": "G01.897.815.308-981-23-000018",

 "maCha": "G01.308.000.000-981-23-000005",

 "maBieuMauCha": "118-2022-nd-cp-qd10",

 "diaDiemLap": "Hà Nội",

 "thoiGianLap": "2023-03-23T04:19:15.000Z",

 "noiDung": {

  "canCu": {

   "bbqd": [

    {

     "maBieuMau": "118-2022-nd-cp-qd10",

     "so": "G01.308.000.000-981-23-000005",

     "ngay": "2023-03-23T04:19:15.000Z",

     "maNhapTay": null,

     "tenDonVi": "Cục Cảnh Sát Giao Thông"

    }

   ],

  },

  "coQuanPhoiHop": {

   "loaiDoiTuong": "DAI_DIEN_CQ",

   "ten": "Phạm Khoa",

   "thongTin": {

    "chucVu": "Nhân viên",

    "coQuan": "ETC"

   }

  },

BCA-C08_XLVP_2023_DD Internal use Trang 576


Tài liệu thiết kế hệ thống V1.0

  "doiTuongChungKien": [],

  "lapXong": {

   "thoiGian": "2023-03-30T08:28:16.715Z",

   "soTo": "2",

   "soBan": "2"

  },

  "nguoiCoThamQuyen": {

   "donVi": "G01.308.000.000",

   "capBac": "Thượng úy",

   "chucVu": "Trưởng công an thị trấn",

   "ma": "Khoapd"

  },

  "thongTinXacMinh": [

   {

    "loai": "TIEN_BEN_THU_3",

    "noiDung": {

     "loaiTien": "Tiền mặt",

     "soTien": {

      "giaTri": 1000000,

      "donVi": "Đồng"

     },

     "doiTuongGiu": "ETC",

     "diaChi": "63 Lê Văn Lương"

    }

   }

  ]

 }

Các giá trị trả về là:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCh String Mã biểu mẫu cha

BCA-C08_XLVP_2023_DD Internal use Trang 577


Tài liệu thiết kế hệ thống V1.0

a
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham
9 tangVat List khảo bảng dữ liệu đầu vào tang vật dưới
đây
Danh sách các hành vi vi phạm của
10 hanhViViPham List BBQD, tham khảo bảng dữ liệu đầu vào
Hành vi vi phạm dưới đây
Danh sách nội dung in hành vi vi phạm
noiDungChiTi
11 List của BBQD, tham khảo bảng dữ liệu đầu
et
vào nội dung chi tiết dưới đây
Nội dung chi tiết của Biên bản cưỡng chế
12 noiDung Object thu tiền, tài sản để thi hành quyết định xử
phạt vi phạm hành chính/hoàn trả kinh phí
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
 "ma": "G01.308.000.000-981-23-000004",
 "maCha": "G01.308.000.000-981-23-000005",
 "maBieuMauCha": "118-2022-nd-cp-qd10",
 "maNhapTay": null,
 "maVuViec": "G01.897.815.308-981-23-000018",
 "maBieuMau": "118-2022-nd-cp-bb10",
 "thoiGianLap": "2023-03-23T04:19:15.000+00:00",
 "ngayTao": "2023-03-30T08:27:52.000+00:00",
 "maDonViCsgt": "G01.308.000.000",
 "ngaySua": null,
 "nguon": null,
 "diaDiemLap": "Hà Nội",
 "tuNgay": null,
 "denNgay": null,
 "thoiGianHoanThanh": null,
 "noiDung": {
  "canCu": {
   "bbqd": [

BCA-C08_XLVP_2023_DD Internal use Trang 578


Tài liệu thiết kế hệ thống V1.0

    {
     "maBieuMau": "118-2022-nd-cp-qd10",
     "so": "G01.308.000.000-981-23-000005",
     "maNhapTay": null,
     "ngay": "2023-03-23T04:19:15.000+00:00",
     "tenDonVi": "Cục Cảnh Sát Giao Thông"
    }
   ]
  },
  "nguoiCoThamQuyen": {
   "ma": "Khoapd",
   "ten": "Phạm Đăng Khoa",
   "maCapBac": "3.2",
   "capBac": "Thượng úy",
   "chucVu": "Trưởng công an thị trấn",
   "maChucVu": "034",
   "donVi": "G01.308.000.000",
   "tenDonVi": "Cục Cảnh Sát Giao Thông"
  },
  "coQuanPhoiHop": {
   "loaiDoiTuong": "DAI_DIEN_CQ",
   "ten": "Phạm Khoa",
   "thongTin": {
    "chucVu": "Nhân viên",
    "coQuan": "ETC"
   }
  },
  "doiTuongChungKien": [],
  "thongTinXacMinh": [
   {
    "loai": "TIEN_BEN_THU_3",
    "noiDung": {
     "loaiTien": "Tiền mặt",
     "soTien": {
      "giaTri": 1000000,
      "donVi": "Đồng"
     },
     "doiTuongGiu": "ETC",
     "diaChi": "63 Lê Văn Lương"
    }
   }
  ],
  "lyDoKhongKy": null,
  "lapXong": {
   "thoiGian": "2023-03-30T08:28:16.000+00:00",
   "soTo": 2,
   "soBan": 2
  }
 },
 "nguoiTao": "phucnx",
 "nguoiSua": null,
 "hanhViViPham": [],
 "tangVat": [],

BCA-C08_XLVP_2023_DD Internal use Trang 579


Tài liệu thiết kế hệ thống V1.0

 "hinhThucXuPhat": [],
 "thongBao": null,
 "noiDungChiTiet": null,
 "canBoTao": {
  "email": "{\"email\":\"nguyenxuan.phuc1@etc.vn\",\"placeCodeOto\":null,\"placeCodeMo
to\":null}",
  "userName": "phucnx",
  "ten": "Nguyễn Xuân Phúc",
  "capBac": "3.7",
  "chucVu": "005",
  "donVi": "G01.308.000.000",
  "diaDanh": "Hà Nội"
 },
 "canBoSua": null,
 "trangThai": "DA_LUU",
 "vuViec": {
  "ma": "G01.897.815.308-981-23-000018",
  "ten": "11J2-2222 Nguyễn Đức Cảnh",
  "nguon": null,
  "doiTuongViPham": {
   "ten": "Nguyễn Đức Cảnh",
   "diaChi": {
    "maDiaDanh": ""
   },
   "loaiNgaySinh": "DATE",
   "gioiTinh": 1,
   "quocTich": "VN",
   "ngheNghiep": "00019"
  },
  "loaiDoiTuong": "CA_NHAN",
  "phuongTien": {
   "bienSo": "11J2-2222",
   "bienSo2": null,
   "maPhuongTien": "21",
   "soDangKy": null,
   "soDangKy2": null,
   "soKhung": null,
   "soMay": null,
   "mauBien": "0",
   "nhanHieu": null,
   "mauSon": null,
   "trongTai": null,
   "trongTai2": null,
   "congSuat": null,
   "congSuat2": null,
   "soLoai": null
  },
  "linhVuc": "DUONG_BO"
 },
 "hasChild": false
}

d.13.2.3.1.3. Mô tả chi tiết

BCA-C08_XLVP_2023_DD Internal use Trang 580


Tài liệu thiết kế hệ thống V1.0

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQD
BB10ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ tạo và quản lý tang vật của
6 TangVatService.java
BBQD nếu có
BbQdHinhThucXuPhatSe Lớp làm nhiệm vụ tạo và quản lý các hình thức
7
rvice.java xử phạt cho BBQD nếu có
BbQdNoiDungChiTietSe Lớp làm nhiệm vụ tạo và quản lý các nội dung in
8
vice.java cho BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint tạo mới BBQD và điều
1 create
java hướng đến service tạo BBQD
BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 create
l.java lại dữ liệu và tạo mới BBQD
Gọi hàm
BBQDRepository
3 create PKG_BIEN_BAN_QUYET_DINH.CREATE
.java
_BB_QD để tạo BBQD trong database

BB10ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid rvice
tạo BBQD
.java
5 bulkCreate TangVatService.j Tạo các tang vật thuộc BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 581


Tài liệu thiết kế hệ thống V1.0

ava
BbQdHinhThucX
6 bulkCreate Tạo các hình thức xử phạt cho BBQD
uPhatService.java
BbQdNoiDungCh Tạo hoặc cập nhật các nội dung in cho
7 upsert
iTietSevice.java BBQD
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được
sử dụng để tạo mới BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
VARCHAR2(50
3 P_MA_VU_VIEC N Mã vụ việc tạo BBQD
CHAR)
VARCHAR2(50
4 P_MA_CHA N Mã BBQD cha nếu có
CHAR)
P_MA_BIEU_MA VARCHAR2(50
5 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
P_THOI_GIAN_LA
6 DATE N Thời gian lập BBQD
P
VARCHAR2(50
7 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
10 DATE N Thời gian hoàn thành xử lý
OAN_THANH
11 P_TRANG_THAI VARCHAR2(2 N Trạng thái BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 582


Tài liệu thiết kế hệ thống V1.0

CHAR)
P_MA_DON_VI_C VARCHAR2(25
12 N Mã đơn vị CSGT
SGT 5 CHAR)
P_DIA_CHI_DON_
13 NUMBER(12,0) N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID
VARCHAR2(40
14 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(15
15 P_NGUON N Nguồn tạo BBQD
CHAR)
VARCHAR2(40 Thông tin cán bộ tạo
16 P_CAN_BO_TAO N
00 CHAR) BBQD
VARCHAR2(25
17 P_NGUOI_TAO N Tài khoản tạo BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
18 V_CURSOR CURSOR X
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để lấy
thông tin bản ghi vừa được thêm và trả về.
d.13.2.3.1.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã vụ việc không tồn tại.
- Mã biểu mẫu không tồn tại.
- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ trống:

BCA-C08_XLVP_2023_DD Internal use Trang 583


Tài liệu thiết kế hệ thống V1.0

o Số bbqd liên quan trống hoặc nhiều hơn 1


- Người có thẩm quyền trống
- Cơ quan phối hợp trống
- Thông tin xác minh trống
- Lý do không ký vượt quá 500 ký tự
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Thời gian, số lượng tờ biên bản lập xong không có và số tờ số bản nằm ngoài
khoảng 0 - 99
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.13.2.3.2. Chỉnh sửa Biên bản cưỡng chế thu tiền, tài sản để thi hành quyết định xử
phạt vi phạm hành chính/hoàn trả kinh phí
d.13.2.3.2.1. API

Mô tả: Gọi API để chỉnh sửa bbqd


Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.13.2.3.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên và trả về tương tự tạo mới Biên bản cưỡng chế thu tiền, tài sản để thi
hành quyết định xử phạt vi phạm hành chính/hoàn trả kinh phí, ngoài ra còn có:
STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã BBQD
d.13.2.3.2.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định

BCA-C08_XLVP_2023_DD Internal use Trang 584


Tài liệu thiết kế hệ thống V1.0

2 BBQDService.java Interface các xử lý cho BBQD


Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQD
BB10ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQD
.java
Lớp làm nhiệm vụ quản lý tang vật của BBQD
6 TangVatService.java
nếu có
BbQdHinhThucXuPhatSe Lớp làm nhiệm vụ quản lý các hình thức xử phạt
7
rvice.java cho BBQD nếu có
BbQdNoiDungChiTietSe Lớp làm nhiệm vụ quản lý các nội dung in cho
8
vice.java BBQD nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQD và
1 update
java điều hướng đến service cập nhật BBQD
BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 update
l.java lại dữ liệu và cập nhật BBQD
Gọi hàm
BBQDRepository
3 update PKG_BIEN_BAN_QUYET_DINH.UPDATE
.java
_BB_QD để sửa BBQD trong database

BB10ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid rvice
tạo BBQD
.java
updateTang TangVatService.j Cập nhật thông tin các tang vật thuộc
5
Vat ava BBQD
BbQdHinhThucX
6 bulkUpdate Cập nhật hình thức xử phạt cho BBQD
uPhatService.java
BbQdNoiDungCh Tạo hoặc cập nhật các nội dung in cho
7 upsert
iTietSevice.java BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 585


Tài liệu thiết kế hệ thống V1.0

Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được
sử dụng để cập nhật BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
P_THOI_GIAN_LA
3 DATE N Thời gian lập BBQD
P
VARCHAR2(50
4 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
7 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
8 P_TRANG_THAI N Trạng thái BBQD
CHAR)
VARCHAR2(40
9 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(40 Thông tin cán bộ sửa
10 P_CAN_BO_SUA N
00 CHAR) BBQD
VARCHAR2(25
11 P_NGUOI_SUA N Tài khoản sửa BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
12 V_CURSOR CURSOR X
vừa tạo
Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQD được cập nhật.

BCA-C08_XLVP_2023_DD Internal use Trang 586


Tài liệu thiết kế hệ thống V1.0

d.13.2.3.2.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ trống:
o Số bbqd liên quan trống hoặc nhiều hơn 1
- Người có thẩm quyền trống
- Cơ quan phối hợp trống
- Thông tin xác minh trống
- Lý do không ký vượt quá 500 ký tự
- Thời gian, địa điểm lập không có.
- Nội dung BBQD không có.
- Thời gian, số lượng tờ biên bản lập xong không có và số tờ số bản nằm ngoài
khoảng 0 - 99
d.13.2.3.3. Xem chi tiết Biên bản cưỡng chế thu tiền, tài sản để thi hành quyết định xử
phạt vi phạm hành chính/hoàn trả kinh phí
d.13.2.3.3.1. API

Mô tả: Gọi API để lấy thông tin chi tiết bbqd


Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.13.2.3.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã biên bản quyết định
Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 587


Tài liệu thiết kế hệ thống V1.0

3 maBieuMau String Mã biểu mẫu BBQD


4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây
Danh sách các hành vi vi phạm của BBQD,
10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của Biên bản cưỡng chế thu
12 noiDung Object tiền, tài sản để thi hành quyết định xử phạt vi
phạm hành chính/hoàn trả kinh phí
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
 "ma": "G01.308.000.000-981-23-000004",
 "maCha": "G01.308.000.000-981-23-000005",
 "maBieuMauCha": "118-2022-nd-cp-qd10",
 "maNhapTay": null,
 "maVuViec": "G01.897.815.308-981-23-000018",
 "maBieuMau": "118-2022-nd-cp-bb10",
 "thoiGianLap": "2023-03-23T04:19:15.000+00:00",
 "ngayTao": "2023-03-30T08:27:52.000+00:00",
 "maDonViCsgt": "G01.308.000.000",
 "ngaySua": null,
 "nguon": null,
 "diaDiemLap": "Hà Nội",
 "tuNgay": null,
 "denNgay": null,
 "thoiGianHoanThanh": null,

BCA-C08_XLVP_2023_DD Internal use Trang 588


Tài liệu thiết kế hệ thống V1.0

 "noiDung": {
  "canCu": {
   "bbqd": [
    {
     "maBieuMau": "118-2022-nd-cp-qd10",
     "so": "G01.308.000.000-981-23-000005",
     "maNhapTay": null,
     "ngay": "2023-03-23T04:19:15.000+00:00",
     "tenDonVi": "Cục Cảnh Sát Giao Thông"
    }
   ]
  },
  "nguoiCoThamQuyen": {
   "ma": "Khoapd",
   "ten": "Phạm Đăng Khoa",
   "maCapBac": "3.2",
   "capBac": "Thượng úy",
   "chucVu": "Trưởng công an thị trấn",
   "maChucVu": "034",
   "donVi": "G01.308.000.000",
   "tenDonVi": "Cục Cảnh Sát Giao Thông"
  },
  "coQuanPhoiHop": {
   "loaiDoiTuong": "DAI_DIEN_CQ",
   "ten": "Phạm Khoa",
   "thongTin": {
    "chucVu": "Nhân viên",
    "coQuan": "ETC"
   }
  },
  "doiTuongChungKien": [],
  "thongTinXacMinh": [
   {
    "loai": "TIEN_BEN_THU_3",
    "noiDung": {
     "loaiTien": "Tiền mặt",
     "soTien": {
      "giaTri": 1000000,
      "donVi": "Đồng"
     },
     "doiTuongGiu": "ETC",
     "diaChi": "63 Lê Văn Lương"
    }
   }
  ],
  "lyDoKhongKy": null,
  "lapXong": {
   "thoiGian": "2023-03-30T08:28:16.000+00:00",
   "soTo": 2,
   "soBan": 2
  }
 },
 "nguoiTao": "phucnx",

BCA-C08_XLVP_2023_DD Internal use Trang 589


Tài liệu thiết kế hệ thống V1.0

 "nguoiSua": null,
 "hanhViViPham": [],
 "tangVat": [],
 "hinhThucXuPhat": [],
 "thongBao": null,
 "noiDungChiTiet": null,
 "canBoTao": {
  "email": "{\"email\":\"nguyenxuan.phuc1@etc.vn\",\"placeCodeOto\":null,\"placeCodeMo
to\":null}",
  "userName": "phucnx",
  "ten": "Nguyễn Xuân Phúc",
  "capBac": "3.7",
  "chucVu": "005",
  "donVi": "G01.308.000.000",
  "diaDanh": "Hà Nội"
 },
 "canBoSua": null,
 "trangThai": "DA_LUU",
 "vuViec": {
  "ma": "G01.897.815.308-981-23-000018",
  "ten": "11J2-2222 Nguyễn Đức Cảnh",
  "nguon": null,
  "doiTuongViPham": {
   "ten": "Nguyễn Đức Cảnh",
   "diaChi": {
    "maDiaDanh": ""
   },
   "loaiNgaySinh": "DATE",
   "gioiTinh": 1,
   "quocTich": "VN",
   "ngheNghiep": "00019"
  },
  "loaiDoiTuong": "CA_NHAN",
  "phuongTien": {
   "bienSo": "11J2-2222",
   "bienSo2": null,
   "maPhuongTien": "21",
   "soDangKy": null,
   "soDangKy2": null,
   "soKhung": null,
   "soMay": null,
   "mauBien": "0",
   "nhanHieu": null,
   "mauSon": null,
   "trongTai": null,
   "trongTai2": null,
   "congSuat": null,
   "congSuat2": null,
   "soLoai": null
  },
  "linhVuc": "DUONG_BO"
 },
 "hasChild": false

BCA-C08_XLVP_2023_DD Internal use Trang 590


Tài liệu thiết kế hệ thống V1.0

d.13.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQD
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ lấy
4 BBQDRepository.java
thông tin chi tiết BBQD
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQD và
1 get
java điều hướng đến service cập nhật BBQD
BBQDServiceImp Thực hiện các thao tác chuẩn hóa lại dữ
2 get
l.java liệu BBQD trước khi trả ra
BBQDRepository Gọi hàm GET_BB_QD_DETAILS để lấy
3 get
.java thông tin chi tiết BBQD trong database

Procedure:
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(5
1 P_MA N Mã BBQD
0 CHAR)
P_MA_BIEU_MA VARCHAR2(5
2 N Mã biểu mẫu BBQD
U 0 CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
Output:

BCA-C08_XLVP_2023_DD Internal use Trang 591


Tài liệu thiết kế hệ thống V1.0

- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.
d.13.2.3.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.
- BBQD đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.13.2.3.4. In biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần In của Biên bản 01


d.13.2.3.5. Xóa biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần Xóa của Biên bản 01

d.14. Biên bản 11 – Biên bản cưỡng chế buộc thực hiện biện pháp khắc phục hậu
quả
d.14.1. Mục đích

- Quản lý biên bản 11 – Biên bản cưỡng chế buộc thực hiện biện pháp khắc phục
hậu quả.
- Chức năng quản lý biên bản 11 – Biên bản cưỡng chế buộc thực hiện biện pháp
khắc phục hậu quả:
o Thêm mới biên bản 11
o Sửa biên bản 11
o Hiển thị chi tiết biên bản 11
o Xóa biên bản 01

BCA-C08_XLVP_2023_DD Internal use Trang 592


Tài liệu thiết kế hệ thống V1.0

d.14.2. Chi tiết từng mục

d.14.2.1. Thiết kế dữ liệu

d.14.2.1.1. Mô hình quan hệ dữ liệu

HÌnh 105: Mô hình quan hệ dữ liệu biên bản 11


d.14.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 BIEN_BAN_QUYET_DINH Bảng lưu trữ biên bản quyết định
2 VU_VIEC Bảng lưu trữ vụ việc xảy ra
Bảng lưu trữ thông tin các hành vi vi phạm
3 BB_QD_HANH_VI_VI_PHAM
trong biên bản
Bảng lưu trữ thông tin nội dung in các hành
4 BB_QD_NOI_DUNG_CHI_TIET vi vi phạm hoặc hình phạt bổ sung của biên
bản
Bảng lưu trữ thông tin các tang vật của biên
5 TANG_VAT
bản
DANH_MUC_MAU_BIEN_BA Bảng lưu trữ thông tin các mẫu biên bản
6
N_QUYET_DINH quyết định

BCA-C08_XLVP_2023_DD Internal use Trang 593


Tài liệu thiết kế hệ thống V1.0

d.14.2.2. Thiết kế màn hình

d.14.2.2.1. Thêm mới/Sửa - Biên bản 11

d.14.2.2.1.1. Giao diện

Tại màn chi tiết QD11, Click vào nút Button Tạo BB/QĐ

Hình 106: Popup tạo mới BB/QĐ

BCA-C08_XLVP_2023_DD Internal use Trang 594


Tài liệu thiết kế hệ thống V1.0

Hình 107: Màn hình Thêm/Sửa Biên bản 11


d.14.2.2.1.2. Danh sách control/thành phần giao diện

Danh sách các control hoặc các thành phần giao diện, thể hiện bằng bảng dưới đây:
- Giải thích các item
BCA-C08_XLVP_2023_DD Internal use Trang 595
Tài liệu thiết kế hệ thống V1.0

Tên thành Bắt


STT Label phần / buộc Định dạng Miêu tả
Control nhập
Thông tin chung
Mã tự sinh, hoặc nhập
35 Số biên bản ma Textbox
tay
Nhập địa điểm lập
36 Tại diaDiemLap X Textbox
biên bản
Nhập thời gian lập
37 Ngày tạo thoiGianLap x TextBox
biên bản
Căn cứ
Bao gồm nội canCu.bbqd Text Hiển thị thông tin số
dung tương ứng QĐ, Ngày ra QĐ, Đơn
38
với QĐ11 sinh vị có thẩm quyền ra
ra QĐ của QĐ 11
Thông tin người lập biên bản
Xem tại mục Màn hình dùng chung/Chi tiết các màn hình/Người có thẩm quyền
lập BB
Đối tượng vi phạm
Xem chi tiết ở Màn hình sử dụng chung/Chi tiết các màn hình/Đối tượng vi phạm
Danh sách người chứng kiến
39 STT index Text Số thứ tự bản ghi
Hiển thị loại đối tượng
40 Đối tượng loaiDoiTuong Text
chứng kiến
Nội dung chi Hiển thị thông tin đối
41 noiDung Text
tiết tượng chứng kiến
Popup người chứng kiến
42 Đối tượng loaiDoiTuong x Dropdownlist Chọn loại đối tượng
Nhập tên cho đối
43 Họ và tên ten Textbox
tượng chứng kiến

BCA-C08_XLVP_2023_DD Internal use Trang 596


Tài liệu thiết kế hệ thống V1.0

Chọn nghề nghiệp


44 Nghề nghiệp ngheNghiep Dropdownlist
Áp dụng cho Cá nhân
Nhập địa chỉ
45 Địa chỉ diaChi Textbox
Áp dụng cho Cá nhân
Nhập chức vụ
46 Chức vụ chucVu Textbox Áp dụng cho Đại diện
chính quyền
Nhập cơ quan
47 Cơ quan coQuan Textbox Áp dụng cho Đại diện
chính quyền
Cơ quan phối hợp
48 Họ và tên ten x Textbox Nhập họ và tên cán bộ
49 Chức vụ chucVu x Textbox Nhập chức vụ cán bộ
Hiển thị cơ quan phối
50 Cơ quan coQuan Textbox hợp từ QD11 sinh ra
BB11
Danh sách kết quả thực hiện Quyết định cưỡng chế biện pháp khắc phục hậu quả
Hiển thị biện pháp
Biện pháp khắc
51 bienPhap Text khắc phục hậu quả từ
phục hậu quả
QD11 sinh ra BB11
Nhập kết quả thực
Kết quả thực hiện tương ứng với
52 ketQua x Textbox
hiện từng biện pháp khắc
phục hậu quả.
Biên bản lập xong hồi
Chọn hồi lập biên bản
53 Hồi thoiGian X Datepicker Có giá trị mặc định là
ngày giờ hiện tại
Nhập số tờ
54 Số tờ soTo X Textbox
Giá trị mặc định là 2

BCA-C08_XLVP_2023_DD Internal use Trang 597


Tài liệu thiết kế hệ thống V1.0

Nhập số bản
55 Số bản soBan X Textbox
Giá trị mặc định là 2

d.14.2.2.1.3. Các ràng buộc

STT Tên Nội dung


16 Số biên bản Tối đa 29 ký tự
Bắt buộc nhập
17 Ngày lập biên bản Giá trị mặc định là ngày, giờ hiện tại của hệ
thống
Bắt buộc nhập
18 Tại
Tối đa 255 ký tự
19 Họ và tên (Cơ quan phối hợp) Bắt buộc nhập, tối đa 150 ký tự.
20 Chức vụ Bắt buộc nhập, tối đa 150 ký tự.
Kết quả thực hiện (Danh sách
21 Bắt buộc nhập, tối đa 255 ký tự.
Kết quả thực hiện)
22 Lý do không ký Tối đa 500 ký tự.
Bắt buộc nhập
23 Hồi Giá trị mặc định là ngày giờ hiện tại của hệ
thống
Bắt buộc nhập
24 Số tờ
Tối đa 2 ký tự
Bắt buộc nhập
25 Số bản
Tối đa 2 ký tự

d.14.2.2.1.4. Xử lý sự kiện

STT Sự kiện Quy trình

Chọn Biên bản 11 ở Pop-up Tạo BB/QĐ → Màn


1 Page_Load hình hiển thị Form thêm mới Biên bản với dữ liệu lấy
từ QD11 trong luồng tạo BB11 và giá trị mặc định.

BCA-C08_XLVP_2023_DD Internal use Trang 598


Tài liệu thiết kế hệ thống V1.0

Chọn BtnEdit ở Danh sách biên bản hoặc màn Chi


tiết Biên bản → Màn hình hiển thị Form chỉnh sửa
Biên bản với dữ liệu tương ứng với Biên bản 11 đã
chọn.
Nhập thông tin trong Form Biên bản 11.

2 BtnSave_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu biên bản theo thông tin vừa nhập.

Click nút Đóng.


Màn hình hiển thị tooltip Thực hiện lưu thông tin vào
hệ thống không?
TH1: Click Đồng ý.
3 BtnClose_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → Lưu BB11 theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết BB11.
TH2: Click nút Đóng.
Màn hình chuyển đến màn xem danh sách BB.

d.14.2.2.2. Xem chi tiết Biên bản 11

d.14.2.2.2.1. Giao diện

BCA-C08_XLVP_2023_DD Internal use Trang 599


Tài liệu thiết kế hệ thống V1.0

Hình 108: Xem chi tiết Biên bản 11

d.14.2.2.2.2. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Chọn nút Xem chi tiết tại Danh sách Biên bản →
Màn hình hiển thị Biên bản 11 đã chọn

BCA-C08_XLVP_2023_DD Internal use Trang 600


Tài liệu thiết kế hệ thống V1.0

2 BtnClose_Click Click nút Đóng ở cuối màn hình → Màn hình quay
lại danh sách biên bản.
3 BtnEdit_Click Click nút Chỉnh sửa ở cuối màn hình → Đi đến màn
hình Chỉnh sửa biên bản
4 BtnLichSu_Click Click nút Xem lịch sử ở cuối màn hình → Đi đến
màn hình xem Lịch sử biên bản
5 BtnPrint_Click Click nút In ở cuối màn hình → Màn hình hiển thị
Pop-up xem trước bản in của Biên bản
6 BtnDelete_Click Click nút Xóa ở cuối màn hình → Chọn Đồng ý.
Hệ thống xóa bản ghi tương ứng → Màn hình quay
lại danh sách biên bản.
d.14.2.3. Thiết kế các hàm, thủ tục

d.14.2.3.1. Thêm mới biên bản cưỡng chế buộc thực hiện biện pháp khắc phục hậu quả

d.14.2.3.1.1. API

Mô tả: Gọi API để tạo mới biên bản cưỡng chế buộc thực hiện biện pháp khắc phục hậu
quả
Method URL
POST xlvp/api/v1/bb-qd

d.14.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD
2 maBieuMau String X Mã biểu mẫu BBQD
3 maCha String Mã BBQD cha
maBieuMauC
4 String Mã biểu mẫu cha
ha
5 thoiGianLap Date X Thời gian lập BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 601


Tài liệu thiết kế hệ thống V1.0

6 diaDiemLap String Địa điểm lập BBQD


7 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham
8 tangVat List khảo bảng dữ liệu đầu vào tang vật dưới
đây
Danh sách các hành vi vi phạm của
hanhViViPha
9 List X BBQD, tham khảo bảng dữ liệu đầu vào
m
Hành vi vi phạm dưới đây
Danh sách nội dung in hành vi vi phạm
noiDungChiTi
10 List của BBQD, tham khảo bảng dữ liệu đầu
et
vào nội dung chi tiết dưới đây
Nội dung chi tiết của biên bản cưỡng chế
11 noiDung Object X buộc thực hiện biện pháp khắc phục hậu
quả

- Dữ liệu nội dung biên bản cưỡng chế buộc thực hiện biện pháp khắc phục hậu quả:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 canCu Object X Căn cứ của biên bản

nguoiCoTham Thông tin người có thẩm quyền lập BB


2 Json X
Quyen Example: {“ma”: “admin”}

doiTuongChu Danh sách đối tượng chứng kiến


3 Json
ngKien Example: [{“ten” : “Bùi Anh”}]

ketQuaBPKP Danh sánh biện pháp khắc phục hậu quả


4 Json X
HQS Example: [{“ketQua” : “Sửa xong”}]
lyDoKhongK
5 String Lý do không ký biên bản
y
Thông tin biên bản lập xong
6 lapXong Json X
Example: {“soTo” : 2, “soBan” : 2}

BCA-C08_XLVP_2023_DD Internal use Trang 602


Tài liệu thiết kế hệ thống V1.0

donViPhoiHo Cơ quan phối hợp


7 Json X
p Example: {“ten” : “Bùi Anh”}
Căn cứ biên bản 11
Căn cứ BB 11
1 bbqd Json X Example: [{“maBieuMau” : “118-2022-
nd-cp-qd20”}]

Ví dụ:
Method: POST
{
    "maBieuMau": "118-2022-nd-cp-bb11",
    "maVuViec": "G01.308.000.000-981-23-000606",
    "maBieuMauCha": "118-2022-nd-cp-qd11",
    "maCha": "G01.308.000.000-981-23-000009",
    "diaDiemLap": "Lê Văn Lương",
    "thoiGianLap": "2023-03-30T03:21:13.000Z",
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-qd11",
                    "so": "G01.308.000.000-981-23-000009",
                    "ngay": "2023-03-30T03:21:13.000Z",
                    "maNhapTay": null
                }
            ],
        },
        "nguoiCoThamQuyen": {
            "donVi": "G01.308.000.000",
            "capBac": "Hạ sĩ",
            "chucVu": "Cục trưởng",
            "ma": "anhbc"
        },
        "lapXong": {
            "thoiGian": "2023-03-30T04:17:14.765Z",

BCA-C08_XLVP_2023_DD Internal use Trang 603


Tài liệu thiết kế hệ thống V1.0

            "soTo": "2",
            "soBan": "2"
        },
        "lyDoKhongKy": "Tôi đồng ý",
        "doiTuongChungKien": [
            {
                "ten": "Nguyễn Văn B",
                "loaiDoiTuong": "CA_NHAN",
                "thongTin": {
                    "ngheNghiep": "00020",
                    "diaChi": "Lê Văn Lương"
                }
            }
        ],
        "donViPhoiHop": {
            "coQuan": "Honda Tây Hồ",
            "ten": "Nguyễn Văn A",
            "chucVu": "Giám Đốc"
        },
        "ketQuaBPKPHQS": [
            {
                "bienPhapKhacPhucHauQua": {
                    "bienPhap": "Sửa chữa xe",
                    "hauQua": "Hỏng xe",
                    "thoiHan": {
                        "giaTri": 7,
                        "loai": "NGAY"
                    }
                },
                "ketQua": "Đã sửa xong"
            }
        ]
    }
}
Các giá trị trả về là:

BCA-C08_XLVP_2023_DD Internal use Trang 604


Tài liệu thiết kế hệ thống V1.0

Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây
Danh sách các hành vi vi phạm của BBQD,
10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của biên bản cưỡng chế buộc
12 noiDung Object
thực hiện biện pháp khắc phục hậu quả
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000004",
    "maCha": "G01.308.000.000-981-23-000009",
    "maBieuMauCha": "118-2022-nd-cp-qd11",
    "maNhapTay": null,
    "maVuViec": "G01.308.000.000-981-23-000606",
    "maBieuMau": "118-2022-nd-cp-bb11",
    "thoiGianLap": "2023-03-30T03:21:13.000+00:00",
    "ngayTao": "2023-03-30T04:19:42.000+00:00",
    "maDonViCsgt": "G01.308.000.000",

BCA-C08_XLVP_2023_DD Internal use Trang 605


Tài liệu thiết kế hệ thống V1.0

    "ngaySua": null,
    "nguon": null,
    "canBoTao": {
        "email": "abc@gmail.com",
        "userName": "anhbc",
        "ten": "Bùi Anh",
        "capBac": "3.7",
        "chucVu": "003",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.308.000.000-981-23-000606",
        "ten": "BB20",
        "nguon": null,
        "doiTuongViPham": {
            "soDinhDanh": "123123123123",
            "ten": "NGUYỄN HẢI HOÀNG",
            "ngayCap": "2023-03-17T03:21:43.890Z",
            "noiCap": "Cục cảnh sát quản lý hành chính về trật tự xã h
ội",
            "diaChi": {
                "maDiaDanh": "09997",
                "chiTiet": "THÔN VĨNH LỘC 3"
            },
            "noiOHienTai": "Ngõ 68, Triều Khúc, Tân Triều, Phường Than
h Xuân Bắc, Quận Thanh Xuân, Thành phố Hà Nội",
            "ngaySinh": "1997-07-12T17:00:00.000Z",
            "loaiNgaySinh": "DATE",
            "gioiTinh": 1.0,
            "quocTich": "VN",
            "ngheNghiep": "00008",
            "email": "abc@gmail.com",
            "noiSinh": "Hà Nội",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "32F1.54483",
            "bienSo2": "312546546",
            "maPhuongTien": "47",
            "soDangKy": "2323232",
            "soDangKy2": null,
            "soKhung": "23232WACV2",
            "soMay": "2323232",
            "mauBien": "0",
            "nhanHieu": null,
            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,

BCA-C08_XLVP_2023_DD Internal use Trang 606


Tài liệu thiết kế hệ thống V1.0

            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}
IV.14.2.3.1.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác
1 BBQDController.java
với biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQĐ
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQĐ
BB11ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQĐ
.java
Lớp làm nhiệm vụ tạo và quản lý tang vật
6 TangVatService.java
của BBQĐ nếu có
BBQDHinhThucXuPhatService. Lớp làm nhiệm vụ tạo và quản lý các hình
7
java thức xử phạt cho BBQĐ nếu có
BBQDNoiDungChiTietSevice.ja Lớp làm nhiệm vụ tạo và quản lý các nội
8
va dung in cho BBQĐ nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
1 BBQDController. Cung cấp endpoint tạo mới BBQĐ và điều
create
java hướng đến service tạo BBQĐ
BBQDServiceImp Thực hiện các thao tác validate, chuẩn hóa
2 create
l.java lại dữ liệu và tạo mới BBQĐ
3 create BBQDRepository Gọi hàm

BCA-C08_XLVP_2023_DD Internal use Trang 607


Tài liệu thiết kế hệ thống V1.0

PKG_BIEN_BAN_QUYET_DINH.CREATE
.java
_BB_QD để tạo BBQĐ trong database

BB01ValidatorSe
Kiểm tra tính hợp lệ dữ liệu gửi lên khi
4 isValid rvice
tạo BBQĐ
.java
TangVatService.j
5 bulkCreate Tạo các tang vật thuộc BBQĐ
ava
BBQDHinhThuc
6 bulkCreate XuPhatService.ja Tạo các hình thức xử phạt cho BBQĐ
va
BBQDNoiDungC Tạo hoặc cập nhật các nội dung in cho
7 upsert
hiTietSevice.java BBQĐ
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được
sử dụng để tạo mới BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2
1 P_MA N Mã BBQD
(50 CHAR)
P_MA_NHAP_TA VARCHAR2
2 N Mã nhập tay khi tạo BBQD
Y (50 CHAR)
VARCHAR2
3 P_MA_VU_VIEC N Mã vụ việc tạo BBQD
(50 CHAR)
VARCHAR2
4 P_MA_CHA N Mã BBQD cha nếu có
(50 CHAR)
P_MA_BIEU_MA VARCHAR2
5 N Mã biểu mẫu cha nếu có
U_CHA (50 CHAR)
P_THOI_GIAN_LA
6 DATE N Thời gian lập BBQD
P
7 P_DIA_DIEM_LAP VARCHAR2 N Địa điểm lập BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 608


Tài liệu thiết kế hệ thống V1.0

(500 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
10 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2
11 P_TRANG_THAI N Trạng thái BBQD
(2 CHAR)
P_MA_DON_VI_C VARCHAR2
12 N Mã đơn vị CSGT
SGT (255 CHAR)
P_DIA_CHI_DON_ NUMBER(12
13 N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID ,0)
VARCHAR2
14 P_NOI_DUNG N Nội dung cụ thể của BBQD
(4000 CHAR)
VARCHAR2
15 P_NGUON N Nguồn tạo BBQD
(15 CHAR)
VARCHAR2
16 P_CAN_BO_TAO N Thông tin cán bộ tạo BBQD
(4000 CHAR)
VARCHAR2
17 P_NGUOI_TAO N Tài khoản tạo BBQD
(255 CHAR)
Trả về dòng dữ liệu BBQD vừa
18 V_CURSOR CURSOR X
tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.
- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để lấy
thông tin bản ghi vừa được thêm và trả về.
d.14.2.3.1.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:

BCA-C08_XLVP_2023_DD Internal use Trang 609


Tài liệu thiết kế hệ thống V1.0

- Mã vụ việc không tồn tại.


- Mã biểu mẫu không tồn tại.
- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Căn cứ các biên bản quyết định liên quan để trống hoặc nhiều hơn 1
- Người có thẩm quyển không có
- Lý do không ký biên bản vượt quá 500 ký tự.
- Nội dung BBQD không có.
- Danh sách kết quả của biện pháp khắc phục không có.
- Thông tin biên bản lập xong không có.
- Đơn vị phối hợp không có.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.14.2.3.2. Chỉnh sửa biên bản cưỡng chế buộc thực hiện biện pháp khắc phục hậu quả

d.14.2.3.2.1. API

Mô tả: Gọi API để chỉnh sửa biên bản cưỡng chế buộc thực hiện biện pháp khắc phục hậu
quả
Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

d.14.2.3.2.2. Các tham số gửi lên và trả về

Các tham số gửi lên và trả về tương tự tạo mới biên bản cưỡng chế buộc thực hiện biện
pháp khắc phục hậu quả, ngoài ra còn có:

STT Tham số Kiểu dữ liệu Mô tả


1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 610


Tài liệu thiết kế hệ thống V1.0

d.14.2.3.2.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQĐ
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQĐ
BB11ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQĐ
.java
Lớp làm nhiệm vụ quản lý tang vật của BBQĐ
6 TangVatService.java
nếu có
BBQDHinhThucXuPhatSe Lớp làm nhiệm vụ quản lý các hình thức xử
7
rvice.java phạt cho BBQĐ nếu có
BBQDNoiDungChiTietSev Lớp làm nhiệm vụ quản lý các nội dung in cho
8
ice.java BBQĐ nếu có
- Danh sách các phương thức:
STT Tên method Tên lớp Mô tả
BBQDController.jav Cung cấp endpoint cập nhật BBQĐ và
1 update
a điều hướng đến service cập nhật BBQĐ
BBQDServiceImpl.j Thực hiện các thao tác validate, chuẩn
2 update
ava hóa lại dữ liệu và cập nhật BBQĐ
Gọi hàm
BBQDRepository.ja PKG_BIEN_BAN_QUYET_DINH.UPDA
3 update
va TE_BB_QD để sửa BBQĐ trong
database
4 isValid BB01ValidatorServi Kiểm tra tính hợp lệ dữ liệu gửi lên khi
ce tạo BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 611


Tài liệu thiết kế hệ thống V1.0

.java
updateTang Cập nhật thông tin các tang vật thuộc
5 TangVatService.java
Vat BBQĐ
BBQDHinhThucXu
6 bulkUpdate Cập nhật hình thức xử phạt cho BBQĐ
PhatService.java
BBQDNoiDungChi Tạo hoặc cập nhật các nội dung in cho
7 upsert
TietSevice.java BBQĐ
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được
sử dụng để cập nhật BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Hàm UPDATE_BB_QD được sử dụng để cập nhật thông tin của một BBQD đã có trong
cơ sở dữ liệu.
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50
2 N Mã nhập tay khi tạo BBQD
Y CHAR)
P_THOI_GIAN_LA
3 DATE N Thời gian lập BBQD
P
VARCHAR2(50
4 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
7 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
8 P_TRANG_THAI N Trạng thái BBQD
CHAR)
9 P_NOI_DUNG VARCHAR2(40 N Nội dung cụ thể của BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 612


Tài liệu thiết kế hệ thống V1.0

00 CHAR)
VARCHAR2(40 Thông tin cán bộ sửa
10 P_CAN_BO_SUA N
00 CHAR) BBQD
VARCHAR2(25
11 P_NGUOI_SUA N Tài khoản sửa BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
12 V_CURSOR CURSOR X
vừa tạo

Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQD được cập nhật.
d.14.2.3.2.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Căn cứ các biên bản quyết định liên quan để trống hoặc nhiều hơn 1
- Người có thẩm quyển không có
- Lý do không ký biên bản vượt quá 500 ký tự.
- Nội dung BBQD không có.
- Danh sách kết quả của biện pháp khắc phục không có.
- Thông tin biên bản lập xong không có.
- Đơn vị phối hợp không có.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.14.2.3.3. Xem chi tiết biên bản cưỡng chế buộc thực hiện biện pháp khắc phục hậu
quả
d.14.2.3.3.1. API

Mô tả: Gọi API để lấy thông tin chi tiết biên bản cưỡng chế buộc thực hiện biện pháp
khắc phục hậu quả
Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

BCA-C08_XLVP_2023_DD Internal use Trang 613


Tài liệu thiết kế hệ thống V1.0

d.14.2.3.3.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


STT Tham số Kiểu dữ liệu Mô tả
1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã biên bản quyết định
Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây
Danh sách các hành vi vi phạm của BBQD,
10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của biên bản cưỡng chế buộc
12 noiDung Object
thực hiện biện pháp khắc phục hậu quả
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:

BCA-C08_XLVP_2023_DD Internal use Trang 614


Tài liệu thiết kế hệ thống V1.0

{
    "ma": "G01.308.000.000-981-23-000004",
    "maCha": "G01.308.000.000-981-23-000009",
    "maBieuMauCha": "118-2022-nd-cp-qd11",
    "maNhapTay": null,
    "maVuViec": "G01.308.000.000-981-23-000606",
    "maBieuMau": "118-2022-nd-cp-bb11",
    "thoiGianLap": "2023-03-30T03:21:13.000+00:00",
    "ngayTao": "2023-03-30T04:19:42.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "diaDiemLap": "Lê Văn Lương",
    "tuNgay": null,
    "denNgay": null,
    "thoiGianHoanThanh": null,
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-qd11",
                    "so": "G01.308.000.000-981-23-000009",
                    "maNhapTay": null,
                    "ngay": "2023-03-30T03:21:13.000+00:00",
                    "tenDonVi": null
                }
            ]
        },
        "nguoiCoThamQuyen": {
            "ma": "anhbc",
            "ten": "Bùi Anh",
            "maCapBac": "3.7",
            "capBac": "Hạ sĩ",
            "chucVu": "Cục trưởng",
            "maChucVu": "003",
            "donVi": "G01.308.000.000",
            "tenDonVi": "Cục Cảnh Sát Giao Thông"
        },
        "doiTuongChungKien": [
            {
                "loaiDoiTuong": "CA_NHAN",
                "ten": "Nguyễn Văn B",
                "thongTin": {
                    "ngheNghiep": "00020",
                    "diaChi": "Lê Văn Lương"
                }
            }
        ],
        "ketQuaBPKPHQS": [
            {
                "bienPhapKhacPhucHauQua": {
                    "bienPhap": "Sửa chữa xe",
                    "hauQua": "Hỏng xe",

BCA-C08_XLVP_2023_DD Internal use Trang 615


Tài liệu thiết kế hệ thống V1.0

                    "thoiHan": {
                        "giaTri": 7.0,
                        "loai": "NGAY"
                    }
                },
                "ketQua": "Đã sửa xong"
            }
        ],
        "lyDoKhongKy": "Tôi đồng ý",
        "lapXong": {
            "thoiGian": "2023-03-30T04:17:14.000+00:00",
            "soTo": 2,
            "soBan": 2
        },
        "donViPhoiHop": {
            "ten": "Nguyễn Văn A",
            "chucVu": "Giám Đốc",
            "coQuan": "Honda Tây Hồ"
        }
    },
    "nguoiTao": "anhbc",
    "nguoiSua": null,
    "hanhViViPham": [],
    "tangVat": [],
    "hinhThucXuPhat": [],
    "thongBao": null,
    "noiDungChiTiet": null,
    "canBoTao": {
        "email": "abc@gmail.com",
        "userName": "anhbc",
        "ten": "Bùi Anh",
        "capBac": "3.7",
        "chucVu": "003",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.308.000.000-981-23-000606",
        "ten": "BB20",
        "nguon": null,
        "doiTuongViPham": {
            "soDinhDanh": "123123123123",
            "ten": "NGUYỄN HẢI HOÀNG",
            "ngayCap": "2023-03-17T03:21:43.890Z",
            "noiCap": "Cục cảnh sát quản lý hành chính về trật tự xã h
ội",
            "diaChi": {
                "maDiaDanh": "09997",
                "chiTiet": "THÔN VĨNH LỘC 3"
            },

BCA-C08_XLVP_2023_DD Internal use Trang 616


Tài liệu thiết kế hệ thống V1.0

            "noiOHienTai": "Ngõ 68, Triều Khúc, Tân Triều, Phường Than
h Xuân Bắc, Quận Thanh Xuân, Thành phố Hà Nội",
            "ngaySinh": "1997-07-12T17:00:00.000Z",
            "loaiNgaySinh": "DATE",
            "gioiTinh": 1.0,
            "quocTich": "VN",
            "ngheNghiep": "00008",
            "email": "abc@gmail.com",
            "noiSinh": "Hà Nội",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": {
            "bienSo": "32F1.54483",
            "bienSo2": "312546546",
            "maPhuongTien": "47",
            "soDangKy": "2323232",
            "soDangKy2": null,
            "soKhung": "23232WACV2",
            "soMay": "2323232",
            "mauBien": "0",
            "nhanHieu": null,
            "mauSon": null,
            "trongTai": null,
            "trongTai2": null,
            "congSuat": null,
            "congSuat2": null,
            "soLoai": null
        },
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}
d.14.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQĐ
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ lấy
4 BBQDRepository.java
thông tin chi tiết BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 617


Tài liệu thiết kế hệ thống V1.0

- Danh sách các phương thức:


STT Tên method Tên lớp Mô tả
BBQDController. Cung cấp endpoint cập nhật BBQĐ và
1 get
java điều hướng đến service cập nhật BBQĐ
BBQDServiceImp Thực hiện các thao tác chuẩn hóa lại dữ
2 get
l.java liệu BBQĐ trước khi trả ra
BBQDRepository Gọi hàm GET_BB_QD_DETAILS để lấy
3 get
.java thông tin chi tiết BBQĐ trong database

Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH. GET_BB_QD_DETAILS là một thủ tục
được sử dụng để lấy thông tin chi tiết BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(5
1 P_MA N Mã BBQD
0 CHAR)
P_MA_BIEU_MA VARCHAR2(5
2 N Mã biểu mẫu BBQD
U 0 CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.
d.14.2.3.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.
- BBQD đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.

BCA-C08_XLVP_2023_DD Internal use Trang 618


Tài liệu thiết kế hệ thống V1.0

d.14.2.3.4. In biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần In của Biên bản 01


d.14.2.3.5. Xóa biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần Xóa của Biên bản 01

d.15. Biên bản 12 – Biên bản cưỡng chế kê biên tài sản có giá trị tương ứng với số
tiền phạt/phải hoàn trả
d.15.1. Mục đích

- Quản lý biên bản 12 – Biên bản cưỡng chế kê biên tài sản có giá trị tương ứng
với số tiền phạt/phải hoàn trả.
- Chức năng quản lý biên bản 12 – Biên bản cưỡng chế kê biên tài sản có giá trị
tương ứng với số tiền phạt/phải hoàn trả:
o Thêm mới biên bản 12
o Sửa biên bản 12
o Hiển thị chi tiết biên bản 12
o Xóa biên bản 12

BCA-C08_XLVP_2023_DD Internal use Trang 619


Tài liệu thiết kế hệ thống V1.0

d.15.2. Chi tiết từng mục

d.15.2.1. Thiết kế dữ liệu

d.15.2.1.1. Mô hình quan hệ dữ liệu

HÌnh 109: Mô hình quan hệ dữ liệu biên bản 12


d.15.2.1.2. Danh sách các bảng và mô tả

STT Tên bảng Mô tả


1 BIEN_BAN_QUYET_DINH Bảng lưu trữ biên bản quyết định
2 VU_VIEC Bảng lưu trữ vụ việc xảy ra
Bảng lưu trữ thông tin các hành vi vi
3 BB_QD_HANH_VI_VI_PHAM
phạm trong biên bản
Bảng lưu trữ thông tin nội dung in các
4 BB_QD_NOI_DUNG_CHI_TIET hành vi vi phạm hoặc hình phạt bổ sung
của biên bản
Bảng lưu trữ thông tin các tang vật của
5 TANG_VAT
biên bản
DANH_MUC_MAU_BIEN_BAN Bảng lưu trữ thông tin các mẫu biên bản
6
_QUYET_DINH quyết định

BCA-C08_XLVP_2023_DD Internal use Trang 620


Tài liệu thiết kế hệ thống V1.0

d.15.2.2. Thiết kế màn hình

d.15.2.2.1. Thêm mới/Sửa Biên bản 12 - Biên bản cưỡng chế kê biên tài sản có giá trị
tương ứng với số tiền phạt/phải hoàn trả
d.15.2.2.1.1. Giao diện

Hình 110: Màn hình Thêm mới/Chỉnh sửa BB12

BCA-C08_XLVP_2023_DD Internal use Trang 621


Tài liệu thiết kế hệ thống V1.0

Hình 111: Popup người chứng kiến/Đối tượng cá nhân

Hình 112: Popup người chứng kiến/Đối tượng đại diện chính quyền

d.15.2.2.1.2. Danh sách control/thành phần giao diện

Bắt
Tên thành
STT Label buộc Định dạng Mô tả
phần / Control
nhập
Thông tin chung
Nhập số biên bản
Nếu không có số
1 Số biên bản ma/maNhapTay Textbox nhập tay BB thì hiển
thị số tự sinh
Không được sửa
Chọn thời gian lập
2 Ngày tạo thoiGianLap X DatetimePicker biên bản
Mặc định ngày, giờ

BCA-C08_XLVP_2023_DD Internal use Trang 622


Tài liệu thiết kế hệ thống V1.0

hiện tại của hệ thống


Nhập địa điểm lập
3 Tại diaDiemLap X Textbox
biên bản
Trạng thái của biên
4 Trạng thái trangThai - Text
bản (màn chỉnh sửa)
Căn cứ
Quyết định
cưỡng chế kê
biên tài sản có Hiển thị thông tin số
5 giá trị tương canCu.bbqd X Text QĐ, Ngày ra QĐ
ứng với số của QĐ 09
Tiền phạt/phải
hoàn trả
Thông tin người lập biên bản
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình
người có thẩm quyền lập biên bản/quyết định
Đối tượng vi phạm
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình đối
tượng vi phạm
Cơ quan phối hợp
Nhập tên cơ quan
6 Họ và tên ten Textbox
phối hợp
Nhập chức vụ của
7 Chức vụ chucVu Textbox
cơ quan phối hợp
Hiển thị thông tin cơ
8 Cơ quan coQuan Textbox quan phối hợp từ
QĐ09 sinh ra BB12
Danh sách Người chứng kiến
9 STT index Textbox Số thứ tự bản ghi
Hiển thị loại đối
10 Đối tượng loaiDoiTuong Textbox
tượng chứng kiến

BCA-C08_XLVP_2023_DD Internal use Trang 623


Tài liệu thiết kế hệ thống V1.0

Hiển thị thông tin


11 Chi tiết - Textbox đối tượng chứng
kiến
Pop-up Người chứng kiến
12 Đối tượng loaiDoiTuong Dropdownlist Chọn loại đối tượng
Nhập tên cho đối
13 Họ và tên ten Textbox
tượng chứng kiến
Chọn nghề nghiệp
14 Nghề nghiệp ngheNghiep Dropdownlist Áp dụng cho Cá
nhân
Nhập địa chỉ
15 Địa chỉ diaChi Textbox Áp dụng cho Cá
nhân
Nhập chức vụ
16 Chức vụ chucVu Textbox Áp dụng cho Đại
diện chính quyền
Nhập cơ quan
17 Cơ quan coQuan Textbox Áp dụng cho Đại
diện chính quyền
Các tài sản được kê biên
Hiển thị số thứ tự tài
18 STT index Text
sản được kê biên
Tên gọi/Mô tả Hiển thị tên/Mô tả
19 ten Text
tài sản tài sản được kê biên
Nội dung chi Hiển thị nội dung tài
20 - Text
tiết sản được kê biên
Popup xem thông tin tài sản được kê biên
Hiển thị tên gọi/Mô
Tên gọi/Mô tả
21 ten Textbox tả tài sản
tài sản
Không được sửa

BCA-C08_XLVP_2023_DD Internal use Trang 624


Tài liệu thiết kế hệ thống V1.0

Textbox Hiển thị Đơn vị tính


22 Đơn vị tính donViTinh của tài sản
Không được sửa
Textbox Hiển thị số lượng tài
23 Số lượng soLuong sản
Không được sửa
Textbox HIẻn thị tình trạng
Tình trạng đặc
24 tinhTrang đặc điểm tài sản
điểm
Không được sửa
Textbox Hiển thị ghi của tài
25 Ghi chú ghiChu sản
Không được sửa
Lý do không ký biên bản
Textbox Nhập lý do không
26 Lý do lyDoKhongKy
ký biên bản
Việc cưỡng chế kết thúc hồi
Xem chi tiết ở Các màn hình sử dụng chung/Chi tiết các màn hình/Màn hình biên
bản lập xong hồi

d.15.2.2.1.3. Các ràng buộc

STT Tên Nội dung


Thông tin chung
1 Số biên bản Tối đa 29 ký tự
Bắt buộc nhập
2 Thời gian lập biên bản
Không được chọn ngày quá khứ
Bắt buộc nhập
3 Tại
Tối đa 255 ký tự
Người có thẩm quyền lập biên bản
4 Cơ quan Bắt buộc chọn

BCA-C08_XLVP_2023_DD Internal use Trang 625


Tài liệu thiết kế hệ thống V1.0

5 Họ và tên Bắt buộc chọn


Cấp bậc Bắt buộc (báo lỗi nếu cán bộ không có cấp
6
bậc)
Chức vụ Bắt buộc (báo lỗi nếu cán bộ không có chức
7
vụ)
Cơ quan phối hợp
8 Họ và tên Bắt buộc nhập, tối đa 50 ký tự
9 Chức vụ Bắt buộc nhập, tối đa 50 ký tự
Popup Người chứng kiến
10 Họ và tên Nhập tối đa 150 ký tự
11 Địa chỉ Nhập tối đa 255 ký tự
12 Chức vụ Nhập tối đa 150 ký tự
13 Cơ quan Nhập tối đa 150 ký tự
Lý do không ký biên bản
14 Lý do Nhập tối đa 500 ký tự
Việc cưỡng chế kết thúc hồi
15 Hồi Bắt buộc nhập
Bắt buộc nhập
16 Số tờ
Tối đa 2 ký tự
Bắt buộc nhập
17 Số bản
Tối đa 2 ký tự

d.15.2.2.1.4. Xử lý sự kiện

STT Sự kiện Quy trình


1 Page_Load Chọn Biên bản 12 ở Pop-up Tạo BB/QĐ → Màn
hình hiển thị Form thêm mới Biên bản với dữ liệu lấy
từ QĐ 09 và giá trị mặc định
Chọn BtnEdit ở Danh sách biên bản hoặc màn Chi
tiết Biên bản → Màn hình hiển thị Form chỉnh sửa

BCA-C08_XLVP_2023_DD Internal use Trang 626


Tài liệu thiết kế hệ thống V1.0

Biên bản với dữ liệu tương ứng với Biên bản 12 đã


chọn
Nhập thông tin trong Form biên bản 12

2 BtnSave_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → lưu biên bản theo thông tin vừa nhập

Click nút Đóng


Màn hình hiển thị tooltip Thực hiện lưu thông tin vào
hệ thống không?
TH1: Click Đồng ý.
3 BtnClose_Click Hệ thống check ràng buộc của các trường dữ liệu nếu
thỏa mãn → Lưu BB12 theo thông tin vừa nhập →
Màn hình chuyển đến màn xem chi tiết BB12.
TH2: Click nút Đóng
Màn hình chuyển đến màn xem danh sách BB.

BCA-C08_XLVP_2023_DD Internal use Trang 627


Tài liệu thiết kế hệ thống V1.0

d.15.2.2.2. Xem chi tiết Biên bản 12

d.15.2.2.2.1. Giao diện

Hình 113: Màn hình chỉnh sửa BB12


d.15.2.2.2.2. Xử lý sự kiện

STT Sự kiện Quy trình


Chọn nút Xem chi tiết tại Danh sách Biên bản →
1 Page_Load
Màn hình hiển thị Biên bản 12 đã chọn

BCA-C08_XLVP_2023_DD Internal use Trang 628


Tài liệu thiết kế hệ thống V1.0

Chọn nút Tạo BB/QĐ ở cuối màn hình → Hiển thị


2 BtnTạoBB/QĐ
Pop – up chọn Mẫu biên bản và quyết định để tạo
Click nút Chỉnh sửa ở cuối màn hình → Đi đến màn
3 BtnEdit_Click
hình Chỉnh sửa biên bản
Click nút Xem lịch sử ở cuối màn hình → Đi đến
4 BtnLịchSử_Click
màn hình xem Lịch sử biên bản
Click nút In ở cuối màn hình → Màn hình hiển thị
5 BtnPrint_Click
Pop-up xem trước bản in của Biên bản
Click nút Xóa ở cuối màn hình → Chọn Đồng ý.
6 BtnDelete_Click Hệ thống xóa bản ghi tương ứng → Màn hình quay
lại danh sách biên bản.
Click nút Đóng ở cuối màn hình → Màn hình quay
7 BtnClose_Click
lại danh sách biên bản.

d.15.2.3. Thiết kế các hàm, thủ tục

d.15.2.3.1. Thêm mới biên bản cưỡng chế kê biên tài sản có giá trị tương ứng với số
tiền phạt/phải hoàn trả
d.15.2.3.1.1. API

Mô tả: Gọi API để tạo mới biên bản cưỡng chế kê biên tài sản có giá trị tương ứng với số
tiền phạt/phải hoàn trả
Method URL
POST xlvp/api/v1/bb-qd

d.15.2.3.1.2. Các tham số gửi lên và trả về

Các tham số gửi lên gồm:


- Dữ liệu BBQD:

STT Tham số Kiểu dữ Bắt Mô tả


liệu buộc
1 maVuViec String X Mã vụ việc lập BBQD
2 maBieuMau String X Mã biểu mẫu BBQD
3 maCha String Mã BBQD cha

BCA-C08_XLVP_2023_DD Internal use Trang 629


Tài liệu thiết kế hệ thống V1.0

4 maBieuMauCha String Mã biểu mẫu cha


5 thoiGianLap Date X Thời gian lập BBQD
6 diaDiemLap String Địa điểm lập BBQD
7 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản,
8 tangVat List tham khảo bảng dữ liệu đầu vào tang vật
dưới đây
Danh sách các hành vi vi phạm của
9 hanhViViPham List X BBQD, tham khảo bảng dữ liệu đầu vào
Hành vi vi phạm dưới đây
Danh sách nội dung in hành vi vi phạm
10 noiDungChiTiet List của BBQD, tham khảo bảng dữ liệu đầu
vào nội dung chi tiết dưới đây
Nội dung chi tiết của biên bản cưỡng chế
11 noiDung Object X kê biên tài sản có giá trị tương ứng với số
tiền phạt/phải hoàn trả

- Dữ liệu nội dung biên bản cưỡng chế kê biên tài sản có giá trị tương ứng với số tiền
phạt/phải hoàn trả:

Kiểu dữ Bắt
STT Tham số Mô tả
liệu buộc
1 canCu List String X Căn cứ lập BB lấy từ danh mục căn cứ

nguoiCoTham Thông tin người có thẩm quyền lập BB


2 Json X
Quyen Example: {“ma”: “admin”}
Cơ quan phối hợp
3 nguoiPhoiHop Json X
Example: [{“ten” : “Bùi Anh”}]

doiTuongChun Danh sách đối tượng chứng kiến


4 Json
gKien Example: [{“ten” : “Bùi Anh”}]
5 taiSanKeBien Json Danh sách tài sản kê biên
6 lyDoKhongKy String Lý do không ký biên bản

BCA-C08_XLVP_2023_DD Internal use Trang 630


Tài liệu thiết kế hệ thống V1.0

Thông tin biên bản lập xong


7 lapXong Json X
Example: {“soTo” : 2, “soBan” : 2}
Căn cứ biên bản 12
Căn cứ BB 12
1 bbqd Json X Example: [{“maBieuMau” : “118-2022-
nd-cp-qd20”}]

- Dữ liệu tang vật:

Kiểu dữ Bắt
STT Tham số Mô tả
liệu buộc
Mã tang vật ( trong danh mục tang vật,
1 ma String X
phương tiện, giấy tờ)
Mã nhóm tang vật:
- PHUONG_TIEN: Phương tiện

- GIAY_TO: Giấy tờ
2 nhomTangVat String X
- GIAY_PHEP_LAI_XE: Giấy phép
lái xe
- KHAC: Tang vật khác

Thông tin chi tiết của tang vật tùy nhóm


3 thongTin Object
tang vật
Nhóm tang vật phương tiện
1 soLuong Number X Số lượng tang vật
2 donViTinh String X Đơn vị tính của tang vật
3 tinhTrang String Tình trạng của tang vật
4 chungLoai String Mã phương tiện
5 bienSo String Biển số thứ nhất của phương tiện
6 bienSo2 String Biển số thứ 2 của phương tiện
7 soDangKy String Số đăng ký thứ 1 của phương tiện
8 soDangKy2 String Số đăng ký thứ 2 của phương tiện

BCA-C08_XLVP_2023_DD Internal use Trang 631


Tài liệu thiết kế hệ thống V1.0

9 soKhung String Số khung của phương tiện


10 soMay String Số máy của phương tiện
11 congSuat String Công suất thứ 1 của phương tiện
12 congSuat2 String Công suất thứ 2 của phương tiện
13 trongTai String Trọng tải thứ 1 của phương tiện
14 trongTai2 String Trọng tải thứ 2 của phương tiện
15 donGia String Đơn giá tạm tính của phương tiện
16 nhanHieu String Nhãn hiệu của phương tiện
17 mauSon String Màu sơn của phương tiện
18 soLoai String Số loại của phương tiện
Nhóm tang vật giấy phép lái xe
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 so String X Mã số của giấy phép lái xe
5 hang List X Danh sách các hạng in trên GPLX
6 giaTriDen Date Ngày hết hạn GPLX
7 noiCap String Mã số nơi cấp giấy tờ
Nhóm tang vật giấy tờ
1 soLuong Number X Số lượng tang vật
2 tinhTrang String Tình trạng của tang vật
3 ghiChu String Ghi chú của tang vật
4 so String X Mã số của giấy phép lái xe
5 giaTriDen Date Ngày hết hạn GPLX
6 noiCap String Mã số nơi cấp giấy tờ
Nhóm tang vật khác
1 soLuong Number X Số lượng tang vật

BCA-C08_XLVP_2023_DD Internal use Trang 632


Tài liệu thiết kế hệ thống V1.0

2 tinhTrang String Tình trạng của tang vật


3 ghiChu String Ghi chú của tang vật
4 ten String X Tên gọi của tang vật
5 donViTinh String X Đơn vị tính của tang vật
6 donGia String Đơn giá thành tiền tạm tính

- Dữ liệu hành vi vi phạm:

Kiểu Bắt
STT Tham số Mô tả
dữ liệu buộc
1 maHVVP String X Mã hành vi vi phạm
2 maTTND String X Mã thông tư nghị định
3 boSungHVVP String Thông tin bổ sung thêm cho HVVP
4 mucTienPhat String Mức tiền phạt cho HVVP
5 thoiGianVp Date Thời gian xảy ra vi phạm
6 diaDiemVp String Địa điểm xảy ra vi phạm
Ví dụ:
Method: POST
{
    "maBieuMau": "118-2022-nd-cp-bb12",
    "maVuViec": "G01.308.000.000-981-23-000605",
    "maBieuMauCha": "118-2022-nd-cp-qd09",
    "maCha": "G01.308.000.000-981-23-000006",
    "diaDiemLap": "Lê Văn Lương",
    "thoiGianLap": "2023-03-30T02:24:29.000Z",
    "noiDung": {
        "canCu": {
            "bbqd": [
                {
                    "maBieuMau": "118-2022-nd-cp-qd09",
                    "so": "G01.308.000.000-981-23-000006",
                    "ngay": "2023-03-30T02:24:29.000Z",
                    "maNhapTay": null
                }
            ]
        },
        "nguoiCoThamQuyen": {
            "donVi": "G01.308.000.000",
            "capBac": "Hạ sĩ",
            "chucVu": "Cục trưởng",
            "ma": "anhbc"

BCA-C08_XLVP_2023_DD Internal use Trang 633


Tài liệu thiết kế hệ thống V1.0

        },
        "lapXong": {
            "thoiGian": "2023-03-30T08:06:03.097Z",
            "soTo": "2",
            "soBan": "2"
        },
        "lyDoKhongKy": "Tôi đồng ý",
        "doiTuongChungKien": [
            {
                "ten": "NGUYỄN VĂN A",
                "loaiDoiTuong": "CA_NHAN",
                "thongTin": {
                    "ngheNghiep": "00021"
                }
            }
        ],
        "taiSanKeBien": [
            {
                "ten": "Vàng",
                "donViTinh": "Cây",
                "soLuong": 10,
                "tinhTrang": null,
                "ghiChu": null
            }
        ],
        "nguoiPhoiHop": {
            "coQuan": "NGUYỄN VĂN A",
            "ten": "NGUYỄN VĂN A",
            "chucVu": "NGUYỄN VĂN A"
        }
    }
}
Các giá trị trả về là:
Kiểu dữ
STT Tham số Mô tả
liệu
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 634


Tài liệu thiết kế hệ thống V1.0

Danh sách các tang vật của biên bản, tham khảo
9 tangVat List
bảng dữ liệu đầu vào tang vật dưới đây
Danh sách các hành vi vi phạm của BBQD,
10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của biên bản cưỡng chế kê biên
12 noiDung Object tài sản có giá trị tương ứng với số tiền phạt/phải
hoàn trả
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000008",
    "maCha": "G01.308.000.000-981-23-000006",
    "maBieuMauCha": "118-2022-nd-cp-qd09",
    "maNhapTay": null,
    "maVuViec": "G01.308.000.000-981-23-000605",
    "maBieuMau": "118-2022-nd-cp-bb12",
    "thoiGianLap": "2023-03-30T02:24:29.000+00:00",
    "ngayTao": "2023-03-30T08:06:45.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "canBoTao": {
        "email": "abc@gmail.com",
        "userName": "anhbc",
        "ten": "Bùi Anh",
        "capBac": "3.7",
        "chucVu": "003",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.308.000.000-981-23-000605",
        "ten": "BB01",
        "nguon": null,
        "doiTuongViPham": {

BCA-C08_XLVP_2023_DD Internal use Trang 635


Tài liệu thiết kế hệ thống V1.0

            "ten": "NGUYỄN VĂN A",
            "diaChi": {
                "maDiaDanh": ""
            },
            "loaiNgaySinh": "DATE",
            "quocTich": "VN",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": null,
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}
d.15.2.3.1.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao
1 BBQDController.java
tác với biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQĐ
Lớp triển khai chi tiết các phương thức
3 BBQDServiceImpl.java
của BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ
4 BBQDRepository.java
cập nhật liên quan đến BBQĐ
BB12ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQĐ
.java
Lớp làm nhiệm vụ tạo và quản lý tang vật
6 TangVatService.java
của BBQĐ nếu có
Lớp làm nhiệm vụ tạo và quản lý các
7 BBQDHinhThucXuPhatService.java
hình thức xử phạt cho BBQĐ nếu có
Lớp làm nhiệm vụ tạo và quản lý các nội
8 BBQDNoiDungChiTietSevice.java
dung in cho BBQĐ nếu có
- Danh sách các phương thức:

BCA-C08_XLVP_2023_DD Internal use Trang 636


Tài liệu thiết kế hệ thống V1.0

Tên
STT Tên lớp Mô tả
method
BBQDController Cung cấp endpoint tạo mới BBQĐ và điều
1 create
.java hướng đến service tạo BBQĐ
BBQDServiceImpl Thực hiện các thao tác validate, chuẩn hóa
2 create
.java lại dữ liệu và tạo mới BBQĐ
Gọi hàm
BBQDRepository
3 create PKG_BIEN_BAN_QUYET_DINH.CREATE_
.java
BB_QD để tạo BBQĐ trong database

BB01ValidatorSer Kiểm tra tính hợp lệ dữ liệu gửi lên khi tạo
4 isValid
vice.java BBQĐ
TangVatService.ja
5 bulkCreate Tạo các tang vật thuộc BBQĐ
va
BBQDHinhThucX
6 bulkCreate Tạo các hình thức xử phạt cho BBQĐ
uPhatService.java
BBQDNoiDungCh Tạo hoặc cập nhật các nội dung in cho
7 upsert
iTietSevice.java BBQĐ
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.CREATE_BB_QD là một thủ tục được
sử dụng để tạo mới BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50 N
1 P_MA Mã BBQD
CHAR)
P_MA_NHAP_TA VARCHAR2(50 N
2 Mã nhập tay khi tạo BBQD
Y CHAR)
VARCHAR2(50 N
3 P_MA_VU_VIEC Mã vụ việc tạo BBQD
CHAR)
VARCHAR2(50
4 P_MA_CHA N Mã BBQD cha nếu có
CHAR)

BCA-C08_XLVP_2023_DD Internal use Trang 637


Tài liệu thiết kế hệ thống V1.0

P_MA_BIEU_MA VARCHAR2(50
5 N Mã biểu mẫu cha nếu có
U_CHA CHAR)
P_THOI_GIAN_LA
6 DATE N Thời gian lập BBQD
P
VARCHAR2(50
7 P_DIA_DIEM_LAP N Địa điểm lập BBQD
0 CHAR)
8 P_TU_NGAY DATE N Thời gian xử lý từ ngày
9 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_H
10 DATE N Thời gian hoàn thành xử lý
OAN_THANH
VARCHAR2(2
11 P_TRANG_THAI N Trạng thái BBQD
CHAR)
P_MA_DON_VI_C VARCHAR2(25
12 N Mã đơn vị CSGT
SGT 5 CHAR)
P_DIA_CHI_DON_
13 NUMBER(12,0) N Mã địa chỉ đơn vị CSGT
VI_CSGT_ID
VARCHAR2(40
14 P_NOI_DUNG N Nội dung cụ thể của BBQD
00 CHAR)
VARCHAR2(15
15 P_NGUON N Nguồn tạo BBQD
CHAR)
VARCHAR2(40 Thông tin cán bộ tạo
16 P_CAN_BO_TAO N
00 CHAR) BBQD
VARCHAR2(25
17 P_NGUOI_TAO N Tài khoản tạo BBQD
5 CHAR)
Trả về dòng dữ liệu BBQD
18 V_CURSOR CURSOR X
vừa tạo
Hàm CREATE_BB_QD được sử dụng để thêm một bản ghi mới vào bảng
BIEN_BAN_QUYET_DINH. Hàm nhận các tham số đầu vào là thông tin của bản ghi
mới và trả về kết quả thông qua một con trỏ REF_CURSOR.
Đầu ra:
- V_CURSOR: Con trỏ REF_CURSOR trả về bản ghi vừa được thêm vào bảng
BIEN_BAN_QUYET_DINH.

BCA-C08_XLVP_2023_DD Internal use Trang 638


Tài liệu thiết kế hệ thống V1.0

- Hàm này sẽ thêm dữ liệu vào bảng BIEN_BAN_QUYET_DINH với các thông tin
tương ứng từ các tham số đầu vào, sau đó gọi hàm GET_BB_QD_DETAILS để lấy
thông tin bản ghi vừa được thêm và trả về.
d.15.2.3.1.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã vụ việc không tồn tại.
- Mã biểu mẫu không tồn tại.
- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Căn cứ các biên bản quyết định liên quan không có hoặc nhiều hơn 1 biên
bản.
- Lý do không ký biên bản vượt quá 500 ký tự.
- Nội dung BBQD không có.
- Người có thẩm quyển không có.
- Cơ quan phối hợp không có.
Bẫy lỗi ResourceExistedException xảy ra khi:
- Trong vụ việc đã tồn tại biên bản quyết định với mã biểu mẫu như trên và mẫu
BBQD không được lặp lại
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.15.2.3.2. Chỉnh sửa biên bản cưỡng chế kê biên tài sản có giá trị tương ứng với số
tiền phạt/phải hoàn trả
d.15.2.3.2.1. API

Mô tả: Gọi API để chỉnh sửa biên bản cưỡng chế kê biên tài sản có giá trị tương ứng với
số tiền phạt/phải hoàn trả
Method URL
PUT xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

STT Tham số Kiểu dữ liệu Mô tả


1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 639


Tài liệu thiết kế hệ thống V1.0

d.15.2.3.2.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
Lớp làm nhiệm vụ điều hướng các thao tác với
1 BBQDController.java
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQĐ
Lớp triển khai chi tiết các phương thức của
3 BBQDServiceImpl.java
BBQDService.java
Lớp giao tiếp với database làm nhiệm vụ cập
4 BBQDRepository.java
nhật liên quan đến BBQĐ
BB12ValidatorService
5 Lớp kiểm tra tính hợp lệ của BBQĐ
.java
Lớp làm nhiệm vụ quản lý tang vật của BBQĐ
6 TangVatService.java
nếu có
BBQDHinhThucXuPhatS Lớp làm nhiệm vụ quản lý các hình thức xử phạt
7
ervice.java cho BBQĐ nếu có
BBQDNoiDungChiTietSe Lớp làm nhiệm vụ quản lý các nội dung in cho
8
vice.java BBQĐ nếu có
- Danh sách các phương thức:

STT Tên method Tên lớp Mô tả


BBQDController Cung cấp endpoint cập nhật BBQĐ và
1 update
.java điều hướng đến service cập nhật BBQĐ
BBQDServiceIm Thực hiện các thao tác validate, chuẩn
2 update
pl.java hóa lại dữ liệu và cập nhật BBQĐ
Gọi hàm
BBQDRepository
3 update PKG_BIEN_BAN_QUYET_DINH.UPDAT
.java
E_BB_QD để sửa BBQĐ trong database

BB01ValidatorSe Kiểm tra tính hợp lệ dữ liệu gửi lên khi


4 isValid
rvice.java tạo BBQĐ

BCA-C08_XLVP_2023_DD Internal use Trang 640


Tài liệu thiết kế hệ thống V1.0

TangVatService Cập nhật thông tin các tang vật thuộc


5 updateTangVat
.java BBQĐ
BBQDHinhThuc
6 bulkUpdate XuPhatService Cập nhật hình thức xử phạt cho BBQĐ
.java
BBQDNoiDungC Tạo hoặc cập nhật các nội dung in cho
7 upsert
hiTietSevice.java BBQĐ
Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH.UPDATE_BB_QD là một thủ tục được
sử dụng để cập nhật BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Hàm UPDATE_BB_QD được sử dụng để cập nhật thông tin của một BBQD đã có trong
cơ sở dữ liệu.
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2
1 P_MA N Mã BBQD
(50 CHAR)
VARCHAR2
2 P_MA_NHAP_TAY N Mã nhập tay khi tạo BBQD
(50 CHAR)
3 P_THOI_GIAN_LAP DATE N Thời gian lập BBQD
VARCHAR2
4 P_DIA_DIEM_LAP N Địa điểm lập BBQD
(500 CHAR)
5 P_TU_NGAY DATE N Thời gian xử lý từ ngày
6 P_DEN_NGAY DATE N Thời gian xử lý đến ngày
P_THOI_GIAN_HOA
7 DATE N Thời gian hoàn thành xử lý
N_THANH
VARCHAR2
8 P_TRANG_THAI N Trạng thái BBQD
(2 CHAR)
VARCHAR2
9 P_NOI_DUNG N Nội dung cụ thể của BBQD
(4000 CHAR)
10 P_CAN_BO_SUA VARCHAR2 N Thông tin cán bộ sửa BBQD

BCA-C08_XLVP_2023_DD Internal use Trang 641


Tài liệu thiết kế hệ thống V1.0

(4000 CHAR)
VARCHAR2
11 P_NGUOI_SUA N Tài khoản sửa BBQD
(255 CHAR)
Trả về dòng dữ liệu BBQD
12 V_CURSOR CURSOR X
vừa tạo
Output:
- V_CURSOR: Con trỏ tham chiếu đến kết quả BBQD được cập nhật.
d.15.2.3.2.4. Xử lý ngoại lệ

Bẫy lỗi BadRequest xảy ra khi:


- Mã người có thẩm quyền không tồn tại.
- Căn cứ không tồn tại.
Bẫy lỗi ConstraintViolationException khi:
- Căn cứ:
o Căn cứ các biên bản quyết định liên quan không có hoặc nhiều hơn 1 biên
bản.
- Lý do không ký biên bản vượt quá 500 ký tự.
- Nội dung BBQD không có.
- Người có thẩm quyển không có.
- Cơ quan phối hợp không có.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.
d.15.2.3.3. Xem chi tiết biên bản cưỡng chế kê biên tài sản có giá trị tương ứng với số
tiền phạt/phải hoàn trả
d.15.2.3.3.1. API

Mô tả: Gọi API để lấy thông tin chi tiết biên bản cưỡng chế kê biên tài sản có giá trị
tương ứng với số tiền phạt/phải hoàn trả
Method URL
GET xlvp/api/v1/bb-qd/{maBieuMau}/{maBbQd}

STT Tham số Kiểu dữ liệu Mô tả


1 maBieuMau String Mã biểu mẫu
2 maBbQd String Mã biên bản quyết định

BCA-C08_XLVP_2023_DD Internal use Trang 642


Tài liệu thiết kế hệ thống V1.0

Các giá trị trả về là:


STT Tham số Kiểu dữ liệu Mô tả
1 ma String Mã BBQD
2 maVuViec String Mã vụ việc lập BBQD
3 maBieuMau String Mã biểu mẫu BBQD
4 maCha String Mã BBQD cha
5 maBieuMauCha String Mã biểu mẫu cha
6 thoiGianLap Date Thời gian lập BBQD
7 diaDiemLap String Địa điểm lập BBQD
8 maNhapTay String Mã số nhập tay BBQD
Danh sách các tang vật của biên bản, tham
9 tangVat List khảo bảng dữ liệu đầu vào tang vật dưới
đây
Danh sách các hành vi vi phạm của BBQD,
10 hanhViViPham List tham khảo bảng dữ liệu đầu vào Hành vi vi
phạm dưới đây
Danh sách nội dung in hành vi vi phạm của
11 noiDungChiTiet List BBQD, tham khảo bảng dữ liệu đầu vào nội
dung chi tiết dưới đây
Nội dung chi tiết của biên bản cưỡng chế kê
12 noiDung Object biên tài sản có giá trị tương ứng với số tiền
phạt/phải hoàn trả
13 canBoTao Object Thông tin cán bộ tạo BBQD
14 trangThai String Trạng thái BBQD
Ví dụ:
Kết quả trả về:
{
    "ma": "G01.308.000.000-981-23-000008",
    "maCha": "G01.308.000.000-981-23-000006",
    "maBieuMauCha": "118-2022-nd-cp-qd09",
    "maNhapTay": null,
    "maVuViec": "G01.308.000.000-981-23-000605",
    "maBieuMau": "118-2022-nd-cp-bb12",
    "thoiGianLap": "2023-03-30T02:24:29.000+00:00",

BCA-C08_XLVP_2023_DD Internal use Trang 643


Tài liệu thiết kế hệ thống V1.0

    "ngayTao": "2023-03-30T08:06:45.000+00:00",
    "maDonViCsgt": "G01.308.000.000",
    "ngaySua": null,
    "nguon": null,
    "canBoTao": {
        "email": "abc@gmail.com",
        "userName": "anhbc",
        "ten": "Bùi Anh",
        "capBac": "3.7",
        "chucVu": "003",
        "donVi": "G01.308.000.000",
        "diaDanh": "Thượng Thanh - Hà Nội"
    },
    "canBoSua": null,
    "trangThai": "DA_LUU",
    "vuViec": {
        "ma": "G01.308.000.000-981-23-000605",
        "ten": "BB01",
        "nguon": null,
        "doiTuongViPham": {
            "ten": "NGUYỄN VĂN A",
            "diaChi": {
                "maDiaDanh": ""
            },
            "loaiNgaySinh": "DATE",
            "quocTich": "VN",
            "isC06Data": false
        },
        "loaiDoiTuong": "CA_NHAN",
        "phuongTien": null,
        "linhVuc": "DUONG_BO"
    },
    "hasChild": false
}
d.15.2.3.3.3. Mô tả chi tiết

Service:
- Danh sách các lớp sử dụng:
STT Tên lớp Mô tả
1 BBQDController.java Lớp làm nhiệm vụ điều hướng các thao tác với
biên bản quyết định
2 BBQDService.java Interface các xử lý cho BBQĐ
3 BBQDServiceImpl.java Lớp triển khai chi tiết các phương thức của
BBQDService.java
4 BBQDRepository.java Lớp giao tiếp với database làm nhiệm vụ lấy

BCA-C08_XLVP_2023_DD Internal use Trang 644


Tài liệu thiết kế hệ thống V1.0

thông tin chi tiết BBQĐ


- Danh sách các phương thức:
Tên
STT Tên lớp Mô tả
method
Cung cấp endpoint cập nhật BBQĐ và
1 get BBQDController.java
điều hướng đến service cập nhật BBQĐ
Thực hiện các thao tác chuẩn hóa lại dữ
2 get BBQDServiceImpl.java
liệu BBQĐ trước khi trả ra
Gọi hàm GET_BB_QD_DETAILS để lấy
3 get BBQDRepository.java
thông tin chi tiết BBQĐ trong database

Procedure:
- Hàm PKG_BIEN_BAN_QUYET_DINH. GET_BB_QD_DETAILS là một thủ tục
được sử dụng để lấy thông tin chi tiết BBQD trong database.
Các giá trị nhập vào và trả ra gồm:
Nhập/
STT Tham số Kiểu dữ liệu Xuất Mô tả
(N/X)
VARCHAR2(50
1 P_MA N Mã BBQD
CHAR)
VARCHAR2(50
2 P_MA_BIEU_MAU N Mã biểu mẫu BBQD
CHAR)
3 V_CURSOR CURSOR X Trả về dòng dữ liệu BBQD
Output:
- Điều kiện để trả về kết quả phù hợp trong bảng BIEN_BAN_QUYET_DINH phải
bằng với giá trị của biến P_MA, P_MA_BIEU_MAU và cột IS_DELETED của
bảng BIEN_BAN_QUYET_DINH phải là 0.
d.15.2.3.3.4. Xử lý ngoại lệ

Bẫy lỗi ResourceDoesNotExistException khi:


- Mã BBQD + mã biểu mẫu không tồn tại trên hệ thống.
- BBQD đã được đánh dấu IS_DELETED = 1.
Ngoài ra các xử lý ngoại lệ được dùng chung toàn bộ dự án.

BCA-C08_XLVP_2023_DD Internal use Trang 645


Tài liệu thiết kế hệ thống V1.0

d.15.2.3.4. In biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần In của Biên bản 01


d.15.2.3.5. Xóa biên bản xác định giá trị tang vật, phương tiện vi phạm hành chính

Tham khảo phần Xóa của Biên bản 01

BCA-C08_XLVP_2023_DD Internal use Trang 646

You might also like