feat(reports): stabilize on-demand generation, live presence and 1C fallback

This commit is contained in:
2026-09-25 13:00:11 +03:00
parent 2f8cc1bffd
commit 90656944c5
42 changed files with 13410 additions and 6778 deletions
+18
View File
@@ -2,6 +2,24 @@
Все важные изменения проекта документируются в этом файле.
## [3.4.0] — 2026-09-25
### ✨ Добавлено (Added)
- **Оперативная On-Demand генерация отчетов из сайдбара:**
- Мгновенная сборка книги «Ежедневная сводка» по последнему зафиксированному в SQLite срезу СКУД (без ожидания внешнего опроса Орион).
- Строгое разграничение временных рамок отчетов: «Сводка» формируется на текущую смену, а «Детальный» и «Упрощенный» отчеты — строго за прошедшую смену (ВЧЕРА / прошлая пятница) по итоговому срезу `Y`.
- **Фоновая полудневная синхронизация 1С (cron):**
- Интеграция вызова `copy_1c_files_from_share()` и опроса кадровых отсутствий из базы ЗУП (`ACCOUNT-01`) в цикл получасовых срезов.
### 🛡️ Исправлено (Fixed)
- **Ошибка 404 при скачивании отчетов (`download_report_direct`):**
- Добавлен рекурсивный поиск файлов в подпапках `output/reports/{ГОД}/{МЕСЯЦ}/` и декодирование процент-кодированных кириллических имен из URL.
- **Ошибки 500 и 0 по штату 1С при создании сводки:**
- Реализован каскадный fallback: если файл штата на текущий день еще не выложен на шару, данные штата берутся из последнего сохраненного среза `zup_staff` в SQLite (устранено ложное попадание всех сотрудников в «Нет в ЗУП»).
- Исправлены `NameError` импортов (`load_best_snapshot_for_date`, `load_1c_data_smart`).
- **Сбои инспекции срезов (`OperationalError: no such column: hoz_organ`):**
- Переход на динамический `SELECT *` в роутере инспекции срезов и расчет реального времени в здании до момента фиксации снапшота.
## [3.3.0] — 2026-09-24
### ✨ Добавлено (Added)