Skip to main content

Xử lý hàng lạc tuyến

  1. 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).
  2. Ý 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: 

      image.png

    • 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`. 
      • =====> 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)

  3. 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

        image.png



        • Chỉnh sửa chức năng **scan barcode** để xử lý trường hợp **hàng lạc tuyến** 
          • Component
            File Path
            Mô tả
            View Template
            cod/bill-confirm/views/scripts/confirm/bill-package-confirm-arrival.phtml
            Giao diện nhập kho
            Frontend JS
            cod/bill-confirm/views/assets/confirm/bill-package-confirm-arrival.js
            Xử lý client-side scan và hiển thị UI
            Backend Controller
            cod/bill-confirm/controllers/ConfirmController.php 
            Action: 
            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 CASE
              CASE 0: Kiện Không Tồn Tại
              Mục
              Chi tiết
              Điều kiện
              Không tìm thấy trong `express_bill_package`
              Hành động
              Báo lỗi
              Response
              `STATUS: ERROR`, `message: "Kiện không tồn tại trên hệ thống"`
              UI
              Phát âm thanh lỗi `/audio/no.mp3`, hiển thị toast error
              CASE 1: Kiện Đang Ở Đúng VP Hiện Tại
              Mục
              Chi tiết
              Điều kiện
              bill_package_current_agency_id = VP đang login
              Hành động
              Cảnh báo
              Response
              `STATUS: WARNING`, `message: "
              Kiện đã ở văn phòng hiện tại
              "`
              UI
              Phát âm thanh cảnh báo, hiển thị toast warning với thông tin kiện
              CASE 2: Kiện Đã Hoàn Tất Giao
              Mục
              Chi tiết
              Điều kiện
              `bill_package_status = 'COMPLETED'`
              Hành động
              Báo lỗi
              Response
              `STATUS: ERROR`, `message: "Kiện đã hoàn tất giao, không thể nhập kho"`
              UI
              Phát âm thanh lỗi `/audio/no.mp3`, hiển thị toast error
              CASE 4: Kiện có trạng thái Đang Giao | Mới tạo | Đã đến nơi| Sự cố
              Mục
              Chi tiết
              Điều kiện
              bill_package_status = 'CONFIRM_GO_DELIVERY', 
              Hành động
              Lấy
              Response
              `STATUS: ERROR`, `message: "Kiện đã hoàn tất giao, không thể nhập kho"`
              UI
              Phát âm thành công `/audio/yes.mp3`, hiển thị toast success