Создать рейс и назначить порядок выполнения задач
Стенд по умолчанию — test. Сценарий изменяет данные. Порядок работы для агента.
Соберите задачи по заказам в один рейс. Выберите организацию с ролью исполнителя и заказы в статусе onExecute. Перед записью на рабочем стенде получите подтверждение пользователя.
Найти задачи заказов
Вызовите POST /api/orders/v0/transferOrder/getFlatForExecutor с идентификаторами заказов в data.exactOrderIds. В data.orders[].shipments выберите нужные задачи. Используйте transferOrderTaskID как идентификатор задачи заказа. Если у задачи уже есть flightTaskId, проверьте её принадлежность рейсу перед добавлением.
Создать пустой рейс
Вызовите POST /api/flights/create/v1. Передайте идентификатор организации в data.executerId и название в data.flightName. Сохраните data.id из ответа.
Добавить задачи
Вызовите POST /api/flights/tasks/addBulk/v1. Для каждой задачи передайте идентификатор рейса в data.tasks[].flightId и transferOrderTaskID из карточки заказа в data.tasks[].taskId. В externalId передайте строковый идентификатор задачи в вашей системе. Поле не даёт гарантии защиты от повторного добавления. Задайте позиции сразу в loadingOrder и unloadingOrder. Сохраните возвращённые data.ids. Для сопоставления с исходными задачами перечитайте рейс.
Задать порядок
Если нужно изменить порядок, вызовите POST /api/flights/order/setBulk/v1. Используйте идентификаторы задач рейса в data.flightOrders[].flightTaskId. Для каждой записи задайте order и вид операции в orderType. Для погрузки это loadingOrder, для выгрузки — unloadingOrder. Проверьте data.success в ответе.
Проверить рейс
Вызовите POST /api/flights/v1/listForExecutor с идентификатором рейса в data.ids. Найдите нужный объект в data.flights и проверьте executerId.
| Что проверить | Поле внутри data.flights[].tasks[] |
|---|---|
| Какой задаче заказа соответствует запись | transferOrderTaskID |
| Какой ID передавать в метод порядка | flightTaskId |
| Какие позиции сохранены | flightInfo.loadingOrder, flightInfo.unloadingOrder |
Если запись завершилась тайм-аутом
- Если неизвестен ID нового рейса, остановитесь и передайте пользователю сверку. Совпадения организации и названия недостаточно, чтобы однозначно связать рейс с вызовом создания.
- Если ID рейса известен, перечитайте его. Сопоставьте задачи по
transferOrderTaskIDи проверьте порядок. Если подтверждена только часть изменений, сообщите, какие задачи или позиции остались непроверенными. Сразу повторять запись нельзя.
При 403 Forbidden проверьте, назначена ли ваша организация исполнителем заказов и доступен ли ей рейс.
Для назначения транспорта и водителя используйте Назначить на рейс водителя, тягач и прицеп.