Решение на CUBA Platform (сейчас Jmix): ERP-система логистической компании силами одного разработчика
Платформа CUBA (сейчас Jmix) помогает пользователям со всего мира в несколько раз ускорить разработку корпоративного ПО и создать масштабное решение силами небольшого числа программистов. Сегодня расскажем про один из таких проектов, который производит по-настоящему фантастическое впечатление. Штатный разработчик логистической компании в одиночку создал ERP-систему, которая автоматизирует множество сложных и специфических процессов. Плюс к этому, проект отличается разнообразием технологий — терминал с тачскрином, VoIP-телефония и (в ближайшем будущем) мобильное приложение.
Ситуация
ГК «Алт Авто» — крупнейший грузоперевозчик Алтайского края, в его автопарке более 700 машин. У компании несколько основных направлений работы: длительные рейсы в города России и ближнего зарубежья; транспортировка товаров по розничным торговым сетям; вывоз руды и других материалов из мест разработки.
Потребность в автоматизации появилась у «Алт Авто» в связи с большим объемом и сложностью работы логистов. На каждого из них приходилось более 100 машин, а кроме того, в каждом направлении работы своя специфика: различаются подвижной состав, графики рейсов и механизмы оплаты труда водителей.
Готовые решения плохо подходили для задач «Алт Авто». Они не позволяли автоматизировать работу всех направлений в одной системе, для каждого потребовалась бы отдельная конфигурация и отдельная база данных. Кроме того, представленные на рынке продукты содержали не нужные логистам инструменты для бухучета, которые усложняли интерфейс. Поэтому в итоге было решено создать собственную ERP-систему. Ее разработка началась в 2017 году.
Весь колоссальный проект реализовал один разработчик — штатный программист «Алт Авто» Никита Леденев. Он занимается разработкой 17 лет, начинал писать на Delphi и С++, а около пяти лет назад перешел на Java. При создании ERP-системы было решено использовать инструменты для автоматизации процесса разработки.
Мы рассматривали различные инструменты. Одним из вариантов была платформа Oracle BI, которая оказалась слишком дорогой. Другим — Play Framework, который для наших задач не подошел, поскольку представляет собой «каркас» для приложения без стандартного набора функций и компонентов. Оптимальным вариантом оказалась платформа CUBA (сейчас Jmix), на мой взгляд, она занимает среднее положение между RAD и высокоуровневым фреймворком. Это не «вещь в себе» и не среда с правилами, выйти за пределы которых либо сложно, либо невозможно. Технически на CUBA (сейчас Jmix) можно реализовать все, что возможно на Java. При этом платформа содержит инструменты для быстрой разработки бизнес-приложений и решения стандартных задач, например, создания сущностей или форм, что позволяет сконцентрироваться на логической части. Подробная и понятная документация по CUBA находится в открытом доступе, поэтому мне удалось быстро освоиться, хотя до начала проекта Java был для меня второстепенным языком.
Никита Леденев
Решение
Развитие ERP-системы началось с автоматизации планирования рейсов по направлению розничных торговых сетей. В сентябре 2017 года, через четыре месяца после старта разработки, решение было запущено в эксплуатацию.
На базе CUBA (сейчас Jmix) реализованы алгоритмы, позволившие свести к минимуму действия, которые логистам приходится выполнять вручную. Для планирования работы используется установленный в «Алт Авто» терминал с тачскрином, где отмечаются готовые выйти в рейс водители. Каждому из них автоматически подбирается рейс и отправляется смс со всей необходимой информацией. Заявки от крупнейших российских торговых сетей загружаются в ERP-систему через Rest API. Каждая заявка содержит информацию о грузе, графике и маршруте рейса. Маршрутный лист для водителя можно создать на основе заявки одним нажатием кнопки.
Далее функциональность ERP-системы постепенно наращивалась.
Автоматизировано планирование рейсов по вывозу руды из карьеров. Раньше логистам приходилось самостоятельно рассчитывать количество рейсов и машин, которое потребуется в рамках того или иного договора. Благодаря ERP-системе вручную приходится выполнять минимум действий. Логистам достаточно добавить к маршрутному листу нужные договор и маршрут, и все необходимые расчеты будут произведены автоматически. После этого сотрудникам останется выбрать машины из предложенного системой списка готовых к работе и соответствующих по характеристикам.
Для каждого направления работы «Алт Авто» реализована своя логика автоматического расчета оплаты труда водителей.
Для менеджеров компании создан планировщик задач по типу канбан-доски.
Организовано упорядоченное хранение информации по различным аспектам работы «Алт Авто». Ведутся справочники транспортных средств, водителей, дисциплинарных взысканий и так далее, создан архив кадровых и юридических документов. По каждой машине можно отслеживать актуальный статус («в работе» или «простой»), а также выполнение дневного плана.
Еще одной глобальной задачей стал контроль расхода топлива и использования топливных карт. В ERP-системе появилась возможность добавить запланированные заправки в маршрутные листы водителей. Также в приложение импортируется информация об использовании топливных карт из систем АЗС «Газпрома», «Роснефти» и собственных заправок «Алт Авто». План сравнивается с фактическими данными и автоматически выводится отчет о неучтенных заправках.
Задачу по организации мобильных конференц-звонков и рассылки смс-оповещений удалось решить с помощью нестандартного сочетания технологий. Раньше в «Алт Авто» использовали услугу конференц-связи местного оператора связи. Основная проблема заключалась в том, что сотрудникам требовалось самостоятельно выполнять звонок, чтобы присоединиться к конференции, а многие забывали это делать. Новое решение было создано при помощи CUBA (сейчас Jmix) и Asterisk, открытого решения для организации VoIP-телефонии. Из оборудования были задействованы обычные сим-карты и шлюз, который преобразует их в VoIP-транки. Управлять конференциями — выбирать состав участников, задавать время начала и окончания — можно через веб-приложение. Когда начинается конференция, с сим-карт автоматически идут звонки участникам, им остается просто взять трубку. При помощи этого же приложения проводится рассылка смс сотрудникам.
Результат
ERP-система автоматизировала 80% действий при планировании рейсов, подготовке маршрутных листов и расчете зарплат. Благодаря этому логистам стало проще укладываться в сроки, отведенные на выполнение тех или иных задач. Кроме того, несколько сотрудников смогли переключиться на работу, для которой раньше не хватало ресурсов. Еще один важный момент — минимизировано количество расчетов, выполняемых вручную, сотрудники «Алт Авто» теперь преимущественно проверяют информацию в системе. В результате снизилось количество ошибок, которые раньше допускались из-за человеческого фактора и загруженности логистов.
Кроме того, заметно сократились расходы топлива: раньше на 100 километров уходило в среднем 42 литра, сейчас — 33.
VoIP-телефония оказалась дешевле, чем услуга конференц-связи, что позволяет экономить около 30 тысяч рублей в месяц.
В будущем планируется запустить Android-приложение для водителей. В нем можно будет зарегистрироваться в рейс, отслеживать маршрут по карте, подавать заявки на сервисное обслуживание автомобиля и получать информационные сообщения от компании. Для разработки приложения используются open source технологии. За основу взят свободно распространяемый мессенджер Element.io (ранее известный как Riot), который будет модифицирован под задачи «Алт Авто». Платформа CUBA (сейчас Jmix) используется для обеспечения взаимодействия между Android-приложением и ERP-системой.