Việc cần làm đã lên lịch

Tài liệu này mô tả dịch vụ tác vụ được lên lịch trong Công cụ của đội xe. Bài viết này giả định rằng bạn đã đọc bài viết Công cụ của đội xe là gì? và biết được chức năng dịch vụ cụ thể của Công cụ của đội xe mà bạn cần.

Khi đọc tài liệu này, hãy lưu ý những điều sau:

  • Bạn tạo các tác vụ và liên kết các tác vụ đó với một điểm dừng xe để mô hình hoá mối liên kết thực tế giữa tác vụ và vị trí dự kiến xe sẽ dừng để người lái xe có thể hoàn thành tác vụ. Hãy đọc bài viết Giới thiệu về xe để hiểu rõ hơn về cách hoạt động của xe trong Fleet Engine.
  • Công cụ của Fleet cho các tác vụ theo lịch sử dụng các tài nguyên sau: TaskDeliveryVehicle. Công cụ Fleet cung cấp cả dịch vụ gRPC và giao diện REST:
    • Task: gRPCREST
    • DeliveryVehicle: gRPCREST
    • Để đơn giản, hướng dẫn này sử dụng các ví dụ về gRPC.

Nhiệm vụ đã lên lịch là gì?

Một tác vụ được lên lịch trong Công cụ quản lý đội xe đại diện cho một hành động riêng lẻ mà người lái xe sẽ hoàn thành bằng cách sử dụng một xe trong bối cảnh rộng hơn của một hoạt động vận tải. Phương thức này xác định mục tiêu cụ thể cho trình điều khiển. Ví dụ:

  • để giao hàng hoá đến một nơi cư trú
  • để lấy gói hàng trả lại kho hàng
  • để dừng tại một địa điểm nhằm cung cấp dịch vụ tại chỗ cho khách hàng
  • để thực hiện điểm dừng theo lịch nhằm đổ xăng cho xe

Phần tử tác vụ

Hình ảnh sau đây minh hoạ các phần tử tác vụ này trong một hành trình theo lịch tiêu chuẩn cho một xe.

Các trường cơ bản của việc cần làm

Trường Mô tả
Loại Xác định loại hành động liên kết với tác vụ.
Mã việc cần làm Một chuỗi nhận dạng duy nhất tác vụ trong hệ thống.
Vị trí dự kiến Chỉ định vị trí dự kiến nơi thực hiện tác vụ. Vị trí này không phải lúc nào cũng giống với vị trí dự kiến cho điểm dừng xe.
Tiểu bang Cho biết việc cần làm đang mở hay đã đóng.
Kết quả công việc Cho biết tác vụ đã thành công hay không.

Mô hình dữ liệu cho việc cần làm

Các sơ đồ sau đây minh hoạ mô hình dữ liệu của tài nguyên Task cùng với sơ đồ cho tài nguyên DeliveryVehicle liên kết. Bạn có thể xem lại cả hai sơ đồ để khám phá mối quan hệ giữa hai tài nguyên này, lưu ý những điều sau:

  • Vị trí dự kiến: Cả điểm dừng xe và nhiệm vụ đều có vị trí dự kiến, khác với nhau.
    • Đối với tác vụ, vị trí đã lên kế hoạch cho biết nơi diễn ra hành động của trình điều khiển. Ví dụ: 15 gói hàng được giao đến một khu dân cư lớn yêu cầu giao hàng đến nhiều vị trí phòng thư trong cùng một khu dân cư đó.
    • Đối với điểm dừng xe, vị trí dự kiến cho biết điểm dừng của xe trong khi người lái xe hoàn thành các nhiệm vụ. Ví dụ: một xe dừng lại ở lối vào một khu chung cư và người lái xe giao các gói hàng theo cách thủ công đến các phòng thư riêng trong khu chung cư.
  • Trạng thái: Cả nhiệm vụ và điểm dừng xe đều có trường trạng thái, khác với nhau.
    • Trạng thái của điểm dừng xe phản ánh tiến trình của xe liên quan đến điểm dừng, được dùng cho mục đích theo dõi đội xe.
    • Trạng thái của tác vụ cho biết tác vụ đó có đang hoạt động hay không. Điều này ảnh hưởng đến các thao tác khác cần thực hiện trên các tác vụ, chẳng hạn như thiết lập kết quả hoặc chỉ định tác vụ cho một xe.
  • Kết quả công việc: Kết quả công việc là một trường quan trọng trong mô hình dữ liệu, vì trường này được dùng để cho biết một công việc có thành công hay không, độc lập với trạng thái công việc.

  • Mã nhận dạng:

    • Khi bạn chỉ định một nhiệm vụ cho một xe, công cụ Fleet sẽ điền sẵn trường deliveryVehicleId. Trường chỉ có thể đọc này cho biết xe được giao nhiệm vụ.
    • Mã tác vụ là giá trị nhận dạng duy nhất trên tất cả tác vụ trong hệ thống của bạn.
    • Mã vận đơn xác định một tác vụ cho mục đích theo dõi lô hàng.

