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 في الشحنة ليس فارغًا وهذه المركبة لا تنتمي إليه.