Giao diện
Kế hoạch xếp hàng (Load Plans)
Tối ưu xếp hàng vào container bằng thuật toán bin-packing 3D — xuất sơ đồ PDF gửi kho. Route: /load-plans.
Tổng quan
Load Plan giải quyết bài toán: xếp bao nhiêu kiện hàng vào container nào, theo thứ tự nào, để tối ưu không gian và an toàn hàng hóa.
Tính năng chính:
| Tính năng | Mô tả |
|---|---|
| Bin-packing 3D | Thuật toán tự động xếp kiện hàng vào container |
| Ưu tiên hàng dễ vỡ | Kiện nặng xuống dưới, hàng dễ vỡ lên trên |
| Sơ đồ xếp hàng | Visualize 3D vị trí từng kiện trong container |
| Xuất PDF | Bản hướng dẫn xếp hàng gửi cho kho/tài xế |
| Multi-container | Phân bổ hàng tối ưu qua nhiều container |

Editor sơ đồ chi tiết
Mở một Load Plan cụ thể để xem editor 3D đầy đủ — trình tự xếp từng kiện, chỉ số CBM và tải trọng theo từng layer.

Tạo Load Plan
Cách tạo:
- Từ chi tiết Booking → tab Load Plan → + Tạo Load Plan
- Import danh sách kiện hàng từ Packing List (AI extract tự động) hoặc nhập tay
- Chọn loại container target (20DC / 40HC...)
- Click Tính toán → thuật toán chạy bin-packing
- Xem kết quả: utilization %, sơ đồ 3D, thứ tự xếp
- Điều chỉnh thủ công nếu cần (kéo thả kiện hàng)
- Xuất PDF
Thông tin từng kiện hàng:
| Trường | Đơn vị | Ghi chú |
|---|---|---|
| Chiều dài | cm | Kích thước ngoài (kể cả pallet nếu có) |
| Chiều rộng | cm | — |
| Chiều cao | cm | — |
| Trọng lượng | kg | Gross weight |
| Số lượng | thùng/kiện | — |
| Có thể lật | Có/Không | Hàng có nhãn "This side up" → Không |
| Xếp chồng | Có/Không | Hàng mỏng, dễ bẹp → Không |
Import từ Packing List
Upload Packing List → AI extract tự động chiều dài, rộng, cao, trọng lượng từng item. Tiết kiệm nhập tay khi nhiều loại hàng.
Kết quả & tối ưu
Chỉ số sau khi tính toán:
| Chỉ số | Ý nghĩa | Tốt khi |
|---|---|---|
| Volume utilization | % thể tích container đã dùng | > 80% |
| Weight utilization | % tải trọng container đã dùng | < 95% (an toàn) |
| Số container cần | Tổng container cho toàn bộ hàng | Tối thiểu |
| Unplaceable items | Kiện không xếp được (quá lớn) | = 0 |
Điều chỉnh thủ công:
- Kéo thả kiện hàng sang vị trí khác trong sơ đồ 3D
- Lock vị trí kiện hàng quan trọng (hàng nguy hiểm, refrigerated) trước khi tính lại
- Thêm/bớt kiện hàng và chạy lại thuật toán

Xuất PDF
Nội dung PDF xuất ra:
- Sơ đồ xếp hàng nhìn từ trên xuống và nhìn từ cạnh
- Danh sách kiện hàng theo thứ tự xếp (kiện xếp cuối ghi ở đầu)
- Trọng lượng và kích thước từng vị trí
- Ghi chú đặc biệt (hàng nguy hiểm, nhiệt độ, hướng đặt)
Cách xuất:
- Từ trang Load Plan đã tính xong → nút Xuất PDF
- Chọn ngôn ngữ: Tiếng Việt / English
- File PDF download — gửi cho kho hàng và tài xế
Yêu cầu gói
Load Plan 3D là add-on — cần gói FORWARDER + add-on Load Plans. Xem Gói dịch vụ.
Thuật toán bin-packing
Hệ thống dùng extreme-point heuristic — thuật toán tham lam đặt từng kiện hàng vào điểm "cực trị" (góc, cạnh) còn trống trong container:
- Sắp xếp kiện hàng theo thứ tự: nặng nhất trước, cao nhất trước
- Với mỗi kiện: thử tất cả extreme points còn trống
- Chọn vị trí tối ưu: ưu tiên góc trái-dưới-trước (stability)
- Kiểm tra ràng buộc: stackability, orientation, weight per layer
- Đặt kiện → cập nhật danh sách extreme points mới
Ràng buộc vật lý:
| Ràng buộc | Mô tả |
|---|---|
| Stackability | Kiện có stackable=false không đặt kiện khác lên trên |
| Orientation | Kiện có rotatable=false giữ nguyên hướng |
| Weight per layer | Không vượt quá tải trọng lớp dưới |
| Khoảng cách container | Gap 2cm mỗi bên để tránh cọ sát vách |
| Chiều cao max | Chiều cao kiện không vượt chiều cao container nội bộ |
Catalog hàng hóa (Cargo Items)
Lưu thông tin kích thước hàng hóa để tái sử dụng — không cần nhập lại mỗi lần.
Cách thêm vào catalog:
- Vào
/load-plans/catalog→ + Thêm mặt hàng - Điền tên, kích thước, trọng lượng, flags (stackable, rotatable)
- Lưu → catalog available cho mọi Load Plan trong workspace
Nguồn kích thước:
| Nguồn | Ưu tiên |
|---|---|
| Trích xuất từ Packing List (AI) | Cao nhất — dùng nếu có |
| Catalog workspace | Trung bình — dùng nếu không có PL |
| Nhập tay | Thấp nhất — dùng khi không có nguồn trên |
Spawn container từ Load Plan
Sau khi xác nhận Load Plan (trạng thái CONFIRMED):
- Hệ thống tự tạo Container records tương ứng với số container trong Load Plan
- Điền: VGM (Verified Gross Mass), CBM, packageCount từ Load Plan
- Liên kết container vào Booking
Manifest ↔ Container link
Liên kết giữa Manifest và Container từ Load Plan đang hoàn thiện (Đợt 1). Hiện tại spawn container hoạt động, nhưng Manifest chưa tự cập nhật từ Load Plan confirm.