Mô hình dữ liệu của Tasks

Mô hình dữ liệu xe

Mã công việc

Tương tự như mã nhận dạng xe trong Công cụ quản lý đội xe, mỗi tác vụ phải chứa một mã nhận dạng để phân biệt với các tác vụ khác trong hệ thống. Bạn tham chiếu và quản lý tất cả tác vụ trong luồng công việc theo mã nhận dạng của tác vụ. Bạn tạo các mã nhận dạng này bằng cách sử dụng dịch vụ CreateTaskRequest và cung cấp một chuỗi mã nhận dạng tuân thủ các yêu cầu được mô tả trong phần này.

Sau đó, chuỗi này bao gồm một phần tên của chính tài nguyên tác vụ, một trường chỉ có đầu ra trên đối tượng Task. Điều này tương tự như cách Công cụ xe tạo tài nguyên tên xe. Xem phần Đặt tên tài nguyên trong bài viết Giới thiệu về Công cụ của Fleet.

Yêu cầu về mã công việc
Thuộc tính Mô tả
Điểm đặc biệt Mỗi mã nhận dạng tác vụ phải là duy nhất trong quá trình triển khai Công cụ của đội xe để tránh nhầm lẫn và đảm bảo nhận dạng chính xác.
Định dạng
  • Không có thông tin nhận dạng cá nhân (PII) hoặc dữ liệu văn bản thô.
  • Chuỗi Unicode hợp lệ.
  • Có tối đa 64 ký tự.
  • Loại trừ các ký tự sau: / : \ ? #
  • Được chuẩn hoá theo Unicode Normalization Form C (Biểu mẫu chuẩn hoá Unicode C).
Ví dụ về mã công việc
Ví dụ về mã công việc phù hợp
  • 566c33d9-2a31-4b6a-9cd4-80ba1a0c643b
  • e4708eabcfa39bf2767c9546c9273f747b4626e8cc44e9630d50f6d129013d38
  • NTA1YTliYWNkYmViMTI0ZmMzMWFmOWY2NzNkM2Jk
Mã tác vụ không được phép
  • 8/31/2019-20:48-46.70746,-130.10807,-85.17909,61.33680
  • JohnDoe-577b484da26f-Cupertino-SantaCruz
  • 4R0oXLToF"112 Summer Dr. East Hartford, CT06118"577b484da26f8a

Loại việc cần làm

Công cụ của đội xe hỗ trợ nhiều loại tác vụ để thể hiện các hành động khác nhau trong một hoạt động vận tải. Các tài khoản này được mô tả tại đây cùng với chế độ hiển thị và thông tin thanh toán.

