4 màn hình của module sh-exchange trên WS hub. Dữ liệu minh hoạ = đợt thật 23–29/06/2026 của Vĩnh An (7 khóa ô tô · 582 hồ sơ · 318 đạt / 264 rớt — nguồn BC/FILE BC OTO/). Mọi nút gate theo permission sh-exchange.exchange.<feature>.<action> — chuẩn HRM, không hardcode.
| Đợt | Ngày thi | Khóa | Hồ sơ | Trạng thái vòng | File | Cảnh báo | |
|---|---|---|---|---|---|---|---|
| SH ô tô 29/06 · kỳ 4051962036 | 29/06/2026 | 7 | 582 | Có kết quả | 18 đi · 7 về | — | ⋮ |
| SH A1 10/07 · kỳ 4051962037 | 10/07/2026 | 3 | 432 | Có kết quả | 6 đi · 4 về | — | ⋮ |
| SH ô tô 26/07 | 26/07/2026 | 4 | 310 | Đã gửi BC2 | 9 đi · 0 về | BC2 −7: còn 6 ngày | ⋮ |
| SH ô tô 08/2026 (dự kiến) | — | 2 | ~180 | Chuẩn bị | 2 đi · 0 về | Chưa gửi DAT (−10) | ⋮ |
| # | Hành vi | Chi tiết |
|---|---|---|
| A1 | Chọn trung tâm | User 1 center (data scope) → select khóa cứng, ẩn luôn nếu chỉ có quyền 1 center; HUB_ADMIN/PC08 thấy tất cả |
| A2 | Badge trạng thái vòng | xám chuan_bi · xanh dương da_gui · vàng da_duyet/co_sbd · xanh lá co_ket_qua/dong |
| A3 | Cột cảnh báo (P2) | Đếm ngược mốc cứng DAT −10 · BC2 −7 ngày so với ngày thi; đỏ khi trễ |
| A4 | Nút "+ Tạo đợt" | gate batch.create; xóa/đóng gate batch.delete/close trong menu ⋮ |
| Hướng | Loại | File | Khóa | Bản ghi | Parse | Người · ngày | |
|---|---|---|---|---|---|---|---|
| ĐI | BC1 | BC1_40023_40_40023K26B0116.xml (+zip) | B.01K576 | 96 | OK | Nga · 13/06 | ⬇ |
| ĐI | BC2 | BC2_40023_40_40023K26B021.xml | BK941 | 64 | OK | Nga · 16/06 | ⬇ |
| ĐI | CONG_VAN | Mẫu bao cao đăng ký sh 23.06.xlsx · 694/TTĐT-VA | — | — | đính kèm | Chi · 13/06 | ⬇ |
| ĐI | BIEN_BAN | 1.3 Biên bản kiểm tra hồ sơ 23.06.docx | — | 582 | đính kèm | Chi · 10/06 | ⬇ |
| VỀ | KQBC2 | KQBC2_40_40023_20260625145503.xml | nhiều | 394 | OK | Nga · 25/06 | ⬇ |
| VỀ | SBD | SBD 23.06.xlsx | — | 582 | xác nhận tay | Nga · 23/06 | ⬇ |
| VỀ | SAT_HACH | 40_40023_4051962036.xml | — | 582 | OK | Chi · 30/06 | ⬇ |
| … 18 file khác (BC1×6 · BC2×6 · KQBC2×3 · công văn 706 · DS hợp lệ · tình trạng) | |||||||
| # | Hành vi | Chi tiết |
|---|---|---|
| B1 | Stepper vòng khứ hồi | Suy tự động từ file đã nhận (upload KQBC2 → da_duyet); click bước = sửa tay khi lệch (gate batch.edit) |
| B2 | KPI đếm từ entry | 582/582/0/318/264 — realtime theo parse, không nhập tay |
| B3 | File immutable | Không sửa/ghi đè — upload bản mới, bản cũ giữ vết; delete gate file.delete (chỉ CENTER_MANAGER) và chỉ khi chưa khớp entry |
| B4 | Tab Đối soát có badge ⚠ | Hiện số dòng lệch chưa xử lý |
| MA_DK · SO_HO_SO | Họ tên | Khóa · hạng | KQ duyệt | SBD | KQ thi | L·M·H·Đ | Số GPLX |
|---|---|---|---|---|---|---|---|
| 26B021-0342 · 0342/26 | Nguyễn Văn T. | BK941 · B | Hợp lệ | B0117 | ĐẠT | 28 · Đ · Đ · 92 | 7902xxxxxx |
| 26B021-0343 · 0343/26 | Trần Thị H. | BK941 · B | Hợp lệ | B0118 | RỚT | 26 · Đ · R · — | — |
| 26D2005-0017 · 0017/26 | Lê Văn Q. thi lại L+M+H+Đ | C1-D2K244 · D2 | Hợp lệ | D2031 | ĐẠT | 30 · Đ · Đ · 95 | 7902xxxxxx |
| … phân trang 582 hồ sơ · click dòng = drawer chi tiết (nhân thân + GPLX đã có + lịch sử thông điệp) | |||||||
| Kiểm tra | Nguồn | Kết quả | |
|---|---|---|---|
| Số hồ sơ gửi = số duyệt | BC2 (582) ↔ KQBC2 (582) | KHỚP | |
| Hồ sơ hợp lệ = có SBD | KQBC2 (582) ↔ SBD (582) | KHỚP | |
| Kết quả thi khớp hồ sơ đợt | SAT_HACH (582) ↔ BC2 | LỆCH 1 | Xem |
| Đạt + rớt = tổng dự thi | 318 + 264 = 582 | KHỚP |
| # | Hành vi | Chi tiết |
|---|---|---|
| C1 | Entry chỉ đọc | Sinh/cập nhật từ parse — không sửa tay (nguồn sự thật = file); export gate entry.export |
| C2 | Không khớp → danh sách lệch | KQBC2/SAT_HACH không khớp entry → vào bảng lệch, KHÔNG tự tạo entry mới (quy tắc §6.3 doc thiết kế) |
| C3 | Nội dung thi | Bảng mã L=Lý thuyết · M=Mô phỏng · H=Hình · Đ=Đường; "thi lại L+M+H+Đ" từ file tình trạng |
| # | Hành vi | Chi tiết |
|---|---|---|
| D1 | Tự phân loại | BC1_*→BC1 · BC2_*→BC2 · KQBC2_*→KQBC2 · 40_* root <SAT_HACH>→SAT_HACH · xlsx/docx→gợi ý theo tên, người dùng xác nhận (như SBD ở B) |
| D2 | Parse TRƯỚC khi lưu | Hiện preview thống kê + lỗi (thiếu MA_DK, sai center 40023…) — người dùng thấy trước hậu quả rồi mới Xác nhận |
| D3 | Sai center → chặn | MA_CSDT trong file ≠ center của đợt → từ chối, không cho ghi nhầm dữ liệu trung tâm khác |
| D4 | Gate | Nút upload gate file.upload; PC08_OFFICER (P3) chỉ upload chiều VỀ |