Files
dairy-report-generator/NEXT_SESSION.md
T

6.9 KiB
Raw Blame History

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 20232026
DairyIndex (MILK_YIELD) refion_stat_msx dn MySQL ~1330 20232026
DairyIndex (MILK_PRODUCTION) refion_stat_msx ~1330 20232026
DairyIndex (COW_COUNT) refion_stat_msx ~1330 20232026
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 minmax из DairyIndex
Рост производства I кв. +2,1% (Росстат, статичный до добавления PRODUCTION_VOLUME)
Надой / корову DairyIndex MILK_YIELD × 365, по regionCode
Ключевая ставка ЦБ 14,5% (статичный, обновлять вручную при изменении)

Структура отчёта (7 разделов)

  1. Обложка: KPI × 4 + Главный вывод
  2. Ключевые выводы (5 пунктов)
  3. Введение и источники
  4. Методика + Таблица 1 (допущения)
  5. Ретроспектива + Таблица 2 (кварталы 2024/2025/2026) + Рисунок 1
  6. Анализ предприятий (5.1 лидеры + Рис.2, 5.2 кластеры + Рис.3, callout, Рис.4)
  7. Прогноз + Рис.5 + Таблица 3 (3 сценария × 3 кв. + Пр-во тыс.т)
  8. Рекомендации (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

  1. Организации за 2025 — данные в OrganizationFinancial только за 2024. Нужно добавить при появлении отчётности СБИС.
  2. Региональный отчёт по области (Вологда и т.д.) — chart4 готов с independentScales=true, но нужно заполнять regionComparison с надоем vs ценой из DairyIndex.
  3. МЗЫ-отчёт — хозяйство Агромилк, нужна отдельная схема данных.
  4. Ключевая ставка ЦБ — сейчас статичная (14,5%), хорошо бы парсить с cbr.ru автоматически.
  5. Рост производства — сейчас статичный +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