ready to deploy
Some checks failed
Build and Deploy / build_and_deploy (push) Failing after 10s

This commit is contained in:
2025-07-24 11:28:34 +03:00
parent 1c14f9bcc1
commit da6d345609
3 changed files with 79 additions and 5 deletions

View File

@@ -3,7 +3,7 @@
import re
import logging
from typing import Dict, List, Optional, Any
from datetime import datetime
from datetime import datetime, timedelta
from dateutil import parser
# Импортируем наши модули
@@ -172,8 +172,8 @@ class Synchronizer:
def _update_existing_frs(self):
"""
Находит и обновляет ФР с отличающимися датами окончания ФН,
воспроизводя проверенную логику в более производительном виде.
Находит и обновляет ФР с отличающимися датами окончания ФН.
Пропускает обновление, если разница в датах более 10 лет.
"""
log.info("Поиск ФР для обновления...")
@@ -199,6 +199,9 @@ class Synchronizer:
records_to_check = self.db._execute_query(query, fetch='all')
update_counter = 0
#Порог для сравнения дат
archive_delta = timedelta(days=365*10)
for rec in records_to_check:
try:
# 2. Приводим даты к одному "знаменателю" - объектам datetime
@@ -214,12 +217,18 @@ class Synchronizer:
# 3. Сравниваем даты. Если они различаются, готовим обновление.
# Проверяем на неравенство. Величина различия не важна.
if pos_date != sd_date:
# Проверяем, что разница не больше 10 лет
if abs(pos_date - sd_date) > archive_delta:
log.warning(f"Пропуск сравнения для S/N {rec['serialNumber']}: разница в датах больше 10 лет."
f"FTP: {pos_date.date()}, SD: {sd_date.date()}.")
continue
log.info(f"Найдено расхождение в дате для S/N {rec['serialNumber']} (UUID: {rec['sd_uuid']}). "
f"FTP: {pos_date}, SD: {sd_date}. Подготовка к обновлению.")
# 4. Формируем данные для обновления
# 5. Проверяем, закончился ли ФН
# Проверяем, закончился ли ФН
if rec['pos_rnm'] == '0000000000000000':
legal_name = 'ЗАКОНЧИЛСЯ ФН'
else: