INTERNAL DEV ONLY Đối chiếu Implementation vs SRS TXNG-F30 Dashboard (WBS 2.13.2)

BẢN SO SÁNH: IMPLEMENTATION vs TÀI LIỆU — TXNG-F30 Dashboard ​

Thông tin Chi tiết
Chức năng TXNG-F30 — Dashboard Tổng hợp Truy xuất Nguồn gốc
Ngày lập 19/05/2026
Phạm vi Đối chiếu UI + logic lấy data hiện có trên web với BRD/SRS
Tài liệu gốc docs/brd/BRD_TXNG-F30_Dashboard_Tong_Hop_TXNG.md, docs/srs/SRS_TXNG-F30_Dashboard_Tong_Hop_TXNG.md
Mục đích Liệt kê thừa / thiếu / chưa khớp theo từng dashboard

Chú thích: ✅ khớp · ⚠️ lệch/khác · ❌ thiếu · ➕ thừa (implementation có, tài liệu không nêu)

Lưu ý: SRS có mâu thuẫn nội bộ — §4.1 + §1.4.2 (L4) + BRD ghi 8 KPI card/dashboard, nhưng bảng chi tiết §5.x liệt kê chỉ 6 stat card. Implementation theo §4/§1.4 + BRD (8 card). Cột "Tài liệu" trong bảng KPI dưới đây lấy theo bảng chi tiết SRS §5.


A. Cấp kiến trúc (áp dụng toàn bộ 8 dashboard) ​

Hạng mục Tài liệu Implementation Đánh giá
8 sub-dashboard SCR-F30-01..08 Đủ 8 ✅
KPI Strip BRD/SRS§4: 8 card · SRS§5: 6 card 8 card (Quản lý NN còn 7) ⚠️ SRS tự mâu thuẫn; impl theo BRD
FilterBar primary DN / Vùng SX / Sản phẩm / Kỳ phân tích DN / Tỉnh / Loại SP / Kỳ ⚠️ "Vùng SX"→"Tỉnh", "Sản phẩm"→"Loại SP"
FilterBar secondary Loại lô / Trạng thái / GTIN / Vùng GIS Rỗng (EMPTY_SECONDARY_FIELDS) ❌ Thiếu toàn bộ bộ lọc nâng cao
BreadcrumbContextBar Có Có ✅
So sánh kỳ liền kề Có Có ✅
NestedDrillDownModal (SCR-F30-09) Có Có ✅
PersonalizationPanel (SCR-F30-10) Có Có ✅
Export PDF / Excel / CSV Có Có ✅
Chia sẻ URL Có Có ✅
Nút "Làm mới" (bỏ qua cache) Không nêu Có ➕ Bổ sung hợp lý
Map GIS Leaflet (SCR-05, 08) Bắt buộc — BR_REQ-F30-11/12 Không có ❌ Thiếu hẳn
Widget Điều Chuyển Nội Bộ F33 (SCR-05) Bắt buộc — BR_REQ-F30-10 Không có ❌ Thiếu
Bảng dữ liệu mỗi dashboard SRS §5: 1 table/dashboard Thể hiện bằng chart cột ngang ⚠️ Khác cách trình bày
Số section/dashboard SRS §4.1: Tổng quan "18–22 section" 6–8 section ⚠️ Ít hơn SRS §4.1 (vẫn trong 6–25 của BRD)
Lọc "Loại sản phẩm" — Lọc theo keyword trong tên SP ⚠️ Bản chất là proxy keyword
Trường batch_type FE batch form CÓ thu thập ("Vui lòng chọn loại lô") Prisma Batch KHÔNG có cột; BE batches không tham chiếu ❌ Chưa khớp — loại lô có thể không được lưu DB
Scope đa tenant (ENTERPRISE_* theo enterprise_id) BR_RULE-F30-01 Hiện chỉ admin truy cập; chưa auto-scope ⏸ Hoãn — không phải lỗi ở trạng thái admin-only

B. Chi tiết từng dashboard ​

