feat(reports): add simplified report builder, fix nan/inf crash and separate unhired/no-pass staff
This commit is contained in:
@@ -2,6 +2,33 @@
|
||||
|
||||
Все важные изменения проекта документируются в этом файле.
|
||||
|
||||
## [3.3.0] — 2026-09-24
|
||||
|
||||
### ✨ Добавлено (Added)
|
||||
- **Генератор «Упрощенного отчета» (`services/reports/simplified_builder.py`):**
|
||||
- Формирование суточного файла `Упрощенный отчет за ДД.ММ.ГГГГг..xlsx` с выгрузкой на сетевую шару параллельно с детальным отчетом.
|
||||
- Сокращение полных ФИО до эталонного формата с инициалами (`Иванов И.И.`).
|
||||
- Подстановка официальных текстовых заглушек СКУД `Нет входа (0:00)` и `Нет выхода (23:59)` при отсутствии отметок.
|
||||
- Алфавитная сортировка по подразделениям и сотрудникам, форматирование сетки `Calibri 11` с числовым форматом времени `h:mm`.
|
||||
- **Разделы сводки «Не приняты на работу» и «Нет пропуска»:**
|
||||
- В `services/scud_etl/merger.py` и `services/reports/svodka_builder.py` выделена категория физлиц, присутствующих в СКУД, но еще не оформленных в 1С:ЗУП (`not_hired_yet`).
|
||||
- Сотрудники штата без карт доступа теперь явно направляются в блок «Нет пропуска» (`no_scud_pass`).
|
||||
|
||||
### 🔧 Изменено (Changed)
|
||||
- **Исключение не принятых на работу из табеля:**
|
||||
- В `services/reports/otchet_builder.py` сотрудники без проведенного приказа о приеме в 1С исключены из таблицы детального суточного отчета за вчера.
|
||||
- **Восстановление аббревиатур подразделений:**
|
||||
- В `merger.py` восстановлен приоритет компактных названий отделов из базы СКУД Орион (`ОАН`, `ПУ`, `ОИЗ`, `ОА`, `ИГТЛЛ` и др.) взамен длинных кадровых формулировок 1С.
|
||||
- **Инфраструктура нового сервера (Debian 12):**
|
||||
- Исправлены пути виртуального окружения `/home/apushkov/projects/scud_ai/venv/bin/python` в cron-скриптах.
|
||||
- Настроено автоматическое CIFS-монтирование шары отчетов в `/etc/fstab` с правами пользователя `apushkov`.
|
||||
|
||||
### 🛡️ Исправлено (Fixed)
|
||||
- **Сбой генерации детального отчета (`TypeError: NAN/INF not supported`):**
|
||||
- В `otchet_builder.py` включен параметр книги `nan_inf_to_errors: True` и внедрена санитизация пустых ячеек `NaN`/`None`, исключающая аварийное завершение `write_number()`.
|
||||
- **Предупреждения Pandas в логах:**
|
||||
- Устранены ошибки `Boolean Series key will be reindexed to match DataFrame index` в `merger.py` за счет изоляции расчета масок от `df_staff_only`.
|
||||
|
||||
## [2.5.8] - 2026-09-10
|
||||
|
||||
### Добавлено (Added)
|
||||
|
||||
Reference in New Issue
Block a user