SkippedShipment

Określa szczegóły niezrealizowanych dostaw w rozwiązaniu. W najprostszych przypadkach lub jeśli jesteśmy w stanie zidentyfikować przyczynę pominięcia, podajemy tutaj jej przyczynę.

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

integer

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

label

string

Kopia odpowiedniego pola Shipment.label, jeśli określono ją w zasadzie Shipment.

reasons[]

object (Reason)

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

Przyczyna

Jeśli będziemy mogli wyjaśnić, dlaczego przesyłka została pominięta, tutaj znajdziesz jej powody. Jeśli powód nie jest taki sam dla wszystkich pojazdów, reason będzie mieć więcej niż 1 element. Pominięta przesyłka nie może mieć zduplikowanych powodów, tj. gdy wszystkie pola są takie same oprócz 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 co najmniej jednym z nich przekroczyłaby pojemność (w tym pojazd nr 1), co najmniej 1 pojazd „Gruszki” przekroczyłaby pojemność (w tym pojazd nr 3) i przekroczyła limit odległości w przypadku co najmniej 1 pojazdu (w tym pojazdu 1).

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

enum (Code)

Więcej informacji znajdziesz w komentarzach do kodu.

exampleExceededCapacityType

string

Jeśli kod przyczyny to DEMAND_EXCEEDS_VEHICLE_CAPACITY, dokumentuje jeden z przekroczeń typu pojemności.

exampleVehicleIndex

integer

Jeśli przyczyna jest niezgodność między pojazdem transportowym i wysyłką, w tym polu znajdziesz indeks jednego odpowiedniego pojazdu.

Kod

Kod identyfikujący typ przyczyny. Ta kolejność jest bez znaczenia. W szczególności nie wskazuje, czy dana przyczyna pojawi się wcześniej w rozwiązaniach, jeśli oba te warunki będą spełnione.

Wartości w polu enum
CODE_UNSPECIFIED Nie należy ich nigdy używać. Jeśli nie będziemy mogli zrozumieć, dlaczego przesyłka została pominięta, zwracamy po prostu pusty zestaw powodów.
NO_VEHICLE W modelu nie ma żadnego pojazdu, co uniemożliwiałoby realizację wszystkich dostaw.
DEMAND_EXCEEDS_VEHICLE_CAPACITY Zapotrzebowanie na dostawę przekracza pojemność pojazdu w przypadku niektórych typów pojemności, z których jeden wynosi exampleExceededCapacityType.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT

Minimalna odległość wymagana do realizacji tej przesyłki, tj. od startLocation pojazdu do miejsc odbioru lub dostawy przesyłki oraz do miejsca docelowego pojazdu, przekracza routeDistanceLimit pojazdu.

Pamiętaj, że w tych obliczeniach używamy odległości geodezyjnych.

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT

Minimalny czas niezbędny do wykonania tej przesyłki, w tym czas podróży, czas oczekiwania i obsługa, przekracza routeDurationLimit pojazdu.

Uwaga: czas podróży jest obliczany według najlepszego przypadku, czyli odległość geodezyjna x 36 m/s (około 130 km/h).

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT Tak jak powyżej, ale porównujemy tylko minimalny czas podróży z travelDurationLimit pojazdu.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS Pojazd nie może zrealizować tej wysyłki w najlepszym przypadku (wyliczenie czasu znajdziesz na stronie CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT), jeśli rozpoczyna się najwcześniej w momencie rozpoczęcia. W związku z tym całkowity czas zakończenia pracy pojazdu spowoduje, że zakończy się on po najpóźniejszej godzinie zakończenia.
VEHICLE_NOT_ALLOWED Pole allowedVehicleIndices przesyłki nie jest puste, a pojazd do niego nie należy.