1. SCR-F30-01 — Tổng quan TXNG ​

KPI (SRS §5.1.1: 6 card ↔ Implementation: 8 card)

Tài liệu (SRS) Implementation Đánh giá
total_enterprises (Tổng DN) total_dn (Tổng DN) ✅
traceability_rate (Tỷ lệ truy xuất đạt chuẩn) — (gần với trust_avg) ❌ Thiếu đúng chỉ số
active_batches (Lô đang hoạt động) — ❌ Thiếu
total_qr_scans (Tổng lượt quét QR) — ❌ Thiếu
active_recalls (Thu hồi đang xử lý) — ❌ Thiếu
unresolved_alerts (Cảnh báo chưa giải quyết) — ❌ Thiếu
— total_sp, total_lot, comp_rate, chain_active, violations_ytd, chain_disrupt, trust_avg ➕ Thừa 7

Chart (SRS §5.1.3: 4 chart + 1 table)

Tài liệu Implementation Đánh giá
Line xu hướng tỷ lệ truy xuất 12 tháng ov-02 line ✅
Donut phân bố lô theo loại hình SX ov-05 donut ⚠️ Có nhưng để trống (không có field batch_type)
Stacked bar lô SX theo trạng thái & tháng ov-03 stacked ✅
Bar top 10 DN theo số lô ov-04 hbar ✅
Table cảnh báo gần nhất ov-07 hbar ⚠️ Làm bằng chart thay table
— ov-01 donut ngành hàng, ov-06 heatmap Tỉnh×Tháng, ov-08 radar (trống) ➕ Thừa 3

2. SCR-F30-02 — Sản xuất & Kế hoạch ✅ (khớp tốt nhất) ​

KPI (SRS §5.2.1: 6 ↔ Impl: 8)

Tài liệu Implementation Đánh giá
total_production / total_lots / avg_yield total_prod / total_lots / avg_yield ✅
completed_plans / overdue_plans / growth_rate plan_done / plan_overdue / growth ✅
— top_sp, cost ➕ Thừa 2

Chart (SRS §5.2.3: 5 chart)

Tài liệu Implementation Đánh giá
Grouped Bar Kế hoạch vs Thực tế pr-01 stacked_bar ⚠️ Khác kiểu (grouped → stacked)
Line xu hướng sản lượng pr-02 line ✅
Donut tỷ trọng sản lượng theo loại pr-03 donut ⚠️ Có nhưng để trống
Bar top 10 SP sản lượng pr-04 hbar ✅
Stacked nhật ký SX theo loại hình pr-05 stacked ⚠️ Có nhưng để trống
— pr-06 heatmap năng suất ➕ Thừa 1

3. SCR-F30-03 — Lô mã & Tồn kho ✅ ​

KPI (SRS §5.3.1: 6 ↔ Impl: 8): cả 6 khớp ✅ (total_batch, active_batch, stock_total, expiring, recalled, quality_pass). ➕ Thừa: avg_lifetime, warehouse_use.

Chart (SRS §5.3.2: 4 + table)

Tài liệu Implementation Đánh giá
Donut phân bố lô theo trạng thái bs-01 donut ✅
Stacked lô mới theo tháng & loại bs-02 stacked ⚠️ Có nhưng để trống
Bar tồn kho theo kho hàng bs-03 hbar ✅
Line xu hướng tỷ lệ chất lượng đạt bs-04 line ✅
Table lô sắp hết hạn bs-06 hbar ⚠️ Làm bằng chart
— bs-05 heatmap loại×kho (trống) ➕ Thừa 1

4. SCR-F30-04 — Mã hoá & Tem ✅ ​

KPI (SRS §5.4.1: 6 ↔ Impl: 8): cả 6 khớp ✅ (qr_total, scans_total, scans_today, stamps_total, stamps_active, cte_count). ➕ Thừa: scan_rate, avg_scan_time.

Chart (SRS §5.4.2: 4 + table)

