SkippedShipment

מציינת פרטים של משלוחים שלא בוצעו בפתרון. במקרים טריוויאליים ו/או אם אנחנו יכולים לזהות את הסיבה לדילוג, אנחנו מדווחים על הסיבה כאן.

ייצוג JSON
{
  "index": integer,
  "label": string,
  "reasons": [
    {
      object (Reason)
    }
  ]
}
שדות
index

integer

האינדקס תואם למדד המשלוח במקור ShipmentModel.

label

string

עותק של Shipment.label התואם, אם צוין ב-Shipment.

reasons[]

object (Reason)

רשימת סיבות שמסבירות למה בוצע דילוג על המשלוח. הצגת התגובה מעל Reason.

סיבה

אם יש לך אפשרות להסביר למה המשלוח דילג על המשלוח, הסיבות לכך יפורטו כאן. אם הסיבה לא זהה בכל כלי הרכב, יוצג ברכיב reason יותר מרכיב אחד. משלוח שדילגת עליו לא יכול לכלול סיבות כפולות, כלומר כאשר כל השדות זהים מלבד exampleVehicleIndex. דוגמה:

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
}

המשלוח שעליהם דילגת לא תואם לכל כלי הרכב. הסיבות לכך עשויות להיות שונות לכל כלי רכב, אבל השם 'תפוחים' של רכב אחד לפחות יכול להיות שונה. תהיה חריגה מהקיבולת (כולל רכב 1), "אגסים" של רכב אחד לפחות תהיה חריגה מהקיבולת של רכב אחד (כולל רכב 3) ותחרוג ממגבלת המרחק של רכב אחד לפחות (כולל רכב 1).

ייצוג JSON
{
  "code": enum (Code),
  "exampleExceededCapacityType": string,
  "exampleVehicleIndex": integer
}
שדות
code

enum (Code)

יש לעיין בהערות של הקוד.

exampleExceededCapacityType

string

אם קוד הסיבה הוא DEMAND_EXCEEDS_VEHICLE_CAPACITY, מתבצע תיעוד של סוג קיבולת אחד שחריגה.

exampleVehicleIndex

integer

אם הסיבה קשורה לאי-תאימות של רכב למשלוח, בשדה הזה יופיע האינדקס של כלי רכב רלוונטי אחד.

קוד

קוד לזיהוי סוג הסיבה. הסדר כאן הוא חסר משמעות. באופן ספציפי, לא מצוין אם סיבה מסוימת תופיע לפני סיבה אחרת בפתרון, אם שתיהן רלוונטיות.

טיפוסים בני מנייה (enum)
CODE_UNSPECIFIED אין להשתמש באפשרות הזו. אם אנחנו לא מצליחים להבין למה דילגת על משלוח, אנחנו מחזירים רשימה ריקה של סיבות.
NO_VEHICLE אין רכב במודל שלא מאפשר משלוחים מעשיים.
DEMAND_EXCEEDS_VEHICLE_CAPACITY הביקוש למשלוח חורג מהקיבולת של כלי הרכב בחלק מסוגי הקיבולת, אחד מהם הוא exampleExceededCapacityType.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT

המרחק המינימלי הדרוש לביצוע המשלוח הזה, כלומר, מstartLocation של הרכב אל נקודות האיסוף ו/או המשלוח של המשלוח ולמיקום הסיום של הרכב חורג מ-routeDistanceLimit של הרכב.

שימו לב שבחישוב הזה אנחנו משתמשים במרחקים הגאודזיים.

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT

הזמן המינימלי שדרוש לביצוע המשלוח הזה, כולל זמן הנסיעה, זמן ההמתנה וזמן השירות, חורג מrouteDurationLimit של הרכב.

הערה: זמן ההגעה מחושב במקרה הטוב ביותר, כלומר המרחק הגאודזי x 36 מטר לשנייה (בערך 130 ק"מ לשעה).

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT כמו שצוין למעלה, אבל אנחנו משווים רק בין זמן נסיעה מינימלי לבין travelDurationLimit של הרכב.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS במקרה הטוב ביותר, הרכב לא יכול לבצע את המשלוח הזה (צריך לעיין ב-CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT לחישוב הזמן) אם הוא מתחיל בשעת ההתחלה המוקדמת ביותר: הזמן הכולל יסתיים אחרי שעת הסיום האחרונה של הרכב.
VEHICLE_NOT_ALLOWED השדה allowedVehicleIndices במשלוח לא ריק והרכב הזה לא שייך אליו.