24. Маршруты. Данные о точках маршрутов рейсов (включая все промежуточные пункты посещения), а также плановое время прибытия на точки.
25. Справочник точек маршрутов. Перечень всех существующих точек маршрутов.
26. Геозоны. Географически ограниченные участки, расположенные в произвольных местах карты или связанные с существующими точками маршрутов.
27. Справочник типов погрузочно-разгрузочных мест. Перечень типов мест, предназначенных для погрузки и разгрузки транспортных средств (высота площадки и другие параметры).
28. Грузы. Данные о перевозимых товарах, включая характеристики грузов, влияющие на требования к транспортным средствам.
29. Справочник типов грузов. Перечень типов грузов, определяющий требования к типам кузовов автомобилей.
30. Назначения исполнителей. Данные о ручных и автоматических назначениях исполнителей на рейсы, ожидающих обратной связи от грузоперевозчиков.
31. Договоры на грузоперевозки. Контракты на оказание транспортных услуг, заключенные между исполнителями грузоперевозок и грузоотправителями/грузополучателями.
32. Путевые листы. Документы учёта работы транспортных средств и их водителей.
33. Товарно-транспортные накладные. Документация на перевозимые грузы.
34. Счета на грузоперевозки. Сформированные на основании рейсов счета на оплату услуг.
35. Терминалы. Данные об автомобильных трекерах.
36. Справочник типов терминалов. Перечень моделей терминалов и данные о протоколах их работы.
37. Команды. Данные об управляющих командах, отправленных на терминалы.
38. Датчики. Данные о физических датчиках, подключённых к автомобильным терминалам.
39. Справочник типов датчиков. Перечень типов датчиков (местоположения, скорости, температуры двигателя, уровня топлива, температуры кузова и т. п.).
40. Показания датчиков. Данные о состоянии транспортных средств и их грузов, полученные с бортового оборудования.
41. События. Данные о возникших событиях: начале и окончании рейсов, прохождении промежуточных точек маршрутов, отклонений от плана рейсов, а также о возникновении нештатных ситуаций.
42. Правила событий. Правила, на основании которых система генерирует события. Могут зависеть как от вхождения автомобилями в определённые геозоны, так и от показаний других датчиков, связанных с состоянием транспортных средств и грузов.
43. Справочник событий. Классификатор возможных событий.
44. Уведомления. Уведомления о возникших событиях, предназначенные диспетчерам как со стороны исполнителей, так и со стороны грузоотправителей/грузополучателей.
45. Оперативные воздействия. Данные о применённых диспетчерами оперативных воздействиях.
46. Справочник оперативных воздействий. Перечень возможных типов оперативных воздействий.
Схема сущностей системы и их связей представлена на рис. 18. Стоит отметить, что по смыслу сущности можно разделить на пять разделов - «Пользователи и компании» (зелёный цвет), «Заявки» (синий цвет), «Автомобили и водители» (оранжевый цвет), «Средства мониторинга и контроля» (фиолетовый свет), «Справочники» (серый свет).
Рисунок 19 - Сущности системы и их связи
Статусная модель заявок
В целях повышения эффективности обработки заявок на грузоперевозки были выделены следующие статусы заявок:
1. Новые. Статус присваивается заявкам сразу после создания.
2. Поиск исполнителя. Состояние заявок в процессе работы алгоритма автоматического распределения исполнителей на рейсы.
3. Ожидают подтверждения. Заявки, ожидающие обратной связи от грузоперевозчиков после ручных или автоматических назначений заказчиков.
4. Без исполнителя. Заявки, не получившие подтверждения от назначенных исполнителей.
5. Подтверждённые. Подтверждённые грузоперевозчиками заявки.
6. Выполняются. Состояния заявок в процессе выполнения грузоперевозок.
7. Выполненные. Статус присваивается заявкам после завершения выполнения рейсов.
8. Изменённые заказчиком. Заявки, изменённые заказчиками после их подтверждения исполнителями, и ожидающие от них повторного отклика.
9. Отменённые заказчиком. Заявки, отменённые грузоотправителями /грузополучателями в процессе планирования и/или выполнения грузоперевозок.
10. Изменённые исполнителем. Состояние заявок в случаях запроса грузоперевозчиков на изменение параметров рейсов (в том числе назначенных водителей).
11. Получившие отказ исполнителя. Заявки, получившие отказ от их выполнения подтверждёнными исполнителями как по собственным причинам, так и ввиду изменений требований на грузоперевозки, исходящих от заказчиков.
Схема жизненного цикла заявок на грузоперевозки представлена на рис. 19.
Рисунок 20 - Жизненный цикл заявок на грузоперевозки
В целях повышения качества информационного обеспечения диспетчеров о процессах выполнения рейсов в рамках статуса “Выполняются” были определены следующие подстатусы, которые выставляются водителями вручную в мобильном приложении:
1. Едет на погрузку. Статус присваивается заявке в момент начала движения транспортного средства на точку погрузки (может быть как первой, так и промежуточной точкой маршрута).
2. Опаздывает на погрузку. Возникает в случае отставания фактического графика движения автомобиля по маршруту от плановых параметров.
3. Ожидает погрузки. Ожидание постановки транспортного средства на ворота погрузки.
4. На погрузке. Процесс погрузки автомобиля и передачи водителю сопроводительной документации.
5. Едет на разгрузку. Движение транспортного средства к промежуточной либо финальной точке разгрузки.
6. Опаздывает на разгрузку. Статус присваивается в случае опоздания прибытия автомобиля на разгрузочную точку.
7. Ожидает разгрузки. Ожидание постановки на разгрузочные ворота.
8. На разгрузке. Процесс разгрузки транспортного средства и передачи документации на груз. Если точка разгрузки последняя на маршруте, то данный статус является завершающим в рамках статуса заявки «Выполняются».
Схема жизненного цикла заявок со статусом «Выполняются» представлена на рис. 20.
Рисунок 21 - Жизненный цикл заявок со статусом “Выполняются”
Алгоритмы обработки заявок.
В рамках проектирования системы были разработаны алгоритмы создания и распределения заявок на грузоперевозки, направленные на повышение эффективности назначений исполнителей на рейсы посредством использования специализированных методов фильтрации и ранжирования возможных вариантов их распределений.
Создание заявок.
Для формирования подробных спецификаций рейсов, являющихся необходимым условием для корректной работы алгоритма распределения исполнителей, а также в целях предоставления эргономичного интерфейса для заказчиков рейсов, создание заявок на грузоперевозки было разбито на четыре этапа - заполнение данных о грузах, внесение информации о точках погрузки, заполнение точек разгрузки и определение бюджета.
В начале заполнения заявки заказчику предлагается выбрать тип грузов, подлежащих транспортировке. В рамках одной заявки допустима перевозка нескольких типов грузов, но при этом должна соблюдаться возможность их перевозки в одном транспортном средстве.
В целях автоматизации определения совместимости грузов был создан следующий классификатор (рис. 21):
Рисунок 22 - Классификатор грузов
В последовательности работы классификатора учтены как нормативно-правовые акты [52,53], так и существующие практики российских компаний.
После определения типов перевозимых грузов (с учетом их совместимости) для каждого груза заполняется следующая информация:
1. Комментарий. Точное название и краткое описание груза.
2. Масса. Масса перевозимого груза.
3. Объем. В зависимости от типа груза заполняется:
a. Количество паллет - для штучных обычных грузов (подразумеваются стандартизированные европаллеты);
b. Количество и габариты контейнеров - для контейнеров;
c. Объем груза в м3 - для остальных типов грузов.
4. Температурный режим. Требования к температуре (в случае их наличия).
5. Режим влажности воздуха. Требования к влажности воздуха (в случае их наличия).
6. Дополнительные крепления. Необходимость в дополнительных креплениях в случаях перевозки хрупких грузов.
7. Необходимость в перемешивании. Необходимость в перемешивании (указывается только для наливных грузов - к примеру, для жидкого бетона).
8. Допустимость сборного груза. Разрешение на совместную перевозку грузов заказчика с грузами других заказчиков в одном транспортном средстве (с учетом совместимости грузов различных типов).
В целях оптимизации работы алгоритма распределения исполнителей было введено ограничение на суммарные массу и объем габаритных грузов в одной заявке - указанные габариты должны соответствовать грузоподъемности и вместимости существующих транспортных средств. В случае необходимости нескольких машин для перевозки грузов необходимо создать соответствующее количество заявок.
После заполнения данных о грузах оператору заказчику предлагается выбрать одну или несколько точек погрузки из системного справочника точек маршрутов, или же ввести данные о новых точках. Для каждой новой точки заполняются адрес, допустимые высоты погрузки/разгрузки и требуемый тип пропуска транспортного средства; при создании точки система автоматически определяет ей геозону радиусом 500 м.
В случае наличия нескольких точек погрузки при выборе каждой точки заказчику предлагается выбрать часть грузов (с учетом заполненных им на предыдущем этапе данных), подлежащую погрузке на этой точке.
Также для каждой точки необходимо выбрать допустимый интервал для прибытия транспортного средства.
После заполнения точек погрузки аналогичным образом вносятся данные о точках разгрузки - выбираются (или создаются новые) точки маршрута, определяется состав разгружаемых на точках товаров и задаются временные интервалы прибытия автомобилей.
Как только внесена информация о грузе, точках погрузки и точках разгрузки, заказчику предлагается определить бюджет заявки вручную или рассчитать его согласно следующей формуле:
где - бюджет заявки (руб.);
- количество различных типов грузов;
- количество отрезков маршрута;
- длина отрезка пути с грузом (км);
- коэффициент пути;
- масса груза на отрезке (тонны);
- коэффициент массы;
, , , - дополнительные коэффициенты для режима температуры, влажности воздуха, дополнительных креплений и вида страхования;
- коэффициент для особых типов грузов;
- общий коэффициент стоимости.
Все значения коэффициентов настраиваются в профиле компании администратором от заказчика.
Помимо тарификационных коэффициентов, в качестве параметров заявки используются следующие настройки из профиля заказчика:
1. Допустимый вид страхования. Ограничение на состав страховых случаев, предусматриваемых страховым полисом грузоперевозчика.
2. Максимальный пробег. Максимальный пробег автомобилей исполнителей.
3. Приоритет ранжирования исполнителей. Приоритет ранжирования грузоперевозчиков, используемый в алгоритме распределения исполнителей по заявкам. Может иметь значения «По цене» и «По рейтингу исполнителя».
4. Минимальный рейтинг исполнителей. Минимальный рейтинг грузоперевозчиков, кандидатуры которых подлежат рассмотрению для выполнения заявок заказчика в алгоритме автоматического распределения исполнителей по заявкам.
5. Ограничения на исполнителей. Ограничения на допустимых для выполнения заявок заказчика грузоперевозчиков. Могут быть как в виде списка разрешённых исполнителей (в таком случае другие кандидатуры не будут рассматриваться в алгоритме распределения), так и в формате черного списка.
6. Ограничения на распределение заявок между исполнителями. Ограничения на максимальные доли от заявок, распределяемые на конкретных исполнителей. К примеру, заказчик может ограничить определённого исполнителя на выполнение не более 25% своих заказов. Состав заказов при этом формируется алгоритмом автоматического оптимального распределения исполнителей по заявкам.
В целях сокращения рисков ошибок при заполнении данных было принято решение о проведении премодерации заявок.
Распределение исполнителей по заявкам.
Алгоритм распределения исполнителей по заявкам запускается автоматически каждые 30 минут и состоит из следующих шагов:
1. Заявки со статусом «Ожидают подтверждения» переводятся в статус «Поиск исполнителя». Из графика доступности исполнителей удаляются записи о неподтверждённых назначениях.