Tài liệu Implementation Đánh giá
Line lượt quét QR 30 ngày cs-01 line ✅
Donut phân bố trạng thái tem cs-02 donut ✅
Bar mã QR tạo mới theo tháng cs-03 stacked ⚠️ Khác kiểu (bar → stacked)
Pie phân bố thiết bị quét cs-04 donut "mức độ quét" ⚠️ Đổi nội dung — DB không có data thiết bị
Table QR quét nhiều nhất cs-05 hbar ⚠️ Làm bằng chart
— cs-06 heatmap Tỉnh×Tháng ➕ Thừa 1

5. SCR-F30-05 — Chuỗi cung ứng ⚠️ ​

KPI (SRS §5.5.1: 6 ↔ Impl: 8)

Tài liệu Implementation Đánh giá
total_shipments / total_warehouses / total_sale_points shipments / warehouses / pos ✅
in_transit (Đơn đang vận chuyển) — ❌ Thiếu
active_vehicles (Phương tiện hoạt động) — ❌ Thiếu
distribution_partners (Đối tác phân phối) — ❌ Thiếu
— chains, on_time, cold_chain, disrupt, cross_dn ➕ Thừa 5

Chart (SRS §5.5.2: 4 chart + Map + 2 widget F33)

Tài liệu Implementation Đánh giá
Grouped Bar đơn vận chuyển theo trạng thái sc-01 line ⚠️ Khác kiểu + nội dung
Donut phân bố điểm bán theo khu vực sc-02 donut loại xe ⚠️ Khác nội dung
Bar top 10 kho theo lượng xuất sc-04 hbar top điểm bán tồn kho ⚠️ Khác nội dung
Leaflet Map mạng lưới phân phối — ❌ Thiếu
Widget Điều Chuyển Nội Bộ F33 — ❌ Thiếu
Widget Cân Bằng Tồn Kho Chuỗi F33 sc-06 donut cân bằng tồn kho ⚠️ Một phần
— sc-03 heatmap (trống), sc-05 stacked sự cố lạnh ➕ Thừa 2

6. SCR-F30-06 — Truy vết & Thu hồi ⚠️ ​

KPI (SRS §5.6.1: 6 ↔ Impl: 8)

Tài liệu Implementation Đánh giá
total_tracebacks / avg_traceback_time / active_recalls / recall_completion_rate traces_total / avg_trace_time / recall_active / recall_rate ✅
successful_tracebacks (Truy vết thành công) — ❌ Thiếu
affected_quantity (SP bị ảnh hưởng — kg/tấn) affected_lots (đếm theo lô) ⚠️ Khác đơn vị
— recall_completed, cost_recall, time_to_close ➕ Thừa 3

Chart (SRS §5.6.2: 4 chart)

Tài liệu Implementation Đánh giá
Line dual-axis truy vết + thu hồi rt-01 line đơn ⚠️ Khác (đơn trục)
Donut phân bố thu hồi theo mức độ rt-02 donut ✅
Bar nguyên nhân thu hồi phổ biến — ❌ Thiếu
Bar thời gian xử lý thu hồi theo loại — ❌ Thiếu
— rt-03 (trống), rt-04 top lô, rt-05 tỷ lệ thu hồi, rt-06 heatmap ➕ Thừa 4

7. SCR-F30-07 — Tích hợp & Đồng bộ ✅ ​

KPI (SRS §5.7.1: 6 ↔ Impl: 8): cả 6 khớp ✅ (sync_total, sync_success, sync_fail, certs_active, certs_expiring, cte_logged). ➕ Thừa: latency_p95, integrations.

Chart (SRS §5.7.2: 4 chart)

Tài liệu Implementation Đánh giá
Line khối lượng đồng bộ 30 ngày it-01 line ✅ (impl theo tháng)
Stacked kết quả đồng bộ theo loại dữ liệu it-02 donut lỗi đồng bộ ⚠️ Khác
Donut chứng chỉ theo tiêu chuẩn it-03 stacked chứng chỉ ⚠️ Khác kiểu
Bar tỷ lệ lỗi đồng bộ 8 tuần — ❌ Thiếu
— it-04 cert sắp hết hạn, it-05 P95 latency, it-06 heatmap CTE ➕ Thừa 3

