PICKUP
(погрузка), DROP
(выгрузка)DROP_FROM_BOX
(выгрузка груза, который уже находится в кузове), PICKUP_TO_BOX
(забор груза в кузов без последующей выгрузки), WORK
(работа на локации без перемещения груза)Ограничения на исполнителя:
Ограничения на транспорт:
Ограничения на заказ:
Сущности являются совместимыми, если список свойств одной сущности полностью покрывает список требований другой сущности (наоборот для performer_blacklist
- списки не должны пересекаться).
Поддерживаемые совместимости:
Название | Требования | Свойства |
---|---|---|
Заказ - Исполнитель | order.performer_restrictions | performer.performer_features |
Заказ - Не Исполнитель | order.performer_blacklist | performer.performer_features |
Груз - Отсек | order.cargo.box_restrictions | transport.box.box_features |
Локация - Транспорт | location.transport_restrictions | transport.transport_features |
Транспорт - Исполнитель | transport.performer_restrictions | performer.performer_features |
Исполнитель - Транспорт | performer.transport_restrictions | transport.transport_features |
Заказ - Заказ | order.order_restrictions | order.order_features |
Груз - Груз | cargo.cargo_restrictions | cargo.cargo_features |
Примеры бизнес правил:
Название | Пример бизнес-правила |
---|---|
Заказ - Исполнитель | Для выполнения заказа водитель должен иметь особое разрешение |
Заказ - Не Исполнитель | Водитель в черном списке |
Груз - Отсек | Для перевозки замороженной продукции необходим отсек с особым температурным режимом |
Локация - Транспорт | Ограничения на высоту транспорта |
Транспорт - Исполнитель | Для грузового транспорта водитель должен иметь категорию C |
Исполнитель - Транспорт | Водителю разрешено работать только на определенном транспорте |
Заказ - Заказ | Нельзя перевозить рыбу и фрукты в одном отсеке |
Груз - Груз | Два груза нельзя одновременно размещать в одном отсеке транспорта, по очереди - можно |
Механизм назначений (hardlinks
) необходим для указания требований по нахождению заказов, исполнителя и транспорта в одном рейсе.
Назначение гарантирует нахождения сущностей в одном рейсе и не гарантирует факт планирования сущности.
Например, если исполнитель не успевает выполнить заказ, то он не запланируется, но назначится на рейс (попадет в waitlist
).
Также назначение не отменяет указанные совместимости (и штрафы за нарушение совместимостей).
Например, если заказ не может быть выполнен исполнителем, он не запланируется, но назначится на рейс (попадет в waitlist
).
Список способностей объекта вращаться (с шагом в 90 градусов):
ALL
- можно поворачивать по любой оси любое количество разYAW
- можно повернуть один раз по вертикальной оси (вокруг своей оси)PITCH
- можно повернуть один раз по поперечной оси (поставить вертикально)ROLL
- можно повернуть один раз по продольной оси (положить на бок)Рейс описывается списком состояний исполнителя, при этом одновременно исполнитель может находится в нескольких состояниях (например быть внутри рабочего временного окна локации и выполнять заказ на этой же локации).
Значения флагов, отвечающих за географическое положение:
AROUND_LOCATION
- исполнитель находится рядом с локацией - в процессе парковки или выезда с нее.INSIDE_LOCATION
- исполнитель находится на локации.Значения флагов, отвечающих за нахождения во временных окнах:
INSIDE_WORKING_WINDOW
- исполнитель находится внутри рабочего временного окна.INSIDE_LOCATION_WINDOW
- исполнитель находится внутри времени работы локации.INSIDE_EVENT_HARD_WINDOW
- исполнитель находится внутри жесткого временного окна.INSIDE_EVENT_SOFT_WINDOW
- исполнитель находится внутри мягкого временного окна.Значения флагов, отвечающих за действия:
ON_DEMAND
- исполнитель начал работу над заявкой.WAITING
- исполнитель начал ожидание.RELOCATING
- исполнитель начал перемещаться к следующей остановке.BREAK
- исполнитель начал на перерыв.REST
- исполнитель начал длительный отдых.ARRIVAL
- исполнитель начал парковку.DEPARTURE
- исполнитель завершил выезд с парковки.Время | Набор активных флагов | Локация / Заказ / Заявка / Событие | Комментарий |
---|---|---|---|
10:00 | INSIDE_LOCATION AROUND_LOCATION |
2 / - / - / - | Стартовая локация |
10:05 | AROUND_LOCATION DEPARTURE |
2 / - / - / - | Выехали с парковки |
10:10 | RELOCATING DEPARTURE |
2 / - / - / - | Едем к первому заказу |
10:20 | AROUND_LOCATION ARRIVAL |
2 / - / - / - | Подъехали к первому заказу |
10:40 | AROUND_LOCATION INSIDE_LOCATION WAITING |
2 / - / - / - | Припарковались |
11:00 | AROUND_LOCATION INSIDE_LOCATION INSIDE_LOCATION_WINDOW WAITING INSIDE_EVENT_HARD_WINDOW |
2 / - / - / - | Дождались начала окна локации и одновременно доступности заказа |
11:25 | AROUND_LOCATION INSIDE_LOCATION INSIDE_LOCATION_WINDOW ON_DEMAND INSIDE_WORKING_WINDOW INSIDE_EVENT_HARD_WINDOW |
2 / 1 / 2 / 3 | Дождались смены исполнителя |
11:30 | AROUND_LOCATION INSIDE_LOCATION INSIDE_LOCATION_WINDOW ON_DEMAND INSIDE_WORKING_WINDOW INSIDE_EVENT_HARD_WINDOW INSIDE_EVENT_SOFT_WINDOW |
2 / 1 / 2 / 3 | Пока работали - случилось мягкое окно |
11:40 | AROUND_LOCATION INSIDE_LOCATION INSIDE_LOCATION_WINDOW INSIDE_WORKING_WINDOW |
2 / - / - / - | Закончили работать |
11:45 | AROUND_LOCATION DEPARTURE INSIDE_WORKING_WINDOW |
2 / - / - /- | Выехали с парковки |
11:45 | RELOCATING INSIDE_WORKING_WINDOW |
- / - / - / - | Едем на следующий заказ |
Для каждого планирования есть возможность указать конфигурацию планирования, которая определяет целевую функцию, желаемое качество маршрутов и скорость расчета.
Название конфигурации планирования передается в поле trips_settings.configuration
.
Основные конфигурации:
Название | Задача |
---|---|
optimize_distance | Расставить как можно больше заказов, затем оптимизировать суммарный пробег (количество транспорта выбирается исходя из пробега), используется по умолчанию |
optimize_transports | Расставить как можно больше заказов, при этом использовать как можно меньше транспорта, при прочих равных оптимизировать время работы исполнителей |
optimize_locality_grouping | Расставить как можно больше заказов, при этом стремиться оптимизировать визуальную группировку маршрутов, но не их количество |
optimize_cars_then_distance | Расставить как можно больше заказов, затем оптимизировать количество транспорта, затем пробег |
optimize_time | Расставить как можно больше заказов, затем оптимизировать суммарное время работы исполнителей |
optimize_cars_then_time | Расставить как можно больше заказов, затем оптимизировать количество транспорта, затем суммарное время работы исполнителей |
optimize_money | Оптимизировать величину "прибыль - затраты", складывается из наград за заявки и расходов на исполнителей и транспорты (оптимизируемая величина неотрицательна) |
Дополнительные конфигурации:
Название | Задача |
---|---|
visual_grouping | Расставить как можно больше заказов, при этом использовать как можно меньше транспорта и маршруты должны быть визуально сгруппированы |
optimize_visual_grouping | Расставить как можно больше заказов, затем равномерно распределить заказы с учетом зон транспортной доступности (как visual_grouping, но визуальная группировка рассчитывается иначе) |
optimize_cars_then_locality_grouping | Расставить как можно больше заказов, затем оптимизировать количество транспорта, затем визуальную группировку маршрутов |
optimize_cars_then_single_location_grouping_sequenced | Расставить как можно больше заказов, затем оптимизировать количество машин, а затем надёжность |
В дополнение к существующим вариантам планирования возможно создание целевой функции непосредственно под бизнес-процессы клиента (запросить конфигурацию).
Для разработки рекомендуется использовать optimize_cars_then_distance, так как данная конфигурация не требует детального подбора тарифов и стоимостей заказов.
Валидация входных данных состоит из нескольких этапов, которые описаны ниже.
Если запрос не проходит по схеме, то планирование не запускается целиком и такая ошибка возвращается вместе с кодом 400 в schema_errors
.
Мы рекомендуем проверять запрос по схеме (или yaml-файлу) перед отправкой на сервер.
Корректные по схеме данные проходят второй этап проверки на возможность запуска планирования.
Пример ошибок на данном этапе - ключи, ведущие на пустые сущности, или если все заказы несовместимы со всеми исполнителями, т.е. то, что делает задачу планирования бессмысленной.
Данные ошибки возвращаются вместе с кодом 400 в logical_errors
.
На третьем этапе происходит проверка каждой сущности отдельно.
Все сущности, которые не прошли проверку - вырезаются из исходной задачи и не отправляются на планирование.
В зависимости от настройки treat_warnings_as_errors
результаты данного типа проверки возвращаются в warnings
вместе с кодом 400, либо вместе с результатом планирования.
Часть проверок можно осуществить только в процессе планирования.
Например - что согласно указанным тарифам и по актуальному прогнозу пробок физически невозможно доехать до определенной точки.
Результаты данных проверок возвращаются в warnings
либо вместе с результатом планирования.
Планирование - создание рейсов, которые учитывают все заданные ограничения, на основе данных о заказах, исполнителях и транспорте.
Запросы на планирования возможно выполнять в синхронном (для тестирования) и асинхронном (для основного использования) режимах.
Чтобы получить результат работы очистки исходной задачи воспользуйтесь очисткой данных для планирования.
Запуск планирования рейсов - после загрузки и проверки данных возвращается идентификатор расчета process_code
.
С помощью process_code
можно узнать состояние расчета и получить результат,
a также отменить расчет и удалить временные данные (иначе они автоматически удалятся по ttl, указанному в настройках расчета).
Запуск асинхронного планирования.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
object (plan_settings) Настройки планирования. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
process_code required | string <uuid> (process_code) Example: "11111111-2222-3333-4444-555555555555" Код процесса - идентификатор расчета. |
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 35.7048259,
- "longitude": 139.7297071
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 35.71861,
- "longitude": 139.7190533
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 35.7099049,
- "longitude": 139.7265958
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 35.7042346,
- "longitude": 139.6531996
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "plan_settings": {
- "trips_settings": {
- "configuration": "optimize_distance"
}, - "geo_settings": {
- "toll_roads": true,
- "traffic_jams": false
}
}
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "username_for_login",
- "company": "smart_company",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "env": "edge7",
- "pod": "11111111-2222-3333-4444-555555555555",
- "time": "2024-11-21T09:30:00+03:00"
}, - "process_code": "11111111-2222-3333-4444-555555555555"
}
Синхронный метод для создания рейсов.
Данный метод рекомендуется только для тестового использования и ручного запуска расчетов на небольшом объеме данных.
Для боевой среды рекомендуется использовать асинхронный метод.
Новый запрос на планирование.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
object (plan_settings) Настройки планирования. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 35.7048259,
- "longitude": 139.7297071
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 35.71861,
- "longitude": 139.7190533
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 35.7099049,
- "longitude": 139.7265958
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 35.7042346,
- "longitude": 139.6531996
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "plan_settings": {
- "trips_settings": {
- "configuration": "optimize_distance"
}, - "geo_settings": {
- "toll_roads": true,
- "traffic_jams": false
}
}
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-01T11:50:15.123Z"
}, - "trips": [
- {
- "key": "018fcd54-adda-4463-8a24-0f253264223f-performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:13:23Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:13:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:13:23Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:28:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:28:23Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:28:23Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:11Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:11Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:11Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:40:11Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}
], - "name": "1-HVFB",
- "waitlist": [ ],
- "attributes": [ ]
}
], - "statistics": {
- "total_statistics": {
- "cost": 5547.805,
- "reward": 3000.3,
- "profit": 0,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}, - "driving_time": "PT22M48S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT57M48S",
- "distance": 7980
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "average_speed": 7.98,
- "round_trips_count": 1
}, - "trips_statistics": [
- {
- "trip_key": "018fcd54-adda-4463-8a24-0f253264223f-performer_1_shift",
- "general_statistics": {
- "cost": 5547.805,
- "reward": 3000.3,
- "profit": -2547.505,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}, - "driving_time": "PT22M48S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT57M48S",
- "distance": 7980
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "average_speed": 7.98,
- "round_trips_count": 1
}, - "load_statistics": {
- "total_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_transfer_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - "stop_statistics": [
- {
- "location_key": "location_storage",
- "stop_demands": [
- {
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}
}, - {
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}, - "driving_time": "PT0S",
- "waiting_time": "PT0S",
- "working_time": "PT0S",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT0S",
- "distance": 0
}, - "upload": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_2",
- "stop_demands": [
- {
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:10:00Z"
}, - "driving_time": "PT17M37S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT27M37S",
- "distance": 6164
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_3",
- "stop_demands": [
- {
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "demand_time_window": {
- "from": "2024-11-08T05:13:23Z",
- "to": "2024-11-08T05:28:23Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:13:23Z",
- "to": "2024-11-08T05:28:23Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:10:00Z",
- "to": "2024-11-08T05:28:23Z"
}, - "driving_time": "PT3M23S",
- "waiting_time": "PT0S",
- "working_time": "PT15M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT18M23S",
- "distance": 1185
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_1",
- "stop_demands": [
- {
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:30:11Z",
- "to": "2024-11-08T05:40:11Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:30:11Z",
- "to": "2024-11-08T05:40:11Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:28:23Z",
- "to": "2024-11-08T05:40:11Z"
}, - "driving_time": "PT1M48S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT11M48S",
- "distance": 631
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}
]
}
], - "locations_statistics": [ ],
- "task_statistics": {
- "planning_horizon": {
- "from": "2024-11-07T21:00:00Z",
- "to": "2024-11-08T21:00:59Z"
}
}, - "quality": {
- "locations_limits_penalty": 0,
- "soft_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}, - "hard_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}
}
}, - "calculation_progress": 100,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 106,
- "preparing_time": "PT0S",
- "business_validation_time": "PT0S",
- "math_validation_time": "PT0S",
- "waiting_time": "PT3.04S",
- "calculation_time": "PT1.012S"
}, - "warnings": [ ],
- "unplanned_items": {
- "order_keys": [ ],
- "order_keys_count": 0,
- "performer_keys": [ ],
- "performer_keys_count": 0,
- "transport_keys": [ ],
- "transport_keys_count": 0,
- "hardlink_keys": [ ],
- "hardlink_keys_count": 0
}
}
Отмена процесса планирования по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-28T17:13:27.945583194Z"
}, - "message": "logical",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "entities": [
- {
- "entity_key": "order_1",
- "entity_type": "ORDER"
}
]
}
], - "warnings": [ ]
}
Получение состояния расчета по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
required | object (tracedata) Данные используемые для трассировки запросов. |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
required | object (tracedata) Данные используемые для трассировки запросов. |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "username_for_login",
- "company": "smart_company",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "env": "edge7",
- "pod": "11111111-2222-3333-4444-555555555555",
- "time": "2024-11-21T09:30:00+03:00"
}, - "calculation_progress": 52,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 133,
- "preparing_time": "PT1H45M",
- "business_validation_time": "PT1H45M",
- "math_validation_time": "PT1H45M",
- "waiting_time": "PT1H45M",
- "calculation_time": "PT1H45M"
}
}
Получение результата планирования по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-01T11:50:15.123Z"
}, - "trips": [
- {
- "key": "018fcd54-adda-4463-8a24-0f253264223f-performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:13:23Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:13:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:13:23Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:28:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:28:23Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:28:23Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:11Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:11Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:11Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:40:11Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}
], - "name": "1-HVFB",
- "waitlist": [ ],
- "attributes": [ ]
}
], - "statistics": {
- "total_statistics": {
- "cost": 5547.805,
- "reward": 3000.3,
- "profit": 0,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}, - "driving_time": "PT22M48S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT57M48S",
- "distance": 7980
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "average_speed": 7.98,
- "round_trips_count": 1
}, - "trips_statistics": [
- {
- "trip_key": "018fcd54-adda-4463-8a24-0f253264223f-performer_1_shift",
- "general_statistics": {
- "cost": 5547.805,
- "reward": 3000.3,
- "profit": -2547.505,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}, - "driving_time": "PT22M48S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT57M48S",
- "distance": 7980
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "average_speed": 7.98,
- "round_trips_count": 1
}, - "load_statistics": {
- "total_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_transfer_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - "stop_statistics": [
- {
- "location_key": "location_storage",
- "stop_demands": [
- {
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}
}, - {
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}, - "driving_time": "PT0S",
- "waiting_time": "PT0S",
- "working_time": "PT0S",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT0S",
- "distance": 0
}, - "upload": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_2",
- "stop_demands": [
- {
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:10:00Z"
}, - "driving_time": "PT17M37S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT27M37S",
- "distance": 6164
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_3",
- "stop_demands": [
- {
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "demand_time_window": {
- "from": "2024-11-08T05:13:23Z",
- "to": "2024-11-08T05:28:23Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:13:23Z",
- "to": "2024-11-08T05:28:23Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:10:00Z",
- "to": "2024-11-08T05:28:23Z"
}, - "driving_time": "PT3M23S",
- "waiting_time": "PT0S",
- "working_time": "PT15M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT18M23S",
- "distance": 1185
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_1",
- "stop_demands": [
- {
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:30:11Z",
- "to": "2024-11-08T05:40:11Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:30:11Z",
- "to": "2024-11-08T05:40:11Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:28:23Z",
- "to": "2024-11-08T05:40:11Z"
}, - "driving_time": "PT1M48S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT11M48S",
- "distance": 631
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}
]
}
], - "locations_statistics": [ ],
- "task_statistics": {
- "planning_horizon": {
- "from": "2024-11-07T21:00:00Z",
- "to": "2024-11-08T21:00:59Z"
}
}, - "quality": {
- "locations_limits_penalty": 0,
- "soft_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}, - "hard_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}
}
}, - "calculation_progress": 100,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 106,
- "preparing_time": "PT0S",
- "business_validation_time": "PT0S",
- "math_validation_time": "PT0S",
- "waiting_time": "PT3.04S",
- "calculation_time": "PT1.012S"
}, - "warnings": [ ],
- "unplanned_items": {
- "order_keys": [ ],
- "order_keys_count": 0,
- "performer_keys": [ ],
- "performer_keys_count": 0,
- "transport_keys": [ ],
- "transport_keys_count": 0,
- "hardlink_keys": [ ],
- "hardlink_keys_count": 0
}
}
Удаление результата по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-28T17:13:27.945583194Z"
}, - "message": "logical",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "entities": [
- {
- "entity_key": "order_1",
- "entity_type": "ORDER"
}
]
}
], - "warnings": [ ]
}
Проверка данных для планирования перед использованием.
Данные, которые необходимо проверить.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
object (plan_settings) Настройки планирования. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. |
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 35.7048259,
- "longitude": 139.7297071
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 35.71861,
- "longitude": 139.7190533
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 35.7099049,
- "longitude": 139.7265958
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 35.7042346,
- "longitude": 139.6531996
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "plan_settings": {
- "trips_settings": {
- "configuration": "optimize_distance"
}, - "geo_settings": {
- "toll_roads": true,
- "traffic_jams": false
}
}
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_validation",
- "time": "2024-11-01T11:50:15.123Z"
}, - "warnings": [
- {
- "type": "NO_AVAILABLE_TRANSPORT",
- "entities": [
- {
- "entity_key": "ord0001",
- "entity_type": "ORDER"
}
]
}
]
}
Очистка данных для планирования перед расчетом.
Данные, которые необходимо очистить.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
object (plan_settings) Настройки планирования. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | object (plan_task) Задача для планирования. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (removed_items) Информация о удаленных сущностях. |
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "plan_settings": {
- "trips_settings": {
- "configuration": "optimize_distance"
}, - "geo_settings": {
- "toll_roads": true,
- "traffic_jams": false
}
}
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_replan_calculation",
- "time": "2024-11-28T17:06:33.856Z"
}, - "plan_task": {
- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "plan_settings": {
- "trips_settings": {
- "configuration": "optimize_distance"
}, - "geo_settings": {
- "toll_roads": true,
- "traffic_jams": false
}
}
}
}
Расчет статистики по существующим рейсам
Новый запрос.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
required | Array of objects (trip) [ 1 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
object (plan_settings) Настройки планирования. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "locations": [
- {
- "key": "performer_1_current_location",
- "geopoint": {
- "latitude": 55.720292,
- "longitude": 37.625994
}
}, - {
- "key": "unused_location",
- "geopoint": {
- "latitude": 55.512292,
- "longitude": 37.915934
}
}, - {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "trips": [
- {
- "key": "trip_for_performer_1",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
]
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-01T11:50:15.123Z"
}, - "trips": [
- {
- "key": "018fcd54-adda-4463-8a24-0f253264223f-performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:42:23Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:13:23Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:13:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:13:23Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:28:23Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:28:23Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:28:23Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:11Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:11Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:11Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:40:11Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}
], - "name": "1-HVFB",
- "waitlist": [ ],
- "attributes": [ ]
}
], - "statistics": {
- "total_statistics": {
- "cost": 5547.805,
- "reward": 3000.3,
- "profit": 0,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}, - "driving_time": "PT22M48S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT57M48S",
- "distance": 7980
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "average_speed": 7.98,
- "round_trips_count": 1
}, - "trips_statistics": [
- {
- "trip_key": "018fcd54-adda-4463-8a24-0f253264223f-performer_1_shift",
- "general_statistics": {
- "cost": 5547.805,
- "reward": 3000.3,
- "profit": -2547.505,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:40:11Z"
}, - "driving_time": "PT22M48S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT57M48S",
- "distance": 7980
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "average_speed": 7.98,
- "round_trips_count": 1
}, - "load_statistics": {
- "total_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_transfer_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - "stop_statistics": [
- {
- "location_key": "location_storage",
- "stop_demands": [
- {
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}
}, - {
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T04:42:23Z"
}, - "driving_time": "PT0S",
- "waiting_time": "PT0S",
- "working_time": "PT0S",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT0S",
- "distance": 0
}, - "upload": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_2",
- "stop_demands": [
- {
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:42:23Z",
- "to": "2024-11-08T05:10:00Z"
}, - "driving_time": "PT17M37S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT27M37S",
- "distance": 6164
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_3",
- "stop_demands": [
- {
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "demand_time_window": {
- "from": "2024-11-08T05:13:23Z",
- "to": "2024-11-08T05:28:23Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:13:23Z",
- "to": "2024-11-08T05:28:23Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:10:00Z",
- "to": "2024-11-08T05:28:23Z"
}, - "driving_time": "PT3M23S",
- "waiting_time": "PT0S",
- "working_time": "PT15M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT18M23S",
- "distance": 1185
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_1",
- "stop_demands": [
- {
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:30:11Z",
- "to": "2024-11-08T05:40:11Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:30:11Z",
- "to": "2024-11-08T05:40:11Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:28:23Z",
- "to": "2024-11-08T05:40:11Z"
}, - "driving_time": "PT1M48S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT11M48S",
- "distance": 631
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}
]
}
], - "locations_statistics": [ ],
- "task_statistics": {
- "planning_horizon": {
- "from": "2024-11-07T21:00:00Z",
- "to": "2024-11-08T21:00:59Z"
}
}, - "quality": {
- "locations_limits_penalty": 0,
- "soft_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}, - "hard_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}
}
}, - "calculation_progress": 100,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 106,
- "preparing_time": "PT0S",
- "business_validation_time": "PT0S",
- "math_validation_time": "PT0S",
- "waiting_time": "PT3.04S",
- "calculation_time": "PT1.012S"
}, - "warnings": [ ],
- "unplanned_items": {
- "order_keys": [ ],
- "order_keys_count": 0,
- "performer_keys": [ ],
- "performer_keys_count": 0,
- "transport_keys": [ ],
- "transport_keys_count": 0,
- "hardlink_keys": [ ],
- "hardlink_keys_count": 0
}
}
Актуализация рейсов - обновление планового времени выполнения заказов с учетом фактов и без изменения порядка обьезда.
Актуализация проходит в три этапа - проверка, применение фактов, планирование времен у невыполненных состояний рейсов.
Чтобы получить результат очистки и применения фактов к исходной задаче воспользуйтесь переработкой данных.
Полученные в результате актуализации рейсы не меняют исполнителей, транспорт и порядок выполнения заказов, содержат только те работы, которые осталось выполнить. Заказы, которые не могут быть выполнены - остаются назначенными на исполнителя и попадают в waitlist
.
Очистка данных:
actualize_settings.current_time
.Учет существующих рейсов:
hardlink
- т.е. назначенные на рейс смены исполнителя и транспорта не могут использоваться в других рейсах.precedence_in_trip
, если у заявок уже был указан порядок выполнения - он будет перезаписан.Учет текущего времени:
actualize_settings.current_time
в данных не задано - то используется время получения запроса сервером.actualize_settings.current_time
.actualize_settings.max_delay_duration
.Учет факта о изменения локации NEW_LOCATION
:
locations
должна находится новая локация, которая описывает текущую координату исполнителя.start_location_key
у исполнителя и транспорта.time
.Учет факта о завершении заказа ORDER_DONE
:
Учет фактов о частичном выполнении заказов DEMAND_START
и DEMAND_DONE
:
ORDER_DONE
).PICKUP
, то соответствующая ей заявка с типом DROP
будет преобразована в заявку с типом DROP_FROM_BOX
.DEMAND_START
(закрывается фактом DEMAND_DONE
) - так как исполнитель может в один момент времени выполнять только одну заявку.Запуск актуализации существующих рейсов - после загрузки и проверки данных возвращается идентификатор расчета process_code
.
С помощью process_code
можно узнать состояние расчета, получить результат,
a также отменить расчет и удалить временные данные (иначе они автоматически удалятся по ttl, указанному в настройках расчета).
Задачу на актуализацию можно трансформировать в задачу на планирование с помощью переработки данных.
Запуск асинхронного процесса актуализации.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. |
required | Array of objects (trip) [ 1 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (actualize_settings) Настройки актуализации. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
process_code required | string <uuid> (process_code) Example: "11111111-2222-3333-4444-555555555555" Код процесса - идентификатор расчета. |
{- "locations": [
- {
- "key": "performer_1_current_location",
- "geopoint": {
- "latitude": 55.720292,
- "longitude": 37.625994
}
}, - {
- "key": "unused_location",
- "geopoint": {
- "latitude": 55.512292,
- "longitude": 37.915934
}
}, - {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "facts": [
- {
- "key": "fact_01",
- "type": "NEW_LOCATION",
- "time": "2024-11-07T22:00:00Z",
- "trip_key": "trip_for_performer_1",
- "performer_key": "performer_1",
- "location_key": "performer_1_current_location"
}
], - "trips": [
- {
- "key": "trip_for_performer_1",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
], - "actualize_settings": {
- "current_time": "2024-11-07T22:30:00Z",
- "max_delay_duration": "PT1H"
}
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "username_for_login",
- "company": "smart_company",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "env": "edge7",
- "pod": "11111111-2222-3333-4444-555555555555",
- "time": "2024-11-21T09:30:00+03:00"
}, - "process_code": "11111111-2222-3333-4444-555555555555"
}
Синхронный метод для актуализации существующих рейсов.
Данный метод рекомендуется только для тестового использования и ручного запуска расчетов на небольшом объеме данных.
Для боевой среды рекомендуется использовать асинхронный метод.
Новый запрос на актуализацию.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. |
required | Array of objects (trip) [ 1 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (actualize_settings) Настройки актуализации. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "locations": [
- {
- "key": "performer_1_current_location",
- "geopoint": {
- "latitude": 55.720292,
- "longitude": 37.625994
}
}, - {
- "key": "unused_location",
- "geopoint": {
- "latitude": 55.512292,
- "longitude": 37.915934
}
}, - {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "facts": [
- {
- "key": "fact_01",
- "type": "NEW_LOCATION",
- "time": "2024-11-07T22:00:00Z",
- "trip_key": "trip_for_performer_1",
- "performer_key": "performer_1",
- "location_key": "performer_1_current_location"
}
], - "trips": [
- {
- "key": "trip_for_performer_1",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
], - "actualize_settings": {
- "current_time": "2024-11-07T22:30:00Z",
- "max_delay_duration": "PT1H"
}
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_actualize_calculation",
- "time": "2024-11-28T17:06:33.856Z"
}, - "trips": [
- {
- "key": "d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:49Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "name": "1-HVFB",
- "waitlist": [ ],
- "attributes": [ ]
}
], - "statistics": {
- "total_statistics": {
- "cost": 6795.37,
- "reward": 3000.3,
- "profit": 0,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT39M15S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT1H14M15S",
- "distance": 34037
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "average_speed": 34.037,
- "round_trips_count": 1
}, - "trips_statistics": [
- {
- "trip_key": "d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift",
- "general_statistics": {
- "cost": 6795.37,
- "reward": 3000.3,
- "profit": -3795.07,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT39M15S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT1H14M15S",
- "distance": 34037
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "average_speed": 34.037,
- "round_trips_count": 1
}, - "load_statistics": {
- "total_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_transfer_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - "stop_statistics": [
- {
- "location_key": "location_storage",
- "stop_demands": [
- {
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}
}, - {
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}, - "driving_time": "PT0S",
- "waiting_time": "PT0S",
- "working_time": "PT0S",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT0S",
- "distance": 0
}, - "upload": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_2",
- "stop_demands": [
- {
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:10:00Z"
}, - "driving_time": "PT20M26S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT30M26S",
- "distance": 17110
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_1",
- "stop_demands": [
- {
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:20:56Z",
- "to": "2024-11-08T05:30:56Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:20:56Z",
- "to": "2024-11-08T05:30:56Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:10:00Z",
- "to": "2024-11-08T05:30:56Z"
}, - "driving_time": "PT10M56S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT20M56S",
- "distance": 9897
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_3",
- "stop_demands": [
- {
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "demand_time_window": {
- "from": "2024-11-08T05:38:49Z",
- "to": "2024-11-08T05:53:49Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:38:49Z",
- "to": "2024-11-08T05:53:49Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:30:56Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT7M53S",
- "waiting_time": "PT0S",
- "working_time": "PT15M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT22M53S",
- "distance": 7030
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}
]
}
], - "locations_statistics": [ ],
- "task_statistics": {
- "planning_horizon": {
- "from": "2024-11-07T21:00:00Z",
- "to": "2024-11-08T21:00:59Z"
}
}, - "quality": {
- "locations_limits_penalty": 0,
- "soft_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}, - "hard_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}
}
}, - "calculation_progress": 100,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 106,
- "preparing_time": "PT0S",
- "business_validation_time": "PT0S",
- "math_validation_time": "PT0S",
- "waiting_time": "PT4.022S",
- "calculation_time": "PT1.012S"
}, - "warnings": [ ],
- "unplanned_items": {
- "order_keys": [ ],
- "order_keys_count": 0,
- "performer_keys": [ ],
- "performer_keys_count": 0,
- "transport_keys": [ ],
- "transport_keys_count": 0,
- "hardlink_keys": [ ],
- "hardlink_keys_count": 0
}
}
Отмена процесса актуализации по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-28T17:13:27.945583194Z"
}, - "message": "logical",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "entities": [
- {
- "entity_key": "order_1",
- "entity_type": "ORDER"
}
]
}
], - "warnings": [ ]
}
Получение состояния расчета по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
required | object (tracedata) Данные используемые для трассировки запросов. |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
required | object (tracedata) Данные используемые для трассировки запросов. |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "username_for_login",
- "company": "smart_company",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "env": "edge7",
- "pod": "11111111-2222-3333-4444-555555555555",
- "time": "2024-11-21T09:30:00+03:00"
}, - "calculation_progress": 52,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 133,
- "preparing_time": "PT1H45M",
- "business_validation_time": "PT1H45M",
- "math_validation_time": "PT1H45M",
- "waiting_time": "PT1H45M",
- "calculation_time": "PT1H45M"
}
}
Получение результата актуализации по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_actualize_calculation",
- "time": "2024-11-28T17:06:33.856Z"
}, - "trips": [
- {
- "key": "d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:49Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "name": "1-HVFB",
- "waitlist": [ ],
- "attributes": [ ]
}
], - "statistics": {
- "total_statistics": {
- "cost": 6795.37,
- "reward": 3000.3,
- "profit": 0,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT39M15S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT1H14M15S",
- "distance": 34037
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "average_speed": 34.037,
- "round_trips_count": 1
}, - "trips_statistics": [
- {
- "trip_key": "d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift",
- "general_statistics": {
- "cost": 6795.37,
- "reward": 3000.3,
- "profit": -3795.07,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT39M15S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT1H14M15S",
- "distance": 34037
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "average_speed": 34.037,
- "round_trips_count": 1
}, - "load_statistics": {
- "total_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_transfer_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - "stop_statistics": [
- {
- "location_key": "location_storage",
- "stop_demands": [
- {
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}
}, - {
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}, - "driving_time": "PT0S",
- "waiting_time": "PT0S",
- "working_time": "PT0S",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT0S",
- "distance": 0
}, - "upload": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_2",
- "stop_demands": [
- {
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:10:00Z"
}, - "driving_time": "PT20M26S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT30M26S",
- "distance": 17110
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_1",
- "stop_demands": [
- {
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:20:56Z",
- "to": "2024-11-08T05:30:56Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:20:56Z",
- "to": "2024-11-08T05:30:56Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:10:00Z",
- "to": "2024-11-08T05:30:56Z"
}, - "driving_time": "PT10M56S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT20M56S",
- "distance": 9897
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_3",
- "stop_demands": [
- {
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "demand_time_window": {
- "from": "2024-11-08T05:38:49Z",
- "to": "2024-11-08T05:53:49Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:38:49Z",
- "to": "2024-11-08T05:53:49Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:30:56Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT7M53S",
- "waiting_time": "PT0S",
- "working_time": "PT15M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT22M53S",
- "distance": 7030
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}
]
}
], - "locations_statistics": [ ],
- "task_statistics": {
- "planning_horizon": {
- "from": "2024-11-07T21:00:00Z",
- "to": "2024-11-08T21:00:59Z"
}
}, - "quality": {
- "locations_limits_penalty": 0,
- "soft_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}, - "hard_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}
}
}, - "calculation_progress": 100,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 106,
- "preparing_time": "PT0S",
- "business_validation_time": "PT0S",
- "math_validation_time": "PT0S",
- "waiting_time": "PT4.022S",
- "calculation_time": "PT1.012S"
}, - "warnings": [ ],
- "unplanned_items": {
- "order_keys": [ ],
- "order_keys_count": 0,
- "performer_keys": [ ],
- "performer_keys_count": 0,
- "transport_keys": [ ],
- "transport_keys_count": 0,
- "hardlink_keys": [ ],
- "hardlink_keys_count": 0
}
}
Удаление результата по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-28T17:13:27.945583194Z"
}, - "message": "logical",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "entities": [
- {
- "entity_key": "order_1",
- "entity_type": "ORDER"
}
]
}
], - "warnings": [ ]
}
Проверка данных для актуализации перед использованием.
Данные, которые необходимо проверить.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. |
required | Array of objects (trip) [ 1 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (actualize_settings) Настройки актуализации. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. |
{- "locations": [
- {
- "key": "location_01",
- "geopoint": {
- "latitude": 55.692789,
- "longitude": 37.554554
}, - "arrival_duration": "PT1H45M",
- "departure_duration": "PT1H45M",
- "timetable": [
- {
- "work_window": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "limits": [
- {
- "key": "location_limit_constraint_01",
- "time_window": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "min_cargos": [
- {
- "capacity": {
- "mass": null,
- "volume": null,
- "capacity_a": null,
- "capacity_b": null,
- "capacity_c": null
}, - "penalty": {
- "mass": null,
- "volume": null,
- "capacity_a": null,
- "capacity_b": null,
- "capacity_c": null
}
}
], - "max_cargos": [
- {
- "capacity": {
- "mass": null,
- "volume": null,
- "capacity_a": null,
- "capacity_b": null,
- "capacity_c": null
}, - "penalty": {
- "mass": null,
- "volume": null,
- "capacity_a": null,
- "capacity_b": null,
- "capacity_c": null
}
}
], - "min_transports": [
- {
- "count": 2,
- "penalty": 2000
}
], - "max_transports": [
- {
- "count": 2,
- "penalty": 2000
}
]
}
]
}
], - "compatibilities": {
- "transport_restrictions": [ ]
}, - "attributes": [ ]
}
], - "orders": [
- {
- "key": "order01",
- "demands": [
- {
- "key": "demand_1",
- "demand_type": "WORK",
- "target_cargos": [
- "cargo01"
], - "precedence_in_trip": 1,
- "precedence_in_order": 1,
- "possible_events": [
- {
- "key": "event_1",
- "location_key": "location_01",
- "duration": "PT1H45M",
- "reward": 199.9,
- "hard_time_window": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "soft_time_window": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}
}
], - "attributes": [ ]
}
], - "cargos": [ ],
- "compatibilities": {
- "order_features": [ ],
- "order_restrictions": [ ],
- "performer_restrictions": [ ],
- "performer_blacklist": [ ]
}, - "attributes": [ ]
}
], - "performers": [
- {
- "key": "performer0001",
- "shifts": [
- {
- "key": "shift01",
- "availability_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "working_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "start_location_key": "start_location_01",
- "finish_location_key": "finish_location_01",
- "max_locations": 15,
- "max_stops": 15,
- "tariff": {
- "cost_per_shift": 2000,
- "constraints": [
- {
- "stage_length": "PT30D",
- "cost_per_unit": 0.001
}
], - "max_penalty_cost": 2000
}, - "work_and_rest_rules": {
- "rest_rules": {
- "consecutive": {
- "relocating_duration_sum": "PT1H45M",
- "operating_duration_sum": "PT2H12M34.3S",
- "duration": "PT1H45M"
}
}, - "break_rules": {
- "first": {
- "relocating_duration_sum": "PT1H45M",
- "operating_duration_sum": "PT2H12M34.3S",
- "duration": "PT1H45M"
}, - "consecutive": {
- "relocating_duration_sum": "PT1H45M",
- "operating_duration_sum": "PT2H12M34.3S",
- "duration": "PT1H45M"
}, - "relocating_duration_type": "CONTINUOUS"
}, - "reset_location_keys": [
- "location_01"
], - "ignore_location_keys": [
- "location_01"
]
}, - "attributes": [ ]
}
], - "own_transport_type": "CAR",
- "compatibilities": {
- "performer_features": [ ],
- "performer_features_lifetimes": [ ],
- "transport_restrictions": [ ]
}, - "limits": {
- "max_work_shifts": 3,
- "demand_extra_durations": [
- {
- "demand_key": "demand01.1",
- "additional_duration": "PT1H45M"
}
]
}, - "attributes": [ ]
}
], - "transports": [
- {
- "key": "transport001",
- "shifts": [
- {
- "key": "shift01",
- "availability_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "start_location_key": "start_location_01",
- "finish_location_key": "finish_location_01",
- "tariff": {
- "cost_per_shift": 2000,
- "constraints": [
- {
- "stage_length": 100000000,
- "cost_per_unit": 0.001
}
], - "transportation_cost": {
- "mass": 11,
- "volume": 22,
- "capacity_a": 11,
- "capacity_b": 22,
- "capacity_c": 31
}
}, - "attributes": [ ]
}
], - "transport_type": "CAR",
- "boxes": [ ],
- "compatibilities": {
- "transport_features": [ ],
- "transport_features_lifetimes": [ ],
- "performer_restrictions": [ ]
}, - "limits": {
- "max_boxes": 2,
- "max_capacity": {
- "mass": 10,
- "volume": 2,
- "capacity_a": 1,
- "capacity_b": 2,
- "capacity_c": 3
}
}, - "attributes": [ ]
}
], - "trips": [
- {
- "key": "trip-0000-9999",
- "name": "1-ABC",
- "performer": {
- "performer_key": "performer0001",
- "shift_key": "performer0001_shift01",
- "shift_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}
}, - "transport": {
- "transport_key": "transport001",
- "shift_key": "performer01",
- "shift_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}
}, - "states": [
- {
- "time": "2024-11-21T09:30:00+03:00",
- "order_key": "order01",
- "demand_key": "demand01.1",
- "event_key": "event01",
- "location_key": "location_01",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box01",
- "cargo_key": "cargo01",
- "cargo_action_type": "ADD"
}
], - "distance": 5200,
- "cost": 1231.1,
- "reward": 2343.3,
- "attributes": [ ]
}
], - "waitlist": [
- "order02"
], - "attributes": [ ]
}
], - "facts": [
- {
- "key": "fact_01",
- "time": "2024-11-21T09:30:00+03:00",
- "type": "NEW_LOCATION",
- "trip_key": "trip_01",
- "order_key": "order_01",
- "demand_key": "order_01_demand_01",
- "performer_key": "performer_01",
- "location_key": "location_01"
}
], - "external_routing": [ ],
- "plan_settings": {
- "trips_settings": {
- "configuration": "optimize_distance",
- "expectations": {
- "trip_start_time_strategy": "LOWEST_COST"
}, - "assumptions": {
- "transport_speed_multipliers": [ ],
- "transport_capacity_multipliers": [ ],
- "disable_compatibility": true,
- "disable_capacity": true,
- "same_order_time_window": true,
- "expand_shift_time_window": true
}, - "penalties": {
- "compatibilities": [ ],
- "max_locations_limits_penalty": 25000
}
}, - "geo_settings": {
- "geo_provider": "VRT",
- "toll_roads": false,
- "ferry_crossing": false,
- "traffic_jams": false,
- "flight_distance": true
}, - "calculation_settings": {
- "max_calculation_time": "PT12M35S",
- "max_waiting_time": "PT2H",
- "result_ttl": "PT4M30S",
- "result_timezone": 3,
- "treat_warnings_as_errors": true,
- "precision": 1
}
}, - "actualize_settings": {
- "current_time": "2024-11-21T09:30:00+03:00",
- "max_delay_duration": "PT1H30M"
}, - "dataset_name": "custom_dataset_one"
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_validation",
- "time": "2024-11-01T11:50:15.123Z"
}, - "warnings": [
- {
- "type": "NO_AVAILABLE_TRANSPORT",
- "entities": [
- {
- "entity_key": "ord0001",
- "entity_type": "ORDER"
}
]
}
]
}
Учет фактов, рейсов и очистка данных для актуализации перед расчетом - в результате возвращается задача для планирования.
Данные, которые необходимо переработать.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. |
required | Array of objects (trip) [ 1 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (actualize_settings) Настройки актуализации. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | object (plan_task) Задача для планирования. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (removed_items) Информация о удаленных сущностях. |
{- "locations": [
- {
- "key": "performer_1_current_location",
- "geopoint": {
- "latitude": 55.720292,
- "longitude": 37.625994
}
}, - {
- "key": "unused_location",
- "geopoint": {
- "latitude": 55.512292,
- "longitude": 37.915934
}
}, - {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "facts": [
- {
- "key": "fact_01",
- "type": "NEW_LOCATION",
- "time": "2024-11-07T22:00:00Z",
- "trip_key": "trip_for_performer_1",
- "performer_key": "performer_1",
- "location_key": "performer_1_current_location"
}
], - "trips": [
- {
- "key": "trip_for_performer_1",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
], - "actualize_settings": {
- "current_time": "2024-11-07T22:30:00Z",
- "max_delay_duration": "PT1H"
}
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_replan_calculation",
- "time": "2024-11-28T17:06:33.856Z"
}, - "plan_task": {
- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "plan_settings": {
- "trips_settings": {
- "configuration": "optimize_distance"
}, - "geo_settings": {
- "toll_roads": true,
- "traffic_jams": false
}
}
}
}
Перепланирование - создание новых рейсов на основе уже существующих рейсов с учетом фактов.
Перепланирование проходит в несколько этапов - проверка, применение фактов и создание ограничений для планирования на базе существующих рейсов, планирование.
Чтобы получить результат очистки и применения фактов к исходной задаче воспользуйтесь переработкой данных.
В зависимости от настроек перепланирования - задача может быть сведена к планированию или актуализации.
Запуск перепланирования рейсов - изменение существующих и создание новых рейсов на основе произошедших фактов и данных о заказах, исполнителях и транспорте.
После загрузки и проверки данных возвращается идентификатор расчета process_code
.
С помощью process_code
можно узнать состояние расчета и получить результат,
a также отменить расчет и удалить временные данные (иначе они автоматически удалятся по ttl, указанному в настройках расчета).
Задачу на перепланирование можно трансформировать в задачу на планирование с помощью переработки данных.
Запуск асинхронного перепланирования.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
required | Array of objects (trip) [ 1 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (replan_settings) Настройки перепланирования. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
process_code required | string <uuid> (process_code) Example: "11111111-2222-3333-4444-555555555555" Код процесса - идентификатор расчета. |
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "trips": [
- {
- "key": "performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
]
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "username_for_login",
- "company": "smart_company",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "env": "edge7",
- "pod": "11111111-2222-3333-4444-555555555555",
- "time": "2024-11-21T09:30:00+03:00"
}, - "process_code": "11111111-2222-3333-4444-555555555555"
}
Синхронный метод для перепланирования существующих рейсов.
Данный метод рекомендуется только для тестового использования и ручного запуска расчетов на небольшом объеме данных.
Для боевой среды рекомендуется использовать асинхронный метод.
Новый запрос на перепланирование.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
required | Array of objects (trip) [ 1 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (replan_settings) Настройки перепланирования. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "trips": [
- {
- "key": "performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
]
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_replan_calculation",
- "time": "2024-11-28T17:06:33.856Z"
}, - "trips": [
- {
- "key": "d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:49Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "name": "1-HVFB",
- "waitlist": [ ],
- "attributes": [ ]
}
], - "statistics": {
- "total_statistics": {
- "cost": 6795.37,
- "reward": 3000.3,
- "profit": 0,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT39M15S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT1H14M15S",
- "distance": 34037
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "average_speed": 34.037,
- "round_trips_count": 1
}, - "trips_statistics": [
- {
- "trip_key": "d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift",
- "general_statistics": {
- "cost": 6795.37,
- "reward": 3000.3,
- "profit": -3795.07,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT39M15S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT1H14M15S",
- "distance": 34037
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "average_speed": 34.037,
- "round_trips_count": 1
}, - "load_statistics": {
- "total_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_transfer_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - "stop_statistics": [
- {
- "location_key": "location_storage",
- "stop_demands": [
- {
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}
}, - {
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}, - "driving_time": "PT0S",
- "waiting_time": "PT0S",
- "working_time": "PT0S",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT0S",
- "distance": 0
}, - "upload": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_2",
- "stop_demands": [
- {
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:10:00Z"
}, - "driving_time": "PT20M26S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT30M26S",
- "distance": 17110
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_1",
- "stop_demands": [
- {
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:20:56Z",
- "to": "2024-11-08T05:30:56Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:20:56Z",
- "to": "2024-11-08T05:30:56Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:10:00Z",
- "to": "2024-11-08T05:30:56Z"
}, - "driving_time": "PT10M56S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT20M56S",
- "distance": 9897
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_3",
- "stop_demands": [
- {
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "demand_time_window": {
- "from": "2024-11-08T05:38:49Z",
- "to": "2024-11-08T05:53:49Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:38:49Z",
- "to": "2024-11-08T05:53:49Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:30:56Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT7M53S",
- "waiting_time": "PT0S",
- "working_time": "PT15M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT22M53S",
- "distance": 7030
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}
]
}
], - "locations_statistics": [ ],
- "task_statistics": {
- "planning_horizon": {
- "from": "2024-11-07T21:00:00Z",
- "to": "2024-11-08T21:00:59Z"
}
}, - "quality": {
- "locations_limits_penalty": 0,
- "soft_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}, - "hard_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}
}
}, - "calculation_progress": 100,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 106,
- "preparing_time": "PT0S",
- "business_validation_time": "PT0S",
- "math_validation_time": "PT0S",
- "waiting_time": "PT4.022S",
- "calculation_time": "PT1.012S"
}, - "warnings": [ ],
- "unplanned_items": {
- "order_keys": [ ],
- "order_keys_count": 0,
- "performer_keys": [ ],
- "performer_keys_count": 0,
- "transport_keys": [ ],
- "transport_keys_count": 0,
- "hardlink_keys": [ ],
- "hardlink_keys_count": 0
}
}
Отмена процесса планирования по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-28T17:13:27.945583194Z"
}, - "message": "logical",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "entities": [
- {
- "entity_key": "order_1",
- "entity_type": "ORDER"
}
]
}
], - "warnings": [ ]
}
Получение состояния расчета по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
required | object (tracedata) Данные используемые для трассировки запросов. |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
required | object (tracedata) Данные используемые для трассировки запросов. |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "username_for_login",
- "company": "smart_company",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "env": "edge7",
- "pod": "11111111-2222-3333-4444-555555555555",
- "time": "2024-11-21T09:30:00+03:00"
}, - "calculation_progress": 52,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 133,
- "preparing_time": "PT1H45M",
- "business_validation_time": "PT1H45M",
- "math_validation_time": "PT1H45M",
- "waiting_time": "PT1H45M",
- "calculation_time": "PT1H45M"
}
}
Получение результата перепланирования по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
required | object or null (plan_statistics) Общая статистика по результату расчета. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (unplanned_items) Информация о незапланированных сущностях. | |
object (removed_items) Информация о удаленных сущностях. | |
calculation_progress required | integer <int32> (calculation_progress) [ 0 .. 100 ] Example: "52" Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов. |
required | object (calculation_info) Информация о расчете. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_replan_calculation",
- "time": "2024-11-28T17:06:33.856Z"
}, - "trips": [
- {
- "key": "d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:39:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:56Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "REMOVE"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:56Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:49Z",
- "flags": [
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION",
- "INSIDE_LOCATION_WINDOW",
- "ON_DEMAND"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:49Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "name": "1-HVFB",
- "waitlist": [ ],
- "attributes": [ ]
}
], - "statistics": {
- "total_statistics": {
- "cost": 6795.37,
- "reward": 3000.3,
- "profit": 0,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT39M15S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT1H14M15S",
- "distance": 34037
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "average_speed": 34.037,
- "round_trips_count": 1
}, - "trips_statistics": [
- {
- "trip_key": "d56f86e9-c50a-40d3-b5ef-616eacc98db0-performer_1_shift",
- "general_statistics": {
- "cost": 6795.37,
- "reward": 3000.3,
- "profit": -3795.07,
- "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT39M15S",
- "waiting_time": "PT0S",
- "working_time": "PT35M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT1H14M15S",
- "distance": 34037
}, - "trips_count": 1,
- "performers_count": 1,
- "orders_count": 3,
- "plan_orders_count": 3,
- "waitlist_orders_count": 0,
- "stops_count": 4,
- "locations_count": 4,
- "cargo_capacity_sum": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}, - "cargo_capacity_ratio": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "max_transport_load": {
- "mass": 0.007,
- "volume": 1,
- "capacity_a": 1,
- "capacity_b": 1,
- "capacity_c": 1
}, - "average_speed": 34.037,
- "round_trips_count": 1
}, - "load_statistics": {
- "total_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_transfer_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - "stop_statistics": [
- {
- "location_key": "location_storage",
- "stop_demands": [
- {
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}
}, - {
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "demand_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T04:39:34Z"
}, - "driving_time": "PT0S",
- "waiting_time": "PT0S",
- "working_time": "PT0S",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT0S",
- "distance": 0
}, - "upload": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_2",
- "stop_demands": [
- {
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:00:00Z",
- "to": "2024-11-08T05:10:00Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T04:39:34Z",
- "to": "2024-11-08T05:10:00Z"
}, - "driving_time": "PT20M26S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT30M26S",
- "distance": 17110
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 2,
- "capacity": {
- "mass": 2,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_1",
- "stop_demands": [
- {
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "demand_time_window": {
- "from": "2024-11-08T05:20:56Z",
- "to": "2024-11-08T05:30:56Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:20:56Z",
- "to": "2024-11-08T05:30:56Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:10:00Z",
- "to": "2024-11-08T05:30:56Z"
}, - "driving_time": "PT10M56S",
- "waiting_time": "PT0S",
- "working_time": "PT10M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT20M56S",
- "distance": 9897
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 1,
- "capacity": {
- "mass": 1,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}, - {
- "location_key": "location_client_3",
- "stop_demands": [
- {
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "demand_time_window": {
- "from": "2024-11-08T05:38:49Z",
- "to": "2024-11-08T05:53:49Z"
}
}
], - "stop_time_window": {
- "from": "2024-11-08T05:38:49Z",
- "to": "2024-11-08T05:53:49Z"
}, - "measurements": {
- "time_window": {
- "from": "2024-11-08T05:30:56Z",
- "to": "2024-11-08T05:53:49Z"
}, - "driving_time": "PT7M53S",
- "waiting_time": "PT0S",
- "working_time": "PT15M",
- "break_time": "PT0S",
- "rest_time": "PT0S",
- "arriving_time": "PT0S",
- "departure_time": "PT0S",
- "total_time": "PT22M53S",
- "distance": 7030
}, - "upload": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "download": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "max_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "arrival_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}, - "departure_load": {
- "count": 0,
- "capacity": {
- "mass": 0,
- "volume": 0,
- "capacity_a": 0,
- "capacity_b": 0,
- "capacity_c": 0
}
}
}
]
}
], - "locations_statistics": [ ],
- "task_statistics": {
- "planning_horizon": {
- "from": "2024-11-07T21:00:00Z",
- "to": "2024-11-08T21:00:59Z"
}
}, - "quality": {
- "locations_limits_penalty": 0,
- "soft_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}, - "hard_time_window_violations": {
- "before": {
- "demand_keys": [ ],
- "count": 0
}, - "after": {
- "demand_keys": [ ],
- "count": 0
}
}
}
}, - "calculation_progress": 100,
- "calculation_info": {
- "status": "FINISHED_IN_TIME",
- "result_version": 106,
- "preparing_time": "PT0S",
- "business_validation_time": "PT0S",
- "math_validation_time": "PT0S",
- "waiting_time": "PT4.022S",
- "calculation_time": "PT1.012S"
}, - "warnings": [ ],
- "unplanned_items": {
- "order_keys": [ ],
- "order_keys_count": 0,
- "performer_keys": [ ],
- "performer_keys_count": 0,
- "transport_keys": [ ],
- "transport_keys_count": 0,
- "hardlink_keys": [ ],
- "hardlink_keys_count": 0
}
}
Удаление результата перепланирования по идентификатору расчета.
process_code required | string <uuid> (process_code) Example: 11111111-2222-3333-4444-555555555555 Уникальный идентификатор процесса. |
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-28T17:13:27.945583194Z"
}, - "message": "logical",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "entities": [
- {
- "entity_key": "order_1",
- "entity_type": "ORDER"
}
]
}
], - "warnings": [ ]
}
Проверка данных для перепланирования перед использованием.
Данные, которые необходимо проверить.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
required | Array of objects (trip) [ 1 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (replan_settings) Настройки перепланирования. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. |
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "trips": [
- {
- "key": "performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
]
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_validation",
- "time": "2024-11-01T11:50:15.123Z"
}, - "warnings": [
- {
- "type": "NO_AVAILABLE_TRANSPORT",
- "entities": [
- {
- "entity_key": "ord0001",
- "entity_type": "ORDER"
}
]
}
]
}
Учет фактов, рейсов и очистка данных для перепланирования перед расчетом - в результате возвращается задача для планирования.
Данные, которые необходимо переработать.
required | Array of objects (location) [ 1 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. |
required | Array of objects (order) [ 1 .. 15001 ] items unique Список заказов, которые необходимо выполнить. |
required | Array of objects (performer) [ 1 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. |
required | Array of objects (transport) [ 1 .. 15001 ] items unique Список доступного транспорта. |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
required | Array of objects (trip) [ 1 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (replan_settings) Настройки перепланирования. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
required | object (tracedata) Данные используемые для трассировки запросов. |
required | object (plan_task) Задача для планирования. |
Array of objects (entity_warning_list) [ 0 .. 15001 ] items Список предупреждений. | |
object (removed_items) Информация о удаленных сущностях. |
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "trips": [
- {
- "key": "performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
]
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_replan_calculation",
- "time": "2024-11-28T17:06:33.856Z"
}, - "plan_task": {
- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "plan_settings": {
- "trips_settings": {
- "configuration": "optimize_distance"
}, - "geo_settings": {
- "toll_roads": true,
- "traffic_jams": false
}
}
}
}
Используется для конвертации данных в формат VRt.Universal XLSX.
timezone | integer <int32> (timezone) [ -12 .. 12 ] Default: 0 Example: timezone=3 Целевая временная зона данных. |
Запрос на конвертацию в XLSX.
Array of objects (location_list) [ 0 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. | |
Array of objects (order_list) [ 0 .. 15001 ] items unique Список заказов, которые необходимо выполнить. | |
Array of objects (performer_list) [ 0 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. | |
Array of objects (transport_list) [ 0 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. | |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. | |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
object or null (plan_statistics) Общая статистика по результату расчета. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (replan_settings) Настройки перепланирования. | |
object (actualize_settings) Настройки актуализации. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
Файл с данными в формате XLSX.
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "trips": [
- {
- "key": "performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
]
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-28T17:13:27.945583194Z"
}, - "message": "logical",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "entities": [
- {
- "entity_key": "order_1",
- "entity_type": "ORDER"
}
]
}
], - "warnings": [ ]
}
Используется для конвертации данных из формата VRt.Universal XLSX в формат VRt.Universal JSON.
Запрос на конвертацию в JSON.
Файл с данными в формате XLSX.
Array of objects (location_list) [ 0 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. | |
Array of objects (order_list) [ 0 .. 15001 ] items unique Список заказов, которые необходимо выполнить. | |
Array of objects (performer_list) [ 0 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. | |
Array of objects (transport_list) [ 0 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. | |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. | |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
object or null (plan_statistics) Общая статистика по результату расчета. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (replan_settings) Настройки перепланирования. | |
object (actualize_settings) Настройки актуализации. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "trips": [
- {
- "key": "performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
]
}
Используется для конвертации входных данных в формат THRIFT.
Запрос на конвертацию в THRIFT.
Array of objects (location_list) [ 0 .. 15001 ] items unique Список локаций, которые используются в заказах и сменах. | |
Array of objects (order_list) [ 0 .. 15001 ] items unique Список заказов, которые необходимо выполнить. | |
Array of objects (performer_list) [ 0 .. 15001 ] items unique Список доступных исполнителей. Исполнитель выполняет заказы используя транспорт. | |
Array of objects (transport_list) [ 0 .. 15001 ] items unique Список доступного транспорта. Транспорт используется исполнителем рейса для выполнения заказов. | |
Array of objects (hardlink_list) [ 0 .. 15001 ] items unique Список назначений. | |
Array of objects (trip_list) [ 0 .. 15001 ] items unique Список рейсов. Рейс - это совокупность работ, запланированных на выполнение конкретным исполнителем на конкретном транспорте, выраженных через изменение состояний исполнителя. | |
Array of objects (fact_list) [ 0 .. 15001 ] items unique Список фактов. Факт - это произошедшее событие, которое влияет на дальнейшие выполнение рейсов. | |
object or null (plan_statistics) Общая статистика по результату расчета. | |
Array of objects (routing_transport_matrix_list) [ 0 .. 16 ] items unique Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных.
Матрица должна описывать все локации для каждого типа транспорта из данных.
При указании внешней матрицы маршрутизации | |
object (plan_settings) Настройки планирования. | |
object (replan_settings) Настройки перепланирования. | |
object (actualize_settings) Настройки актуализации. | |
dataset_name | string (dataset_name) [ 0 .. 512 ] characters Example: "custom_dataset_one" Название набора данных. Техническое поле, не влияющее на расчет. |
Файл с данными в текстовом формате.
{- "locations": [
- {
- "key": "location_client_1",
- "geopoint": {
- "latitude": 55.713699,
- "longitude": 37.621839
}
}, - {
- "key": "location_client_2",
- "geopoint": {
- "latitude": 55.630721,
- "longitude": 37.62493
}
}, - {
- "key": "location_client_3",
- "geopoint": {
- "latitude": 55.722801,
- "longitude": 37.674984
}
}, - {
- "key": "location_storage",
- "geopoint": {
- "latitude": 55.685853,
- "longitude": 37.43181
}
}
], - "orders": [
- {
- "key": "order_1",
- "demands": [
- {
- "key": "demand_1_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_1_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_1_cargos"
], - "possible_events": [
- {
- "key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_1_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_2",
- "demands": [
- {
- "key": "demand_2_drop",
- "demand_type": "DROP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "duration": "PT10M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}, - {
- "key": "demand_2_pickup",
- "demand_type": "PICKUP",
- "target_cargos": [
- "order_2_cargos"
], - "possible_events": [
- {
- "key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "duration": "P0D",
- "reward": 0,
- "hard_time_window": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}
}
]
}
], - "cargos": [
- {
- "key": "order_2_cargos",
- "capacity": {
- "mass": 1
}
}
]
}, - {
- "key": "order_3",
- "demands": [
- {
- "key": "demand_3_work",
- "demand_type": "WORK",
- "possible_events": [
- {
- "key": "demand_3_work_event",
- "location_key": "location_client_3",
- "duration": "PT15M",
- "hard_time_window": {
- "from": "2024-11-08T05:00:00+00:00",
- "to": "2024-11-08T07:00:00+00:00"
}
}
]
}
]
}
], - "performers": [
- {
- "key": "performer_1",
- "shifts": [
- {
- "key": "performer_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "working_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": "PT10H",
- "cost_per_unit": 1
}
]
}
}
]
}
], - "transports": [
- {
- "key": "transport_1",
- "shifts": [
- {
- "key": "transport_1_shift",
- "availability_time": {
- "from": "2024-11-07T21:00:00+00:00",
- "to": "2024-11-08T20:59:59+00:00"
}, - "tariff": {
- "cost_per_shift": 1000,
- "constraints": [
- {
- "stage_length": 1000000,
- "cost_per_unit": 0.01
}
]
}
}
], - "transport_type": "CAR",
- "boxes": [
- {
- "key": "box_1",
- "capacity": {
- "mass": 300
}
}
]
}
], - "trips": [
- {
- "key": "performer_1_shift",
- "performer": {
- "performer_key": "performer_1",
- "shift_key": "performer_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "transport": {
- "transport_key": "transport_1",
- "shift_key": "transport_1_shift",
- "shift_time": {
- "from": "2024-11-08T04:38:34Z",
- "to": "2024-11-08T05:53:39Z"
}
}, - "states": [
- {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_pickup",
- "event_key": "demand_2_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_pickup",
- "event_key": "demand_1_pickup_event",
- "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_storage",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T04:38:34Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:00:00Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_2",
- "demand_key": "demand_2_drop",
- "event_key": "demand_2_drop_event",
- "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}, - {
- "box_key": "box_1",
- "cargo_key": "order_2_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_2",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:10:00Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:20:52Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_1",
- "demand_key": "demand_1_drop",
- "event_key": "demand_1_drop_event",
- "location_key": "location_client_1",
- "cargo_actions": [
- {
- "box_key": "box_1",
- "cargo_key": "order_1_cargos",
- "cargo_action_type": "ADD"
}
], - "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_1",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:30:52Z",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:38:39Z",
- "flags": [
- "ON_DEMAND",
- "INSIDE_EVENT_HARD_WINDOW",
- "INSIDE_LOCATION_WINDOW",
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "order_key": "order_3",
- "demand_key": "demand_3_work",
- "event_key": "demand_3_work_event",
- "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}, - {
- "time": "2024-11-08T05:53:39Z",
- "flags": [
- "INSIDE_LOCATION",
- "AROUND_LOCATION"
], - "location_key": "location_client_3",
- "cargo_actions": [ ],
- "attributes": [ ]
}
], - "waitlist": [ ],
- "attributes": [ ]
}
]
}
{- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "example_username",
- "company": "example_company",
- "env": "edge7",
- "pod": "aaaaaaaa-2222-cccc-4444-eeeeeeeeeeee",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "time": "2024-11-28T17:13:27.945583194Z"
}, - "message": "logical",
- "schema_errors": [ ],
- "logical_errors": [
- {
- "type": "UNIQUE_IDS_VIOLATION",
- "entities": [
- {
- "entity_key": "order_1",
- "entity_type": "ORDER"
}
]
}
], - "warnings": [ ]
}
Проверка доступности сервиса.
health required | number <double> [ 0 .. 1 ] Example: "0.999" Текущий показатель здоровья сервиса.
|
{- "health": 0.999
}
Получение версии сервиса.
major required | integer <int32> [ 1 .. 100 ] Example: "7" Версия продукта.
В рамках одной версии гарантируется совместимость общих структур данных между сервисами. |
minor required | integer <int32> [ 0 .. 111 ] Example: "5" Минорная версия сервиса. Изменение версии указывает на новую функциональность. Обновление имеет обратную совместимость в рамках мажорной версии сервиса. |
build required | string [ 1 .. 64 ] characters Example: "3754RC" Версия сборки. |
{- "major": 7,
- "minor": 5,
- "build": "3754RC"
}
Получение файла с документацией на этот сервис.
filename required | string [ 6 .. 128 ] characters Example: file_en.html Название файла. |
Файл с данными в формате HTML.
{- "resource_key": "resource_key",
- "detail": {
- "tracedata": {
- "process_code": "11111111-2222-3333-4444-555555555555",
- "request_code": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "username": "username_for_login",
- "company": "smart_company",
- "service": "UNIVERSAL",
- "operation": "run_plan_calculation",
- "env": "edge7",
- "pod": "11111111-2222-3333-4444-555555555555",
- "time": "2024-11-21T09:30:00+03:00"
}
}
}
Описание формата VRt.Universal XLSX для импорта\экспорта данных.
Данный формат является полным отображением json-модели данных и используется для:
Ниже представлено описание каждого листа отдельно, жирным выделены ключи.
Название листа info
.
Название | Описание |
---|---|
api_version | Версия API Universal в момент генерации XLSX |
timezone | Временной пояс, в котором указаны все времена в данных |
docs_ru | Ссылка на документацию (RU) |
docs_en | Ссылка на документацию (EN) |
docs_zh | Ссылка на документацию (ZH) |
Название листа locations
.
Список локаций, которые используются в заказах и сменах.
Название | Описание | Примечание |
---|---|---|
key | Ключ локации, уникальный идентификатор | Уникальный ключ в рамках расчета |
departure_duration | Время на отъезд от локации, временной промежуток | |
geopoint.latitude | Географическая широта в градусах | |
geopoint.longitude | Географическая долгота в градусах | |
timetable.work_windows.from | Начало временного окна работы локации | Обязательно, если указан to . Если список пустой или не указан - локация работает без ограничений по времени. |
timetable.work_windows.to | Окончание временного окна работы локации | Обязательно, если указан from . Если список пустой или не указан - локация работает без ограничений по времени. |
compatibilities .transport_restrictions |
Список необходимых требований к транспорту | Используется для проверки совместимости транспорта локацией. |
attributes | Атрибуты, используются для указания служебной информации | Эти данные не учитываются в планировании. |
Описываемый объект:
key required | string [ 1 .. 1024 ] characters Example: "location_01" Ключ локации, уникальный идентификатор. |
required | object (geopoint) Географическая точка. |
arrival_duration | string <duration> (time_duration) [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d... Example: "PT1H45M" Время на подъезд (парковку) на локации, в формате ISO 8601 duration. |
departure_duration | string <duration> (time_duration) [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d... Example: "PT1H45M" Время на отъезд от локации, в формате ISO 8601 duration. |
Array of objects (location_timetable) [ 0 .. 30 ] items Расписание работы локации - временные окна доступности и ограничения на пропускную способность. Если список пустой или не указан - локация работает без ограничений. | |
object or null (location_compatibilities) Совместимости локации с транспортом. | |
Array of objects (attributes) [ 0 .. 1000 ] items unique Атрибуты. Используются для указания служебной информации. |
{- "key": "location_01",
- "geopoint": {
- "latitude": 55.692789,
- "longitude": 37.554554
}, - "arrival_duration": "PT1H45M",
- "departure_duration": "PT1H45M",
- "timetable": [
- {
- "work_window": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "limits": [
- {
- "key": "location_limit_constraint_01",
- "time_window": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "min_cargos": [
- {
- "capacity": {
- "mass": 10,
- "volume": 2,
- "capacity_a": 1,
- "capacity_b": 2,
- "capacity_c": 3
}, - "penalty": {
- "mass": 11,
- "volume": 22,
- "capacity_a": 11,
- "capacity_b": 22,
- "capacity_c": 31
}
}
], - "max_cargos": [
- {
- "capacity": {
- "mass": 10,
- "volume": 2,
- "capacity_a": 1,
- "capacity_b": 2,
- "capacity_c": 3
}, - "penalty": {
- "mass": 11,
- "volume": 22,
- "capacity_a": 11,
- "capacity_b": 22,
- "capacity_c": 31
}
}
], - "min_transports": [
- {
- "count": 2,
- "penalty": 2000
}
], - "max_transports": [
- {
- "count": 2,
- "penalty": 2000
}
]
}
]
}
], - "compatibilities": {
- "transport_restrictions": [ ]
}, - "attributes": [ ]
}
Название листа performers
.
Список доступных исполнителей.
Название | Описание | Примечание |
---|---|---|
key | Ключ исполнителя, уникальный идентификатор | |
own_transport_type | Тип транспорта | Если не указан, по умолчанию, проставляется CAR . |
shifts.key | Ключ смены, уникальный идентификатор | |
shifts.start_location_key | Ключ начальной локациями | Если ключ не задан - то путь перформера начинается на первом заказе. |
shifts.finish_location_key | Ключ финальной локации | Если ключ не задан - то путь перформера завершается на последнем заказе. |
shifts.max_locations | Ограничение количества уникальных локаций в одном рейсе, включая локации старта и финиша | Если параметр не указан или указан как null - то количество локаций не ограничено. |
shifts.max_stops | Ограничение количества остановок в одном рейсе, включая локации старта и финиша | Если параметр не указан или указан как null - то количество остановок не ограничено. |
shifts.attributes | Атрибуты. Используются для указания служебной информации | Эти данные не учитываются в планировании. |
shifts.availability_time.from | Начало временного окна смены | В которое исполнитель может выполнять работу на локациях и осуществлять перемещение между локациями. |
shifts.availability_time.to | Окончание временного окна смены | В которое исполнитель может выполнять работу на локациях и осуществлять перемещение между локациями. |
shifts.working_time.from | Начало рабочего временного окна | В которые исполнитель может выполнять работу на локациях, должно быть внутри временного окна смены. |
shifts.working_time.to | Окончание рабочего временного окна | В которые исполнитель может выполнять работу на локациях, должно быть внутри временного окна смены. |
shifts.tariff .cost_per_shift |
Цена за использование смены, денежная единица | По умолчанию: 0.001 |
shifts.tariff .max_penalty_cost |
Максимальная сумма штрафов, которую может получить исполнитель в рамках данной смены, денежная единица. | Если сумма не задана или равна null - исполнитель не может нарушать ограничения. |
shifts.tariff .constraints.stage_length |
Длина оплачиваемого периода, временной промежуток | По умолчанию: 525960 |
shifts.tariff .constraints.cost_per_unit |
Стоимость внутри оплачиваемого периода, денежная единица за секунду работы | По умолчанию: 0.001 |
shifts.work_and_rest_rules .first_break .max_work_duration_sum |
Суммарное время работы, после которого необходимо сделать перерыв | |
shifts.work_and_rest_rules .first_break .duration |
Продолжительность перерыва | |
compatibilities .performer_features |
Список свойств исполнителя | Используется для проверки совместимости исполнителя с заказами и транспортом. |
compatibilities .transport_restrictions |
Список необходимых требований к транспорту | Используется для проверки совместимости исполнителя с транспортом. |
limits.max_work_shifts | Ограничение на рабочую загрузку исполнителя | Ограничение количества смен исполнителя в одном планировании. |
attributes | Атрибуты, используются для указания служебной информации | Эти данные не учитываются в планировании. |
Описываемый объект:
key required | string [ 1 .. 1024 ] characters Example: "performer0001" Ключ исполнителя, уникальный идентификатор. |
required | Array of objects (performer_shift) [ 1 .. 15001 ] items unique Список рабочих смен исполнителя. |
own_transport_type | string (transport_type) Enum: "CAR" "TRUCK_1500" "TRUCK_3000" … 13 more Example: "CAR" Тип личного транспорта, на котором исполнитель будет добираться до назначенного на него рабочего транспорта. |
object or null (performer_compatibilities) Совместимости исполнителя с транспортом и заказами. | |
object or null (performer_limits) Ограничение на рабочую загрузку исполнителя. | |
Array of objects (attributes) [ 0 .. 1000 ] items unique Атрибуты. Используются для указания служебной информации. |
{- "key": "performer0001",
- "shifts": [
- {
- "key": "shift01",
- "availability_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "working_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "start_location_key": "start_location_01",
- "finish_location_key": "finish_location_01",
- "max_locations": 15,
- "max_stops": 15,
- "tariff": {
- "cost_per_shift": 2000,
- "constraints": [
- {
- "stage_length": "PT30D",
- "cost_per_unit": 0.001
}
], - "max_penalty_cost": 2000
}, - "work_and_rest_rules": {
- "rest_rules": {
- "consecutive": {
- "relocating_duration_sum": "PT1H45M",
- "operating_duration_sum": "PT2H12M34.3S",
- "duration": "PT1H45M"
}
}, - "break_rules": {
- "first": {
- "relocating_duration_sum": "PT1H45M",
- "operating_duration_sum": "PT2H12M34.3S",
- "duration": "PT1H45M"
}, - "consecutive": {
- "relocating_duration_sum": "PT1H45M",
- "operating_duration_sum": "PT2H12M34.3S",
- "duration": "PT1H45M"
}, - "relocating_duration_type": "CONTINUOUS"
}, - "reset_location_keys": [
- "location_01"
], - "ignore_location_keys": [
- "location_01"
]
}, - "attributes": [ ]
}
], - "own_transport_type": "CAR",
- "compatibilities": {
- "performer_features": [ ],
- "performer_features_lifetimes": [ ],
- "transport_restrictions": [ ]
}, - "limits": {
- "max_work_shifts": 3,
- "demand_extra_durations": [
- {
- "demand_key": "demand01.1",
- "additional_duration": "PT1H45M"
}
]
}, - "attributes": [ ]
}
Название листа transports
.
Список доступного транспорта.
Название | Описание | Примечание |
---|---|---|
key | Ключ транспорта уникальный идентификатор | |
transport_type | Тип транспорта | Если не указан, по умолчанию, проставляется CAR |
boxes.key | Список отсеков транспорта, которые могут вмещать груз | Обязательно,если в задаче присутствуют заказы с демандами PICKUP и DROP |
shifts.key | Ключ смены, уникальный идентификатор | |
shifts.start_location_key | Ключ начальной локации. | Если ключ не задан - то путь транспорта начинается на первом заказе |
shifts.finish_location_key | Ключ финальной локации | Если ключ не задан - то путь транспорта завершается на последнем заказе |
shifts.attributes | Атрибуты. Используются для указания служебной информации | Эти данные не учитываются в планировании |
shifts.availability_time.from | Начало временного окна смены | В которое транспорт может осуществлять перемещение между локациями и использоваться исполнителем в работах на локациях |
shifts.availability_time.to | Окончание временного окна смены | В которое транспорт может осуществлять перемещение между локациями и использоваться исполнителем в работах на локациях |
shifts.tariff .cost_per_shift |
Цена за использование смены, денежная единица | По умолчанию: 0.001 |
shifts.tariff .max_penalty_cost |
Максимальная сумма штрафов | По умолчанию: 0 . Которую может получить транспорт в рамках данной смены, денежная единица. Если сумма не задана или равна null - транспорт не может нарушать ограничения. |
shifts.tariff .constraints.stage_length |
Длина оплачиваемой части пути, в метрах | По умолчанию: 100000000 |
shifts.tariff .constraints.cost_per_unit |
Стоимость внутри оплачиваемой части пути | Денежная единица за один метр. По умолчанию: 0.001 |
shifts.tariff .transportation_cost.mass |
Стоимость перемещения 1 единицы массы груза на 1 метр | В условных денежных единицах |
shifts.tariff .transportation_cost.volume |
Стоимость перемещения 1 единицы объема груза на 1 метр | В условных денежных единицах |
shifts.tariff .transportation_cost.capacity_a |
Стоимость перемещения 1 единицы доп.параметра A груза на 1 метр | В условных денежных единицах |
shifts.tariff .transportation_cost.capacity_b |
Стоимость перемещения 1 единицы доп.параметра B груза на 1 метр | В условных денежных единицах |
shifts.tariff .transportation_cost.capacity_c |
Стоимость перемещения 1 единицы доп.параметра C груза на 1 метр | В условных денежных единицах |
compatibilities .transport_features |
Список свойств транспорта | Используется для проверки совместимости транспорта с локациями и исполнителями |
compatibilities .performer_restrictions |
Список требований транспорта к исполнителю | Используется для проверки совместимости с исполнителем |
limits.max_boxes | Ограничение максимального количества используемых отсеков транспорта в одном рейсе | Если параметр не указан или указан как null - то количество отсеков не ограничено. Ограничение не должно превышать количество отсеков |
limits.max_capacity.mass | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по массе суммарно по всем отсекам | Масса в килограммах, применимо только если у транспорта больше одного отсека, параметр не должен быть меньше вместимости любого отсека. |
limits.max_capacity.volume | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по объему суммарно по всем отсекам | Объем в кубических метрах, применимо только если у транспорта больше одного отсека, параметр не должен быть меньше вместимости любого отсека. |
limits.max_capacity.capacity_a | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по доп.параметру A суммарно по всем отсекам | Дополнительный параметр вместимости (A) для измерения грузов и отсеков в альтернативных единицах измерения. Например, для учета грузов в штуках (у груза данный параметр равен единице, у отсека - максимальному количеству вмещаемых грузов) |
limits.max_capacity.capacity_b | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по доп.параметру B суммарно по всем отсекам | Дополнительный параметр вместимости (B) для измерения грузов и отсеков в альтернативных единицах измерения. |
limits.max_capacity.capacity_c | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по доп.параметру C суммарно по всем отсекам | Дополнительный параметр вместимости (C) для измерения грузов и отсеков в альтернативных единицах измерения. |
attributes | Атрибуты, используются для указания служебной информации | Эти данные не учитываются в планировании. |
Описываемый объект:
key required | string [ 1 .. 1024 ] characters Example: "transport001" Ключ транспорта, уникальный идентификатор. |
required | Array of objects (transport_shift) [ 1 .. 15001 ] items unique Список рабочих смен транспорта. |
transport_type | string (transport_type) Enum: "CAR" "TRUCK_1500" "TRUCK_3000" … 13 more Example: "CAR" Типы транспорта:
Разрешенная масса - это масса снаряженного транспорта с грузом и водителем, установленная предприятием-изготовителем в качестве максимально допустимой. |
Array of objects (box) [ 0 .. 100 ] items unique Default: [] Список отсеков транспорта, которые могут вмещать груз. | |
object or null (transport_compatibilities) Совместимости транспорта с исполнителями и локациями. | |
object or null (transport_limits) Ограничения на загрузку транспорт. | |
Array of objects (attributes) [ 0 .. 1000 ] items unique Атрибуты. Используются для указания служебной информации. |
{- "key": "transport001",
- "shifts": [
- {
- "key": "shift01",
- "availability_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "start_location_key": "start_location_01",
- "finish_location_key": "finish_location_01",
- "tariff": {
- "cost_per_shift": 2000,
- "constraints": [
- {
- "stage_length": 100000000,
- "cost_per_unit": 0.001
}
], - "transportation_cost": {
- "mass": 11,
- "volume": 22,
- "capacity_a": 11,
- "capacity_b": 22,
- "capacity_c": 31
}
}, - "attributes": [ ]
}
], - "transport_type": "CAR",
- "boxes": [ ],
- "compatibilities": {
- "transport_features": [ ],
- "transport_features_lifetimes": [ ],
- "performer_restrictions": [ ]
}, - "limits": {
- "max_boxes": 2,
- "max_capacity": {
- "mass": 10,
- "volume": 2,
- "capacity_a": 1,
- "capacity_b": 2,
- "capacity_c": 3
}
}, - "attributes": [ ]
}
Название листа transports.boxes
.
Список отсеков транспорта, которые могут вмещать груз.
Таблица обязательна, если в расчете есть заказы с заявками типов PICKUP
и DROP
.
В описании отсеков обязательны те поля, которые описывают грузы.
Название | Описание | Примечание |
---|---|---|
key | Ключ отсека | Уникальный идентификатор, используется для идентификации размещения грузов по отсекам. |
capacity.mass | Масса, кг | Ограничение по массе, которое может единовременно находиться в отсеке |
capacity.volume | Объем, м3 | Ограничение по объему, которое может единовременно находиться в отсеке |
capacity.capacity_a | Дополнительный параметр вместимости (A) | Для измерения грузов и отсеков в альтернативных единицах измерения. Например, для учета грузов в штуках (у груза данный параметр равен единице, у отсека - максимальному количеству вмещаемых грузов) |
capacity.capacity_b | Дополнительный параметр вместимости (B) | Для измерения грузов и отсеков в альтернативных единицах измерения. |
capacity.capacity_c | Дополнительный параметр вместимости (C) | Для измерения грузов и отсеков в альтернативных единицах измерения. |
compatibilities .width |
Ширина в метрах | |
compatibilities .height |
Высота в метрах | |
compatibilities .length |
Длина в метрах | |
compatibilities .box_features |
Список свойств отсека | По оценивается возможность перевозки груза в данном отсеке |
limits .max_one_cargo_capacity.mass |
Масса в килограммах | Ограничение по полям capacity для одного груза |
limits .max_one_cargo_capacity.volume |
Объем в кубических метрах | Ограничение по полям capacity для одного груза |
limits .max_one_cargo_capacity.capacity_a |
Дополнительный параметр вместимости (A) | Ограничение по полям capacity для одного груза |
limits .max_one_cargo_capacity.capacity_b |
Дополнительный параметр вместимости (B) | Ограничение по полям capacity для одного груза |
limits .max_one_cargo_capacity.capacity_c |
Дополнительный параметр вместимости (C) | Ограничение по полям capacity для одного груза |
Описываемый объект:
key required | string [ 1 .. 1024 ] characters Example: "box01" Ключ отсека, уникальный идентификатор, используется для идентификации размещения грузов по отсекам. |
object or null (capacity) Вместимость отсека, которая ограничивает максимальную сумму по всем полям | |
object or null (box_compatibilities) Совместимости отсека транспорта. | |
object or null (box_limits) Ограничения на отсек кузова. |
{- "key": "box01",
- "capacity": {
- "mass": 10,
- "volume": 2,
- "capacity_a": 1,
- "capacity_b": 2,
- "capacity_c": 3
}, - "compatibilities": {
- "width": 1,
- "height": 3.1,
- "length": 2.1,
- "box_features": [ ]
}, - "limits": {
- "max_one_cargo_capacity": {
- "mass": 10,
- "volume": 2,
- "capacity_a": 1,
- "capacity_b": 2,
- "capacity_c": 3
}
}
}
Название листа orders
.
Список заказов.
Название | Описание | Примечание |
---|---|---|
key | Ключ заказа | Повторяющийся ключ заказа означает заявки одного заказа |
cargos.key | Список грузов | Может содержать один груз для DROP , список для PICKUP , пустой для WORK . |
demands.key | Ключ заявки, уникальный идентификатор | |
demands.demand_type | Тип заявки | Загрузка - PICKUP , выгрузка - DROP , работа на локации - WORK . |
demands.target_cargos | Список ключей грузов | Для PICKUP , один ключ груза для DROP , пустой ключ для WORK |
demands.precedence_in_trip | Приоритет внутри рейса | 0 - приоритет не учитывается. По умолчанию: 0 . |
demands.precedence_in_order | Приоритет внутри заказа | 0 - приоритет не учитывается. По умолчанию: 0 . |
demands .possible_events.key |
Ключ события, уникальный идентификатор | Описание объекта временного окна и локаций, в котором возможно выполнение заявки |
demands .possible_events.location_key |
Ключ локации, в которой возможно данное событие | |
demands .possible_events.duration |
Время выполнения события | |
demands .possible_events.reward |
Вознаграждение за выполнение данного события | |
demands .possible_events.hard_time_window.from |
Начало жесткого временного окна | |
demands .possible_events.hard_time_window.to |
Конец жесткого временного окна | |
demands .possible_events.soft_time_window.from |
Начало мягкого временного окна | |
demands .possible_events.soft_time_window.to |
Конец мягкого временного окна | |
demands .attributes |
Атрибуты. Используются для указания служебной информации | Эти данные не учитываются в планировании. |
compatibilities .order_features |
Список свойств заказа | |
compatibilities .order_restrictions |
Список требований к заказу, выполняемому в этом же рейсе | |
compatibilities .performer_restrictions |
Список необходимых требований к исполнителю | Используется для проверки совместимости исполнителя и заказа (работы). |
compatibilities .performer_blacklist |
Список требований, наличие которых у исполнителя не допустимо | Используется для проверки совместимости исполнителя и заказа (работы). Данный список не должен пересекаться с performer_restrictions |
attributes | Атрибуты, используются для указания служебной информации | Эти данные не учитываются в планировании. |
Описываемый объект:
key required | string [ 1 .. 1024 ] characters Example: "order01" Ключ заказа, уникальный идентификатор. |
required | Array of objects (demand) [ 1 .. 1000 ] items unique Список заявок. |
Array of objects (cargo) [ 0 .. 1000 ] items unique Default: [] Список грузов, на которые ссылаются заявки данного заказа. Список должен быть пустой, если все заявки заказа имеют тип | |
object or null (order_compatibilities) Совместимости заказа с исполнителями и другими заказами. | |
Array of objects (attributes) [ 0 .. 1000 ] items unique Атрибуты. Используются для указания служебной информации. |
{- "key": "order01",
- "demands": [
- {
- "key": "demand_1",
- "demand_type": "WORK",
- "target_cargos": [
- "cargo01"
], - "precedence_in_trip": 1,
- "precedence_in_order": 1,
- "possible_events": [
- {
- "key": "event_1",
- "location_key": "location_01",
- "duration": "PT1H45M",
- "reward": 199.9,
- "hard_time_window": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "soft_time_window": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}
}
], - "attributes": [ ]
}
], - "cargos": [ ],
- "compatibilities": {
- "order_features": [ ],
- "order_restrictions": [ ],
- "performer_restrictions": [ ],
- "performer_blacklist": [ ]
}, - "attributes": [ ]
}
Название листа orders.cargos
.
Список грузов. Может содержать один груз для DROP
, список для PICKUP
, пустой для WORK
.
Таблица не обязательна, если все заявки имеют тип WORK
.
Название | Описание | Примечание |
---|---|---|
key | Ключ груза, уникальный идентификатор | |
capacity.mass | Масса в килограммах | |
capacity.volume | Объем в кубических метрах | |
capacity.capacity_a | Дополнительный параметр вместимости (A) | Для измерения грузов и отсеков в альтернативных единицах измерения. Например, для учета грузов в штуках (у груза данный параметр равен единице, у отсека - максимальному количеству вмещаемых грузов). |
capacity.capacity_b | Дополнительный параметр вместимости (B) | |
capacity.capacity_c | Дополнительный параметр вместимости (C) | |
compatibilities .width |
Ширина в метрах | Используется для проверки вместимости в отсек транспорта по ширине. |
compatibilities .height |
Высота в метрах | Используется для проверки вместимости в отсек транспорта по высоте |
compatibilities .length |
Длина в метрах | Используется для проверки вместимости в отсек транспорта по длине |
compatibilities .rotation |
Список способностей объекта вращаться | Шаг вращения 90 градусов. Если список пустой - объект вращать запрещено. Доступные значения: ALL , YAW , PITCH , ROLL |
compatibilities .box_restrictions |
Список требования к отсеку транспорта | |
compatibilities .cargo_features |
Список свойств груза | Используется для проверки совместимости груза с другими грузами. Несовместимые грузы не могу находится одновременно в одном отсеке транспорта |
compatibilities .cargo_restrictions |
Список необходимых требований к грузу | Используется для проверки совместимости груза с другими грузами. Несовместимые грузы не могу находится одновременно в одном отсеке транспорта |
Описываемый объект:
key required | string [ 1 .. 1024 ] characters Example: "cargo01" Ключ груза, уникальный идентификатор. |
object or null (capacity) Аддитивные меры груза. | |
object or null (cargo_compatibilities) Совместимости груза с отсеком транспорта и другими грузами. | |
target_box_key | string or null [ 1 .. 1024 ] characters Default: null Example: "box01" Ключ отсека транспорта, в котором уже находится груз. Применимо только для груза, который находится в заявке с типом |
{- "key": "cargo01",
- "capacity": {
- "mass": 10,
- "volume": 2,
- "capacity_a": 1,
- "capacity_b": 2,
- "capacity_c": 3
}, - "compatibilities": {
- "width": 1,
- "height": 0.3,
- "length": 2.2,
- "rotation": [
- "ALL"
], - "box_restrictions": [ ],
- "cargo_features": [ ],
- "cargo_restrictions": [ ]
}, - "target_box_key": "box01"
}
Название листа hardlinks
.
Список назначений.
Описываемый объект:
key required | string [ 1 .. 1024 ] characters Example: "group01" Ключ назначения. |
required | Array of objects (hardlink_element) [ 2 .. 1000 ] items Список элементов группы назначения. |
{- "key": "group01",
- "links": [
- {
- "type": "ORDER",
- "entity_key": "ord0001"
}, - {
- "type": "ORDER",
- "entity_key": "ord0001"
}
]
}
Название листа trips
.
Список рейсов.
Описываемый объект:
key required | string [ 1 .. 1024 ] characters Example: "trip-0000-9999" Уникальный идентификатор рейса. |
name | string (trip_name) [ 0 .. 64 ] characters Example: "1-ABC" Краткое наименование рейса. |
required | object (assigned_performer) Назначенная на определенное время ( |
required | object (assigned_transport) Назначенная на определенное время ( |
required | Array of objects (trip_state_list) [ 0 .. 15001 ] items Список состояний исполнителя. |
waitlist | Array of strings (trip_waitlist) [ 0 .. 15001 ] items unique [ items [ 1 .. 1024 ] characters ] Example: "order02" Список ключей заказов, назначенных на исполнителя, но не запланированных на определенное время и не учтенных в загрузке транспорта. |
Array of objects (attributes) [ 0 .. 1000 ] items unique Атрибуты. Используются для указания служебной информации. |
{- "key": "trip-0000-9999",
- "name": "1-ABC",
- "performer": {
- "performer_key": "performer0001",
- "shift_key": "performer0001_shift01",
- "shift_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}
}, - "transport": {
- "transport_key": "transport001",
- "shift_key": "performer01",
- "shift_time": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}
}, - "states": [
- {
- "time": "2024-11-21T09:30:00+03:00",
- "order_key": "order01",
- "demand_key": "demand01.1",
- "event_key": "event01",
- "location_key": "location_01",
- "flags": [
- "RELOCATING"
], - "cargo_actions": [
- {
- "box_key": "box01",
- "cargo_key": "cargo01",
- "cargo_action_type": "ADD"
}
], - "distance": 5200,
- "cost": 1231.1,
- "reward": 2343.3,
- "attributes": [ ]
}
], - "waitlist": [
- "order02"
], - "attributes": [ ]
}
Название листа facts
.
Список фактов.
Описываемый объект:
key required | string [ 1 .. 1024 ] characters Example: "fact_01" Ключ факта. |
time required | string <date-time> (fact_time) Example: "2024-11-21T09:30:00+03:00" Дата и время создания факта в формате ISO 8601. |
type required | string (fact_type) Enum: "NEW_LOCATION" "ORDER_DONE" "DEMAND_START" … 1 more Example: "NEW_LOCATION" Возможные типы фактов:
|
trip_key required | string [ 1 .. 1024 ] characters Example: "trip_01" Ключ рейса, к которому относится факт. |
order_key | string or null [ 1 .. 1024 ] characters Default: null Example: "order_01" Ключ заказа, обязателен для фактов с типом |
demand_key | string or null [ 1 .. 1024 ] characters Default: null Example: "order_01_demand_01" Ключ заявки, обязателен для фактов с типами |
performer_key | string or null [ 1 .. 1024 ] characters Default: null Example: "performer_01" Ключ исполнителя, обязателен для фактов с типом |
location_key | string or null [ 1 .. 1024 ] characters Default: null Example: "location_01" Ключ локации, обязателен для фактов с типом |
{- "key": "fact_01",
- "time": "2024-11-21T09:30:00+03:00",
- "type": "NEW_LOCATION",
- "trip_key": "trip_01",
- "order_key": "order_01",
- "demand_key": "order_01_demand_01",
- "performer_key": "performer_01",
- "location_key": "location_01"
}
Название листа plan_settings
.
Настройки планирования.
Описываемый объект:
object (trips_settings) Настройки создания рейсов. | |
object (geo_settings) Настройки использования гео-данных. | |
object (calculation_settings) Настройки процесса расчета. |
{- "trips_settings": {
- "configuration": "optimize_distance",
- "expectations": {
- "trip_start_time_strategy": "LOWEST_COST"
}, - "assumptions": {
- "transport_speed_multipliers": [ ],
- "transport_capacity_multipliers": [ ],
- "disable_compatibility": true,
- "disable_capacity": true,
- "same_order_time_window": true,
- "expand_shift_time_window": true
}, - "penalties": {
- "compatibilities": [ ],
- "max_locations_limits_penalty": 25000
}
}, - "geo_settings": {
- "geo_provider": "VRT",
- "toll_roads": false,
- "ferry_crossing": false,
- "traffic_jams": false,
- "flight_distance": true
}, - "calculation_settings": {
- "max_calculation_time": "PT12M35S",
- "max_waiting_time": "PT2H",
- "result_ttl": "PT4M30S",
- "result_timezone": 3,
- "treat_warnings_as_errors": true,
- "precision": 1
}
}
Название листа actualize_settings
.
Настройки актуализации.
Описываемый объект:
current_time | string or null <date-time> Example: "2024-11-21T09:30:00+03:00" Указание даты и времени, которое для актуализации будет являться текущим, в соответствии с ISO 8601. Если не указано - берется текущее время получения запроса сервером. |
max_delay_duration | string <duration> [ 3 .. 16 ] characters ^P(?!$)((\d+Y)|(\d+\.\d+Y$))?((\d+M)|(\d+\.\d... Default: "PT3H" Example: "PT1H30M" Допустимое опоздание. Влияет на сдвиг правых границ жестких временных окон заказов и временных окон рабочих смен исполнителей и транспортов. |
{- "current_time": "2024-11-21T09:30:00+03:00",
- "max_delay_duration": "PT1H30M"
}
Название листа replan_settings
.
Настройки перепланирования.
Описываемый объект:
object (replan_strategy) Стратегия перепланирования. |
{- "replan_strategy": {
- "reorder": true,
- "plan_new_orders": true,
- "create_new_trips": true
}
}
Название листа total_statistics
.
Общая статистика.
Описываемый объект:
cost required | number <double> [ 0 .. 10000000000 ] Example: "1231.1" Суммарные затраты, которые считаются на базе тарифов исполнителей и транспорта. |
reward required | number <double> [ 0 .. 10000000000 ] Example: "2343.3" Суммарное вознаграждение за выполнение заказов. |
profit required | number <double> [ -10000000000 .. 10000000000 ] Example: "1231.1" Суммарный доход - разница между суммарным вознаграждением ( |
required | object (measurements) Измерения времен и дистанций для совокупности и отдельных рейсов:
|
trips_count required | integer <int32> [ 0 .. 15001 ] Example: "250" Суммарное количество запланированных рейсов. |
performers_count required | integer <int32> [ 0 .. 15001 ] Example: "157" Суммарное количество исполнителей, задействованных в выполнении заказов. |
orders_count required | integer <int32> [ 0 .. 15001 ] Example: "1700" Суммарное количество запланированных и назначенных заказов. |
plan_orders_count required | integer <int32> [ 0 .. 15001 ] Example: "1003" Суммарное количество запланированных заказов. |
waitlist_orders_count required | integer <int32> [ 0 .. 15001 ] Example: "697" Суммарное количество назначенных заказов. |
stops_count required | integer <int32> [ 0 .. 15001000 ] Example: "87" Суммарное количество остановок (неуникальных локаций). |
locations_count required | integer <int32> [ 0 .. 15001000 ] Example: "45" Суммарное количество уникальный локаций в рамках одного рейса. |
required | object (capacity_statistics_sum) Суммарные аддитивные меры перевезенного груза. |
required | object (capacity_statistics_ratio) Отношение суммарных аддитивных мер перевезенного груза к суммарной вместимости отсеков. В долях единицы. Может быть больше единицы. |
required | object (capacity_statistics_load) Отношение максимальной загрузки отсеков к суммарной вместимости отсеков. В долях единицы. Не может быть больше единицы. |
average_speed required | number <double> >= 0 Example: "43.1" Средняя скорость - отношение общей дистанции к общему время движения, км/ч. |
round_trips_count required | integer <int32> [ 0 .. 15001 ] Example: "2" Количество круго-рейсов внутри рейса. |
Array of objects (attributes) [ 0 .. 1000 ] items unique Атрибуты. Используются для указания служебной информации. |
{- "cost": 1231.1,
- "reward": 2343.3,
- "profit": 1231.1,
- "measurements": {
- "time_window": {
- "from": "2024-11-21T09:30:00+03:00",
- "to": "2024-11-21T19:45:00Z"
}, - "driving_time": "PT1H45M",
- "waiting_time": "PT1H45M",
- "working_time": "PT1H45M",
- "break_time": "PT1H45M",
- "rest_time": "PT1H45M",
- "arriving_time": "PT1H45M",
- "departure_time": "PT1H45M",
- "total_time": "PT1H45M",
- "distance": 5200
}, - "trips_count": 250,
- "performers_count": 157,
- "orders_count": 1700,
- "plan_orders_count": 1003,
- "waitlist_orders_count": 697,
- "stops_count": 87,
- "locations_count": 45,
- "cargo_capacity_sum": {
- "mass": 105500,
- "volume": 220034,
- "capacity_a": 100000,
- "capacity_b": 200000,
- "capacity_c": 300000
}, - "cargo_capacity_ratio": {
- "mass": 0.5,
- "volume": 0.1,
- "capacity_a": 0.7,
- "capacity_b": 0.8,
- "capacity_c": 0.9
}, - "max_transport_load": {
- "mass": 0.5,
- "volume": 0.1,
- "capacity_a": 0.7,
- "capacity_b": 0.8,
- "capacity_c": 0.9
}, - "average_speed": 43.1,
- "round_trips_count": 2,
- "attributes": [ ]
}