VRt.Universal [UV] (7.17.2697)

Veeroute Support Team: servicedesk@veeroute.com License: Proprietary Terms of Service

Описание

Программный интерфейс для универсального планирования рейсов.

Возможности

  • Возможность забора груза из любой локации
  • Возможность разгрузки в любой локации
  • Парные заявки нескольких типов: 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 - можно повернуть один раз по продольной оси (положить на бок)

rotation

Модель рейса

Рейс описывается списком состояний исполнителя, при этом одновременно исполнитель может находится в нескольких состояниях (например быть внутри рабочего временного окна локации и выполнять заказ на этой же локации).

Значения флагов, отвечающих за географическое положение (одновременно может быть несколько флагов):

  • 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 - исполнитель завершил выезд с парковки.

Значения флагов, отвечающих за логическое состояние:

  • DURING_ROUNDTRIP - исполнитель выполняет кругорейс.

Пример маршрута с множеством состояний в каждый момент времени

Время Набор активных флагов Локация / Заказ / Заявка / Событие Комментарий
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
- / - / - / - Едем на следующий заказ

Кругорейсы

Рейс состоит из одного или более кругорейсов.

Флаг наличия кругорейса DURING_ROUNDTRIP выставляется при начале выполнения работ по заявке и убирается в одном из трёх случаев:

  • исполнитель прибыл в очередную локацию, чтобы перестать использовать транспорт
  • исполнитель прибыл в локацию, разделяющую кругорейсы
  • исполнитель перестал использовать транспорт (в локации, не разделяющей кругорейсы, после выполнения какого-то ещё действия)

Между концом одного кругорейса и началом другого кругорейса не может возникнуть смены локации RELOCATING, но могут произойти: ожидание WAITING, перерыв исполнителя BREAK, отдых исполнителя REST.

Локация разделяет рейс на кругорейсы в одном из двух случаев:

  • если у локации задано ограничение пропускной способности timetable.limits (в этом случае может быть больше одной локации, разделяющей рейс)
  • если локация одновременно является стартовой и конечной локацией всех исполнителей и транспортов, а также всех заявок с типом PICKUP (в это случае будет только одна локация, разделяющая рейс)

Примерами таких локаций (в зависимости от постановки задачи) могут служить:

  • распределительные центры при доставке товаров в магазины или склады в задачах дальнемагистральной перевозки
  • магазины или склады при доставке товаров покупателям в задачах последней мили
  • свалки в задачах вывоза мусора

Конфигурация планирования

Для каждого планирования есть возможность указать конфигурацию планирования, которая определяет целевую функцию, желаемое качество маршрутов и скорость расчета.

Название конфигурации планирования передается в поле 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, так как данная конфигурация не требует детального подбора тарифов и стоимостей заказов.

Валидация данных

Валидация входных данных состоит из нескольких этапов, которые описаны ниже.

1. Проверка по схеме

Если запрос не проходит по схеме, то планирование не запускается целиком и такая ошибка возвращается вместе с кодом 400 в schema_errors.

Мы рекомендуем проверять запрос по схеме (или yaml-файлу) перед отправкой на сервер.

2. Проверка на логические ошибки, которые не позволяют продолжить планирование

Корректные по схеме данные проходят второй этап проверки на возможность запуска планирования.

Пример ошибок на данном этапе - ключи, ведущие на пустые сущности, или если все заказы несовместимы со всеми исполнителями, т.е. то, что делает задачу планирования бессмысленной.

Данные ошибки возвращаются вместе с кодом 400 в logical_errors.

3. Проверка на логические ошибки, которые не позволяют продолжить планирование

На третьем этапе происходит проверка каждой сущности отдельно.

Все сущности, которые не прошли проверку - вырезаются из исходной задачи и не отправляются на планирование.

В зависимости от настройки treat_warnings_as_errors результаты данного типа проверки возвращаются в warnings вместе с кодом 400, либо вместе с результатом планирования.

4. Проверки в процессе планирования

Часть проверок можно осуществить только в процессе планирования.

Например - что согласно указанным тарифам и по актуальному прогнозу пробок физически невозможно доехать до определенной точки.

Результаты данных проверок возвращаются в warnings либо вместе с результатом планирования.

Диаграмма сущностей

erd

Plan

Планирование - создание рейсов, которые учитывают все заданные ограничения, на основе данных о заказах, исполнителях и транспорте.

Запросы на планирования возможно выполнять в синхронном (для тестирования) и асинхронном (для основного использования) режимах.

Чтобы получить результат работы очистки исходной задачи воспользуйтесь очисткой данных для планирования.

Планирование (ASYNC)

Запуск планирования рейсов - после загрузки и проверки данных возвращается идентификатор расчета process_code.

