34 lines
1.4 KiB
Python
34 lines
1.4 KiB
Python
import os
|
|
import time
|
|
from datetime import datetime
|
|
from config import SCUD_FILE_TODAY, STAFF_FILE_1C, ABSENT_FILE_1C
|
|
|
|
|
|
def check_file_freshness(max_age_hours=24):
|
|
"""
|
|
Проверяет существование и свежесть входных файлов.
|
|
"""
|
|
warnings = []
|
|
errors = []
|
|
now = time.time()
|
|
max_age_sec = max_age_hours * 3600
|
|
|
|
# 1. Проверка файлов 1С в data/1c
|
|
for file_path, label in [(STAFF_FILE_1C, "Штатное расписание 1С"), (ABSENT_FILE_1C, "Отсутствия 1С")]:
|
|
if not os.path.exists(file_path):
|
|
errors.append(f"Файл '{label}' не найден по пути: {file_path}")
|
|
else:
|
|
mtime = os.path.getmtime(file_path)
|
|
age_hours = (now - mtime) / 3600
|
|
if age_hours > max_age_hours:
|
|
warnings.append(
|
|
f"Файл '{label}' обновлялся давно ({age_hours:.1f} ч. назад). "
|
|
f"Дата изменения: {datetime.fromtimestamp(mtime).strftime('%d.%m.%Y %H:%M')}"
|
|
)
|
|
|
|
# 2. Проверка файла СКУД в data/scud
|
|
if not os.path.exists(SCUD_FILE_TODAY):
|
|
warnings.append(f"Сегодняшний файл СКУД еще не сформирован: {SCUD_FILE_TODAY}")
|
|
|
|
is_valid = len(errors) == 0
|
|
return is_valid, warnings, errors |