Tài liệu mô tả thực thể dữ liệu, luồng nghiệp vụ bảo dưỡng / sửa chữa, và đề xuất thiết kế cơ sở dữ liệu
bám theo bản xem thử
console-v4.
Prototype lưu seed trên trình duyệt (localStorage) — đây là bản đồ để chuyển sang hệ thống thật.
Hệ thống tách rõ dữ liệu nền (master), giao dịch vận hành (nhắc · kế hoạch · phiếu · đánh giá),
và cầu nối hệ thống ngoài (PWMS kho / mua hàng, BASE duyệt, GPS odo).
Master / danh mụcGiao dịch TMSHệ thống ngoàiQuyết định / trạng thái
Lớp 1 · Master
Xe · Hệ thống · Vật tư · Nội dung SC · Loại DV · Tiêu chí ĐG · Danh mục BD · Barem giờ
Khai báo một lần; gắn xe ↔ danh mục; ánh xạ Object ID PWMS.
↓
Lớp 2 · Vận hành
Nhắc BD · Kế hoạch / mẫu · Phiếu BD·SC · Đánh giá định kỳ · SERI lốp/ắc
Tạo từ master + mốc chu kỳ / sự cố / đánh giá; lưu trạng thái duyệt & thực hiện.
↓
Lớp 3 · Đồng bộ
BASE (duyệt) · PWMS / mua hàng (giá · chứng từ · tồn) · GPS (odo)
TMS kéo dữ liệu mua hàng theo mã phiếu; đẩy trạng thái / mã sang BASE (mô phỏng trên demo).
Nguyên tắc prototype: cụm vật tư dự kiến (kỹ thuật nhập) và cụm mua hàng (sau đồng bộ) không ghi đè nhau.
Mọi phiếu đều phải đồng bộ mua hàng — kể cả chỉ vật tư kỹ thuật viên ghi tay.
2. Catalogue thực thể dữ liệu
Ánh xạ trực tiếp các khóa trong object DB của console-v4 (seed + localStorage).
DM gắn xe: chỉ bỏ chọn. Dòng trống: luôn chọn + có xóa.
↓
Quyết định
Đồng bộ BASE kế hoạch → tạo phiếu BD (gom/tách)
↓
orders (PERIODIC)
Duyệt → bắt đầu → hạng mục → odo → hoàn thành
Cập nhật catState (occurrence, next mốc). Đồng bộ MH + BASE phiếu.
3.2 Sửa chữa
Nguồn vào
Sự cố TX · Đánh giá định kỳ · KTV chủ động · Từ nhắc / KH
↓
orders (INCIDENTAL) nháp
workItems + materials (nhập tự do / autocomplete)
Hình thức XK / SN hệ thống gợi ý theo tồn khi khớp danh mục.
↓
Chu kỳ duyệt
Nộp → Duyệt / Từ chối → (sửa + nộp lại)
↓
Thực hiện
START → đồng bộ MH → hoàn thành WI → COMPLETE
↓
Ra ngoài
purchaseMaterials ← PWMS/MH · baseSync → BASE
3.3 Luồng vật tư trên phiếu
Bước
Dữ liệu đọc
Dữ liệu ghi
KTV nhập / chọn autocomplete
materials · localLookups.materials
orders.materials[] (qty ≥ toi_thieu nếu từ master)
Đồng bộ mua hàng
materials (giá / NCC) · mã phiếu
purchaseMaterials[] · purchaseSync=SYNCED
Báo cáo chi phí
Ưu tiên sum(purchaseMaterials); fallback materials dự kiến
orders.cost
4. Sơ đồ liên kết bảng (ER diagram)
Sơ đồ quan hệ đầy đủ cột (PK / FK / kiểu dữ liệu). Chọn tab để xem toàn cảnh hoặc phóng từng cụm.
Kéo nền để pan · nút ± / bánh xe để zoom · Vừa khung để căn lại.
Master / danh mụcGiao dịch vận hànhBảng dòng / junctionÁnh xạ hệ thống ngoài
Schema quan hệ đề xuất khi chuyển prototype → backend. Tên bảng tiếng Anh kỹ thuật; mô tả tiếng Việt.
Khóa chính PK · khóa ngoại FK. Xem liên kết tổng thể ở mục Sơ đồ liên kết.
5.1 Bảng master
vehicle
idbigint PK
platevarchar · unique
is_trailerbool
brand / model / year
odo_km / engine_hoursnumeric
avg_km_per_monthnumeric · nullable
garage / area / gps_site
trailer_vehicle_idFK → vehicle
material
idbigint / uuid PK
codevarchar · unique
name / uom
ref_price / vatnumeric
min_qtynumeric · toi_thieu ≥ 1
supplier / warehouse
stock_qtycache từ PWMS
pwms_group / systemnhom · he_thong
requires_serialbool · lốp/ắc
maint_catalog
idPK
code / name
system_idFK → vehicle_system
default_on_eval_badREPAIR|REPLACE
maint_catalog_rule
idPK
catalog_idFK
seqint
rule_typeKM | MONTH
valuenumeric
force_replace / repeatbool
max_occurrencesint · null = ∞
5.2 Bảng trạng thái & kế hoạch
vehicle_catalog_state
vehicle_id + catalog_idPK kép
occurrenceint
last_km / last_date
next_km / next_datemốc nhắc
planned_date_overridenullable
plan_line
idPK
vehicle_idFK
catalog_idnullable
periodYYYY-MM
content / service
qty / uom / unit_price / vat
schedule_datedate
work_order_idnullable · đã tạo phiếu
base_sync_status / code
plan_line_material
idPK
plan_line_idFK
material_idnullable
code / name / qty / uomqty ≥ min_qty khi có material_id
plan_template
idPK
name / period
vehicle_type / brand / modeláp dụng hàng loạt
seed_vehicle_id
items JSON / bảng conhạng mục mẫu
5.3 Bảng phiếu công việc
work_order
idPK
codeunique · RO-… / PBD-…
vehicle_idFK
order_kindMAINT | REPAIR
sourceINCIDENT|PLAN|EVAL|…
approval_statusenum
exec_statusenum
odo_km / garage / content
catalog_idnullable
started_at / completed_at
material_requested_at / ready_at4 mốc
costnumeric · derived
revisionint
work_order_item
idPK
work_order_idFK
system / content / service
performerKTV
barem_hours / actual_hours
started_at / completed_at
statusTODO|DOING|DONE
work_order_material
idPK · cụm dự kiến
work_order_idFK
material_idnullable
sourcePWMS|EXTERNAL|TECHNICIAN
qty / uom / price / vatqty ≥ min_qty
local_onlybool
work_order_purchase_line
idPK · cụm MH
work_order_idFK
planned_material_idnullable
price / supplier / warehousetừ MH
purchase_doc_codeXK-… / MH-…
issued_attimestamp
work_order_sync
work_order_idPK/FK
purchase_statusNONE|SYNCING|SYNCED|FAILED
purchase_synced_at / issue_doc
base_status / base_code
base_synced_at
work_order_approval_log
idPK
work_order_idFK
actionCREATE|SUBMIT|APPROVE|…
at / by / note
changes_jsondiff cũ→mới
5.4 Chỉ mục & ràng buộc gợi ý
Đối tượng
Ràng buộc / index
vehicle
UNIQUE(plate); INDEX(is_trailer, area)
material
UNIQUE(code); CHECK(min_qty > 0)
work_order_material
CHECK: nếu material_id NOT NULL thì qty ≥ material.min_qty
CHECK purchase_status ≠ 'NA' (mọi phiếu đều phải đồng bộ MH)
Ghi chú triển khai: Prototype chưa có master người dùng / vai trò — production cần thêm
app_user, role, và bảng phân quyền trước khi gắn
approval_log.by / performer KTV vào tài khoản thật.
6. Biên hệ thống ngoài (đồng bộ)
Trên demo chỉ mô phỏng. Hướng tích hợp thật (xem thêm IT · API PWMS).