1

Правильная последовательность создания маршрута в Logistics по API

(edited by m.boyko 24/07/2017 11:06:26)

Topic: Правильная последовательность создания маршрута в Logistics по API

Подскажите пожалуйста, как мне от импорта заявок перейти к созданию на их базе маршрутов?
Сперва пробовал импорт маршрута как описано здесь: http://apps.wialon.com/files/logistics/ … es_en.pdf. Получалось, но точки маршрута соединены по прямой линии. Техподдержка посоветовала провести оптимизацию заявок и послала на форум.
Я отошел от попытки создания маршрутов через https://logistics.wialon.com/api/route и через svc=order/update создал и увидел заявки
в Logistics.
Последовательность дальнейших действий мне непонятна.
Судя по всему я должен:
1) оптимизировать созданные заявки, имея их идентификаторы https://sdk.wialon.com/wiki/ru/sidebar/ … /optimize,
2) а затем из заявок собрать маршрут https://sdk.wialon.com/wiki/ru/sidebar/ … te_update.
Но ничего не получается.
Очень прошу разработчиков (либо тех, у кого получилось) подтвердить правильность моих действий и показать образец реальных работающих запросов, которые оптимизируют заявки и создают из них маршруты!

26

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

n.koroid wrote:

Вместо "r":null добавил 

"r":{"vt":1527142384,"ndt":1200,"id":1527142392696,"i":0,"m":0,"t":0}

и стало выдавать ошибку
{"error":4, "reason":"ADD_INCOMPORTABLE_ORDER 0"}

vt - время посещения, должно отличаться

Команда LABS

Команда LABS
27

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

Никак не могу уйти от ошибки: {"error":4, "reason":"ADD_INCOMPORTABLE_ORDER 0"}

https://hst-api.wialon.com/wialon/ajax.html?svc=order/route_update&params={"itemId":РесурсИД,"orders":[{"uid":1,"id":1,"n":"Укрлогістика ТОВ","p":{"n":"Укрлогістика ТОВ","p":"","p2":"","e":"","a":"УЛ Київська обл., Києво-Святошинський р-н, с.Софіївська Борщагівка, вул.Чорновола, 46-А","v":0,"w":0,"c":0,"d":"","ut":0,"t":"","r":{"id":1527162955,"i":0,"m":0,"t":0,"vt":0,"ndt":0},"cid":"","uic":"","ntf":0,"pr":0,"tags":[]},"f":1,"tf":1526936400,"tt":1527022740,"r":100,"y":50.3893697351,"x":30.4022691131,"u":6085,"trt":0,"itemId":РесурсИД,"callMode":"update"}],"routeId":1527162955,"callMode":"create"}&sid=

Пытался сразу создавать маршруты с заявками, но перешел на создание заказов и на создание маршрутов. Что делаю не так?

28

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

vt - время посещения, должно отличаться

Пытался и vt ставить разные. Ошибка остается та же.

29

Правильная последовательность создания маршрута в Logistics по API

(edited by n.koroid 24/05/2018 16:41:23)

Re: Правильная последовательность создания маршрута в Logistics по API

Вот последний запрос vt в каждой заявке другое. Ошибка {"error":4, "reason":"ADD_INCOMPORTABLE_ORDER 0"}

