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
+21 -1
View File
@@ -109,4 +109,24 @@ def cleanup_old_intermediate_snapshots(days_to_keep_all: int = 2) -> int:
if deleted_rows_count > 0:
logger.info(f"Ротация завершена: удалено {deleted_rows_count} строк промежуточных срезов.")
return deleted_rows_count
return deleted_rows_count
def purge_day_intermediate_snapshots(date_str: str) -> int:
"""
Удаляет все промежуточные дневные срезы за указанную дату,
оставляя нетронутым итоговый вечерний срез Y..._FINAL.
"""
clean_date = date_str.replace('_', '.')
with get_connection() as conn:
cursor = conn.cursor()
cursor.execute("""
DELETE FROM scud_logs
WHERE log_date = ?
AND snapshot_id NOT LIKE 'Y%'
AND snapshot_id NOT LIKE '%_FINAL%'
""", (clean_date,))
deleted = cursor.rowcount
conn.commit()
if deleted > 0:
logger.info(f"[Retention] Удалено {deleted} строк промежуточных срезов за {clean_date}. Сохранен только финишный Y.")
return deleted