contact@jetteam.dev
Компетенции и кейсы/Веб-платформы и корпоративные системы
открытыйDSL · расчёт показателей

ERP-система для промышленного холдинга

ERP-система для холдинга УГМК, которая собирает и обрабатывает данные десятков предприятий и используется для расчёта показателей и формирования отчётности.

свой DSLметодику расчёта меняют формулой, а не релизом

Контекст

Предприятия холдинга живут в разных учётных системах и присылают данные в разных форматах – прежде чем считать показатели, их нужно привести к единой модели.

Методики расчёта меняются чаще, чем выходят релизы. Формулы вынесли в собственный предметно-ориентированный язык с анализатором, который проверяет их корректность до запуска расчёта.

схема

От данных предприятий к отчётности

ДЕСЯТКИ ПРЕДПРИЯТИЙ ХОЛДИНГАП1П2П3П4П5П6П7П8· · ·СБОР И НОРМАЛИЗАЦИЯ ДАННЫХединая модель показателей поверх разных учётных системСОБСТВЕННЫЙ ЯЗЫК РАСЧЁТА ПОКАЗАТЕЛЕЙпредметно-ориентированный DSL и языковой анализаторСотни показателейрасчёт и прогнозОтчётностьформы и выгрузкиДокументооборотвстроенный, по регламентамЗАЧЕМ СВОЙ ЯЗЫКМетодики расчёта меняются чаще, чемуспевает выходить релиз. Языкпозволяет экономистам холдингаописывать формулы самостоятельно, асистеме – проверять их корректностьанализатором до запуска расчёта.
Пока формулы живут в коде, любая правка методики расчёта тянет за собой релиз.
из проекта

Как это выглядит

Форма расчёта налогов, платежей и сборов: слева – дерево показателей, справа – рассчитанные значения по периодам.
Форма расчёта налогов, платежей и сборов: слева – дерево показателей, справа – рассчитанные значения по периодам.

Что входило в задачи

  • Данные предприятийсбор и приведение к общей модели из разных учётных систем холдинга
  • Свой язык формулпредметно-ориентированный DSL вместо правок в коде на каждую методику
  • Языковой анализаторпроверяет корректность формулы до запуска расчёта
  • Сотни показателейрасчёт и прогнозирование по периодам
  • Документооборотвстроенная отчётность и согласование внутри системы

Стек проекта

PythonPostgreSQLразработка DSLпарсерыотчётные подсистемы

Есть похожая задача?

contact@jetteam.dev