/wialon/ajax.html?svc=order/route_update&params={"itemId":22,"orders":[{"uid":0,"id":0,"n":"Укрлогістика ТОВ","p":{"n":"Укрлогістика ТОВ","p":"","p2":"","e":"","a":"УЛ Київська обл., Києво-Святошинський р-н, с.Софіївська Борщагівка, вул.Чорновола, 46-А","v":0,"w":0,"c":0,"d":"","ut":0,"t":"","r":{"id":1527168681,"i":0,"m":0,"t":0,"vt":1527172281,"ndt":0},"cid":"","uic":"","ntf":0,"pr":0,"tags":[]},"f":1,"tf":1527168681,"tt":1527195599,"r":100,"y":50.3893697351,"x":30.4022691131,"u":6085,"trt":0,"itemId":22,"callMode":"create"},{"uid":0,"id":0,"n":"Укрлогістика ТОВ","p":{"n":"Укрлогістика ТОВ","p":"","p2":"","e":"","a":"УЛ смт. Глеваха, вул. Вокзальна, 4-В","v":0,"w":0,"c":0,"d":"","ut":0,"t":"","r":{"id":1527168681,"i":0,"m":0,"t":0,"vt":1527175881,"ndt":0},"cid":"","uic":"","ntf":0,"pr":0,"tags":[]},"f":1,"tf":1527168681,"tt":1527195599,"r":100,"y":50.253552,"x":30.301331,"u":6086,"trt":0,"itemId":22,"callMode":"create"},{"uid":0,"id":0,"n":"Билла","p":{"n":"Билла","p":"","p2":"","e":"","a":"Билла-125 м. Київ, вул. Будiвельникiв, 40","v":0,"w":0,"c":0,"d":"","ut":0,"t":"","r":{"id":1527168681,"i":0,"m":0,"t":0,"vt":1527179481,"ndt":0},"cid":"","uic":"","ntf":0,"pr":0,"tags":[]},"f":1,"tf":1527168681,"tt":1527195599,"r":100,"y":50.454659,"x":30.611221,"u":1733,"trt":0,"itemId":22,"callMode":"create"},{"uid":0,"id":0,"n":"Укрлогістика ТОВ","p":{"n":"Укрлогістика ТОВ","p":"","p2":"","e":"","a":"УЛ Київська обл., Києво-Святошинський р-н, с.Софіївська Борщагівка, вул.Чорновола, 46-А","v":0,"w":0,"c":0,"d":"","ut":0,"t":"","r":{"id":1527168681,"i":0,"m":0,"t":0,"vt":1527183081,"ndt":0},"cid":"","uic":"","ntf":0,"pr":0,"tags":[]},"f":1,"tf":1527168681,"tt":1527195599,"r":100,"y":50.3893697351,"x":30.4022691131,"u":6085,"trt":0,"itemId":22,"callMode":"create"}],"routeId":1527168681,"callMode":"create"}&sid=
30

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

Создать маршрут получилось. Делал запрос по примеру, который предоставил sets

31

Правильная последовательность создания маршрута в Logistics по API

(edited by n.koroid 29/05/2018 12:22:53)

Re: Правильная последовательность создания маршрута в Logistics по API

Добрый день. Хочу сделать оптимизацию уже созданного маршрута.
1. Делаю так:

wialon/ajax.html?svc=order/optimize&params={"itemId":РесурсИД,"orders":[{"y":50.3893697351,"x":30.40226911,"tf":1527242131,"n":"","tt":1527281999,"r":0,"p":{"ut":100,"w":0,"v":0}},{"y":50.253552,"x":30.301331,"tf":1527242131,"n":"","tt":1527281999,"r":0,"p":{"ut":100,"w":0,"v":0}},{"y":50.454659,"x":30.611221,"tf":1527242131,"n":"","tt":1527281999,"r":0,"p":{"ut":100,"w":0,"v":0}},{"y":50.3893697351,"x":30.4022691131,"tf":1527242131,"n":"","tt":1527281999,"r":0,"p":{"ut":100,"w":0,"v":0}}],"warehouses":[],"units":[17285599],"flags":419,"gis":{"addPoints":1,"provider":1,"speed":60}}&sid=

Ошибка: {"error":4, "reason":"SCHEDULE_ERROR 0"}
2. Пытался использовать параметр busyRoutes, выдает ошибку параметров. Как оптимизировать маршрут с указанием начальной и конечно точками.
3. Так же параметр orders, можно ли передавать по типу "orders":[1,2.3,4]. В массиве указаны id orders.
4. Можно ли оптимизировать orders, которые уже включены в маршрут?
5. Параметр "flags", что должно указываться? Брал из примеров выше. В самом описание указаны другие флаги и с ними выдает ошибку {"error":4,"reason":"WRONG_PARAMS"}

32

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

n.koroid wrote:

Добрый день. Хочу сделать оптимизацию уже созданного маршрута.
1. Делаю так:

wialon/ajax.html?svc=order/optimize&params={"itemId":РесурсИД,"orders":[{"y":50.3893697351,"x":30.40226911,"tf":1527242131,"n":"","tt":1527281999,"r":0,"p":{"ut":100,"w":0,"v":0}},{"y":50.253552,"x":30.301331,"tf":1527242131,"n":"","tt":1527281999,"r":0,"p":{"ut":100,"w":0,"v":0}},{"y":50.454659,"x":30.611221,"tf":1527242131,"n":"","tt":1527281999,"r":0,"p":{"ut":100,"w":0,"v":0}},{"y":50.3893697351,"x":30.4022691131,"tf":1527242131,"n":"","tt":1527281999,"r":0,"p":{"ut":100,"w":0,"v":0}}],"warehouses":[],"units":[17285599],"flags":419,"gis":{"addPoints":1,"provider":1,"speed":60}}&sid=