8. SCR-F30-08 — Quản lý Nhà nước ⚠️ ​

KPI (SRS §5.8.1: 6 ↔ Impl: 7 — đã bỏ tcvn_compliance)

Tài liệu Implementation Đánh giá
valid_cert_rate (Tỷ lệ DN có chứng chỉ) comp_avg (Tỷ lệ chứng chỉ hợp lệ) ✅
sync_coverage (Tỷ lệ đồng bộ QG) dn_coverage (% DN có định danh DID) ⚠️ Gần đúng
total_enterprises (DN trên địa bàn) — ❌ Thiếu
full_trace_rate (Lô truy xuất đầy đủ) — ❌ Thiếu
recall_incidents (Sự cố thu hồi trong kỳ) — ❌ Thiếu
new_onboarding (DN mới đăng ký) — ❌ Thiếu
— violations, audits_done, reports_due, reports_done, alerts ➕ Thừa 5

Chart (SRS §5.8.3: 5 chart)

Tài liệu Implementation Đánh giá
Bar DN theo quận/huyện — ❌ Thiếu
Line + Bar xu hướng DN tham gia gm-02 line compliance ⚠️ Khác nội dung
Radar chỉ số tuân thủ TCVN 12850 gm-01 radar ⚠️ Có nhưng để trống
Donut tỷ lệ chứng chỉ theo tiêu chuẩn gm-06 donut trạng thái sync ⚠️ Khác nội dung
Leaflet Map phủ sóng DN gm-05 heatmap ⚠️ Heatmap thay Map
— gm-03 stacked thu hồi theo mức độ, gm-04 top DN ➕ Thừa 2

C. Tổng kết ​

Nhóm vấn đề Mức độ
Khung kiến trúc 8 lớp UX (filter / KPI strip / section / drill / personalization / export) ✅ Đạt
Bộ KPI: SX-KH / Lô-Tồn / Mã-Tem / Tích hợp khớp tốt SRS ✅
Bộ KPI: Tổng quan / Chuỗi CC / Truy vết / Quản lý NN lệch nhiều SRS §5 ⚠️
Bộ lọc secondary (Loại lô / Trạng thái / GTIN / Vùng GIS) ❌ Thiếu hẳn
Map GIS Leaflet (SCR-05, SCR-08) ❌ Thiếu
Widget Điều Chuyển Nội Bộ F33 (SCR-05) ❌ Thiếu
Chart SRS yêu cầu nhưng chưa có: nguyên nhân thu hồi, thời gian xử lý recall, tỷ lệ lỗi 8 tuần, Bar DN theo huyện ❌ Thiếu 4
9 section để trống do không có nguồn data thật (7 phân loại loại SP + 2 radar TCVN) ⚠️ Có khung, chưa có data
batch_type: FE form thu thập nhưng schema Batch không lưu ❌ Chưa khớp

Nhận định ​

Implementation bám đúng khung kiến trúc BRD/SRS, nhưng bộ KPI/chart cụ thể là một thiết kế riêng, lệch đáng kể so với bảng chi tiết SRS §5 (vốn là nội dung v1.0 chưa được cập nhật đồng bộ với phiên bản mới).

2 hướng xử lý ​

  1. Cập nhật tài liệu theo code: viết lại SRS §5 (bảng KPI + chart) cho khớp implementation thực tế; ghi rõ Map GIS / widget F33 / filter secondary lùi sang phiên bản sau.
  2. Bổ sung code theo tài liệu: thêm bộ lọc secondary, Map GIS Leaflet, widget Điều Chuyển Nội Bộ F33, 4 chart còn thiếu; thêm cột batch_type vào schema Batch để 7 section phân loại loại SP có data thật.

Việc nền tảng cần làm trước (chung cho cả 2 hướng) ​