С помощью process_code можно узнать состояние расчета и получить результат, a также отменить расчет и удалить временные данные (иначе они автоматически удалятся по ttl, указанному в настройках расчета).

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Запуск асинхронного планирования.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Код процесса - идентификатор расчета.

Request samples

Content type
application/json
Example
{
}

Response samples

Content type
application/json
{
}

Планирование (SYNC)

Синхронный метод для создания рейсов.

Данный метод рекомендуется только для тестового использования и ручного запуска расчетов на небольшом объеме данных.

Для боевой среды рекомендуется использовать асинхронный метод.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Новый запрос на планирование.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
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)

Информация о расчете.

Request samples

Content type
application/json
Example
{
}

Response samples

Content type
application/json
Example
{
}

Отмена расчета

Отмена процесса планирования по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response samples

Content type
application/json
{
}

Состояние расчета

Получение состояния расчета по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Response samples

Content type
application/json
{
}

Получение результата

Получение результата планирования по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response Schema: application/json
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)

Информация о расчете.

Response Schema: application/json
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)

Информация о расчете.

Response samples

Content type
application/json
Example
{
}

Удаление результата

Удаление результата по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response samples

Content type
application/json
{
}

Валидация данных

Проверка данных для планирования перед использованием.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Данные, которые необходимо проверить.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

required
Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Список предупреждений.

Request samples

Content type
application/json
Example
{
}

Response samples

Content type
application/json
{
}

Очистка данных

Очистка данных для планирования перед расчетом - из исходного датасета удаляются сущности, которые не могут участвовать в планировании:

  • Локации, на которые никто не ссылается (в зависимости от флага remove_locations)
  • Заказы, которые не может выполнить ни один исполнитель
  • Исполнители и транспорт, которые не могут выполнить ни один заказ
Authorizations:
ApiKeyAuth
query Parameters
remove_locations
boolean
Default: false
Example: remove_locations=true

Флаг, отвечающий за удаление локации при очистке данных. Если указан true - удаляются локации, на которые не ссылается ни одна сущность в датасете.

Request Body schema: application/json
required

Данные, которые необходимо очистить.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

required
object (plan_task)

Задача для планирования.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Список предупреждений.

object (removed_items)

Информация о удаленных сущностях.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Расчет статистики по рейсам

Расчет статистики по существующим рейсам

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Новый запрос.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
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)

Информация о расчете.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
Example
{
}

Actualize

Актуализация рейсов - обновление планового времени выполнения заказов с учетом фактов и без изменения порядка обьезда.

Актуализация проходит в три этапа - проверка, применение фактов, планирование времен у невыполненных состояний рейсов.

Чтобы получить результат очистки и применения фактов к исходной задаче воспользуйтесь функцией очистки данных.

Полученные в результате актуализации рейсы не меняют исполнителей, транспорт и порядок выполнения заказов, содержат только те работы, которые осталось выполнить.

Заказы, которые не могут быть выполнены, остаются назначенными на исполнителя и попадают в waitlist.

Учет существующих рейсов:

  • Рейсы трансформируются в назначения 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_START (закрывается фактом DEMAND_DONE) - так как исполнитель может в один момент времени выполнять только одну заявку, учитывается самый поздний факт по полю time.
  • Время работы над заявкой сокращается на уже потраченное на нее время (вычисляется как длина промежутка между фактом DEMAND_START и actualize_settings.current_time).
  • Если есть факт о работе по заявке, которая противоречит плановому порядку в указанном рейсе - будет сперва завершена эта заявка, затем продолжится выполнение рейса согласно запланированному порядку.
  • Факт о заказе имеет больший приоритет, чем факты о заявках по этому заказу (если факты о заявках противоречат факту о заказе - они не будут учтены).

Учет фактов о частичном выполнении заказов DEMAND_DONE:

  • Если у заказа выполнены все заявки - он считается завершенным (действия аналогичны обработке факта ORDER_DONE).
  • Если выполнена заявка с типом WORK, то заявка удаляется из заказа.
  • Если выполнена заявка с типом DROP, то заявка и ее грузы, а также соответствующая ей заявка с типом PICKUP удаляются из заказа.
  • Если выполнена заявка с типом DROP_FROM_BOX то заявка и ее груз удаляются из заказа.
  • Если у заказа выполнена заявка с типом PICKUP, то соответствующие ей заявки с типом DROP будут преобразованы в заявки с типом DROP_FROM_BOX.
  • Если выполнена заявка с типом PICKUP_TO_BOX, то заявка и груз удаляются и у транспорта уменьшается capacity соответствующего отсека (при это изменения совместимостей не производится).

Актуализация (ASYNC)

Запуск актуализации существующих рейсов - после загрузки и проверки данных возвращается идентификатор расчета process_code.