Ошибка: {"error":4, "reason":"SCHEDULE_ERROR 0"}
2. Пытался использовать параметр busyRoutes, выдает ошибку параметров. Как оптимизировать маршрут с указанием начальной и конечно точками.
3. Так же параметр orders, можно ли передавать по типу "orders":[1,2.3,4]. В массиве указаны id orders.
4. Можно ли оптимизировать orders, которые уже включены в маршрут?
5. Параметр "flags", что должно указываться? Брал из примеров выше. В самом описание указаны другие флаги и с ними выдает ошибку {"error":4,"reason":"WRONG_PARAMS"}

Добрый.
1. У вас в tt ( время до < текущего времени )
вот пример вашего json( заменил время ):

{"itemId":РесурсИД,"orders":[{"y":50.3893697351,"x":30.40226911,"tf":1527242131,"n":"","tt":1528026992,"r":0,"p":{"ut":100,"w":0,"v":0}},{"y":50.253552,"x":30.301331,"tf":1527242131,"n":"","tt":1528026992,"r":0,"p":{"ut":100,"w":0,"v":0}},{"y":50.454659,"x":30.611221,"tf":1527242131,"n":"","tt":1528026992,"r":0,"p":{"ut":100,"w":0,"v":0}},{"y":50.3893697351,"x":30.4022691131,"tf":1527242131,"n":"","tt":1528026992,"r":0,"p":{"ut":100,"w":0,"v":0}}],"warehouses":[],"units":[ЮнитИд],"flags":419,"gis":{"addPoints":1,"provider":1,"speed":60}}

Проверьте правильность ввода ЮнитИд

2. Оптимизация - это набор точек со временем и тд... Оптимизировать точки подав начальную и конечную нельзя, только если у вас маршрут не из 2 точек)

3. вот тут более подробно https://sdk.wialon.com/wiki/ru/sidebar/ … r/optimize
в двух словах, если у вас уже есть сохраненные заявки, то можно передать их Ид

4. Про флаги тоже в ссылке есть.

С уважением, team LABS

Команда LABS
33

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

Переделал запрос по формату передачи массив id заявок, начал отрабатывать, но результат 0.
Запрос:

wialon/ajax.html?svc=order/optimize&params={"itemId":РесурсИд,"orders":[13,14,15,16],"warehouses":[],"units":[17285599],"flags":419,"gis":{"addPoints":0,"provider":1,"speed":60}}&sid=

Ответ:

{"success":0,"17285599":{"orders":[{"ml":0,"tm":1527612468,"id":1,"p":""},{"ml":22408,"tm":1527613851,"id":0,"p":""},{"ml":22408,"tm":1527613851,"id":3,"p":""},{"ml":43021,"tm":1527615192,"id":2,"p":""}]}}

4. Про флаги тоже в ссылке есть.

Флаги есть и пробовал их ставить, только с ними не работает. Ссылку по оптимизации видел и работаю с ней.

При создании заявок передаю приоритеты, первой заявке ставлю 10, последней 1, а средним 2. Мне нужно чтобы первая и последняя не менялись, а средние оптимизировались. Такое возможно? Маршрут выезжает со склада и возвращается на склад. Склад передается как точка. Бывают ситуации, что авто может заехать на другой склад догрузиться, а потом делается развоз, поэтому и хотелось все регулировать через приоритеты и время работы точки разгруза. Все эти данные я как раз и передаю.

34

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

n.koroid wrote:

0

"success":0 - это означает что неоптимально, но результат есть. В ответе есть время tm, своим заявкам нужно сохранить это время...
Трэк так же сохранить

По поводу порядка, да такое возможно..
Вот пример:

