SkippedShipment
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Указывает сведения о невыполненных отгрузках в решении. В тривиальных случаях и/или если мы можем определить причину пропуска, мы сообщаем о причине здесь.
JSON-представление |
---|
{
"index": integer,
"label": string,
"reasons": [
{
object (Reason )
}
]
} |
Поля |
---|
index | integer Индекс соответствует индексу отгрузки в исходном ShipmentModel . |
label | string Копия соответствующей Shipment.label , если она указана в Shipment . |
reasons[] | object ( Reason ) Список причин, объясняющих, почему отгрузка была пропущена. См. комментарий выше. Reason . Если мы не сможем понять, почему отправка была пропущена, причины не будут установлены. |
Причина
Если мы сможем объяснить, почему отправка была пропущена, причины будут перечислены здесь. Если причина не одинакова для всех автомобилей, reason
будет иметь более 1 элемента. Пропущенная отправка не может иметь повторяющихся причин, т. е. когда все поля одинаковы, за исключением 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 Если причина связана с несовместимостью груза и транспортного средства, в этом поле указывается индекс одного соответствующего транспортного средства. |
Код
Код, определяющий тип причины. Порядок здесь бессмысленен. В частности, он не дает указания на то, появится ли данная причина перед другой в решении, если обе применимы.
Перечисления |
---|
CODE_UNSPECIFIED | Это никогда не следует использовать. |
NO_VEHICLE | В модели нет транспортного средства, что делает все перевозки невозможными. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY | Потребность в отправке превышает вместимость транспортного средства для некоторых типов мощности, одним из которых является exampleExceededCapacityType . |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT | Минимальное расстояние, необходимое для выполнения этой перевозки, т. е. от startLocation транспортного средства до мест получения и/или доставки груза и до конечного местоположения транспортного средства, превышает routeDistanceLimit транспортного средстваDistanceLimit . Обратите внимание, что для этого расчета мы используем геодезические расстояния. |
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 отправления не пустое и данное транспортное средство ему не принадлежит. |
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-08-29 UTC.
[null,null,["Последнее обновление: 2025-08-29 UTC."],[[["\u003cp\u003eThis document details the structure for reporting reasons why shipments were skipped in a solution, focusing on cases where the cause can be identified.\u003c/p\u003e\n"],["\u003cp\u003eSkipped shipment data includes an index, label, and a list of \u003ccode\u003ereasons\u003c/code\u003e, each \u003ccode\u003ereason\u003c/code\u003e explaining why the shipment couldn't be performed.\u003c/p\u003e\n"],["\u003cp\u003eReasons for skipped shipments include exceeding vehicle capacity, distance limits, duration limits, time window constraints, or not being in the allowed vehicles for the shipment.\u003c/p\u003e\n"],["\u003cp\u003eEach reason contains a \u003ccode\u003ecode\u003c/code\u003e specifying the type of issue, and \u003ccode\u003eexampleVehicleIndex\u003c/code\u003e or \u003ccode\u003eexampleExceededCapacityType\u003c/code\u003e that is present if the issue is vehicle related or exceeds capacity.\u003c/p\u003e\n"],["\u003cp\u003eThe provided structure outlines how to represent these \u003ccode\u003ereasons\u003c/code\u003e in JSON format, including relevant fields and their data types for both the skipped shipment itself and the associated reasons.\u003c/p\u003e\n"]]],[],null,["# SkippedShipment\n\n- [JSON representation](#SCHEMA_REPRESENTATION)\n- [Reason](#Reason)\n - [JSON representation](#Reason.SCHEMA_REPRESENTATION)\n- [Code](#Code)\n\nSpecifies details of unperformed shipments in a solution. For trivial cases and/or if we are able to identify the cause for skipping, we report the reason here.\n\n| JSON representation |\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"index\": integer, \"label\": string, \"reasons\": [ { object (/maps/tt/route-optimization/experimental/load-cost/reference/rest/v1/SkippedShipment#Reason) } ] } ``` |\n\n| Fields ||\n|-------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `index` | `integer` The index corresponds to the index of the shipment in the source `ShipmentModel`. |\n| `label` | `string` Copy of the corresponding [Shipment.label](/maps/tt/route-optimization/experimental/load-cost/reference/rest/v1/ShipmentModel#Shipment.FIELDS.label), if specified in the `Shipment`. |\n| `reasons[]` | `object (`[Reason](/maps/tt/route-optimization/experimental/load-cost/reference/rest/v1/SkippedShipment#Reason)`)` A list of reasons that explain why the shipment was skipped. See comment above `Reason`. If we are unable to understand why a shipment was skipped, reasons will not be set. |\n\nReason\n------\n\nIf we can explain why the shipment was skipped, reasons will be listed here. If the reason is not the same for all vehicles, `reason` will have more than 1 element. A skipped shipment cannot have duplicate reasons, i.e. where all fields are the same except for `exampleVehicleIndex`. Example: \n\n reasons {\n code: DEMAND_EXCEEDS_VEHICLE_CAPACITY\n exampleVehicleIndex: 1\n exampleExceededCapacityType: \"Apples\"\n }\n reasons {\n code: DEMAND_EXCEEDS_VEHICLE_CAPACITY\n exampleVehicleIndex: 3\n exampleExceededCapacityType: \"Pears\"\n }\n reasons {\n code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT\n exampleVehicleIndex: 1\n }\n\nThe skipped shipment is incompatible with all vehicles. The reasons may be different for all vehicles but at least one vehicle's \"Apples\" capacity would be exceeded (including vehicle 1), at least one vehicle's \"Pears\" capacity would be exceeded (including vehicle 3) and at least one vehicle's distance limit would be exceeded (including vehicle 1).\n\n| JSON representation |\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"code\": enum (/maps/tt/route-optimization/experimental/load-cost/reference/rest/v1/SkippedShipment#Code), \"exampleExceededCapacityType\": string, \"exampleVehicleIndex\": integer } ``` |\n\n| Fields ||\n|-------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|\n| `code` | `enum (`[Code](/maps/tt/route-optimization/experimental/load-cost/reference/rest/v1/SkippedShipment#Code)`)` Refer to the comments of Code. |\n| `exampleExceededCapacityType` | `string` If the reason code is `DEMAND_EXCEEDS_VEHICLE_CAPACITY`, documents one capacity type that is exceeded. |\n| `exampleVehicleIndex` | `integer` If the reason is related to a shipment-vehicle incompatibility, this field provides the index of one relevant vehicle. |\n\nCode\n----\n\nCode identifying the reason type. The order here is meaningless. In particular, it gives no indication of whether a given reason will appear before another in the solution, if both apply.\n\n| Enums ||\n|------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `CODE_UNSPECIFIED` | This should never be used. |\n| `NO_VEHICLE` | There is no vehicle in the model making all shipments infeasible. |\n| `DEMAND_EXCEEDS_VEHICLE_CAPACITY` | The demand of the shipment exceeds a vehicle's capacity for some capacity types, one of which is `exampleExceededCapacityType`. |\n| `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT` | The minimum distance necessary to perform this shipment, i.e. from the vehicle's `startLocation` to the shipment's pickup and/or delivery locations and to the vehicle's end location exceeds the vehicle's `routeDistanceLimit`. Note that for this computation we use the geodesic distances. |\n| `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT` | The minimum time necessary to perform this shipment, including travel time, wait time and service time exceeds the vehicle's `routeDurationLimit`. Note: travel time is computed in the best-case scenario, namely as geodesic distance x 36 m/s (roughly 130 km/hour). |\n| `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT` | Same as above but we only compare minimum travel time and the vehicle's `travelDurationLimit`. |\n| `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS` | The vehicle cannot perform this shipment in the best-case scenario (see `CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT` for time computation) if it starts at its earliest start time: the total time would make the vehicle end after its latest end time. |\n| `VEHICLE_NOT_ALLOWED` | The `allowedVehicleIndices` field of the shipment is not empty and this vehicle does not belong to it. |"]]