1

Импорт заявок в Wialon Logistics с использованием API

Тема: Импорт заявок в Wialon Logistics с использованием API

Возникла проблема после импорта заявок методом /api/route.
В результате получили маршруты в logistics в виде последовательности точек без проложенного маршрута, точки вообще никак не соединены на карте, и без правильного времени посещения точек.
Помогите исправить эту ситуацию.

Изначальная постановка задачи такова:
Есть маршрут (список заявок в 1с для конкретной машины, в нем имеем имя заявки, координаты, допустимое временное
окно), надо сохранить этот маршрут в logistics. Вручную это понятно как сделать в интерфейсе, создать эти заявки, спланировать их на нужный объект, сохранить маршрут.  В итоге получаем в logistics понятный итог: готовый рассчитанный маршрут, проложенный на карте по дорогам с рассчитанными временами прибытия и расстояниями.
Вот в точности тоже самое сделать с нуля какими правильными запросами по API?

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

POST http://logistics.wialon.com/api/route HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: PostmanRuntime/7.15.2
Accept: */*
Cache-Control: no-cache
Postman-Token: 8f56f138-a623-4cc0-b69d-f800369e63f8
Host: logistics.wialon.com
Accept-Encoding: gzip, deflate
Content-Length: 1237
Connection: keep-alive

resourceId=19745073&token=_____________________&unitId=19745196&data=[
{
"n": "Т0000070629",
"rp": "000022225",
"tf": 1567479600,
"tt": 1567508400,
"r": 100,
"y": 55.958175,
"x": 37.445671,
"tz": 3,
"p": {
"n": "201 Фулиди О.И.  \"ТЦ \"Набережных\"  ОТГРУЗКА С 01.07.",
"a": "МО, г. Химки, кв-л Клязьма, Набережный  проезд, д. 27",
"w": 6.15,
"r": {
"vt": 1567479600
}
}
},
{
"n": "Т0000070939",
"rp": "000022225",
"tf": 1567479600,
"tt": 1567508400,
"r": 100,
"y": 55.958175,
"x": 37.445671,
"tz": 3,
"p": {
"n": "201 Фулиди О.И.  \"ТЦ \"Набережных\"  ОТГРУЗКА С 01.07.",
"a": "МО, г. Химки, кв-л Клязьма, Набережный  проезд, д. 27",
"w": 47,
"r": {
"vt": 1567479600
}
}
},
{
"n": "Т0000070628",
"rp": "000022225",
"tf": 1567479600,
"tt": 1567508400,
"r": 100,
"y": 55.900244,
"x": 37.453163,
"tz": 3,
"p": {
"n": "203  Фулиди О.И.  Химки Мира ОТГРУЗКА С 01.07.",
"a": "МО, г. Химки, пр-т Мира, д. 13, кор. 7",
"w": 7.556,
"r": {
"vt": 1567479600
}
}
}
]

ООО "Е-хаус"
www.e-hs.ru
Московская область
2

Импорт заявок в Wialon Logistics с использованием API

Re: Импорт заявок в Wialon Logistics с использованием API

Здравствуйте, ehouse.
Если вы используете api/route, то должны передавать трек (проложенный на карте по дорогам с рассчитанными временами прибытия и расстояниями.), это храниться в свойстве rp. Так же и время прибытия стоит формировать с вашей стороны. Данный запрос  api/route не оптимизирует и не упорядочивает, а всего лишь сохраняет маршрут.

Здесь более подробно про свойства https://sdk.wialon.com/wiki/ru/sidebar/ … der/update

Команда LABS
3

Импорт заявок в Wialon Logistics с использованием API

Re: Импорт заявок в Wialon Logistics с использованием API

Если для нашей цели используем https://sdk.wialon.com/wiki/ru/sidebar/ … er/update, то после создания заявок с callMode:«assign» появятся маршруты?

ООО "Е-хаус"
www.e-hs.ru
Московская область
4

Импорт заявок в Wialon Logistics с использованием API

(06/09/2019 10:31:05 отредактировано sets)

Re: Импорт заявок в Wialon Logistics с использованием API

Для создания маршрута стоит использовать https://sdk.wialon.com/wiki/ru/sidebar/ … te_update, предварительно заполнив(трек, время прибытия, юнит и тд с callMode: 'create'

Опишу коротко, как сделано в логистике:
- сначала оптимизируем маршрут (порядок прохождения, там же получаем трек и время прибытия)
- записываем полученные данные в заявки
- сохраняем маршрут

callMode:«assign» - устаревший способ создания, лучше его не использовать

Пример создания маршрута

https://hst-api.wialon.com/wialon/ajax.html?svc=order/route_update&sid=<SID>&params={
   "itemId":<RES_ID>,
   "orders":[
      {
         "uid":0,
         "id":0,
         "n":"3 - киев",
         "p":{
            "n":"",
            "p":"",
            "p2":"",
            "e":"",
            "a":"вулиця Миколи Грінченка, Київ, Украина, 02000",
            "v":0,
            "w":0,
            "c":0,
            "ut":600,
            "t":"",
            "d":"",
            "uic":"",
            "cid":"",
            "r":{
               "vt":1567796400,
               "ndt":1200,
               "id":<ROUTEID>,
               "i":0,
               "m":0,
               "t":0
            },
            "aff":"",
            "z":"",
            "ntf":0,
            "cm":"",
            "pr":0,
            "tags":[

            ],
            "rep":true
         },
         "f":0,
         "tf":1567796400,
         "tt":1567825200,
         "r":100,
         "y":50.4185829163,
         "x":30.5141830444,
         "u":<UNIT_ID>,
         "s":0,
         "sf":0,
         "trt":3600,
         "st":1549866760,
         "cnm":0,
         "rp":"",
         "ej":{

         },
         "callMode":"create"
      },
      {
         "uid":0,
         "id":0,
         "n":"4 - киев",
         "p":{
            "n":"",
            "p":"",
            "p2":"",
            "e":"",
            "a":"вулиця Сортувальна, Київ, Украина, 02000",
            "v":0,
            "w":0,
            "c":0,
            "ut":600,
            "t":"",
            "d":"",
            "uic":"",
            "cid":"",
            "r":{
               "vt":1567797660,
               "ndt":1200,
               "id":<ROUTEID>,
               "i":1,
               "m":9111,
               "t":1260
            },
            "aff":"",
            "z":"",
            "ntf":0,
            "cm":"",
            "pr":0,
            "tags":[

            ],
            "rep":true
         },
         "f":0,
         "tf":1567753201,
         "tt":1567839540,
         "r":100,
         "y":50.4203300476,
         "x":30.606880188,
         "u":<UNIT_ID>,
         "s":0,
         "sf":0,
         "trt":3600,
         "st":1549866768,
         "cnm":0,
         "rp":"okvrHsyfyDxAwABMOc@??HG??NONU??Yu@CO??aAkD??Y_AOs@??]PQN??mAp@}BnAI@??KFsCbByCfBSF??Ec@mBiIYS??e@qB??c@wBo@_DKa@??Ie@cAoF??o@sD??IYuBuK??i@{B??W_AuAuEs@aC??i@cB??_@iAi@iAk@{@OU??GQ??u@mA??u@cA??m@cA??o@_AEK??_@o@??MMQa@??Mo@Ki@CYEM??Iu@Aw@?{B@]??BsADg@Da@??BQDeA??RcAJq@XaA??Tw@Xo@hB_C??h@q@N[??KY}@}Be@gACG??yCsHOc@??K[???_@??Mw@y@kBu@cBcAgBc@s@KO??Sa@??sAgBQY??DS^w@r@aBT{@TgARs@??Du@By@CgAOgBKm@??Mi@??Kq@??Oo@Ia@Kq@aAkEKq@Cy@???w@?{@By@Tw@??Xa@b@_@??dAo@jGmEj@k@Xo@X{@TeAf@gE`@qG\\cG??d@}In@cF^}CLgA??TyA??JYXiA??h@G??|BsDDINUDS??Ha@LoA???e@??@c@Bq@RiB`@mC??bAmH??Nc@??r@sBNe@t@iB??|@}Bj@cBXe@XQ|@Mj@QNQ??RE??vGeBpEeAtDc@|AQnBMfCE??r@???nC^lHjA^DX?RQXWz@aAn@i@LOx@o@d@i@Ri@`@iAFqAGs@eAwGs@uE??ob@mmC??iC}OmCuN??cDeS??^_B~@yB",
         "ej":{

         },
         "callMode":"create"
      }
   ],
   "uid":<ROUTEID>,
   "callMode":"create",
   "exp":172800,
   "f":1,
   "n":<ROUTE_NAME>
}
Команда LABS
5

Импорт заявок в Wialon Logistics с использованием API

Re: Импорт заявок в Wialon Logistics с использованием API

Очень запутанно.
Я понял все это так:

1. Создать заявки с помощью callMode:«create» https://sdk.wialon.com/wiki/ru/sidebar/ … der/update
При этом указываем
"itemId":<long>,    /* id ресурса */
"n":<text>,        /* имя заявки */
"tf":<uint>,        /* начальное разрешенное время доставки */
"tt":<uint>,        /* последнее разрешенное время доставки  */
"u":<long>,        /* id объекта */