{"itemId":РесИд,"orders":[{"y":55.6210174561,"x":37.7270507812,"tf":1527541200,"n":"Moscow2","tt":1527616740,"f":0,"r":1000,"p":{"ut":600,"w":4,"v":5}},{"y":55.6233444214,"x":37.6034545898,"tf":1527541200,"n":"Moscow1","tt":1527627540,"f":0,"r":100,"p":{"ut":600,"w":0,"v":0}},{"y":55.6644172668,"x":37.7758026123,"tf":1527541200,"n":"Moscow3","tt":1527627540,"f":0,"r":100,"p":{"ut":600,"w":0,"v":0}},{"y":55.7278823853,"x":37.7682495117,"tf":1527541200,"n":"Moscow4","tt":1527627540,"f":0,"r":100,"p":{"ut":600,"w":0,"v":0}}],"warehouses":[],"flags":4483,"units":[ЮнитИд],"gis":{"addPoints":1,"provider":1,"speed":60,"cityJams":1,"countryJams":1},"priority":{"0":{"0":0}},"busyRoutes":{"0":[]}}

свойство "priority" - это реализует.

"priority":{
    'indexUnit':{
        indexOrder: порядок в маршруте
    }
}

С уважением, team LABS

Команда LABS
35

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

свойство "priority" - это реализует.

Не отрабатывает это свойство.
Ставлю приоритеты

"0":0,"1":1,"2":10,"3":20

По текущим приоритетам все должно так и остаться, о возвращает в таком виде [0,1,3,2].

36

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

n.koroid wrote:

свойство "priority" - это реализует.

Не отрабатывает это свойство.
Ставлю приоритеты

"0":0,"1":1,"2":10,"3":20

По текущим приоритетам все должно так и остаться, о возвращает в таком виде [0,1,3,2].

Посмотрите свойство flags.
Возможно у вас там выбраны критерии у который приоритет выше.
Передайте flags:0

Думаю это поможет)
LABS

Команда LABS
37

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

В свойство "priority" стал передавать только первую и последнюю точки и получился тот результат, что был нужен. Первая и последняя так и остаются по краям, а внутри уже делается сортировка. Все ОК

38

Правильная последовательность создания маршрута в Logistics по API

(edited by stal 01/06/2018 09:54:01)

Re: Правильная последовательность создания маршрута в Logistics по API

n.koroid wrote:

свойство "priority" - это реализует.

Не отрабатывает это свойство.
Ставлю приоритеты

"0":0,"1":1,"2":10,"3":20

По текущим приоритетам все должно так и остаться, о возвращает в таком виде [0,1,3,2].

priority это не свойство, это параметр в запросе

Формат такой:
{индекс объекта:{индекс заявки в запросе : желаемая позиция заявки в маршруте}}.

При этом все заявки там перечислять не обязательно, а только те для которых позиция важна. Не следует там указывать значение больше чем количество заявок. Чтобы заявка была последней в маршруте надо указать позицию -1.
В вашем случае должно быть что-то вроде {unit_id:{0:0, 3:-1}} . Т.е. нулевая заявка на нулевое место, третья - на последнее. 
Но указание данного параметра не гарантирует именно такое расположение, например если график не позволит выполнить одну заявку раньше другой.

Поэтому лучше использовать параметр warehouses и там перечислять склады. Один и тот же склад может быть начальным и конечным одновременно, если указать соответствующие флаги. Кроме того есть режим распределения когда можно указать промежуточный склад, куда надо заезжать после исчерпания какого-либо лимита, например каждые 3 заявки, по весу заявок и т.д. Так же можно указать сколько угодно начальных, конечных, и промежуточных. Алгоритм сам выберет на какой из них заехать выгодней. Туда можно указать, так же как в "orders", склады в виде json-а, тогда не придется отдельно создавать склады

39

Правильная последовательность создания маршрута в Logistics по API

(edited by n.koroid 04/06/2018 12:50:16)

Re: Правильная последовательность создания маршрута в Logistics по API

Получил оптимизацию. Передал на logistics обновление маршрута и заявок. Заявки передаю в новом порядке.
Часть из передаваемых параметров: Первая с ид=42, вторая ид=55. В ответ получаю в таком же порядке. Захожу на logistics посмотреть визуально планируемый маршрут, а там порядок совсем другой: Первая с ид=50, вторая с ид=49, а ид 42, которая должна быть первой, стоит на 6 позиции. Подскажите что не так делаю.

