SkippedShipment

Menentukan detail pengiriman yang tidak dilakukan dalam solusi. Untuk kasus yang tidak penting dan/atau jika kami dapat mengidentifikasi penyebabnya, kami akan melaporkan alasannya di sini.

Representasi JSON
{
  "index": integer,
  "label": string,
  "reasons": [
    {
      object (Reason)
    }
  ]
}
Kolom
index

integer

Indeks sesuai dengan indeks pengiriman di ShipmentModel sumber.

label

string

Salinan Shipment.label yang sesuai, jika ditentukan dalam Shipment.

reasons[]

object (Reason)

Daftar alasan yang menjelaskan mengapa pengiriman dilewati. Lihat komentar di atas Reason. Jika kami tidak dapat memahami alasan pengiriman dilewati, alasan tidak akan ditetapkan.

Alasan

Jika kami dapat menjelaskan alasan pengiriman dilewati, alasan tersebut akan dicantumkan di sini. Jika alasannya tidak sama untuk semua kendaraan, reason akan memiliki lebih dari 1 elemen. Pengiriman yang dilewati tidak boleh memiliki alasan duplikat, yaitu jika semua kolom sama kecuali exampleVehicleIndex. Contoh:

reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  exampleVehicleIndex: 1
  exampleExceededCapacityType: "Apples"
}
reasons {
  code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
  exampleVehicleIndex: 3
  exampleExceededCapacityType: "Pears"
}
reasons {
  code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
  exampleVehicleIndex: 1
}

Pengiriman yang dilewati tidak kompatibel dengan semua kendaraan. Alasannya mungkin berbeda untuk semua kendaraan, tetapi kapasitas "Apel" setidaknya satu kendaraan akan terlampaui (termasuk kendaraan 1), kapasitas "Persik" setidaknya satu kendaraan akan terlampaui (termasuk kendaraan 3), dan batas jarak setidaknya satu kendaraan akan terlampaui (termasuk kendaraan 1).

Representasi JSON
{
  "code": enum (Code),
  "exampleExceededCapacityType": string,
  "exampleVehicleIndex": integer
}
Kolom
code

enum (Code)

Lihat komentar Kode.

exampleExceededCapacityType

string

Jika kode alasan adalah DEMAND_EXCEEDS_VEHICLE_CAPACITY, dokumentasikan satu jenis kapasitas yang terlampaui.

exampleVehicleIndex

integer

Jika alasannya terkait dengan inkompatibilitas kendaraan pengiriman, kolom ini akan memberikan indeks satu kendaraan yang relevan.

Kode

Kode yang mengidentifikasi jenis alasan. Urutan di sini tidak berarti. Secara khusus, hal ini tidak memberikan indikasi apakah alasan tertentu akan muncul sebelum alasan lainnya dalam solusi, jika keduanya berlaku.

Enum
CODE_UNSPECIFIED Hal ini tidak boleh digunakan.
NO_VEHICLE Tidak ada kendaraan dalam model sehingga semua pengiriman tidak dapat dilakukan.
DEMAND_EXCEEDS_VEHICLE_CAPACITY Permintaan pengiriman melebihi kapasitas kendaraan untuk beberapa jenis kapasitas, salah satunya adalah exampleExceededCapacityType.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT

Jarak minimum yang diperlukan untuk melakukan pengiriman ini, yaitu dari startLocation kendaraan ke lokasi pengambilan dan/atau pengiriman dan ke lokasi akhir kendaraan melebihi routeDistanceLimit kendaraan.

Perhatikan bahwa untuk komputasi ini, kita menggunakan jarak geodesik.

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT

Waktu minimum yang diperlukan untuk melakukan pengiriman ini, termasuk waktu perjalanan, waktu tunggu, dan waktu layanan melebihi routeDurationLimit kendaraan.

Catatan: waktu perjalanan dihitung dalam skenario terbaik, yaitu sebagai jarak geodesi x 36 m/d (sekitar 130 km/jam).

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT Sama seperti di atas, tetapi kita hanya membandingkan waktu perjalanan minimum dan travelDurationLimit kendaraan.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS Kendaraan tidak dapat melakukan pengiriman ini dalam skenario terbaik (lihat CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT untuk penghitungan waktu) jika dimulai pada waktu mulai paling awal: total waktu akan membuat kendaraan berakhir setelah waktu berakhir terbarunya.
VEHICLE_NOT_ALLOWED Kolom allowedVehicleIndices pengiriman tidak kosong dan kendaraan ini bukan milik pengiriman tersebut.