{
"_type": "export",
"__export_format": 4,
"__export_date": "2026-08-24T12:32:26.000Z",
"__export_source": "veeroute.gen_insomnia:v1",
"resources": [
{
"_type": "workspace",
"_id": "__WORKSPACE_ID__",
"parentId": null,
"name": "VRt.Universal [UV] 7.41.3481",
"description": "# Описание\n\nПрограммный интерфейс для универсального планирования рейсов.\n\n## Возможности\n\n* Возможность забора груза из любой локации\n* Возможность разгрузки в любой локации\n* Парные заявки нескольких типов: `PICKUP` (погрузка), `DROP` (выгрузка)\n* Одиночные заявки нескольких типов: `DROP_FROM_BOX` (выгрузка груза, который уже находится в кузове), `PICKUP_TO_BOX` (забор груза в кузов без последующей выгрузки), `WORK` (работа на локации без перемещения груза)\n* Комплексный заказ может состоять из любого числа заявок любых типов\n* Транспорт и исполнители разделены на разные сущности, при планирование происходит оптимальное назначение исполнителя на транспорт\n* У транспорта несколько отсеков - каждый из которых может вмещать груз и обладает собственными характеристиками\n* Учёт совместимости груза с транспортом по параметрам габарита груза (длина, ширина, высота, дополнительные параметры вместимости)\n* Учёт совместимостей груз-отсек транспорта (возможность учесть свойства отсека: холодильник, термо-сумка, крепежи и т.п)\n* Заявки-заменители, т.е. возможность выполнить одну из заявок-заменителей, выбор которой происходит на основе её географического местоположения и временного окна\n\n## Поддержка ограничений\n\nОграничения на **исполнителя**:\n\n* Место старта/финиша\n* Учет передвижения исполнителя до точки старта транспорта\n* График доступности исполнителя - список временных окон, в которые исполнитель может совершать перемещения и совершать работу на локациях\n* Максимальная продолжительность работы исполнителя в течение заданного временного периода\n\nОграничения на **транспорт**:\n\n* Место старта/финиша\n* График доступности транспорта - список временных окон, в которые транспорт может совершать перемещения\n* Максимальная протяженность маршрута\n* Несколько отсеков в транспорте, каждый со своими параметрами\n* Ограничение сверху на суммируемые вместимости (вес, объём, количество заказов, количество заявок)\n\nОграничения на **заказ**:\n\n* Жесткие временные окна\n* Возможность указать разные допустимые окна работы локации и окна желаемого выполнения заявки\n* Учет порядка исполнения заявок в пределах маршрута\n* Список желаемых временных окон выполнения с разными стоимостями для каждого из них\n\n## Используемые совместимости\n\nСущности являются совместимыми, если список свойств одной сущности полностью покрывает список требований другой сущности (наоборот для `performer_blacklist` - списки не должны пересекаться).\n\nПоддерживаемые совместимости:\n\n| Название | Требования | Свойства |\n|-------------------------|----------------------------------|------------------------------|\n| Заказ - Исполнитель | order.performer_restrictions | performer.performer_features |\n| Заказ - Не Исполнитель | order.performer_blacklist | performer.performer_features |\n| Груз - Отсек | order.cargo.box_restrictions | transport.box.box_features |\n| Локация - Транспорт | location.transport_restrictions | transport.transport_features |\n| Транспорт - Исполнитель | transport.performer_restrictions | performer.performer_features |\n| Исполнитель - Транспорт | performer.transport_restrictions | transport.transport_features |\n| Заказ - Заказ | order.order_restrictions | order.order_features |\n| Груз - Груз | cargo.cargo_restrictions | cargo.cargo_features |\n\nПримеры бизнес правил:\n\n| Название | Пример бизнес-правила |\n|-------------------------|---------------------------------------------------------------------------------------|\n| Заказ - Исполнитель | Для выполнения заказа водитель должен иметь особое разрешение |\n| Заказ - Не Исполнитель | Водитель в черном списке |\n| Груз - Отсек | Для перевозки замороженной продукции необходим отсек с особым температурным режимом |\n| Локация - Транспорт | Ограничения на высоту транспорта |\n| Транспорт - Исполнитель | Для грузового транспорта водитель должен иметь категорию `C` |\n| Исполнитель - Транспорт | Водителю разрешено работать только на определенном транспорте |\n| Заказ - Заказ | Нельзя перевозить рыбу и фрукты в одном отсеке |\n| Груз - Груз | Два груза нельзя одновременно размещать в одном отсеке транспорта, по очереди - можно |\n\n## Назначения\n\nМеханизм назначений (`hardlinks`) необходим для указания требований по нахождению заказов, исполнителя и транспорта в одном рейсе.\n\nНазначение гарантирует нахождения сущностей в одном рейсе и не гарантирует факт планирования сущности.\nНапример, если исполнитель не успевает выполнить заказ, то он не запланируется, но назначится на рейс (попадет в `waitlist`).\n\nТакже назначение не отменяет указанные совместимости (и штрафы за нарушение совместимостей).\nНапример, если заказ не может быть выполнен исполнителем, он не запланируется, но назначится на рейс (попадет в `waitlist`).\n\n## Размещение грузов в кузове\n\nСписок способностей объекта вращаться (с шагом в 90 градусов):\n\n* `ALL` - можно поворачивать по любой оси любое количество раз\n* `YAW` - можно повернуть один раз по вертикальной оси (вокруг своей оси)\n* `PITCH` - можно повернуть один раз по поперечной оси (поставить вертикально)\n* `ROLL` - можно повернуть один раз по продольной оси (положить на бок)\n\n## Модель рейса\n\nРейс описывается списком состояний исполнителя, при этом одновременно исполнитель может находится в нескольких состояниях (например быть внутри рабочего временного окна локации и выполнять заказ на этой же локации).\n\nЗначения флагов, отвечающих за географическое положение (одновременно может быть несколько флагов):\n\n* `AROUND_LOCATION` - исполнитель находится рядом с локацией - в процессе парковки или выезда с нее.\n* `INSIDE_LOCATION` - исполнитель находится на локации.\n\nЗначения флагов, отвечающих за нахождения во временных окнах (одновременно может быть несколько флагов):\n\n* `INSIDE_WORKING_WINDOW` - исполнитель находится внутри рабочего временного окна.\n* `INSIDE_LOCATION_WINDOW` - исполнитель находится внутри времени работы локации.\n* `INSIDE_EVENT_HARD_WINDOW` - исполнитель находится внутри жесткого временного окна.\n* `INSIDE_EVENT_SOFT_WINDOW` - исполнитель находится внутри мягкого временного окна.\n\nЗначения флагов, отвечающих за действия (одновременно может быть только один флаг):\n\n* `ON_DEMAND` - исполнитель начал работу над заявкой.\n* `WAITING` - исполнитель начал ожидание.\n* `RELOCATING` - исполнитель начал перемещаться к следующей остановке.\n* `BREAK` - исполнитель начал на перерыв.\n* `REST` - исполнитель начал длительный отдых.\n* `ARRIVAL` - исполнитель начал парковку.\n* `DEPARTURE` - исполнитель завершил выезд с парковки.\n\nЗначения флагов, отвечающих за логическое состояние:\n\n* `DURING_ROUNDTRIP` - исполнитель выполняет кругорейс.\n\n### Пример маршрута с множеством состояний в каждый момент времени\n\n| Время | Набор активных флагов | Локация / Заказ / Заявка / Событие | Комментарий |\n|:------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------|:----------------------------------------------------------------|\n| 10:00 | INSIDE_LOCATION
AROUND_LOCATION | 2 / - / - / - | Стартовая локация |\n| 10:05 | AROUND_LOCATION
DEPARTURE | 2 / - / - / - | Выехали с парковки |\n| 10:10 | RELOCATING
DEPARTURE | 2 / - / - / - | Едем к первому заказу |\n| 10:20 | AROUND_LOCATION
ARRIVAL | 2 / - / - / - | Подъехали к первому заказу |\n| 10:40 | AROUND_LOCATION
INSIDE_LOCATION
WAITING | 2 / - / - / - | Припарковались |\n| 11:00 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
WAITING
INSIDE_EVENT_HARD_WINDOW | 2 / - / - / - | Дождались начала окна локации и одновременно доступности заказа |\n| 11:25 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
ON_DEMAND
INSIDE_WORKING_WINDOW
INSIDE_EVENT_HARD_WINDOW | 2 / 1 / 2 / 3 | Дождались смены исполнителя |\n| 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 | Пока работали - случилось мягкое окно |\n| 11:40 | AROUND_LOCATION
INSIDE_LOCATION
INSIDE_LOCATION_WINDOW
INSIDE_WORKING_WINDOW | 2 / - / - / - | Закончили работать |\n| 11:45 | AROUND_LOCATION
DEPARTURE
INSIDE_WORKING_WINDOW | 2 / - / - /- | Выехали с парковки |\n| 11:45 | RELOCATING
INSIDE_WORKING_WINDOW | - / - / - / - | Едем на следующий заказ |\n\n## Кругорейсы\n\nРейс состоит из одного или более кругорейсов.\n\nФлаг наличия кругорейса `DURING_ROUNDTRIP` выставляется при начале выполнения работ по заявке и убирается в одном из трёх случаев:\n\n* исполнитель прибыл в очередную локацию, чтобы перестать использовать транспорт\n* исполнитель прибыл в локацию, разделяющую кругорейсы\n* исполнитель перестал использовать транспорт (в локации, не разделяющей кругорейсы, после выполнения какого-то ещё действия)\n\nМежду концом одного кругорейса и началом другого кругорейса не может возникнуть смены локации `RELOCATING`, но могут произойти: ожидание `WAITING`, перерыв исполнителя `BREAK`, отдых исполнителя `REST`.\n\nЛокация разделяет рейс на кругорейсы в одном из двух случаев:\n\n* если у локации задано ограничение пропускной способности `timetable.limits` (в этом случае может быть больше одной локации, разделяющей рейс)\n* если локация одновременно является стартовой и конечной локацией всех исполнителей и транспортов, а также всех заявок с типом `PICKUP` (в это случае будет только одна локация, разделяющая рейс)\n\nПримерами таких локаций (в зависимости от постановки задачи) могут служить:\n\n* распределительные центры при доставке товаров в магазины или склады в задачах дальнемагистральной перевозки\n* магазины или склады при доставке товаров покупателям в задачах последней мили\n* свалки в задачах вывоза мусора\n\n## Конфигурация планирования\n\nДля каждого планирования есть возможность указать конфигурацию планирования, которая определяет целевую функцию, желаемое качество маршрутов и скорость расчета.\n\nНазвание конфигурации планирования передается в поле `trips_settings.configuration`.\n\nОсновные конфигурации:\n\n| Название | Задача |\n|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **optimize_distance** | Расставить как можно больше заказов, затем оптимизировать суммарный пробег (количество транспорта выбирается исходя из пробега), используется по умолчанию |\n| **optimize_transports** | Расставить как можно больше заказов, при этом использовать как можно меньше транспорта, при прочих равных оптимизировать время работы исполнителей |\n| **optimize_locality_grouping** | Расставить как можно больше заказов, при этом стремиться оптимизировать визуальную группировку маршрутов, но не их количество |\n| **optimize_cars_then_distance** | Расставить как можно больше заказов, затем оптимизировать количество транспорта, затем пробег |\n| **optimize_time** | Расставить как можно больше заказов, затем оптимизировать суммарное время работы исполнителей |\n| **optimize_cars_then_time** | Расставить как можно больше заказов, затем оптимизировать количество транспорта, затем суммарное время работы исполнителей |\n| **optimize_money** | Оптимизировать величину \"награда за выполнение заказов - затраты\", складывается из наград за заявки и расходов на исполнителей и транспорты (оптимизируемая величина неотрицательна) |\n\nДополнительные конфигурации:\n\n| Название | Задача |\n|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **visual_grouping** | Расставить как можно больше заказов, при этом использовать как можно меньше транспорта и маршруты должны быть визуально сгруппированы |\n| **optimize_visual_grouping** | Расставить как можно больше заказов, затем равномерно распределить заказы с учетом зон транспортной доступности (как visual_grouping, но визуальная группировка рассчитывается иначе) |\n| **optimize_cars_then_locality_grouping** | Расставить как можно больше заказов, затем оптимизировать количество транспорта, затем визуальную группировку маршрутов |\n| **optimize_cars_then_single_location_grouping_sequenced** | Расставить как можно больше заказов, затем оптимизировать количество машин, а затем надёжность |\n\nВ дополнение к существующим вариантам планирования возможно создание целевой функции непосредственно под бизнес-процессы клиента (запросить конфигурацию).\n\nДля разработки рекомендуется использовать **optimize_cars_then_distance**, так как данная конфигурация не требует детального подбора тарифов и стоимостей заказов.\n\n## Валидация данных\n\nВалидация входных данных состоит из нескольких этапов, которые описаны ниже.\n\n### 1. Проверка по схеме\n\nЕсли запрос не проходит по схеме, то планирование не запускается целиком и такая ошибка возвращается вместе с кодом 400 в `schema_errors`.\n\nМы рекомендуем проверять запрос по схеме (или yaml-файлу) перед отправкой на сервер.\n\n### 2. Проверка на логические ошибки, которые не позволяют продолжить планирование\n\nКорректные по схеме данные проходят второй этап проверки на возможность запуска планирования.\n\nПример ошибок на данном этапе - ключи, ведущие на пустые сущности, или если все заказы несовместимы со всеми исполнителями, т.е. то, что делает задачу планирования бессмысленной.\n\nДанные ошибки возвращаются вместе с кодом 400 в `logical_errors`.\n\n### 3. Проверка на логические ошибки, которые не позволяют продолжить планирование\n\nНа третьем этапе происходит проверка каждой сущности отдельно.\n\nВсе сущности, которые не прошли проверку - вырезаются из исходной задачи и не отправляются на планирование.\n\nВ зависимости от настройки `treat_warnings_as_errors` результаты данного типа проверки возвращаются в `warnings` вместе с кодом 400, либо вместе с результатом планирования.\n\n### 4. Проверки в процессе планирования\n\nЧасть проверок можно осуществить только в процессе планирования.\n\nНапример - что согласно указанным тарифам и по актуальному прогнозу пробок физически невозможно доехать до определенной точки.\n\nРезультаты данных проверок возвращаются в `warnings` либо вместе с результатом планирования."
},
{
"parentId": "__WORKSPACE_ID__",
"name": "Base environment",
"data": {
"base_url": "{{ scheme }}://{{ host }}{{ base_path }}"
},
"_type": "environment",
"_id": "__BASE_ENVIRONMENT_ID__"
},
{
"parentId": "__BASE_ENVIRONMENT_ID__",
"name": "OpenAPI env",
"data": {
"scheme": "https",
"base_path": "",
"host": "api.edge7.veeroute.cloud",
"bearerToken": "bearerToken"
},
"_type": "environment",
"_id": "env___BASE_ENVIRONMENT_ID___sub"
},
{
"parentId": "__WORKSPACE_ID__",
"name": "Plan",
"environment": {},
"_id": "fld___WORKSPACE_ID__4da47260",
"_type": "request_group",
"description": "Планирование - создание рейсов, которые учитывают все заданные ограничения, на основе данных о заказах, исполнителях и транспорте.\n\n#### Подготовка данных\n\n* Подготовка заказов - конвертируются все заказы на необходимое количество часов вперед, которые готовы для планирования.\n\n* Подготовка ресурсов - конвертируются все доступные ресурсы (исполнители, транспорт).\n\n* После отправки данных на сервер входные данные автоматически очищаются и на планирование поступают только валидные данные. Чтобы получить результат работы очистки исходной задачи воспользуйтесь очисткой данных для планирования.\n\n#### Запуск планировщика\n\n* Вызов метода планирования - в метод планирования передается подготовленный json (который содержит Заказы и Ресурсы) и токен авторизации (api_key)\n\n* Обработка ошибок - если код ответа отличается от 200, то необходимо обработать ошибку - ее номер и детализация придет в ответ на запрос.\n\n* Получение ответа - если код ответа равен 200, то полученные данные необходимо сохранить для дальнейшей обработки.\n\n#### Обработка результата\n\n* Рейсы - структура содержит назначения заказов на исполнителей.\n\n* Статистика - структура содержит общую статистическую информацию о всех рейсах.\n\n* Валидации - структура содержит информацию о валидности входных данных.\n\n### Режимы работы\n\nЗапросы на планирования возможно выполнять в синхронном и асинхронном режиме.\n\n#### Синхронный\n\n
\n\nВ синхронном варианте результат приходит в ответ на входные данные.\n\nДанный вариант рекомендуется **только для разработки и тестирования** на небольших задачах (до 100 сущностей, до 1 минуты планирования).\n\n#### Асинхронный\n\n
\n\nВ асинхронном варианте в ответ на данные приходит идентификатор решения, по которому можно получить текущий прогресс выполнения и, в случае если планирование завершено, результат планирования.\n\nДанный вариант рекомендуется для использования в основной системе."
},
{
"parentId": "__WORKSPACE_ID__",
"name": "Replan",
"environment": {},
"_id": "fld___WORKSPACE_ID__9726d866",
"_type": "request_group",
"description": "Перепланирование - создание новых рейсов на основе уже существующих рейсов с учетом фактов.\n\n### Этапы\n\nПерепланирование проходит в несколько этапов:\n\n1. проверка, можно вызвать отдельно с помощью проверки данных.\n2. очистка, применение фактов и создание ограничений для планирования на базе существующих рейсов, можно вызвать отдельно с помощью переработки данных.\n3. планирование, можно вызвать отдельно с помощью планирования.\n\n### Настройки\n\nВ зависимости от настроек перепланирования - задача может быть сведена к планированию (когда все разрешено `reorder: true, plan_new_orders: true, create_new_trips: true`) или к обновлению времен проездов между заказами (когда все запрещено `reorder: false, plan_new_orders: false, create_new_trips: false`).\n\n### Учет существующих рейсов\n\n* Рейсы трансформируются в назначения `hardlink` - т.е. назначенные на рейс смены исполнителя и транспорта не могут использоваться в других рейсах.\n* У заявок, которые были запланированы в исходных рейсах, удаляются события-заменители и фиксируется порядок выполнения с помощью `precedence_in_trip`, если у этих заявок уже был указан порядок выполнения - он будет перезаписан.\n* Заказы из рейса, которые более не могут быть выполнены - остаются назначенными на исполнителя и попадают в `waitlist`.\n\n### Учет текущего времени\n\n* Если текущее время `actualize_settings.current_time` в данных не задано - то используется время получения запроса сервером.\n* Если текущее время больше чем левая граница временных окон всех событий и смен - то левая граница сдвигается до текущего времени.\n* К правой границе временных окон всех событий и смен добавляется допустимое время опоздания `actualize_settings.max_delay_duration`.\n* Мягкие временные окна корректируются только в случае, если длительность заявки не позволяет выполнить заказ внутри мягкого окна.\n\n### Учет фактов\n\n* Учитываются только те факты, которые произошли до `actualize_settings.current_time` (по полю `time`), при этом не важно, насколько раньше текущего времени произошел факт.\n* При наличии нескольких фактов (одного типа и с ссылкой на одинаковые сущности) учитывается только самый поздний по полю `time`.\n* Если список фактов пустой - производится только учет существующих рейсов и текущего времени.\n\n#### Учет факта о изменения местоположения `GEOTRACK_UPDATED`\n\n* Для учета факта в списке локаций `locations` должна находится локация (существующая или новая), которая описывает новое местоположение исполнителя.\n* Если рейс начался (время факта позже планового времени начала рейса) - транспорт считается в той же локации, что и исполнитель - т.е. изменяются `start_location_key` у исполнителя и транспорта.\n* Если рейс не начался (время факта до планового времени начала рейса) - изменяется только начальная локация исполнителя, локация транспорта остается из исходных данных.\n\n#### Учет факта о завершении заказа `ORDER_DONE`\n\n* Из данных для актуализации удаляются заказ, его заявки и связанные с ними локации (если на них не ссылаются другие сущности).\n* Груз считается выгруженным из транспорта.\n\n#### Учет фактов о начале работ над заявкой `DEMAND_START`\n\n* На каждый рейс разрешен только один незакрытый факт `DEMAND_START` (закрывается фактом `DEMAND_DONE`) - так как исполнитель может в один момент времени выполнять только одну заявку.\n* Время работы над заявкой сокращается на уже потраченное на нее время (вычисляется как длина промежутка между фактом `DEMAND_START` и `actualize_settings.current_time`).\n* Если есть факт о работе по заявке, которая противоречит плановому порядку в указанном рейсе - будет сперва завершена эта заявка, затем продолжится выполнение рейса согласно запланированному порядку.\n* Факт о заказе имеет больший приоритет, чем факты о заявках по этому заказу (если факты о заявках противоречат факту о заказе - они не будут учтены).\n\n#### Учет фактов о частичном выполнении заказов `DEMAND_DONE`\n\n* Если у заказа выполнены все заявки - он считается завершенным (действия аналогичны обработке факта `ORDER_DONE`).\n* Если выполнена заявка с типом `WORK`, то заявка удаляется из заказа.\n* Если выполнена заявка с типом `DROP`, то заявка и ее грузы, а также соответствующая ей заявка с типом `PICKUP` удаляются из заказа.\n* Если выполнена заявка с типом `DROP_FROM_BOX` то заявка и ее груз удаляются из заказа.\n* Если у заказа выполнена заявка с типом `PICKUP`, то соответствующие ей заявки с типом `DROP` будут преобразованы в заявки с типом `DROP_FROM_BOX`.\n* Если выполнена заявка с типом `PICKUP_TO_BOX`, то заявка и груз удаляются и у транспорта уменьшается capacity соответствующего отсека (при это изменения совместимостей не производится).\n\n#### Учет фактов о выполнении рейсов `TRIP_DONE`\n\n* Если в рейсе выполнены все заказы - он считается завершенным (действия аналогичны обработке факта `TRIP_DONE`).\n* Завершенный рейс возвращается в результате перепланирования с пустым списком состояний `states`."
},
{
"parentId": "__WORKSPACE_ID__",
"name": "XLSX",
"environment": {},
"_id": "fld___WORKSPACE_ID__665a8253",
"_type": "request_group",
"description": "Описание формата VRt.Universal XLSX для импорта\\экспорта данных.\n\nДанный формат является полным отображением json-модели данных и используется для:\n\n* исходных данных\n* настроек процессов\n* результатов расчета\n* статистики по результату расчета\n\nНиже представлено описание каждого листа отдельно, **жирным** выделены ключи.\n\n## Настройки данных\n\nНазвание листа `info`.\n\n| Название | Описание |\n|-----------------|--------------------------------------------------------|\n| **api_version** | Версия API Universal в момент генерации XLSX |\n| **timezone** | Временной пояс, в котором указаны все времена в данных |\n| docs_ru | Ссылка на документацию (RU) |\n| docs_en | Ссылка на документацию (EN) |\n\n## Локации\n\nНазвание листа `locations`.\n\nСписок локаций, которые используются в заказах и сменах.\n\n| Название | Описание | Примечание |\n|---------------------------------------------|----------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|\n| **key** | Ключ локации, уникальный идентификатор | Уникальный ключ в рамках расчета |\n| departure_duration | Время на отъезд от локации, временной промежуток | |\n| geopoint.latitude | Географическая широта в градусах | |\n| geopoint.longitude | Географическая долгота в градусах | |\n| timetable.work_windows.from | Начало временного окна работы локации | Обязательно, если указан `to`. Если список пустой или не указан - локация работает без ограничений по времени. |\n| timetable.work_windows.to | Окончание временного окна работы локации | Обязательно, если указан `from`. Если список пустой или не указан - локация работает без ограничений по времени. |\n| compatibilities
.transport_restrictions | Список необходимых требований к транспорту | Используется для проверки совместимости транспорта локацией. |\n| attributes | Атрибуты, используются для указания служебной информации | Эти данные не учитываются в планировании. |\n\nОписываемый объект:\n\n\n## Исполнители\n\nНазвание листа `performers`.\n\nСписок доступных исполнителей.\n\n| Название | Описание | Примечание |\n|------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|\n| **key** | Ключ исполнителя, уникальный идентификатор | |\n| own_transport_type | Тип транспорта | Если не указан, по умолчанию, проставляется `CAR`. |\n| **shifts.key** | Ключ смены, уникальный идентификатор | |\n| shifts.start_location_key | Ключ начальной локациями | Если ключ не задан - то путь перформера начинается на первом заказе. |\n| shifts.finish_location_key | Ключ финальной локации | Если ключ не задан - то путь перформера завершается на последнем заказе. |\n| shifts.max_locations | Ограничение количества уникальных локаций в одном рейсе, включая локации старта и финиша | Если параметр не указан или указан как `null` - то количество локаций не ограничено. |\n| shifts.max_stops | Ограничение количества остановок в одном рейсе, включая локации старта и финиша | Если параметр не указан или указан как `null` - то количество остановок не ограничено. |\n| shifts.attributes | Атрибуты. Используются для указания служебной информации | Эти данные не учитываются в планировании. |\n| shifts.availability_time.from | Начало временного окна смены | В которое исполнитель может выполнять работу на локациях и осуществлять перемещение между локациями. |\n| shifts.availability_time.to | Окончание временного окна смены | В которое исполнитель может выполнять работу на локациях и осуществлять перемещение между локациями. |\n| shifts.working_time.from | Начало рабочего временного окна | В которые исполнитель может выполнять работу на локациях, должно быть внутри временного окна смены. |\n| shifts.working_time.to | Окончание рабочего временного окна | В которые исполнитель может выполнять работу на локациях, должно быть внутри временного окна смены. |\n| shifts.tariff
.cost_per_shift | Цена за использование смены, денежная единица | По умолчанию: `0.001` |\n| shifts.tariff
.max_penalty_cost | Максимальная сумма штрафов, которую может получить исполнитель в рамках данной смены, денежная единица. | Если сумма не задана или равна `null` - исполнитель не может нарушать ограничения. |\n| shifts.tariff
.constraints.stage_length | Длина оплачиваемого периода, временной промежуток | По умолчанию: `525960` |\n| shifts.tariff
.constraints.cost_per_unit | Стоимость внутри оплачиваемого периода, денежная единица за секунду работы | По умолчанию: `0.001` |\n| shifts.work_and_rest_rules
.first_break
.max_work_duration_sum | Суммарное время работы, после которого необходимо сделать перерыв | |\n| shifts.work_and_rest_rules
.first_break
.duration | Продолжительность перерыва | |\n| compatibilities
.performer_features | Список свойств исполнителя | Используется для проверки совместимости исполнителя с заказами и транспортом. |\n| compatibilities
.transport_restrictions | Список необходимых требований к транспорту | Используется для проверки совместимости исполнителя с транспортом. |\n| limits.max_work_shifts | Ограничение на рабочую загрузку исполнителя | Ограничение количества смен исполнителя в одном планировании. |\n| attributes | Атрибуты, используются для указания служебной информации | Эти данные не учитываются в планировании. |\n\nОписываемый объект:\n\n\n## Транспорт\n\nНазвание листа `transports`.\n\nСписок доступного транспорта.\n\n| Название | Описание | Примечание |\n|---------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **key** | Ключ транспорта уникальный идентификатор | |\n| transport_type | Тип транспорта | Если не указан, по умолчанию, проставляется `CAR` |\n| **boxes.key** | Список отсеков транспорта, которые могут вмещать груз | Обязательно,если в задаче присутствуют заказы с демандами `PICKUP` и `DROP` |\n| **shifts.key** | Ключ смены, уникальный идентификатор | |\n| shifts.start_location_key | Ключ начальной локации. | Если ключ не задан - то путь транспорта начинается на первом заказе |\n| shifts.finish_location_key | Ключ финальной локации | Если ключ не задан - то путь транспорта завершается на последнем заказе |\n| shifts.attributes | Атрибуты. Используются для указания служебной информации | Эти данные не учитываются в планировании |\n| shifts.availability_time.from | Начало временного окна смены | В которое транспорт может осуществлять перемещение между локациями и использоваться исполнителем в работах на локациях |\n| shifts.availability_time.to | Окончание временного окна смены | В которое транспорт может осуществлять перемещение между локациями и использоваться исполнителем в работах на локациях |\n| shifts.tariff
.cost_per_shift | Цена за использование смены, денежная единица | По умолчанию: `0.001` |\n| shifts.tariff
.max_penalty_cost | Максимальная сумма штрафов | По умолчанию: `0`. Которую может получить транспорт в рамках данной смены, денежная единица. Если сумма не задана или равна null - транспорт не может нарушать ограничения. |\n| shifts.tariff
.constraints.stage_length | Длина оплачиваемой части пути, в метрах | По умолчанию: `100000000` |\n| shifts.tariff
.constraints.cost_per_unit | Стоимость внутри оплачиваемой части пути | Денежная единица за один метр. По умолчанию: `0.001` |\n| shifts.tariff
.transportation_cost.mass | Стоимость перемещения 1 единицы массы груза на 1 метр | В условных денежных единицах |\n| shifts.tariff
.transportation_cost.volume | Стоимость перемещения 1 единицы объёма груза на 1 метр | В условных денежных единицах |\n| shifts.tariff
.transportation_cost.capacity_a | Стоимость перемещения 1 единицы доп.параметра A груза на 1 метр | В условных денежных единицах |\n| shifts.tariff
.transportation_cost.capacity_b | Стоимость перемещения 1 единицы доп.параметра B груза на 1 метр | В условных денежных единицах |\n| shifts.tariff
.transportation_cost.capacity_c | Стоимость перемещения 1 единицы доп.параметра C груза на 1 метр | В условных денежных единицах |\n| compatibilities
.transport_features | Список свойств транспорта | Используется для проверки совместимости транспорта с локациями и исполнителями |\n| compatibilities
.performer_restrictions | Список требований транспорта к исполнителю | Используется для проверки совместимости с исполнителем |\n| limits.max_boxes | Ограничение максимального количества используемых отсеков транспорта в одном рейсе | Если параметр не указан или указан как `null` - то количество отсеков не ограничено. Ограничение не должно превышать количество отсеков |\n| limits.max_capacity.mass | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по массе суммарно по всем отсекам | Масса в килограммах, применимо только если у транспорта больше одного отсека, параметр не должен быть меньше вместимости любого отсека. |\n| limits.max_capacity.volume | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по объёму суммарно по всем отсекам | объём в кубических метрах, применимо только если у транспорта больше одного отсека, параметр не должен быть меньше вместимости любого отсека. |\n| limits.max_capacity.capacity_a | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по доп.параметру A суммарно по всем отсекам | Дополнительный параметр вместимости (A) для измерения грузов и отсеков в альтернативных единицах измерения. Например, для учета грузов в штуках (у груза данный параметр равен единице, у отсека - максимальному количеству вмещаемых грузов) |\n| limits.max_capacity.capacity_b | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по доп.параметру B суммарно по всем отсекам | Дополнительный параметр вместимости (B) для измерения грузов и отсеков в альтернативных единицах измерения. |\n| limits.max_capacity.capacity_c | Параметр дополнительно ограничивает максимально возможную загрузку транспорта по доп.параметру C суммарно по всем отсекам | Дополнительный параметр вместимости (C) для измерения грузов и отсеков в альтернативных единицах измерения. |\n| attributes | Атрибуты, используются для указания служебной информации | Эти данные не учитываются в планировании. |\n\nОписываемый объект:\n\n\n## Кузова\n\nНазвание листа `transports.boxes`.\n\nСписок отсеков транспорта, которые могут вмещать груз.\nТаблица обязательна, если в расчете есть заказы с заявками типов `PICKUP` и `DROP`.\nВ описании отсеков обязательны те поля, которые описывают грузы.\n\n| Название | Описание | Примечание |\n|-----------------------------------------------|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **key** | Ключ отсека | Уникальный идентификатор, используется для идентификации размещения грузов по отсекам. |\n| capacity.mass | Масса, кг | Ограничение по массе, которое может единовременно находиться в отсеке |\n| capacity.volume | объём, м3 | Ограничение по объёму, которое может единовременно находиться в отсеке |\n| capacity.capacity_a | Дополнительный параметр вместимости (A) | Для измерения грузов и отсеков в альтернативных единицах измерения. Например, для учета грузов в штуках (у груза данный параметр равен единице, у отсека - максимальному количеству вмещаемых грузов) |\n| capacity.capacity_b | Дополнительный параметр вместимости (B) | Для измерения грузов и отсеков в альтернативных единицах измерения. |\n| capacity.capacity_c | Дополнительный параметр вместимости (C) | Для измерения грузов и отсеков в альтернативных единицах измерения. |\n| compatibilities
.width | Ширина в метрах | |\n| compatibilities
.height | Высота в метрах | |\n| compatibilities
.length | Длина в метрах | |\n| compatibilities
.box_features | Список свойств отсека | По оценивается возможность перевозки груза в данном отсеке |\n| limits
.max_one_cargo_capacity.mass | Масса в килограммах | Ограничение по полям `capacity` для одного груза |\n| limits
.max_one_cargo_capacity.volume | объём в кубических метрах | Ограничение по полям `capacity` для одного груза |\n| limits
.max_one_cargo_capacity.capacity_a | Дополнительный параметр вместимости (A) | Ограничение по полям `capacity` для одного груза |\n| limits
.max_one_cargo_capacity.capacity_b | Дополнительный параметр вместимости (B) | Ограничение по полям `capacity` для одного груза |\n| limits
.max_one_cargo_capacity.capacity_c | Дополнительный параметр вместимости (C) | Ограничение по полям `capacity` для одного груза |\n\nОписываемый объект:\n\n\n## Заказы\n\nНазвание листа `orders`.\n\nСписок заказов.\n\n| Название | Описание | Примечание |\n|----------------------------------------------------|---------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|\n| **key** | Ключ заказа | Повторяющийся ключ заказа означает заявки одного заказа |\n| **cargos.key** | Список грузов | Может содержать один груз для `DROP`, список для `PICKUP`, пустой для `WORK`. |\n| **demands.key** | Ключ заявки, уникальный идентификатор | |\n| demands.demand_type | Тип заявки | Загрузка - `PICKUP`, выгрузка - `DROP`, работа на локации - `WORK`. |\n| demands.target_cargos | Список ключей грузов | Для `PICKUP`, один ключ груза для `DROP`, пустой ключ для `WORK` |\n| demands.precedence_in_trip | Приоритет внутри рейса | 0 - приоритет не учитывается. По умолчанию: `0`. |\n| demands.precedence_in_order | Приоритет внутри заказа | 0 - приоритет не учитывается. По умолчанию: `0`. |\n| demands
.possible_events.key | Ключ события, уникальный идентификатор | Описание объекта временного окна и локаций, в котором возможно выполнение заявки |\n| demands
.possible_events.location_key | Ключ локации, в которой возможно данное событие | |\n| demands
.possible_events.duration | Время выполнения события | |\n| demands
.possible_events.reward | Вознаграждение за выполнение данного события | |\n| demands
.possible_events.hard_time_window.from | Начало жесткого временного окна | |\n| demands
.possible_events.hard_time_window.to | Конец жесткого временного окна | |\n| demands
.possible_events.soft_time_window.from | Начало мягкого временного окна | |\n| demands
.possible_events.soft_time_window.to | Конец мягкого временного окна | |\n| demands
.attributes | Атрибуты. Используются для указания служебной информации | Эти данные не учитываются в планировании. |\n| compatibilities
.order_features | Список свойств заказа | |\n| compatibilities
.order_restrictions | Список требований к заказу, выполняемому в этом же рейсе | |\n| compatibilities
.performer_restrictions | Список необходимых требований к исполнителю | Используется для проверки совместимости исполнителя и заказа (работы). |\n| compatibilities
.performer_blacklist | Список требований, наличие которых у исполнителя не допустимо | Используется для проверки совместимости исполнителя и заказа (работы). Данный список не должен пересекаться с `performer_restrictions` |\n| attributes | Атрибуты, используются для указания служебной информации | Эти данные не учитываются в планировании. |\n\nОписываемый объект:\n\n\n## Грузы\n\nНазвание листа `orders.cargos`.\n\nСписок грузов. Может содержать один груз для `DROP`, список для `PICKUP`, пустой для `WORK`.\nТаблица не обязательна, если все заявки имеют тип `WORK`.\n\n| Название | Описание | Примечание |\n|-----------------------------------------|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **key** | Ключ груза, уникальный идентификатор | |\n| capacity.mass | Масса в килограммах | |\n| capacity.volume | объём в кубических метрах | |\n| capacity.capacity_a | Дополнительный параметр вместимости (A) | Для измерения грузов и отсеков в альтернативных единицах измерения. Например, для учета грузов в штуках (у груза данный параметр равен единице, у отсека - максимальному количеству вмещаемых грузов). |\n| capacity.capacity_b | Дополнительный параметр вместимости (B) | |\n| capacity.capacity_c | Дополнительный параметр вместимости (C) | |\n| compatibilities
.width | Ширина в метрах | Используется для проверки вместимости в отсек транспорта по ширине. |\n| compatibilities
.height | Высота в метрах | Используется для проверки вместимости в отсек транспорта по высоте |\n| compatibilities
.length | Длина в метрах | Используется для проверки вместимости в отсек транспорта по длине |\n| compatibilities
.rotation | Список способностей объекта вращаться | Шаг вращения 90 градусов. Если список пустой - объект вращать запрещено. Доступные значения: `ALL`, `YAW`, `PITCH`, `ROLL` |\n| compatibilities
.box_restrictions | Список требования к отсеку транспорта | |\n| compatibilities
.cargo_features | Список свойств груза | Используется для проверки совместимости груза с другими грузами. Несовместимые грузы не могу находится одновременно в одном отсеке транспорта |\n| compatibilities
.cargo_restrictions | Список необходимых требований к грузу | Используется для проверки совместимости груза с другими грузами. Несовместимые грузы не могу находится одновременно в одном отсеке транспорта |\n\nОписываемый объект:\n\n\n## Назначения\n\nНазвание листа `hardlinks`.\n\nСписок назначений.\n\nОписываемый объект:\n\n\n## Рейсы\n\nНазвание листа `trips`.\n\nСписок рейсов.\n\nОписываемый объект:\n\n\n## Факты\n\nНазвание листа `facts`.\n\nСписок фактов.\n\nОписываемый объект:\n\n\n## Настройки планирования\n\nНазвание листа `plan_settings`.\n\nНастройки планирования.\n\nОписываемый объект:\n\n\n## Настройки актуализации\n\nНазвание листа `actualize_settings`.\n\nНастройки актуализации.\n\nОписываемый объект:\n\n\n## Настройки перепланирования\n\nНазвание листа `replan_settings`.\n\nНастройки перепланирования.\n\nОписываемый объект:\n\n\n## Общая статистика\n\nНазвание листа `total_statistics`.\n\nОбщая статистика.\n\nОписываемый объект:\n"
},
{
"parentId": "__WORKSPACE_ID__",
"name": "Convert",
"environment": {},
"_id": "fld___WORKSPACE_ID__6b9fd614",
"_type": "request_group",
"description": "Конвертация данных."
},
{
"parentId": "__WORKSPACE_ID__",
"name": "System",
"environment": {},
"_id": "fld___WORKSPACE_ID__7379b220",
"_type": "request_group",
"description": "Системные функции.\nВспомогательный функционал, общий для всех сервисов."
},
{
"parentId": "fld___WORKSPACE_ID__4da47260",
"name": "Планирование (ASYNC)",
"url": "{{ base_url }}/universal/plan/calculation-async",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__5dc775b3",
"method": "POST",
"description": "Запуск планирования рейсов - после загрузки и проверки данных возвращается идентификатор расчета `process_code`.\n\nС помощью `process_code` можно узнать состояние расчета и получить результат,\na также отменить расчет и удалить временные данные (иначе они автоматически удалятся по ttl, указанному в настройках расчета)."
},
{
"parentId": "fld___WORKSPACE_ID__4da47260",
"name": "Планирование (SYNC)",
"url": "{{ base_url }}/universal/plan/calculation",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__da58d058",
"method": "POST",
"description": "Синхронный метод для создания рейсов.\n\nДанный метод рекомендуется только для тестового использования и ручного запуска расчетов на небольшом объёме данных.\n\nДля боевой среды рекомендуется использовать асинхронный метод."
},
{
"parentId": "fld___WORKSPACE_ID__4da47260",
"name": "Отмена расчета",
"url": "{{ base_url }}/universal/plan/calculation-async/{{ process_code }}",
"body": {},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__2387a7f5",
"method": "DELETE",
"description": "Отмена процесса планирования по идентификатору расчета."
},
{
"parentId": "fld___WORKSPACE_ID__4da47260",
"name": "Состояние расчета",
"url": "{{ base_url }}/universal/plan/state/{{ process_code }}",
"body": {},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__232c9e63",
"method": "GET",
"description": "Получение состояния расчета по идентификатору расчета."
},
{
"parentId": "fld___WORKSPACE_ID__4da47260",
"name": "Получение результата",
"url": "{{ base_url }}/universal/plan/result/{{ process_code }}",
"body": {},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__8150bd15",
"method": "GET",
"description": "Получение результата планирования по идентификатору расчета."
},
{
"parentId": "fld___WORKSPACE_ID__4da47260",
"name": "Удаление результата",
"url": "{{ base_url }}/universal/plan/result/{{ process_code }}",
"body": {},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__d36a4c06",
"method": "DELETE",
"description": "Удаление результата по идентификатору расчета."
},
{
"parentId": "fld___WORKSPACE_ID__4da47260",
"name": "Валидация данных",
"url": "{{ base_url }}/universal/plan/validation",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__f43a04a0",
"method": "POST",
"description": "Проверка данных для планирования перед использованием."
},
{
"parentId": "fld___WORKSPACE_ID__4da47260",
"name": "Очистка данных",
"url": "{{ base_url }}/universal/plan/refine",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [
{
"name": "remove_locations",
"value": "True",
"disabled": true
}
],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__199a8c7c",
"method": "POST",
"description": "Очистка данных для планирования перед расчетом - из исходного датасета удаляются сущности, которые не могут участвовать в планировании:\n * Локации, на которые никто не ссылается (в зависимости от флага `remove_locations`)\n * Заказы, которые не может выполнить ни один исполнитель\n * Исполнители и транспорт, которые не могут выполнить ни один заказ"
},
{
"parentId": "fld___WORKSPACE_ID__4da47260",
"name": "Расчет статистики по рейсам",
"url": "{{ base_url }}/universal/plan/statistics",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__72cc15cc",
"method": "POST",
"description": "Расчет статистики по существующим рейсам"
},
{
"parentId": "fld___WORKSPACE_ID__9726d866",
"name": "Перепланирование (ASYNC)",
"url": "{{ base_url }}/universal/replan/calculation-async",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__7dc5601e",
"method": "POST",
"description": "Запуск перепланирования рейсов - изменение существующих и создание новых рейсов на основе произошедших фактов и данных о заказах, исполнителях и транспорте.\n \nПосле загрузки и проверки данных возвращается идентификатор расчета `process_code`.\n\nС помощью `process_code` можно узнать состояние расчета и получить результат,\na также отменить расчет и удалить временные данные (иначе они автоматически удалятся по ttl, указанному в настройках расчета).\n\nЗадачу на перепланирование можно трансформировать в задачу на планирование с помощью переработки данных."
},
{
"parentId": "fld___WORKSPACE_ID__9726d866",
"name": "Перепланирование (SYNC)",
"url": "{{ base_url }}/universal/replan/calculation",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__c4b666f6",
"method": "POST",
"description": "Синхронный метод для перепланирования существующих рейсов.\n\nДанный метод рекомендуется только для тестового использования и ручного запуска расчетов на небольшом объёме данных.\n\nДля боевой среды рекомендуется использовать асинхронный метод."
},
{
"parentId": "fld___WORKSPACE_ID__9726d866",
"name": "Отмена расчета",
"url": "{{ base_url }}/universal/replan/calculation-async/{{ process_code }}",
"body": {},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__0770db7e",
"method": "DELETE",
"description": "Отмена процесса планирования по идентификатору расчета."
},
{
"parentId": "fld___WORKSPACE_ID__9726d866",
"name": "Состояние расчета",
"url": "{{ base_url }}/universal/replan/state/{{ process_code }}",
"body": {},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__d6a9a2e2",
"method": "GET",
"description": "Получение состояния расчета по идентификатору расчета."
},
{
"parentId": "fld___WORKSPACE_ID__9726d866",
"name": "Получение результата",
"url": "{{ base_url }}/universal/replan/result/{{ process_code }}",
"body": {},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__bcc6e883",
"method": "GET",
"description": "Получение результата перепланирования по идентификатору расчета."
},
{
"parentId": "fld___WORKSPACE_ID__9726d866",
"name": "Удаление результата",
"url": "{{ base_url }}/universal/replan/result/{{ process_code }}",
"body": {},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__3f33a1bc",
"method": "DELETE",
"description": "Удаление результата перепланирования по идентификатору расчета."
},
{
"parentId": "fld___WORKSPACE_ID__9726d866",
"name": "Валидация данных",
"url": "{{ base_url }}/universal/replan/validation",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__06b33ad6",
"method": "POST",
"description": "Проверка данных для перепланирования перед использованием."
},
{
"parentId": "fld___WORKSPACE_ID__9726d866",
"name": "Очистка данных",
"url": "{{ base_url }}/universal/replan/refine",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [
{
"name": "remove_locations",
"value": "True",
"disabled": true
}
],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__8248fd8a",
"method": "POST",
"description": "Очистка данных для перепланирования перед расчетом:\n * Если на одну сущность ссылается несколько фактов - учитывается только самый поздний по полю time, если время совпадает - учитывается случайный из них.\n * Удаляются все факты, которые произошли позже, чем `actualize_settings.current_time`.\n * Если указан `plan_new_orders: false` - из исходной задачи удаляются все заказы, которых нет в указанных рейсах.\n * Если указан `create_new_trips: false` - из исходной задачи удаляются все исполнители и транспорт, которых нет в указанных рейсах, также удаляются незапланированные смены исполнителей и транспорта, которые есть в указанных рейсах.\n * После производится очистка данных для планирования.\n \nВ результате возвращается задача для планирования."
},
{
"parentId": "fld___WORKSPACE_ID__6b9fd614",
"name": "JSON >> XLSX",
"url": "{{ base_url }}/universal/convert/json-to-xlsx",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [
{
"name": "timezone",
"value": "3",
"disabled": true
}
],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__00e8f70f",
"method": "POST",
"description": "Используется для конвертации данных в формат VRt.Universal XLSX."
},
{
"parentId": "fld___WORKSPACE_ID__6b9fd614",
"name": "XLSX >> JSON",
"url": "{{ base_url }}/universal/convert/xlsx-to-json",
"body": {
"mimeType": "application/octet-stream",
"text": ""
},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__9655f0e6",
"method": "POST",
"description": "Используется для конвертации данных из формата VRt.Universal XLSX в формат VRt.Universal JSON."
},
{
"parentId": "fld___WORKSPACE_ID__6b9fd614",
"name": "JSON >> THRIFT",
"url": "{{ base_url }}/universal/convert/json-to-thrift",
"body": {
"mimeType": "application/json",
"text": ""
},
"parameters": [],
"headers": [],
"authentication": {
"type": "bearer",
"token": "{{bearerToken}}",
"prefix": ""
},
"_type": "request",
"_id": "req___WORKSPACE_ID__0581eb1f",
"method": "POST",
"description": "Используется для конвертации входных данных в формат THRIFT."
},
{
"parentId": "fld___WORKSPACE_ID__7379b220",
"name": "Проверка доступности",
"url": "{{ base_url }}/universal/system/check",
"body": {},
"parameters": [],
"headers": [],
"authentication": {},
"_type": "request",
"_id": "req___WORKSPACE_ID__55407a58",
"method": "GET",
"description": "Проверка доступности сервиса."
},
{
"parentId": "fld___WORKSPACE_ID__7379b220",
"name": "Получение версии сервиса",
"url": "{{ base_url }}/universal/system/version",
"body": {},
"parameters": [],
"headers": [],
"authentication": {},
"_type": "request",
"_id": "req___WORKSPACE_ID__7fbac208",
"method": "GET",
"description": "Получение версии сервиса."
},
{
"parentId": "fld___WORKSPACE_ID__7379b220",
"name": "Получение документации",
"url": "{{ base_url }}/universal/file/{{ filename }}",
"body": {},
"parameters": [],
"headers": [],
"authentication": {},
"_type": "request",
"_id": "req___WORKSPACE_ID__a342d488",
"method": "GET",
"description": "Получение файла с документацией на этот сервис."
}
]
}