Loại việc cần làm Mô tả Chế độ hiển thị thông tin theo dõi lô hàng Đã lập hoá đơn
Tác vụ phân phối Dùng để giao hàng hoặc hoàn thành công việc cho khách hàng. Người tiêu dùng có thể xem và theo dõi thông tin này.
Nhiệm vụ đến lấy hàng Dùng để cho biết việc lấy hàng của khách hàng. Bạn phải có một nhiệm vụ giao hàng tương ứng cho mọi nhiệm vụ đến lấy hàng. Người tiêu dùng có thể xem và theo dõi thông tin này. Không
Việc cần làm về tình trạng không có phòng Xác định xe không thể hoạt động, chẳng hạn như khi tài xế nghỉ ngơi hoặc đổ xăng. Người tiêu dùng không nhìn thấy. Không
Lên lịch dừng tác vụ Một tác vụ không phải là giao hàng yêu cầu dừng tại một địa điểm cụ thể. Sử dụng tác vụ điểm dừng theo lịch cho các điểm dừng lấy hàng theo lịch hằng ngày tại một địa điểm cụ thể, độc lập với các điểm giao hàng hoặc điểm đến lấy hàng khác tại cùng một địa điểm. Bạn cũng có thể tạo các nhiệm vụ dừng theo lịch cho việc thu thập từ hộp thư thả hoặc để mô hình hoá việc chuyển xe trung chuyển hoặc dừng tại các trung tâm bảo dưỡng và điểm bảo dưỡng. Người dùng không thể theo dõi việc cần làm cụ thể này, nhưng có thể xem việc cần làm này trong quá trình theo dõi các việc cần làm khác. Không

Vòng đời của tác vụ và hành trình

Phần này cung cấp thông tin chi tiết về vòng đời của tác vụ phân phối trong Công cụ của đội xe. Vòng đời của tác vụ được kết nối với hành trình của xe vì xe phải di chuyển đến một điểm dừng để người lái xe có thể hoàn thành tác vụ tại vị trí đã lên kế hoạch.

1. Tạo việc cần làm

Trong lần đầu tiên tạo một công việc trong Công cụ xe, bạn sẽ thiết lập nhiều trường cho công việc đó một cách độc lập với việc liên kết các trường đó với một điểm dừng.

Thuộc tính tác vụ
Thuộc tính Mô tả
Tiểu bang Đặt thành MỞ
ID Đặt mã nhận dạng công việc và mã theo dõi nếu bạn sử dụng tính năng theo dõi lô hàng cho người tiêu dùng.
Thời gian Thời lượng dự kiến cho tác vụ và khoảng thời gian mục tiêu của tác vụ. Hãy xem phần Định thời gian tác vụ để biết thông tin chi tiết.
Vị trí dự kiến Đặt toạ độ địa lý chính xác nơi cần hoàn thành nhiệm vụ.

2. Chỉ định việc cần làm

Khi chỉ định một nhiệm vụ cho một xe, bạn sẽ thực hiện việc này cùng với một điểm dừng xe. Điểm dừng là toạ độ vĩ độ/kinh độ cho biết vị trí xe đỗ trong khi người lái xe hoàn thành các nhiệm vụ liên quan đến điểm dừng. Điểm dừng thường là một điểm truy cập, chẳng hạn như bến xe tải hoặc vị trí chụp đường.

3. Đang thực hiện

Trạng thái của một việc cần làm là MỞ hoặc ĐÃ ĐÓNG. Tuy nhiên, sau khi một nhiệm vụ được chỉ định cho một xe, bạn có thể theo dõi tiến trình của nhiệm vụ đó thông qua mối liên kết với xe và vị trí của xe so với điểm dừng nơi nhiệm vụ sẽ hoàn tất.

Sau khi xe rời khỏi một điểm dừng hoặc bắt đầu di chuyển, trạng thái của điểm dừng sẽ thay đổi thành ENROUTE. Bằng cách này, tính năng theo dõi lô hàng của người tiêu dùng có thể cập nhật cho người nhận về một công việc với số điểm dừng còn lại và thời gian đến dự kiến. API này cũng hỗ trợ mọi hình ảnh trực quan theo thời gian thực để theo dõi lô hàng của người tiêu dùng hoặc để theo dõi đội xe.

4. Kết quả của việc đến và thực hiện nhiệm vụ

Khi xe đến một điểm dừng, trạng thái của điểm dừng đó phải được đặt thành ARRIVED. Tương tự như trạng thái dừng ENROUTE, trạng thái này không ảnh hưởng đến trạng thái của chính tác vụ, nhưng hỗ trợ cả thông báo cho người tiêu dùng và mọi báo cáo theo thời gian thực để theo dõi đội xe mà nhà điều hành đội xe của bạn sử dụng. Tính năng này cũng cho phép bạn sử dụng báo cáo và số liệu phân tích sau này về hoạt động mà bạn sẽ dùng để tối ưu hoá việc phân phối.

