feat(reports): stabilize on-demand generation, live presence and 1C fallback
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user