[{"s":0,"tf":1528174800,"st":0,"u":17285535,"ej":{},"x":24.0669,"id":42,"y":49.8745,"rp":"","uid":2565,"callMode":"update","cnm":0,"f":0,"sf":0,"tt":1528207200,"n":"Укрлогістика ТОВ","p":{"cm":"","t":"","v":0,"pr":0,"aff":"","w":0,"a":"УЛ Львівська обл., с. Малехів, вул. Галицька, 1-Б","ut":0,"uic":"","c":0,"z":"","p2":"","d":"","e":"","ntf":0,"tags":[],"n":"","p":"","cid":"","r":{"ndt":1200,"i":0,"vt":1528180186,"id":1528102787,"m":0,"t":0}},"r":0,"trt":3660},{"s":0,"tf":1528174800,"st":0,"u":17285535,"ej":{},"x":24.074801,"id":55,"y":49.883386,"rp":"mgloHsn{qCOiA??sArA??yEW??PnG?hBW|E??mAaB??wEeH??u@cA}@yA??u@cBIOYi@??i@yAe@_B??i@mB??s@cC??k@kB??M_@??o@qC??O[??_AqD??mAaF??o@aC_@y@c@{@??[]oAiA??s@g@cBkA??Op@","uid":2578,"callMode":"update","cnm":0,"f":0,"sf":0,"tt":1528207200,"n":"Львівхолод","p":{"cm":"","t":"","v":0,"pr":1,"aff":"","w":20,"a":"Рукавичка Львівська обл., с. Малехів, вул. Стуса, 1 (магазин \"Рукавичка\")","ut":0,"uic":"","c":0,"z":"","p2":"","d":"","e":"","ntf":0,"tags":[],"n":"","p":"","cid":"","r":{"ndt":1200,"i":0,"vt":1528180397,"id":1528102787,"m":0,"t":0}},"r":0,"trt":3660}]

формат который передаю на обновление. В ответ получаю

{"orders":[{"id":42,"f":0,"u":17285535,"uid":2565,"callMode":"update"},{"id":55,"f":0,"u":17285535,"uid":2578,"callMode":"update"},{"id":47,"f":0,"u":17285535,"uid":2570,"callMode":"update"},{"id":48,"f":0,"u":17285535,"uid":2571,"callMode":"update"},{"id":56,"f":0,"u":17285535,"uid":2579,"callMode":"update"},{"id":53,"f":0,"u":17285535,"uid":2576,"callMode":"update"},{"id":46,"f":0,"u":17285535,"uid":2569,"callMode":"update"},{"id":52,"f":0,"u":17285535,"uid":2575,"callMode":"update"},{"id":43,"f":0,"u":17285535,"uid":2566,"callMode":"update"},{"id":49,"f":0,"u":17285535,"uid":2572,"callMode":"update"},{"id":54,"f":0,"u":17285535,"uid":2577,"callMode":"update"},{"id":45,"f":0,"u":17285535,"uid":2568,"callMode":"update"},{"id":44,"f":0,"u":17285535,"uid":2567,"callMode":"update"},{"id":50,"f":0,"u":17285535,"uid":2573,"callMode":"update"},{"id":51,"f":0,"u":17285535,"uid":2574,"callMode":"update"},{"id":57,"f":0,"u":17285535,"uid":2580,"callMode":"update"}]}

Если формирую отчет по маршрутам в logistics, то в отчете показывает правильный порядок заявок.

40

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

stal wrote:

Поэтому лучше использовать параметр warehouses и там перечислять склады. Один и тот же склад может быть начальным и конечным одновременно, если указать соответствующие флаги. Кроме того есть режим распределения когда можно указать промежуточный склад, куда надо заезжать после исчерпания какого-либо лимита, например каждые 3 заявки, по весу заявок и т.д. Так же можно указать сколько угодно начальных, конечных, и промежуточных. Алгоритм сам выберет на какой из них заехать выгодней. Туда можно указать, так же как в "orders", склады в виде json-а, тогда не придется отдельно создавать склады

В параметр warehouses указывать id заявок, которые являются складами?
Для указания начального и конечного использовать параметр busyRoutes, если да, то не но могу понять что передавать туда id заявок или их json. Потому что если передаю id первой и последней, то не срабатывает, если передаю json заявки(склада) начальный и конечный, то выдает ошибку. Можно с примером? Если передавать json, то в warehouses ничего не надо передавать?

41

Правильная последовательность создания маршрута в Logistics по API

(edited by n.koroid 07/06/2018 14:10:22)

Re: Правильная последовательность создания маршрута в Logistics по API

