6.9 KiB
6.9 KiB
DairyTrends Report Generator — состояние на 09.06.2026
Два модуля в Gitea
| Модуль | Gitea | Сервер |
|---|---|---|
| dairy-report-generator | https://git.zeroday.su/admin/dairy-report-generator | /var/www/dairy-report-generator/ |
| dairynews-nextjs | https://git.zeroday.su/admin/dairynews-nextjs | /var/www/dairynews/ |
| Сервер | dev2 | 77.222.43.248 |
Связь: dairynews-nextjs подключает dairy-report-generator как file:../dairy-report-generator (symlink в node_modules).
Модуль 1: dairy-report-generator
Что делает
Генерирует DOCX отчёты в стиле DairyTrends. Принимает конфиг с данными, отдаёт Buffer.
Структура
src/
data/palette.js ← DT-палитра (#CC3300, серые, зелёный)
charts/
chart1.js ← Линейный: цена + себестоимость + 3 сценария + барчарт маржи
chart2.js ← Две панели: горизонт. бары (красный=переработчик, серый=производитель) + верт. объём
chart3.js ← Горизонт. EBITDA: цвет по группе А/Б/В + легенда
chart4.js ← Две панели: серо-красный стиль; режим independentScales для регионов
chart5.js ← Сценарии маржи: зелёный/красный/серый
generators/
document.js ← Сборка DOCX: хедер (DT красный квадрат), таблицы с красным заголовком, разделы
index.js ← Entry point: generateReport(config) → Buffer
examples/
russia.js ← Полный пример для РФ
Дизайн (финальный)
- DT-квадрат в хедере: красный (#CC3300) фон, белый текст
- Заголовки таблиц: красный фон, белый текст
- Основной красный цвет:
#CC3300(ярче чем было #C0272D) - Chart4: серые бары для всех, красный для isHighlight
Модуль 2: dairynews-nextjs (new.dairy-news.ru)
Ключевые файлы
src/lib/dairytrends-report-config.ts ← buildReportConfig() — данные + тексты
src/app/admin/dairytrends/reports/ ← Страница генерации отчётов
src/app/admin/content/images/ ← AI-картинки (gpt-image-2)
src/app/api/admin/dairytrends/reports/generate/route.ts
src/app/api/admin/content/images/generate/route.ts
scripts/sync-region-index.js ← Cron пн 06:00 — цены из dn
scripts/sync-yield-stats.js ← Cron пн 06:30 — надой/производство/поголовье из dn
Данные в PostgreSQL (dev2)
| Таблица | Источник | Записей | Период |
|---|---|---|---|
| DairyIndex (DAIRY_INDEX_RU) | region_index dn MySQL | 876 | 2023–2026 |
| DairyIndex (MILK_YIELD) | refion_stat_msx dn MySQL | ~1330 | 2023–2026 |
| DairyIndex (MILK_PRODUCTION) | refion_stat_msx | ~1330 | 2023–2026 |
| DairyIndex (COW_COUNT) | refion_stat_msx | ~1330 | 2023–2026 |
| Organization + OrganizationFinancial | СБИС вручную | 10 орг, год 2024 |
Автосинхронизация (cron на dev2)
0 6 * * 1 node scripts/sync-region-index.js # цены по ФО + РФ
30 6 * * 1 node scripts/sync-yield-stats.js # надой, производство, поголовье
KPI блок обложки (динамический)
| Карточка | Источник |
|---|---|
| Закуп. цена (базовый) | scenarios.base min–max из DairyIndex |
| Рост производства I кв. | +2,1% (Росстат, статичный до добавления PRODUCTION_VOLUME) |
| Надой / корову | DairyIndex MILK_YIELD × 365, по regionCode |
| Ключевая ставка ЦБ | 14,5% (статичный, обновлять вручную при изменении) |
Структура отчёта (7 разделов)
- Обложка: KPI × 4 + Главный вывод
- Ключевые выводы (5 пунктов)
- Введение и источники
- Методика + Таблица 1 (допущения)
- Ретроспектива + Таблица 2 (кварталы 2024/2025/2026) + Рисунок 1
- Анализ предприятий (5.1 лидеры + Рис.2, 5.2 кластеры + Рис.3, callout, Рис.4)
- Прогноз + Рис.5 + Таблица 3 (3 сценария × 3 кв. + Пр-во тыс.т)
- Рекомендации (3 аудитории)
Smoke-тест
cd /var/www/dairynews
bash scripts/smoke-report.sh rf # РФ
bash scripts/smoke-report.sh fo:СКФО # Северо-Кавказский
bash scripts/smoke-report.sh fo:СЗФО # Северо-Западный
bash scripts/smoke-report.sh fo:ПФО # Приволжский
Деплой после изменений
# После правок в dairynews-nextjs или dairytrends-report-config.ts:
screen -dmS build bash -c "cd /var/www/dairynews && NODE_ENV=production node_modules/.bin/next build > /tmp/build.log 2>&1; pm2 restart dairynews; echo DONE >> /tmp/build.log"
# После правок только в dairy-report-generator (charts, document):
pm2 restart dairynews # symlink — достаточно перезапуска
Backlog
- Организации за 2025 — данные в OrganizationFinancial только за 2024. Нужно добавить при появлении отчётности СБИС.
- Региональный отчёт по области (Вологда и т.д.) — chart4 готов с independentScales=true, но нужно заполнять regionComparison с надоем vs ценой из DairyIndex.
- МЗЫ-отчёт — хозяйство Агромилк, нужна отдельная схема данных.
- Ключевая ставка ЦБ — сейчас статичная (14,5%), хорошо бы парсить с cbr.ru автоматически.
- Рост производства — сейчас статичный +2,1%, нужна модель с объёмами производства по ФО.
Инфраструктура
- BITRIX_MYSQL_URL:
mysql://dt_reader:DT_reader_2026!@188.127.243.10:3306/dn_ru - DATABASE_URL:
postgresql://dairynews_user:dn_secret_2026@localhost:5432/dairynews - AIGUOGUO_API_KEY: в
.envна dev2 - Gitea token:
8ad58dd00430d58eb9415b50a01c31b1405b5490