SkippedShipment

Określa szczegóły niewykonanych dostaw w rozwiązaniu. W przypadku błahych przypadków lub jeśli możemy zidentyfikować 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 ona określona w elementach Shipment.

reasons[]

object (Reason)

Lista powodów, dla których przesyłka została pominięta. Zobacz komentarz powyżej Reason. Jeśli nie będziemy w stanie ustalić, dlaczego przesyłka została pominięta, nie ustawimy przyczyn.

Przyczyna

Jeśli możemy wyjaśnić, dlaczego przesyłka została pominięta, podamy tutaj powody. Jeśli przyczyna nie jest taka sama w przypadku wszystkich pojazdów, element reason będzie zawierał więcej niż 1 element. Przesyłka pominięta nie może mieć zduplikowanych przyczyn, czyli wszystkich pól, 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
}

Przesyłka, która została pominięta, jest niezgodna ze wszystkimi pojazdami. Powody mogą być różne w przypadku poszczególnych pojazdów, ale w przynajmniej jednym z nich przekroczona byłaby pojemność „jabłek” (w tym w samochodzie 1), w przynajmniej jednym przekroczona byłaby pojemność „jabłek” (w tym w samochodzie 3), a w przynajmniej jednym przekroczony byłby limit odległości (w tym w samochodzie 1).

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

enum (Code)

Zapoznaj się z komentarzami w kodzie.

exampleExceededCapacityType

string

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

exampleVehicleIndex

integer

Jeśli przyczyna dotyczy niezgodności przesyłki z pojazdem, to pole zawiera indeks odpowiedniego pojazdu.

Kod

Kod identyfikujący typ przyczyny. Kolejność nie ma znaczenia. W szczególności nie wskazuje, czy dana przyczyna pojawi się przed inną w rozwiązaniu, jeśli obie są stosowane.

Wartości w polu enum
CODE_UNSPECIFIED Nigdy nie należy ich używać.
NO_VEHICLE W modelu nie ma żadnego pojazdu, przez co wszystkie dostawy są niemożliwe.
DEMAND_EXCEEDS_VEHICLE_CAPACITY Popyt na przesyłkę przekracza pojemność pojazdu w przypadku niektórych typów pojemności, w tym exampleExceededCapacityType.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT

Minimalna odległość niezbędna do wykonania tej dostawy, czyli od startLocation pojazdu do miejsc odbioru lub dostawy oraz do miejsca docelowego pojazdu, przekracza routeDistanceLimit pojazdu.

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

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT

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

Uwaga: czas podróży jest obliczany w najlepszym możliwym scenariuszu, czyli jako odległość geodezyjna × 36 m/s (około 130 km/h).

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT To samo co powyżej, ale porównujemy tylko minimalny czas podróży i travelDurationLimit pojazdu.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS Pojazd nie może wykonać tej dostawy w najlepszym scenariuszu (patrz CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT w celu obliczenia czasu), jeśli rozpoczyna się w najwcześniejszym możliwym czasie: łączny czas pracy pojazdu spowoduje, że zakończy on pracę po upływie najpóźniejszego czasu zakończenia.
VEHICLE_NOT_ALLOWED Pole allowedVehicleIndices w przesyłce nie jest puste, a pojazd do niej nie należy.