В json, который передаю для оптимизации указываю склады первой и последней точки, указываю priority и busyRoutes в котором указываю начальную и конечную точки. Оптимизирует не правильно. Первая и последняя точка становятся рядом после оптимизации, т.к. это один и тот же склад.

{"itemId":ИдРесурса,"orders":[50,51,52,53,54,55,56,57,58,59,60,61,62,63,65,66],"warehouses":[50,66],"units":[17285535],"flags":0,"gis":{"addPoints":1,"provider":1,"speed":60},"priority":{"0":{"0":0,"15":-1}},"busyRoutes":{"0":[{"pf":50,"pt":66,"tf":1516140000,"tt":1516226399}]}}

В описании не написано что в склады писать. Описание     "массив складов" много информации не дает.
По моей логике заявки 50 и 66 остаются на месте, а внутри делается оптимизация

И вопрос по обновлению заявок после оптимизации так же остается. Делаю обновление маршрута с новым порядком заявок, а на logistics остается свой порядок.

42

Правильная последовательность создания маршрута в Logistics по API

(edited by sets 07/06/2018 17:25:27)

Re: Правильная последовательность создания маршрута в Logistics по API

Склады - это такие же заявки просто с флагами( тут )

busyRoutes - это окна которые заняты, они нужны при редактировании маршрута, если создается несколько маршрутов на один и тот же юнит.
Если создаете один маршрут, то busyRoutes не обязателен.

Порядок заявок в логистике определяется свойством {.... p.r.i}
Перед сохранением маршрута, удостоверьтесь есть ли такое свойство и корректное ли оно( начинается отсчет с 0 )

Команда LABS!

Команда LABS
43

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

n.koroid wrote:

В параметр warehouses указывать id заявок, которые являются складами?

Склады надо добавлять только в массив warehouses. В orders их не нужно добавлять. Формат параметра warehouses точно такой же как orders, только в него передаются склады. В ответе значение id для складов будет следующими за orders , например запрос:

{
  "itemId": 12082424,
  "orders": [
    {
      "y": 53.9124832153,
      "x": 27.5139446259,
      "tf": 1528498800,
      "n": "заявка1",
      "tt": 1528499400,
      "f": 0,
      "r": 100,
      "p": {
        "ut": 60,
        "rep": true,
        "w": 0,
        "v": 0
      }
    },
    {
      "y": 53.9163475037,
      "x": 27.5287380219,
      "tf": 1528502400,
      "n": "заявка2",
      "tt": 1528503000,
      "f": 0,
      "r": 100,
      "p": {
        "ut": 60,
        "rep": true,
        "w": 0,                                                                                                                        
        "v": 0
      }                                                                                                                                
    },                                                                                                                                 
    {                                                                                                                                  
      "y": 53.9068946838,                                                                                                              
      "x": 27.5129489899,                                                                                                              
      "tf": 1528506000,                                                                                                                
      "n": "заявка3",                                                                                                                  
      "tt": 1528506600,                                                                                                                
      "f": 0,                                                                                                                          
      "r": 100,                                                                                                                        
      "p": {                                                                                                                           
        "ut": 60,                                                                                                                      
        "rep": true,
        "w": 0,
        "v": 0
      }
    }
  ],
  "warehouses": [
    {
      "y": 53.9097595215,
      "x": 27.5296783447,
      "tf": 1528488000,
      "tt": 1528574340,
      "f": 4,
      "p": {
        "ut": 600
      },
      "trt": 3600
    },
    {
      "y": 53.9097595215,
      "x": 27.5296783447,
      "tf": 1528488000,
      "tt": 1528574340,
      "f": 8,
      "p": {
        "ut": 600
      },
      "trt": 3600
    }
  ],
  "flags": 131,
  "units": [
    12747255
  ]
}

В orders перечислены 3 обычные заявки (f:0), а в warehouses 2 склада: начальный (f:4) и конечный (f:8).

ответ:

{
  "12747255": {
    "orders": [
      {
        "id": 3,
        "ml": 0,
        "tm": 1528497916,
        "p": ""
      },
      {
        "id": 0,
        "ml": 2129,
        "tm": 1528498800,
        "p": "..."
      },
      {
        "id": 1,
        "ml": 5060,
        "tm": 1528502400,
        "p": "..."
      },
      {
        "id": 2,
        "ml": 7514,
        "tm": 1528506000,
        "p": "..."
      },
      {
        "id": 4,
        "ml": 9495,
        "tm": 1528506311,
        "p": "..."
      }
    ]
  },
  "success": 1
}

