Dairy Report Generator

Универсальный генератор аналитических отчётов в формате DairyTrends (стиль DT-палитры) с графиками и таблицами.

Возможности

  • 📊 Многостраничные DOCX отчёты в едином дизайне
  • 📈 Графики (линейные, столбчатые, сценарные) — SVG → PNG через sharp
  • 🎨 Палитра DairyTrends: оранжевый/зелёный/красный/кремовый
  • 📑 Структура: KPI-обложка → выводы → методика → ретроспектива → сравнения → прогноз → рекомендации
  • 🔌 Полная параметризация — подавай данные, получай отчёт

Применение

  • Регионы РФ — отчёты по областям/краям из БД region_index (Bitrix dairy-news.ru)
  • МЗЫ — отчёт по конкретному хозяйству на основе своих данных (надой, поголовье, закупочная цена)
  • Сравнения предприятий — анализ группы хозяйств
  • Тематические выпуски — экспорт, GDT, нетели и т.д.

Установка

npm install

Использование

const { generateReport } = require('@dairynews/report-generator')
const fs = require('fs')

const buf = await generateReport({
  subject: {
    name: 'Вологодской области',
    shortName: 'Вологда',
    type: 'region', // 'region' | 'farm' | 'company' | 'custom'
  },
  period: {
    historicalFrom: '2024-01-01',
    historicalTo: '2026-05-31',
    forecastTo: '2026-12-31',
  },
  data: {
    prices: [{ date: '2024-01-15', price: 31.05 }, ...],
    costs: [{ date: '2024-01-15', cost: 28.50 }, ...],
    scenarios: { base: [...], opt: [...], pess: [...] },
    kpi: [
      { value: '3335 ₽/кг', label: 'Закуп. цена (базовый)' },
      { value: '+2.1%',      label: 'Рост производства I кв.' },
      ...
    ],
    leaders: [...],   // опционально
    ebitda: [...],    // опционально
    regionComparison: [...] // опционально
  },
  text: {
    mainConclusion: '...',
    risks: ['Погодные условия...', 'Регуляторные риски...'],
    recommendations: { ... },
  }
})

fs.writeFileSync('output.docx', buf)

Структура проекта

src/
├── index.js              # Главный entry-point
├── generators/
│   ├── document.js       # Сборка DOCX (header, footer, sections)
│   ├── kpi.js            # KPI-блок
│   ├── tables.js         # Таблицы (допущения, прогноз, ретроспектива)
│   └── callout.js        # Callout-блоки с красной полосой
├── charts/
│   ├── render.js         # SVG → PNG через sharp
│   ├── chart1.js         # Линейный + маржа (главный)
│   ├── chart2.js         # Лидеры (2 горизонтальных бара)
│   ├── chart3.js         # EBITDA по группам
│   ├── chart4.js         # Сравнение регионов
│   └── chart5.js         # Сценарии маржи
├── templates/
│   └── default.js        # Шаблон Вологда-style
├── data/
│   └── palette.js        # DT-палитра
examples/
├── russia.js             # Пример: общероссийский отчёт
└── vologda.js            # Пример: Вологодская область

Деплой

Модуль интегрируется как зависимость в new.dairy-news.ru:

# В админке /admin/dairytrends/reports/
# страница даёт UI для выбора региона + кнопку "Сгенерировать"

Лицензия

MIT © ООО «Умный Байт» / Zeroday

S
Description
Универсальный генератор аналитических отчётов DairyTrends (DOCX + Charts)
Readme 138 KiB
Languages
JavaScript 100%