С помощью process_code можно узнать состояние расчета, получить результат, a также отменить расчет и удалить временные данные (иначе они автоматически удалятся по ttl, указанному в настройках расчета).

Задачу на актуализацию можно трансформировать в задачу на планирование с помощью переработки данных.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Запуск асинхронного процесса актуализации.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (actualize_settings)

Настройки актуализации.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Код процесса - идентификатор расчета.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Актуализация (SYNC)

Синхронный метод для актуализации существующих рейсов.

Данный метод рекомендуется только для тестового использования и ручного запуска расчетов на небольшом объеме данных.

Для боевой среды рекомендуется использовать асинхронный метод.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Новый запрос на актуализацию.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (actualize_settings)

Настройки актуализации.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
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)

Информация о расчете.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Отмена расчета

Отмена процесса актуализации по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response samples

Content type
application/json
{
}

Состояние расчета

Получение состояния расчета по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Response samples

Content type
application/json
{
}

Получение результата

Получение результата актуализации по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response Schema: application/json
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)

Информация о расчете.

Response Schema: application/json
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)

Информация о расчете.

Response samples

Content type
application/json
{
}

Удаление результата

Удаление результата по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response samples

Content type
application/json
{
}

Валидация данных

Проверка данных для актуализации перед использованием.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Данные, которые необходимо проверить.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (actualize_settings)

Настройки актуализации.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

required
Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Список предупреждений.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Очистка данных

Очистка данных для актуализации перед расчетом:

  • Из датасета удаляются сущности, на которые не ссылаются входные рейсы - исполнители, транспорт, назначения, заказы, факты.
  • Если на одну сущность ссылается несколько фактов - учитывается только самый поздний по полю time, если время совпадает - учитывается случайный из них.
  • Удаляются все факты, которые произошли позже, чем actualize_settings.current_time.

В результате возвращается задача для планирования.

Authorizations:
ApiKeyAuth
query Parameters
remove_locations
boolean
Default: false
Example: remove_locations=true

Флаг, отвечающий за удаление локации при очистке данных. Если указан true - удаляются локации, на которые не ссылается ни одна сущность в датасете.

Request Body schema: application/json
required

Данные, которые необходимо переработать.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (actualize_settings)

Настройки актуализации.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

required
object (plan_task)

Задача для планирования.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Список предупреждений.

object (removed_items)

Информация о удаленных сущностях.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Replan

Перепланирование - создание новых рейсов на основе уже существующих рейсов с учетом фактов.

Перепланирование проходит в несколько этапов - проверка, применение фактов и создание ограничений для планирования на базе существующих рейсов, планирование.

Чтобы получить результат очистки и применения фактов к исходной задаче воспользуйтесь переработкой данных.

В зависимости от настроек перепланирования - задача может быть сведена к планированию (когда все разрешено reorder: true, plan_new_orders: true, create_new_trips: true) или к актуализации (когда все запрещено reorder: false, plan_new_orders: false, create_new_trips: false).

Заказы, которые не могут быть выполнены - остаются назначенными на исполнителя и попадают в waitlist.

Учет существующих рейсов, текущего времени и порядок применения фактов - используется логика из актуализации с учетом выбранной стратегии:

reorder
boolean
Default: false
Example: "true"

Возможность изменять существующий в исходных рейсах порядок выполнения заказов.

plan_new_orders
boolean
Default: false
Example: "true"

Возможность планировать новые заказы в существующие или новые рейсы (если включена опция create_new_trips).

create_new_trips
boolean
Default: false
Example: "true"

Возможность создавать новые рейсы в дополнение к существующим.

{
}

Перепланирование (ASYNC)

Запуск перепланирования рейсов - изменение существующих и создание новых рейсов на основе произошедших фактов и данных о заказах, исполнителях и транспорте.

После загрузки и проверки данных возвращается идентификатор расчета process_code.

С помощью process_code можно узнать состояние расчета и получить результат, a также отменить расчет и удалить временные данные (иначе они автоматически удалятся по ttl, указанному в настройках расчета).

Задачу на перепланирование можно трансформировать в задачу на планирование с помощью переработки данных.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Запуск асинхронного перепланирования.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (actualize_settings)

Настройки актуализации.

object (replan_settings)

Настройки перепланирования.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

process_code
required
string <uuid> (process_code)
Example: "11111111-2222-3333-4444-555555555555"

Код процесса - идентификатор расчета.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Перепланирование (SYNC)

Синхронный метод для перепланирования существующих рейсов.

Данный метод рекомендуется только для тестового использования и ручного запуска расчетов на небольшом объеме данных.

Для боевой среды рекомендуется использовать асинхронный метод.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Новый запрос на перепланирование.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (actualize_settings)

Настройки актуализации.

object (replan_settings)

Настройки перепланирования.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
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)

Информация о расчете.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Отмена расчета

Отмена процесса планирования по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response samples

Content type
application/json
{
}

Состояние расчета

Получение состояния расчета по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

calculation_progress
required
integer <int32> (calculation_progress) [ 0 .. 100 ]
Example: "52"

Прогресс расчета в процентах. Прогресс отражает текущее количество завершенных шагов.

required
object (calculation_info)

Информация о расчете.

Response samples

Content type
application/json
{
}

Получение результата

Получение результата перепланирования по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response Schema: application/json
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)

Информация о расчете.

Response Schema: application/json
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)

Информация о расчете.

Response samples

Content type
application/json
{
}

Удаление результата

Удаление результата перепланирования по идентификатору расчета.

Authorizations:
ApiKeyAuth
path Parameters
process_code
required
string <uuid> (process_code)
Example: 11111111-2222-3333-4444-555555555555

Уникальный идентификатор процесса.

Responses

Response samples

Content type
application/json
{
}

Валидация данных

Проверка данных для перепланирования перед использованием.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Данные, которые необходимо проверить.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (actualize_settings)

Настройки актуализации.

object (replan_settings)

Настройки перепланирования.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

required
Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Список предупреждений.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Очистка данных

Очистка данных для перепланирования перед расчетом:

  • Если на одну сущность ссылается несколько фактов - учитывается только самый поздний по полю time, если время совпадает - учитывается случайный из них.
  • Удаляются все факты, которые произошли позже, чем actualize_settings.current_time.
  • Если указан plan_new_orders: false - из исходной задачи удаляются все заказы, которых нет в указанных рейсах.
  • Если указан create_new_trips: false - из исходной задачи удаляются все исполнители и транспорт, которых нет в указанных рейсах, также удаляются незапланированные смены исполнителей и транспорта, которые есть в указанных рейсах.
  • После производится очистка данных для планирования.

В результате возвращается задача для планирования.

Authorizations:
ApiKeyAuth
query Parameters
remove_locations
boolean
Default: false
Example: remove_locations=true

Флаг, отвечающий за удаление локации при очистке данных. Если указан true - удаляются локации, на которые не ссылается ни одна сущность в датасете.

Request Body schema: application/json
required

Данные, которые необходимо переработать.

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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (actualize_settings)

Настройки актуализации.

object (replan_settings)

Настройки перепланирования.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/json
required
object (tracedata)

Данные используемые для трассировки запросов.

required
object (plan_task)

Задача для планирования.

Array of objects (entity_warning_list) [ 0 .. 15001 ] items

Список предупреждений.

object (removed_items)

Информация о удаленных сущностях.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

Convert

Конвертация данных.

JSON >> XLSX

Используется для конвертации данных в формат VRt.Universal XLSX.

Authorizations:
ApiKeyAuth
query Parameters
timezone
integer <int32> (timezone) [ -12 .. 12 ]
Default: 0
Example: timezone=3

Целевая временная зона данных.

Request Body schema: application/json
required

Запрос на конвертацию в 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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (replan_settings)

Настройки перепланирования.

object (actualize_settings)

Настройки актуализации.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: application/octet-stream
string <byte> (file_xlsx)

Файл с данными в формате XLSX.

Request samples

Content type
application/json
{
}

Response samples

Content type
application/json
{
}

XLSX >> JSON

Используется для конвертации данных из формата VRt.Universal XLSX в формат VRt.Universal JSON.

Authorizations:
ApiKeyAuth
Request Body schema: application/octet-stream
required

Запрос на конвертацию в JSON.

string <byte> (file_xlsx)

Файл с данными в формате XLSX.

Responses

Response Schema: application/json
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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (replan_settings)

Настройки перепланирования.

object (actualize_settings)

Настройки актуализации.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Response samples

Content type
application/json
{
}

JSON >> THRIFT

Используется для конвертации входных данных в формат THRIFT.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required

Запрос на конвертацию в 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

Список матриц времен и расстояний для каждого типа транспорта, которые указаны в данных. Матрица должна описывать все локации для каждого типа транспорта из данных. При указании внешней матрицы маршрутизации external_routing не учитываются параметры plan_settings.geo_settings.

object (plan_settings)

Настройки планирования.

object (replan_settings)

Настройки перепланирования.

object (actualize_settings)

Настройки актуализации.

dataset_name
string (dataset_name) [ 0 .. 512 ] characters
Example: "custom_dataset_one"

Название набора данных. Техническое поле, не влияющее на расчет.

Responses

Response Schema: text/plain
string (file_text)

Файл с данными в текстовом формате.

Request samples

Content type
application/json
{