Files
dairy-report-generator/NEXT_SESSION.md
T

128 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-тест
```bash
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:ПФО # Приволжский
```
## Деплой после изменений
```bash
# После правок в 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`