Руководство пользователя для версии 7.9
Предыдущие версии: 7.8 | 7.7
×

Создание задания

Этот API предназначен для создания заданий в системе для договоров с подключённым модулем PTM.

Базовый путь API 

/backend/public/api/task

Адрес запроса

Для выполнения запроса используйте формат адреса:
https://<server_address>/backend/public/api/task

Доступ к API

Для доступа к API используется HTTP Basic аутентификация. Логин и пароль должны быть в формате:
логин_из_PILOT:пароль_из_PILOT

Пример запроса API

https://demo:demo@tasks.pilot-gps.com/backend/public/api/task/create_universal

Формат ответа API

Ответ API стандартизирован и имеет такой формат:
{
    "success": true,  // TRUE - успешный запрос, FALSE - ошибка
    "msg": "OK",  // Сообщение об ошибке, если она есть
    "httpCode": 200,  // Код ошибки
    "data": [],  // Данные ответа, если они есть
    "et": 0,  // Время выполнения запроса
    "exceptionMsg": "Exception"  // Сообщение об исключении
}
Статусы и коды ошибок:
  • 200 — Запрос выполнен успешно
  • 400 — Отсутствуют обязательные параметры
  • 401 — Ошибка авторизации: неверные логин или пароль
  • 404 — Не найден маршрут API
  • 500 — Ошибка на сервере
     

Как создать задание

Метод запроса: POST
Для создания задания с шаблоном Universal нужно передать параметры. Шаблон Universal создаётся автоматически в системе, и дополнительные шаблоны должны быть предварительно настроены в интерфейсе PTM.

Параметры задания для шаблона Universal

Для задания с шаблоном Universal используется следующий набор параметров:
1. external_id: Внешний идентификатор задания (строка, по умолчанию NULL)
2. vehicle_plate: Номер транспортного средства (по умолчанию NULL). Если номер не существует в системе, он будет создан как наёмный транспорт
3. driver_name: ФИО водителя (по умолчанию NULL). Если не указано, используется значение из vehicle_plate. Если водитель не существует в системе, он будет создан как наёмный водитель
4. type_name: Тип задания (по умолчанию Delivery). Если такого типа нет, он будет создан
5. template_name: Название шаблона задания (по умолчанию Universal). Если шаблон отсутствует, он будет создан
6. time_zone: Временная зона, смещение от UTC (число, время в минутах от UTC, по умолчанию NULL)
7. time_zone_name: Название временной зоны (строка, по умолчанию NULL)
8. c_begin_time: Плановое время начала задания (число — метка времени в секундах, по умолчанию текущее время)
9. c_return_time: Плановое время завершения задания (число, по умолчанию NULL)
10. route_name: Название маршрута (строка, по умолчанию NULL)
11. cargo: Название груза (строка, по умолчанию NULL)
12. temp_min: Минимальная температура (число, по умолчанию 2°C)
13. temp_max: Максимальная температура (число, по умолчанию 8°C)
14. description: Описание задания (строка, по умолчанию NULL)
15. addresses_list (обязательно): Список адресов или точек маршрута (строки с адресами или координатами)

Параметры, связанные с адресом маршрута

Адрес для каждой точки маршрута может быть дополнен различными параметрами с суффиксами, которые описывают характеристики маршрута и географические данные.
1. addresses_list: Список адресов или точек маршрута (строки с адресами или координатами).
2. addresses_list_lat: Массив широт точек маршрута. Если указана, будет использована для каждого адреса
3. addresses_list_lng: Массив долгот точек маршрута. Массив чисел, обозначающих широту точек маршрута
4. addresses_list_date_point: Массив меток времени (секунды), указывающих плановое время прибытия
5. addresses_list_date_point_to: Массив меток времени (секунды), указывающих плановое время убытия. Рассчитывается автоматически, если не указано
6. addresses_list_time_point: Массив времени загрузки/разгрузки на точке маршрута в минутах
7. addresses_list_redirect: Признак перенаправления текущего адреса в следующий. Указывает, что адрес перенаправляется в следующий по маршруту.
8. addresses_list_geofence_id: Идентификаторы геозон для каждой точки маршрута
9. addresses_list_warehouse: Названия складов или объектов для каждой точки маршрута
10. addresses_list_ticket: Массив уникальных идентификаторов заказов для каждой точки маршрута
11. addresses_list_phones: Контактные телефоны для каждой точки маршрута
12. addresses_list_schedule: Рабочее расписание для каждой точки маршрута
13. addresses_list_vehicle_volume: Объём груза в транспортном средстве
14. addresses_list_trailer_volume: Объём груза в прицепе
15. addresses_list_action: Описание действий для выполнения на каждой точке маршрута
16. addresses_list_agent_id: Идентификатор объекта из системы PILOT, используемый для мусорных контейнеров

Пример запроса

fetch("https://tasks.pilot-gps.com/backend/public/api/task/create_universal", {
    "headers": {
        "Authorization": "Basic ZGVtbzpkZW1v", // base64 кодирование "demo:demo"
        "Content-Type": "application/json"
    },
    "method": "POST",
    "body": JSON.stringify({
        "external_id": "T-5677786754",
        "vehicle_plate": "PT 125 AA 66",
        "driver_name": null,
        "type_name": "Delivery",
        "template_name": "Universal",
        "time_zone": -180,
        "time_zone_name": "Europe/Moscow",
        "c_begin_time": 1723233360,
        "c_return_time": 1723238700,
        "route_name": "My route",
        "cargo": "Milk",
        "temp_min": 2,
        "temp_max": 6,
        "description": "Test",
        "addresses_list": [
            "215, улица Народного Ополчения, Ростов-на-Дону",
            "47.227196,39.705228",
            "Client 2"
        ],
        "addresses_list_lat": [
            47.234256,
            47.227196,
            47.216077
        ],
        "addresses_list_lng": [
            39.706467,
            39.705228,
            39.706928
        ],
        "addresses_list_date_point": [
            1723233360,
            1723234800,
            1723237800
        ],
        "addresses_list_time_point": [
            10,
            20,
            15
        ],
        "addresses_list_rad_geo": [
            50,
            40,
            30
        ]
    })
});

Пример ответа

{
    "success": true,
    "msg": "OK",
    "httpCode": 200,
    "data": {
        "id": 12563
    },
    "et": 0.5612
}