Фармацевтика – очень сложный бизнес. Мы знакомы только с публичной его частью, покупая в аптеке какой-либо препарат. Но большая часть работы происходит вне нашего взора. Цепочки поставок медикаментов и их продаж очень длинные и включают в себя множество различных контрагентов.
Наш клиент – международная фармацевтическая компания, с головным офисом во Франции. Клиент поставляет свои препараты по всей России, во все регионы. Как и всем продавцам, нашему клиенту необходимо планировать свои продажи, чтобы знать, сколько сделать поставок и куда. Дополнительным осложняющим фактором является то, что форм у препаратов и самих торговых наименований, большое множество.
Мы придумали систему, которая позволяет планировать продажи на различные территориальные единицы: города, районы, области, федеральные округа. Наша система может даже планировать продажи по аптечным сетям.
Наши алгоритмы, распределяют большое значение по всем узлам ниже, то есть по городам. Как происходит распределение? На основе истории продаж. Пользователь сам может выбрать, за какой период берётся история продаж в пределах 3-х лет.
Помимо исторических трендов можно воспользоваться сценариями прогнозирования, которых реализовано почти 10 штук. Вот самые основные:
Планирование начинается с выбора препарата, его формы выпуска и регионального узла, вплоть до городов и их районов. В системе региональная иерархия узлов насчитывает более 5000 объектов, также в системе около 20 форм препаратов. Таким образом, результат планирования содержит более 1000000 значений.
Работа с системой требовала высокой производительности, поскольку основной модуль планирования взаимодействует сразу со всеми данными, чтобы осуществить автоматическое предсказание, основанное на различных методах математических алгоритмов, включающих в себя историю продаж, сезонность и многие другие параметры.
С технической точки зрения реализация хорошо ложилась на OLAP-куб. Но по ряду причин это решение нельзя было использовать. Поэтому мы реализовали in-memory database.
Когда надо быстро оперировать миллионами записей, классический подход с обращением в обычную базу данных не работает. Вычисления и манипуляции с данными вышли бы очень медленными. К тому же, ежедневно системой взаимодействуют одновременно 20-50 пользователей.
Особенности работы с данными в разработанной системе:
При создании продукта применялась гибкая разработка, поскольку у клиента не было законченного представления, каким он должен быть. Только пройдя большое количество итераций нам удалось совместно с заказчиком сформировать финальный продукт, который и был запущен в эксплуатацию.
Система была внедрена в 2017 году. На первоначальную разработку системы ушло около 4000 часов. Проект был сложным в плане разработки и согласования, но запуск прошел успешно. С тех пор уже 6 лет сотни сотрудников пользуются этой системой, а специалисты Технологики занимаются её поддержкой и доработкой.
Так, в 2023 году клиент дополнил систему вариантом планирования по аптечным сетям и по специфичным группам препаратов.