SkippedShipment

Określa szczegóły dotyczące niezrealizowanych dostaw w rozwiązaniu. W prostych przypadkach lub jeśli jesteśmy w stanie określić przyczynę pominięcia, podajemy ją tutaj.

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

integer

Indeks odpowiada indeksowi przesyłki w źródle ShipmentModel.

label

string

Kopia odpowiedniej wartości Shipment.label, jeśli została określona w Shipment.

reasons[]

object (Reason)

Lista powodów, dla których przesyłka została pominięta. Zobacz komentarz powyżej Reason.

Przyczyna

Jeśli będziemy mogli wyjaśnić, dlaczego przesyłka została pominięta, podamy jej przyczynę. Jeśli przyczyna nie jest taka sama w przypadku wszystkich pojazdów, reason będzie mieć więcej niż 1 element. Pominięta przesyłka nie może mieć zduplikowanych przyczyn, tj. wszystkie pola są takie same z wyjątkiem pola exampleVehicleIndex. Przykład:

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
}

Pominięta przesyłka jest niezgodna ze wszystkimi pojazdami. Przyczyny mogą być różne w przypadku wszystkich pojazdów, ale w przypadku co najmniej jednego pojazdu „jabłko” zostanie przekroczony limit pojemności „jabłków” (łącznie z pojazdem 1), przekroczona zostanie pojemność co najmniej jednego pojazdu „Gruszki” (w tym pojazd 3) i co najmniej jednego z nich (w tym pojazd 1).

Zapis JSON
{
  "code": enum (Code),
  "exampleExceededCapacityType": string,
  "exampleVehicleIndex": integer
}
Pola
code

enum (Code)

Zapoznaj się z komentarzami do kodu.

exampleExceededCapacityType

string

Jeśli kod przyczyny to DEMAND_EXCEEDS_VEHICLE_CAPACITY, dokumentuje jeden typ pojemności, który został przekroczony.

exampleVehicleIndex

integer

Jeśli przyczyna jest związana z niezgodnym pojazdem dostawczym, to pole zawiera indeks jednego odpowiedniego pojazdu.

Kod

Kod określający typ przyczyny. Porządek ten nie ma sensu. W szczególności nie wskazuje, czy dana przyczyna pojawi się przed inną w rozwiązaniach, jeśli obie mają zastosowanie.

Wartości w polu enum
CODE_UNSPECIFIED Nie należy go nigdy używać. Jeśli nie wiemy, dlaczego przesyłka została pominięta, zwracamy po prostu pusty zestaw powodów.
NO_VEHICLE W tym modelu nie ma pojazdu, który uniemożliwia realizację wszystkich dostaw.
DEMAND_EXCEEDS_VEHICLE_CAPACITY Żądanie przesyłki przekracza pojemność pojazdu w przypadku niektórych typów pojemności, z których jeden to exampleExceededCapacityType.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT

Minimalna odległość niezbędna do realizacji tej przesyłki, tj. od startLocation pojazdu do miejsca odbioru lub dostawy oraz do końcowej lokalizacji pojazdu, przekracza routeDistanceLimit pojazdu.

Pamiętaj, że do obliczeń używamy odległości geodezyjnych.

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT

Minimalny czas potrzebny do realizacji tej dostawy, w tym czas podróży, czas oczekiwania i czas obsługi, przekracza routeDurationLimit pojazdu.

Uwaga: czas podróży oblicza się w najlepszym przypadku, czyli jako odległość geodezyjną x 36 m/s (około 130 km/h).

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT Tak samo jak powyżej, ale porównujemy tylko minimalny czas podróży i travelDurationLimit pojazdu.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS Pojazd nie może zrealizować tej dostawy w najlepszym przypadku (zobacz CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT, aby obliczyć czas, jeśli rozpocznie się o najwcześniejszym czasie rozpoczęcia: całkowity czas spowoduje, że pojazd zakończy się po najpóźniejszej godzinie zakończenia).
VEHICLE_NOT_ALLOWED Pole allowedVehicleIndices przesyłki nie jest puste i pojazd do niego nie należy.