Создание задания
Этот 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
}
|