как видно, склады это id:3 и id:4, а заявки id:0, id:1, id:2.

В примере в orders и warehouses заявки и склады переданы в виде json. Вместо этого, если они уже созданы ранее, можно передать туда их  id:

{
  "itemId": 12082424,
  "orders": [123,124,125],
  "warehouses": [321, 322],
  "flags": 131,
  "units": [
    12747255
  ]
}

Тут 321, 322 должны быть созданы как склады, т.е. с флагами 0x04, 0x08, 0x10. Ответ будет таким же.

Если склад один, но его предполагается использовать и как конечный, и как начальный то флаг можно поставить 4 + 8 = 12 (0x0C) соответственно, и тогда можно его подать один раз:



  "warehouses": [
    {
      "y": 53.9097595215,
      "x": 27.5296783447,
      "tf": 1528488000,
      "tt": 1528574340,
      "f": 12,
      "p": {
        "ut": 600
      },
      "trt": 3600
    }
  ],
44

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

Спасибо, со складами все получилось. Единственное склады надо было исключить из списка заказов, потому что в ответе приходит на 2 заказа больше если передаю склад начала и окончания.

45

Правильная последовательность создания маршрута в Logistics по API

(edited by n.koroid 19/06/2018 16:14:41)

Re: Правильная последовательность создания маршрута в Logistics по API

Немного усложнился маршрут, еще добавился 3-й склад, который должен быть обязательно первым после начального склада. Пытался добавить приоритет черес свойство priority
Примеры:
"priority": {    "0": {      "0": -1,      "1": 0,      "2": -1,      "3": -1    } //второй идет склад дозагрузки, ему ставлю "0" как приоритет
или так
"priority": {    "0": {      "1": 0   }
Ни один из вариантов не срабатывает.  Как сделать так, что заявка не перемещалась. Есть склады перегруза. У меня как раз и есть ситуация что на этом складе делается дозагрузка, а дальше развоз. Пытался указывать как склад с флагом 16 (0x10 склад перезагрузки) , я правильно конвертирую?

46

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

Ответ я так и не получил. Оптимизацию делал в два этапа. Вначале делал оптимизацию до склада Перегруза, а потом вторая оптимизация от склада перегруза. Получил тот вариант, что мне был нужен.

47

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

Здравствуйте, возникла проблема з маршрутами, после создания маршрут попадает не в активные, а сразу в выполненные, поле маршрута "Автозавершение" проставляется на 10 суток вперед (сегодня проставились на 5 суток). Как удалось узнать в тех. поддержки, есть незадокументированный параметр exp, для указаний автозавершения заявки (и маршрута?).

Эксперименты с указанием этого параметра не принесли результата. Если проставлять параметр для заявок в запрос оптимизации (напр 3600 сек), система расставляет заявки с шагом в час, если проставить параметр для маршрута - изменений нет.
Возможно надо проставлять вместе с настройкой флагов?

48

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

Здравствуйте, не могли бы вы написать какой запрос вы выполняете?
Что бы определить в чем проблема.
Спасибо

Команда LABS
49

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

Добрый день! Задача такая:
Из учетной системы нужно выгрузить список заявок с координатами и весом по заявке. На одно число может быть  n списков заявок, так как работает 2 логиста и просчитывают несколько регионов.
После выгрузки заказов, логист (в wialon logistics), раскладывает заказы по нужным ему машинам, система выстраивает оптимальный путь и после этого, нужно в учетную систему затянуть конкретный список заявок, где будет указано, порядок проезда точек (для распечатки накладных в нужном порядке) и указано, какой автомобиль повезет конкретную заявку.
Подскажите пожалуйста, есть ли такая возможность у вас в системе и порядок моих действий. Спасибо.

50

Правильная последовательность создания маршрута в Logistics по API

Re: Правильная последовательность создания маршрута в Logistics по API

Добрый день,buch.vovan86

С Logistics можно работать через API http://apps.wialon.com/files/logistics/ … ces_ru.pdf

Вашу задачу можно решить, например, выполнив 2 запроса:
1) POST /api/import - импорт заявок из файла
2) GET /api/routes - получение маршрутов