Завершить исполнение заказа или отказаться от него
Стенд по умолчанию — test. Сценарий изменяет данные. Порядок работы для агента.
Нужны роль исполнителя и назначенный выбранной организации заказ или рейс в исполнении. Для завершения заказа проверьте право exec_complete_order, для отзыва — exec_revoke_order. Перед действием на рабочем стенде сверьте идентификатор и получите подтверждение пользователя.
Если действие относится к заказу, вызовите POST /api/orders/v0/transferOrder/getFlatForExecutor с идентификатором в data.exactOrderIds. Проверьте, что в data.orders есть нужный заказ со статусом onExecute.
Завершить исполнение заказа
После доставки вызовите POST /api/orders/onExecute/completeByExecutor/v0 с идентификатором заказа в data.id.
Отозвать исполнение
Если перевозку выполнить невозможно, получите код причины из GET /api/dicts/order/v0/reasonOrderRevokeExec и согласуйте его с пользователем. Вызовите POST /api/orders/onExecute/revokeByExecutor/v0 с идентификатором в data.id и обязательным кодом в data.cancelReasonKey. Комментарий можно передать в data.cancelComment. Если причина не определена, остановитесь.
data.cancelActiveTasks управляет отменой активных задач АРУ. Задачи рейса могут быть отозваны отдельно, если первая погрузка ещё не завершена, даже при cancelActiveTasks: false. Перед отзывом согласуйте с пользователем оба последствия.
После завершения или отзыва перечитайте заказ. Сообщите HTTP-статус операции и текущее состояние заказа, если карточка ещё доступна.
Завершить рейс
Получите рейс через POST /api/flights/v1/listForExecutor с идентификатором в data.ids. Сверьте executerId с выбранной организацией и проверьте право exec_flight_complete.
Завершение рейса проставляет незавершённым активным задачам окончание выгрузки и выезд, переводя их в departureUnloading. Проверьте data.flights[].tasks и подтвердите с пользователем фактическую доставку по всем активным задачам, которые ещё не завершены. Если список задач неполный или доставку нельзя подтвердить, остановитесь.
После подтверждения вызовите POST /api/flights/complete/v0 с тем же идентификатором в data.flightId. Перечитайте рейс, проверьте status: complete и состояние затронутых задач.
Ошибки
- При
400 Bad Requestпроверьте текущий статус и обязательные поля. - При
403 Forbiddenпроверьте назначенного исполнителя и права профиля. - При
404 Not Foundсверьте идентификатор заказа или рейса.