2. Оптимизировать выполнение заявок https://sdk.wialon.com/wiki/ru/sidebar/ … r/optimize

3. Записать полученные данные в заявки - это не понял каким запросом и что записывать.

4. Сохранить маршрут https://sdk.wialon.com/wiki/ru/sidebar/ … te_update,

Скажите, правильно ли понял, хотя бы последовательность для решения задачи?

ООО "Е-хаус"
www.e-hs.ru
Московская область
6

Импорт заявок в Wialon Logistics с использованием API

Re: Импорт заявок в Wialon Logistics с использованием API

Самая лучшая помощь была бы, если можете дать полностью пример от нуля до готового маршрута. Есть у вас такой пример?

ООО "Е-хаус"
www.e-hs.ru
Московская область
7

Импорт заявок в Wialon Logistics с использованием API

Re: Импорт заявок в Wialon Logistics с использованием API

ehouse

вот тут пример, там есть
-  оптимизация
- заполнение время прибытия, трэка
- сохранение маршрута

необходимо подставить SID, RES_ID, UNITS_ID
https://codesandbox.io/embed/relaxed-sunset-glf8d

Был рад помочь

Команда LABS
8

Импорт заявок в Wialon Logistics с использованием API

Re: Импорт заявок в Wialon Logistics с использованием API