Sau khi xe đến một điểm dừng, hệ thống của bạn có thể xử lý phần còn lại của hành trình thực hiện nhiệm vụ bằng một trong các phương pháp sau:

  • Đóng việc cần làm khi hoàn thành.

    Khi trình điều khiển đánh dấu tác vụ là hoàn tất, hệ thống của bạn có thể xoá tác vụ đó khỏi điểm dừng, nhưng để lại điểm dừng với các tác vụ khác được chỉ định cho điểm dừng đó.

  • Xoá toàn bộ điểm dừng khỏi xe.

    Sau khi người lái xe đánh dấu tất cả các nhiệm vụ là hoàn tất và xe đang trên đường đến điểm dừng tiếp theo, bạn có thể xoá toàn bộ điểm dừng khỏi xe. Công cụ quản lý đội xe sẽ tự động đóng tất cả các công việc liên kết với một điểm dừng đã bị xoá.

Việc đóng một tác vụ không cho biết tác vụ đó có thành công hay không

Việc đóng một việc cần làm chỉ cho biết rằng việc cần làm đó không còn được coi là đang diễn ra. Đối với các tác vụ ở trạng thái CLOSED, bạn đặt kết quả của chúng thành SUCCEEDED hoặc FAILED. Điều này cần thiết để cho biết kết quả thực tế của việc theo dõi lô hàng và để tính phí đúng cách. Công cụ của Fleet chỉ tính phí các tác vụ phân phối có trạng thái là SUCCEEDED (THÀNH CÔNG).

Sau khi đặt kết quả cho một việc cần làm, bạn không thể thay đổi kết quả đó

Khi đánh dấu kết quả của một nhiệm vụ, Công cụ quản lý đội xe sẽ tự động điền thông tin vị trí kết quả của nhiệm vụ bằng vị trí xe đã biết gần đây nhất. Tuy nhiên, bạn có thể sửa đổi thời gian và vị trí kết quả tác vụ sau khi thiết lập và Công cụ của Fleet sẽ không ghi đè các trường này.

5. Các tình huống tác vụ khác

Không phải tất cả các tác vụ mà bạn lập mô hình trong Công cụ quản lý đội xe đều phù hợp với quy trình hành trình thông thường. Ví dụ:

  • Tác vụ lấy hàng. Khi có một tác vụ nhận hàng cho một gói hàng cần trả lại kho để xử lý sau, bạn nên tạo một tác vụ giao hàng tương ứng cho gói hàng đó, với vị trí dự kiến được đặt thành kho. Nếu không, các tác vụ đến lấy hàng thường tuân theo quy trình tương tự như các tác vụ giao hàng.
  • Giao lại việc cần làm. Bạn không thể trực tiếp chỉ định lại một nhiệm vụ cho một xe khác. Thay vào đó, để di chuyển một công việc từ xe này sang xe khác, hãy đóng công việc ban đầu rồi tạo lại công việc đó trước khi chỉ định công việc đó cho xe mới. Nếu bạn cập nhật thứ tự công việc cho một công việc đã được chỉ định cho một xe khác, thì Công cụ quản lý đội xe sẽ báo lỗi.
  • Xoá việc cần làm. Cũng như đối với xe, Công cụ quản lý đội xe sẽ xoá các tác vụ chưa được cập nhật sau 7 ngày. Nếu bạn cố gắng sử dụng lại mã công việc cho một công việc đã đóng trước đó, thì Công cụ của đội xe sẽ trả về lỗi nếu mã đó đã được sử dụng trong vòng 7 ngày qua. Ngược lại, nếu muốn giữ lại dữ liệu công việc lâu hơn 7 ngày, bạn phải tự triển khai chức năng đó, chẳng hạn như thông qua một công việc theo lịch để đặt lại đồng hồ 7 ngày.

Chia sẻ tiến trình công việc

