"""Celery задачи для формы Ф-6.""" import logging from io import BytesIO from apps.core.tasks import TrackedTask from apps.form_6.services import FormF6Parser from celery import shared_task logger = logging.getLogger(__name__) @shared_task(bind=True, base=TrackedTask) def process_form_f6_file( self, file_content: bytes, file_name: str, report_year: int, report_quarter: int | None = None, ) -> dict: logger.info(f"Начало обработки файла Ф-6: {file_name}") parser = FormF6Parser(report_year=report_year, report_quarter=report_quarter) result = parser.parse(BytesIO(file_content)) logger.info( f"Обработка Ф-6 завершена: {result.loaded_count} загружено, {result.skipped_count} пропущено" ) return result.to_dict()