feat(reports): add simplified report builder, fix nan/inf crash and separate unhired/no-pass staff
This commit is contained in:
@@ -193,4 +193,24 @@
|
||||
- Настройка безопасного монтирования только необходимых CSV/Parquet-файлов данных в режиме Read-Only[cite: 2].
|
||||
- [ ] **Динамические Python/Pandas вычисления:**
|
||||
- Инструмент генерации и безопасного выполнения скриптов агрегации и аналитики данных СКУД / 1С на лету[cite: 2].
|
||||
- Перехват stdout/stderr, сбор результатов расчетов и графиков с передачей в UI-чата[cite: 2].
|
||||
- Перехват stdout/stderr, сбор результатов расчетов и графиков с передачей в UI-чата[cite: 2].
|
||||
|
||||
---
|
||||
|
||||
## 17. Миграция инфраструктуры, отказоустойчивость отчетов и Упрощенный отчет `[ЗАВЕРШЕНО]`
|
||||
- [x] **Миграция на новый сервер (Debian 12):**
|
||||
- Актуализация путей виртуального окружения в cron-скриптах (`scripts/cron/*.sh`).
|
||||
- Восстановление прямого подключения к базе 1С:ЗУП (MS SQL Server `ACCOUNT-01`).
|
||||
- Настройка автоматического CIFS-монтирования шары отчетов `//storage/SCUD/Отчеты` в `/etc/fstab` с правами пользователя.
|
||||
- [x] **Разделение статусов наличия в кадровых реестрах (`merger.py`):**
|
||||
- Выделение сотрудников, заведенных в СКУД, но не принятых в ЗУП (`not_hired_yet = True`), в отдельный раздел сводки **«Не приняты на работу»**.
|
||||
- Полное исключение непринятых сотрудников из детального суточного табеля за прошлые смены.
|
||||
- Обособление штатных сотрудников без карт СКУД (`no_scud_pass = True`) в раздел **«Нет пропуска»** с исключением их из «Неизвестных».
|
||||
- Устранение предупреждений `UserWarning: Boolean Series key will be reindexed` при вычислении метрик штата.
|
||||
- [x] **Стабилизация генерации Excel-книг (`otchet_builder.py`):**
|
||||
- Включение защитной опции `nan_inf_to_errors: True` в `xlsxwriter.Workbook`.
|
||||
- Полная санитарная очистка ячеек от значений `NaN` / `None` / `pd.NA` перед записью, устранившая критический сбой `TypeError: NAN/INF not supported in write_number()`.
|
||||
- [x] **Генератор «Упрощенного отчета» (`services/reports/simplified_builder.py`):**
|
||||
- Создание нового генератора по эталонному формату: заголовок `Упрощенный отчет: c ДД.ММ.ГГГГ по ДД.ММ.ГГГГ`, сокращение ФИО до инициалов (`Фамилия И.О.`), отображение времени с текстовыми заглушками (`Нет входа (0:00)`, `Нет выхода (23:59)`).
|
||||
- Сортировка по подразделениям и алфавиту сотрудников.
|
||||
- Интеграция этапа сборки упрощенного отчета за вчера в ETL-конвейер (`main_etl.py`).
|
||||
Reference in New Issue
Block a user