Все получилось.
Осталась одна проблема.
Ошибка при передаче планового трека из оптимизированного маршрута в заявку.
POST-запрос с треками имеет длинную URL с параметрами и в виалон, похоже доходит обрезанная часть URL, и из-за этого сохранение треков в заявках не происходит.
Помогите, пожалуйста, разобраться.
Во вложении запрос и ответ

Опубликовать вложения

Иконка вложений Запрос дошедший.txt 4.01 Кб, файл был скачан 528 раз(а) 

Иконка вложений Запрос исходящий.txt 16 Кб, файл был скачан 532 раз(а) 

ООО "Е-хаус"
www.e-hs.ru
Московская область
9

Импорт заявок в Wialon Logistics с использованием API

Re: Импорт заявок в Wialon Logistics с использованием API

ehouse пишет:

Все получилось.
Осталась одна проблема.
Ошибка при передаче планового трека из оптимизированного маршрута в заявку.
POST-запрос с треками имеет длинную URL с параметрами и в виалон, похоже доходит обрезанная часть URL, и из-за этого сохранение треков в заявках не происходит.
Помогите, пожалуйста, разобраться.
Во вложении запрос и ответ

Это скорее все из за того, что отправляются параметры как GET запрос(в урл строку). Попробуйте пересмотреть вариант отправки параметров.

Вот ссылка про лимиты get запроса

Команда LABS