02.04. Использование приоритетов

02.04.01. Приоритет по событию

Описание
В Такси-Мастер приоритеты не могут включаться в определенное время. Приоритет может быть назначен только по событию, например, если водитель выполнил заказ или купил смену. Также, существует схема включения проверки через Oktell.
Есть дорогие заказы, например, более 500 руб. Автоназначение на такие заказы и приоритет видимости создается только для водителей, которые имеют приоритет 100. Получить его можно двумя способами:
1.Быть на линии с 7.00 до 7.15 утра. Если экипаж в это время на линии, то экипаж получает приоритет 100. 2.Если водителя нет в это время на линии, то водитель не получает приоритета и ему нужно выполнить 10 обычных заказов. Каждый заказ дает +10 к приоритету.
В итоге любой водитель имеющий приоритет более 100 имеет доступ ко всем заказам.
Итого имеется 2 скрипта:
1. Машина с приоритетом 100 и более назначается на заказ всегда первой, если сумма заказа 500 и более (сумму настраиваем в скрипте)
2. Машина с приоритетом 100 и более видит заказы свыше 500 руб (сумма настраивается) раньше на N сек, чем остальные машины с приоритетом менее 100
То есть приоритеты действуют с 7.15 утра до 7.15 следующего дня.
Для того, чтобы в 7.15 водителям на линии назначался динамический приоритет, настраивается сценарий в Oktell, который запускается в 7.10 и проверяет машины на линии. Если водитель на линии, то Oktell водителю назначает приоритет +100.
Эффект
Те водители, которые утром вышли на работу получают доступ к дорогим заказам. Если водитель опоздал, то ему нужно откатать минимум 10 заказов, чтобы получить доступ к дорогим заказам. Скрипт мотивирует водителей выходить на смену в утренние часы и повышает вывоз в утренний час пик.

 

02.04.02. Поиск экипажа по карте

Описание
1. Искать ближайший экипаж по карте, в указанном диапазоне.
2. Если нет экипажа по карте — заказ падает в свободный доступ.
3. В зависимости от приоритета (задается скриптом) экипажу назначаются заказы от определенной стоимости (задается скриптом) в первую очередь. Если приоритет низкий и не соответствует заданному в скрипте, заказы экипажу назначаются про принципу ближайшего по карте с меньшей стоимостью чем заданная. Если экипажа с соответствующим приоритетом в заданном диапазоне нет, заказ получает ближайший экипаж без учета приоритета. Заказы, от заданной в скрипте стоимости, попадая в свободные, становятся видимыми для всех только спустя определенное время (задается скриптом), сразу их видят только экипажи с заданным приоритетом.
Должно получится следующее (цифры задаются скриптом):
Экипаж с приоритетом 20 видит на 2 минуты раньше экипажей с меньшим приоритетом заказы стоимостью от 100 рублей. Когда они попадают в свободные, заказы со стоимостью от 100 рублей назначаются ближайшему экипажу с приоритетом 20 в обход заказов с меньшей стоимостью.
Эффект
Скрипт мотивирует водителей выйти на смену утром в час пик, чтобы получить приоритет на день, т.к. в этом случае водитель не просто получает любые заказы вне очереди, а только дорогие.

 

02.04.03 Учет параметров

Описание
В скрипте есть возможность указать тариф, по которому не сработает автораздача. Также есть возможность выбора расчета расстояния по проложенному маршруту или по прямой.
R1 — радиус поиска ближайшего экипажа, задается для каждой группы экипажей в настройках.
Уравнивающее расстояние R2 — расстояние, в пределах которого экипажи, находящиеся от адреса подачи дальше самого ближайшего экипажа, считаются равноудаленными.
Равноудаленными считаются те экипажи, которые находятся от адреса подачи в пределах расстояния, равного сумме уравнивающего расстояния R2 и расстоянию от адреса подачи до самого ближайшего экипажа.
Логика автораздачи
Если у адреса подачи нет координат или нет экипажей в радиусе R1, то заказ становится свободным на соответствующей стоянки для дальнейшего самостоятельного выбора по новой схеме версии ТМ 2.12.
Весь поиск осуществляется по принципу: сначала оптимальный экипаж по карте, но в пределах стоянки подачи, затем — остальные по карте.
Экипажи без координат в автораспределении не участвуют.
Логика поиска:
Шаг 1. Находится самый ближайший из всех равноудаленных в радиусе R1 с учетом уравнивающего расстояния R2 (если в радиусе R1 только один экипаж, то заказ уходит ему, но если есть еще равноудаленные, то переходим к следующему шагу).
Шаг 2. Если только один из экипажей имеет максимальный суммарный приоритет, то заказ отдается ему, если таких экипажей несколько — переходим к следующему шагу.
Шаг 3. Если есть один экипаж с максимальным временем ожидания, то заказ отдается ему, если несколько — переходим к следующему шагу.
Шаг 4. Экипаж выбирается случайным образом из всех дошедших до этого шага экипажей.

Эффект
Достигается «справедливое» распределение заказа, которое учитывает время ожидания, приоритет и разницу расстояний. Данный скрипт будет полезен службам, которые хотят честного распределения.

 

02.04.04 Учет расстояния и времени

Описание
Скрипт автораздачи учитывает приоритет автомобиля. Ставятся 3 значения: Положительный приоритет, Нулевой приоритет, Отрицательный приоритет.
Сначала выбираются машины с положительным приоритетом, затем с нулевым и в последнюю очередь — с отрицательным.
Если в радиусе подбора несколько однотипных машин, выбирается ближайший автомобиль, если несколько автомобилей с разницей не более чем в 1000 м, срабатывает правило меньшего времени.
Например, по условиям раздачи подошло на заказ 3 машины с положительным приоритетом. У 2-х машин разница во времени после смены состояний не превышает 8 минут, а у третьей — 15 минут. То есть 3 машина на 15 минут дольше стоит без заказа по отношению к другим машинам. Ей и отдается заказ

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