Trong Fleet Engine, bạn có thể theo dõi tiến trình thực hiện nhiệm vụ theo thời gian thực và chia sẻ hành trình của người lái xe theo hai cách chính:

  • Trải nghiệm người tiêu dùng để người tiêu dùng biết trạng thái của đơn đặt hàng vận chuyển hoặc đơn đặt hàng dịch vụ đã yêu cầu.
  • Theo dõi đội xe để nhà điều hành đội xe theo dõi và phân tích trạng thái của các xe trong đội xe.

Trải nghiệm người tiêu dùng

Để chia sẻ tiến trình công việc, bạn thiết lập trải nghiệm người dùng bằng cách sử dụng SDK Người dùng JavaScript. Với SDK này, bạn có thể nâng cao trải nghiệm trực quan trên web hoặc ứng dụng di động để người tiêu dùng có thể theo dõi trạng thái của lô hàng cùng với thời gian dự kiến đến và thông tin cập nhật vị trí theo thời gian thực của xe giao hàng. Xem Tổng quan về tác vụ theo lịch của SDK dành cho người dùng.

SDK dành cho người dùng chứa một bản đồ JavaScript và các thành phần dữ liệu để kết nối với Công cụ của đội xe. Bản đồ này là một phần thay thế thả xuống cho đối tượng google.maps.Map tiêu chuẩn. Ứng dụng của bạn phải xác thực người dùng cuối và sử dụng vai trò người dùng Phân phối trong dự án Google Cloud để chỉ trả về thông tin dành riêng cho khách hàng. Công cụ của Fleet sẽ lọc và loại bỏ tất cả thông tin khác trong các phản hồi. Ví dụ: trong một tác vụ không có sẵn, không có thông tin vị trí nào được chia sẻ với người dùng cuối.

Trong Fleet Engine, bạn bật các chế độ cài đặt sau để chia sẻ tiến trình công việc với người dùng:

  • Tác vụ sử dụng thuộc tính TaskTrackingViewConfig. Không bắt buộc.
  • Tác vụ sử dụng mã theo dõi mà thư viện cần để xác định các tác vụ liên quan cho người dùng.

Theo dõi đội xe

Thư viện theo dõi đội xe JavaScript cho phép bạn trực quan hoá vị trí của các xe trong đội xe gần như theo thời gian thực. Thư viện này sử dụng API Động cơ của đội xe để cung cấp hình ảnh trực quan về xe tải cũng như các nhiệm vụ được giao. Giống như SDK người dùng JavaScript, SDK này chứa một thành phần bản đồ JavaScript thay thế cho một thực thể google.maps.Map tiêu chuẩn bằng các thành phần dữ liệu mà bạn sử dụng để kết nối với Công cụ của đội xe.

Thư viện này cho thấy chế độ hiển thị của xe giao hàng ngay khi xe được tạo trong Công cụ quản lý đội xe. Để triển khai việc này, bạn sử dụng vai trò IAM trên đám mây Người dùng cấp cao của Dịch vụ công cụ của đội xe và cung cấp thông báo xác nhận mã thông báo web Java để truy cập vào xe tải và các nhiệm vụ liên quan.

Tình huống về tác vụ được lên lịch

Phần này trình bày nhiều tình huống công việc tóm tắt thông tin được cung cấp tại thời điểm này trong hướng dẫn. Mục đích của bài viết này là giúp bạn hiểu được nhiều cách để lập mô hình hoạt động vận tải trong Công cụ quản lý đội xe, tuỳ thuộc vào hoạt động kinh doanh của bạn.

Giao hàng có tính năng theo dõi

Tình huống phân phối này cho thấy một nhiệm vụ điểm dừng theo lịch được chỉ định cho kho hàng cả khi khởi hành từ kho hàng ở đầu hành trình và khi đến kho hàng ở cuối hành trình. Trang này cũng cho thấy hai tác vụ phân phối cho một điểm dừng, trong đó một tác vụ không thành công. Sử dụng nhiệm vụ này để bật tính năng theo dõi từ và đến kho lưu trữ, cũng như để lập mô hình thời gian bắt đầu và kết thúc trong ngày. Hệ thống sẽ không tính phí đối với các tác vụ dừng theo lịch.

Đến lấy hàng và giao hàng tại kho

Tình huống này cho thấy cách lập mô hình lấy hàng bằng tác vụ giao hàng tương ứng bắt buộc. Bạn đặt việc trả lại kho là một lần giao hàng cho mục đích thanh toán.

