Xử lý hàng lạc tuyến
-
Vấn đề
- Trong quá trình vận chuyển, tài xế lấy nhầm kiện hàng. Ví dụ: hàng ở bưu cục A khai thác sang B nhưng tài xế lại chở đến bưc cục C (hàng lạc tuyến)
- Hiện tại, khi hàng đến bưu cục/kho đích, hệ thống không cho phép nhập kho các kiện hàng này, gây khó khăn cho việc xử lý.
- Bổ sung tính năng cho phép Tài xế/User tại Bưu cục/điểm đích được phép scan và nhập kho các kiện hàng lạc tuyến để tiếp tục quy trình xử lý (trả về hoặc chuyển tiếp).
-
Ý tưởng và giải pháp
- Tại Màn hình nhập kho hàng đến theo kiện, cho phép Tài xế scan mã bill/kiện bị lạc tuyến và xử lý nhập kho cho kiện bị lạc tuyến.
- Flow ý tưởng:
- Khi scanbarcode xảy ra các tình huống sau:
-
- Kiện không tồn tại trên hệ thống => Báo lỗi
-
- Kiện đang ở đúng Bưu cục/Văn phòng hiện tại nhập kho => Cảnh báo và không xử lý.
-
- Kiện không ở Bưu cục/Văn phòng hiện tại nhập kho:
- => Trường hợp 1: Kiện `Đã hoàn tất giao`.
- ==> Báo lỗi.
- => Trường hợp 2: Kiện `Đang giao`.
- ==> Hủy kiện trong bảng kê giao (note Hủy do hàng lạc tuyến). Tạo bảng kê vận chuyển mới (note Bảng kê lạc tuyến) -> lấy văn phòng xuất là văn phòng hiện tại của kiện, văn phòng đến là văn phòng hiện tại nhập kho -> Đánh trạng thái bảng kê là `Đã đến nơi`.
- => Trường hợp 3: Kiện `Đang vận chuyển`.
- ==> Hủy kiện trong bảng kê vận chuyển (note Hủy do hàng lạc tuyến). Tạo bảng kê vận chuyển mới (note Bảng kê lạc tuyến) -> lấy văn phòng xuất là văn phòng hiện tại của kiện, văn phòng đến là văn phòng hiện tại nhập kho -> Đánh trạng thái bảng kê là `Đã đến nơi`.
- => Trường hợp 4: Kiện `Mới tạo, Đã đến nơi` (kiện không có bảng kê đang vận chuyển/ đang giao).
- ==> Tạo bảng kê vận chuyển mới (note Bảng kê lạc tuyến) -> lấy văn phòng xuất là văn phòng hiện tại của kiện, văn phòng đến là văn phòng hiện tại nhập kho -> Đánh trạng thái bảng kê là `Đã đến nơi`.
- => Trường hợp 5: Kiện `Đang bị Sự cố`.
- ==> Giữ nguyên trạng thái sự cố của bill, kiện. Tạo bảng kê vận chuyển mới (note Bảng kê lạc tuyến) -> lấy văn phòng xuất là văn phòng hiện tại của kiện, văn phòng đến là văn phòng hiện tại nhập kho -> Đánh trạng thái bảng kê là `Đã đến nơi`.
- ==> Giữ nguyên trạng thái sự cố của bill, kiện. Tạo bảng kê vận chuyển mới (note Bảng kê lạc tuyến) -> lấy văn phòng xuất là văn phòng hiện tại của kiện, văn phòng đến là văn phòng hiện tại nhập kho -> Đánh trạng thái bảng kê là `Đã đến nơi`.
- => Trường hợp 1: Kiện `Đã hoàn tất giao`.
-
=====> Lưu ý: Khi tạo bảng kê vận chuyển mới cho các kiện lạc tuyến --> Nhóm(Gộp) các kiện lạc tuyến có cùng văn phòng hiện tại vào cùng 1 bảng kê vận chuyển (đánh dấu là bảng kê lạc tuyến)
-
- Tại Màn hình nhập kho hàng đến theo kiện, cho phép Tài xế scan mã bill/kiện bị lạc tuyến và xử lý nhập kho cho kiện bị lạc tuyến.
-
Giải pháp kỹ thuật
- Schema
- express_bill (thông tin đơn hàng)
- express_bill_package (thông tin kiện hàng)
- express_transport (Bảng kê vận chuyển)
- express_transport_detail_bill_package (Chi tiết bảng kê vận chuyển)
- express_transport_session (Bảng kê NCC giao hàng)
- express_voucher_business_statement (Bảng kê nội bộ giao hàng)
- express_voucher_business_statement_detail (Chi tiết bảng kê nội bộ giao hàng)
- Màn hình xử lý
- Màn hình Nhập kho hàng đến theo kiện {my_domain}/cod/bill-confirm/confirm/bill-package-confirm-arrival
- Chỉnh sửa chức năng **scan barcode** để xử lý trường hợp **hàng lạc tuyến**
-
ComponentFile PathMô tảView Templatecod/bill-confirm/views/scripts/confirm/bill-package-confirm-arrival.phtml
Giao diện nhập kho Frontend JScod/bill-confirm/views/assets/confirm/bill-package-confirm-arrival.jsXử lý client-side scan và hiển thị UIBackend Controllercod/bill-confirm/controllers/ConfirmController.phpAction:ajaxScanBarcodeBillPackageConfirmArrivalAction.xử lý logic scan barcode -
Flow Scan Barcode hiện tại:
[User Scan Barcode]
↓
[Frontend: onScanBarcode()]
↓
[AJAX Request: POST_SCAN_BARCODE]
↓
[Backend: ajaxScanBarcodeBillPackageConfirmArrivalAction()]
↓
[Query: Tìm kiện trong bảng kê có VP đến = VP đang login]
↓
[Return: Danh sách kiện + thông tin bảng kê]
↓
[Frontend: Hiển thị kiện vào bảng nhập kho]
-
Logic Hiện Tại (Controller):- Tìm kiện trong bảng kê có `confirm_to_agency_id = VP của user đang đăng nhập`- Lọc chi tiết bảng kê chưa xác nhận hàng đến (`detail_bill_package_arrival_time IS NULL`)- Lọc kiện chưa huỷ, chưa xoá- Loại bảng kê: `AXIS` (Khai thác NCC), `INTERNAL` (Khái thác nội bộ).
-
YÊU CẦU MỚI: XỬ LÝ HÀNG LẠC TUYẾN.
-
Định nghĩa Hàng Lạc Tuyến.- Kiện **không có bảng kê vận chuyển** đến VP nhập kho, HOẶC- Kiện đang thuộc bảng kê vận chuyển đến VP khác.
-
Xử Lý Scan Barcode.
-
ĐẶC TẢ CHI TIẾT TỪNG CASECASE 0: Kiện Không Tồn TạiMụcChi tiếtĐiều kiệnKhông tìm thấy trong `express_bill_package`Hành độngBáo lỗiResponse`STATUS: ERROR`, `message: "Kiện không tồn tại trên hệ thống"`UIPhát âm thanh lỗi `/audio/no.mp3`, hiển thị toast errorCASE 1: Kiện Đang Ở Đúng VP Hiện TạiMụcChi tiếtĐiều kiệnbill_package_current_agency_id = VP đang loginHành độngCảnh báoResponse`STATUS: WARNING`, `message: ""`Kiện đã ở văn phòng hiện tạiUIPhát âm thanh cảnh báo, hiển thị toast warning với thông tin kiệnCASE 2: Kiện Đã Hoàn Tất Giao
CASE 4: Kiện có trạng thái Đang Giao | Mới tạo | Đã đến nơi| Sự cốMụcChi tiếtĐiều kiện`bill_package_status = 'COMPLETED'`Hành độngBáo lỗiResponse`STATUS: ERROR`, `message: "Kiện đã hoàn tất giao, không thể nhập kho"`UIPhát âm thanh lỗi `/audio/no.mp3`, hiển thị toast errorMụcChi tiếtĐiều kiệnbill_package_status = 'CONFIRM_GO_DELIVERY',Hành độngLấyResponse`STATUS: ERROR`, `message: "Kiện đã hoàn tất giao, không thể nhập kho"`UIPhát âm thành công `/audio/yes.mp3`, hiển thị toast success
-
-
- Chỉnh sửa chức năng **scan barcode** để xử lý trường hợp **hàng lạc tuyến**
- Màn hình Nhập kho hàng đến theo kiện {my_domain}/cod/bill-confirm/confirm/bill-package-confirm-arrival
- Schema

