a0af0ba772c0c282e2cac0e5560262b68b8ad136
- chart2_leaders: horizontal ranked bars with highlight & category coloring - chart3_ebitdaGroups: vertical bars colored by sign (green ≥0, orange <0) - chart4_regionCompare: side-by-side bar panels with shared y-scale - document.js: new section 5 'Региональный разрез и эффективность' between sections 4 and 6, renders chart2/3/4 with figure captions - index.js: render hooks for data.leaders, data.ebitda, data.regionComparison - examples/russia.js: demo data for all three new charts
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: '33–35 ₽/кг', 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
Description
Languages
JavaScript
100%