Xe cấp dữ liệu

Tình huống này cho thấy hai lần giao hàng với một điểm dừng theo lịch ở giữa cho xe trung chuyển, mục đích là để xe giao hàng quay lại kho chứa hàng với một số gói hàng cần vận chuyển. Bạn cũng có thể mô hình hoá xe trung chuyển có điểm dừng theo lịch.

Thời gian thực hiện tác vụ

Việc lập mô hình thời gian thực hiện tác vụ giúp lập kế hoạch tuyến hiệu quả, thời gian dự kiến đến và quản lý các kỳ vọng về việc phân phối. Công cụ của Fleet cung cấp hai chức năng chính để lập mô hình và dự đoán thời gian thực hiện tác vụ, như mô tả trong phần này.

Thời lượng của việc cần làm

Thời lượng tác vụ được đặt bằng trường task_duration, một trường bắt buộc mô hình hoá thời gian dự kiến mà người lái xe dành để hoàn thành các tác vụ tại một điểm dừng hoặc để nghỉ ngơi. Đối với điểm dừng, hoạt động này bao gồm tất cả các hoạt động cần thiết sau khi đến điểm dừng, chẳng hạn như dỡ hàng và tương tác với người nhận. Thông tin này càng cụ thể thì Công cụ quản lý đội xe càng có thể cung cấp thời gian đến và thời gian dự kiến đến thực tế cho các điểm dừng tiếp theo trong hành trình. Để biết thông tin chi tiết về trường, hãy xem phần Thời lượng trong Tài liệu về vùng đệm giao thức.

Khoảng thời gian mục tiêu

Thời gian mục tiêu xác định phạm vi thời gian đề xuất cho một nhiệm vụ, thường được dùng để giao tiếp với khách hàng hoặc cho mục đích lập kế hoạch nội bộ. Bạn đặt thông tin này bằng trường target_time_window, bao gồm thời gian bắt đầu và thời gian kết thúc. Điều này không ảnh hưởng trực tiếp đến bất kỳ phép tính tuyến nào, nhưng có thể được dùng cho các tình huống như cảnh báo người tiêu dùng về khoảng thời gian giao gói hàng hoặc thời điểm dự kiến một worker dịch vụ theo lịch sẽ đến.

Thuộc tính việc cần làm

Các thuộc tính tác vụ trong Công cụ của đội xe cung cấp một cách thuận tiện để lọc tác vụ dựa trên các đặc điểm cụ thể khi sử dụng yêu cầu ListTasks. Bạn cũng có thể sử dụng các thuộc tính tác vụ tuỳ chỉnh cho mục đích phân tích bằng tính năng Ghi nhật ký trên đám mây, cùng với việc truyền đạt thông tin cho người dùng hoặc để theo dõi đội xe. Mục đích của thuộc tính này cũng tương tự như mục đích của thuộc tính xe: sử dụng thuộc tính này để tạo ra một góc nhìn tập trung hơn về hoạt động phân phối của bạn.

Giới hạn và hạn chế

  • Tạo thuộc tính tuỳ chỉnh: Fleet Engine giới hạn số lượng thuộc tính tuỳ chỉnh mà bạn có thể xác định cho mỗi tác vụ. Hãy liên hệ với người đại diện bán hàng của bạn để yêu cầu tăng các hạn mức đó.
  • Chức năng lọc: Mặc dù cung cấp tính linh hoạt trong việc lọc, nhưng các thuộc tính công việc không thay thế các trường dữ liệu công việc cốt lõi. Sử dụng các bộ lọc này để bộ lọc bổ sung dựa trên nhu cầu cụ thể của bạn.
  • Mỗi thuộc tính phải có một khoá riêng.
  • Đừng đưa thông tin nhận dạng cá nhân hoặc thông tin nhạy cảm khác vào giá trị thuộc tính, vì người dùng có thể nhìn thấy những thông tin này.
  • Xác thực dữ liệu: Đảm bảo các loại và định dạng dữ liệu của thuộc tính tuỳ chỉnh tương thích với các yêu cầu của Công cụ xe.

Bước tiếp theo