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)

يمكنك الرجوع إلى تعليقات Code.

exampleExceededCapacityType

string

إذا كان رمز السبب هو DEMAND_EXCEEDS_VEHICLE_CAPACITY، يتم توثيق نوع واحد من الحدّ الأقصى تم تجاوزه.

exampleVehicleIndex

integer

إذا كان السبب مرتبطًا بعدم توافق مركبة شحن، يوفر هذا الحقل المؤشر الخاص بمركبة واحدة ذات صلة.

الرمز

رمز يحدد نوع السبب. لا معنى لهذا الترتيب هنا. وعلى وجه الخصوص، لا تقدم أي إشارة إلى ما إذا كان سبب معين سيظهر قبل سبب آخر في الحل، إذا انطبق كلا السببين.

عمليات التعداد
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 للمركبة.

ملاحظة: يتم احتساب مدة السفر في أفضل الحالات، وتحديدًا بالمسافة الجيوديسية × 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" الخاص بالشحن ليس فارغًا وهذه المركبة لا تنتمي إليه.