klg-asutk-app/backend/app/demo/seed_checklists.py
Yuriy 25be90de7b feat: Part-M RU checklists replacing ICAO/EASA/FAA
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 01:02:51 +03:00

197 lines
13 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Seed чек-листов по Part-M RU (российские правила поддержания лётной годности).
Гармонизировано с ICAO Annex 8, EASA Part-M, FAA 14 CFR Part 43/91.
Заменяет прежние шаблоны ICAO/EASA/FAA — старые удаляются, создаются 8 шаблонов Part-M RU.
"""
import logging
from app.db.session import SessionLocal
from app.models import ChecklistTemplate, ChecklistItem
logger = logging.getLogger(__name__)
REGULATION = "Part-M RU"
def _add_template(db, name: str, description: str, category: str, items: list[tuple[str, str]]) -> None:
"""Добавить шаблон Part-M RU и его пункты. category хранится в domain для фильтрации."""
t = ChecklistTemplate(
name=name,
version=1,
description=description,
domain=category,
is_active=True,
)
db.add(t)
db.flush()
for sort_order, (code, text) in enumerate(items, start=1):
db.add(
ChecklistItem(
template_id=t.id,
code=code,
text=text,
domain=category,
sort_order=sort_order,
)
)
logger.info("Created template: %s (%s items)", name, len(items))
def seed_checklists():
db = SessionLocal()
try:
# Полная замена: удалить все шаблоны чек-листов (пункты удалятся по CASCADE)
deleted = db.query(ChecklistTemplate).delete(synchronize_session=False)
if deleted:
logger.info("Deleted %s old checklist template(s)", deleted)
db.commit()
# 1. M.A.301 — Задачи по поддержанию лётной годности
_add_template(
db,
"M.A.301 — Задачи по поддержанию лётной годности",
"Чек-лист по Part-M RU. Категория: continuing_airworthiness.",
"continuing_airworthiness",
[
("M.A.301(1)", "Выполнение предполётного осмотра ВС"),
("M.A.301(2)", "Устранение неисправностей и повреждений в соответствии с утверждёнными данными"),
("M.A.301(3)", "Выполнение всех работ по ТО в соответствии с утверждённой программой ТО"),
("M.A.301(4)", "Анализ эффективности утверждённой программы ТО"),
("M.A.301(5)", "Выполнение применимых Директив лётной годности (ДЛГ/AD)"),
("M.A.301(6)", "Выполнение применимых модификаций и ремонтов"),
("M.A.301(7)", "Установление политики модификаций для необязательных модификаций"),
("M.A.301(8)", "Выполнение проверок по поддержанию лётной годности (Airworthiness Review)"),
],
)
# 2. M.A.302 — Программа технического обслуживания
_add_template(
db,
"M.A.302 — Программа технического обслуживания",
"Чек-лист по Part-M RU. Категория: maintenance_program.",
"maintenance_program",
[
("M.A.302(a)", "ТО ВС выполняется по утверждённой программе ТО"),
("M.A.302(b)", "Программа ТО содержит периодичность и объём работ, включая специальные требования"),
("M.A.302(c)", "Программа ТО соответствует инструкциям по поддержанию лётной годности (ICA)"),
("M.A.302(d)", "Программа ТО утверждена компетентным органом (Росавиация)"),
("M.A.302(e)", "Учёт Директив лётной годности в программе ТО"),
("M.A.302(f)", "Учёт Сервисных бюллетеней (SB) обязательного характера"),
("M.A.302(g)", "Программа ТО содержит программу контроля старения конструкции"),
("M.A.302(h)", "Программа ТО содержит программу контроля коррозии"),
],
)
# 3. M.A.303 — Директивы лётной годности (AD/ДЛГ)
_add_template(
db,
"M.A.303 — Директивы лётной годности (AD/ДЛГ)",
"Чек-лист по Part-M RU. Категория: airworthiness_directives.",
"airworthiness_directives",
[
("M.A.303(a)", "Все применимые ДЛГ выполнены в установленные сроки"),
("M.A.303(b)", "Записи о выполнении ДЛГ внесены в бортовую документацию"),
("M.A.303(c)", "Повторяющиеся ДЛГ контролируются и выполняются по графику"),
("M.A.303(d)", "Альтернативные методы соответствия (AMOC) согласованы с компетентным органом"),
("M.A.303(e)", "Ведётся реестр применимых ДЛГ с указанием статуса выполнения"),
("M.A.303(f)", "Новые ДЛГ анализируются на применимость в течение 30 дней"),
],
)
# 4. M.A.305 — Система учёта поддержания лётной годности
_add_template(
db,
"M.A.305 — Система учёта поддержания лётной годности",
"Чек-лист по Part-M RU. Категория: records.",
"records",
[
("M.A.305(a)", "Ведение бортового журнала ВС (Aircraft Log Book)"),
("M.A.305(b)", "Ведение журнала двигателя (Engine Log Book)"),
("M.A.305(c)", "Ведение карт-формуляров компонентов с ограниченным ресурсом"),
("M.A.305(d)", "Записи о текущем статусе ДЛГ и SB"),
("M.A.305(e)", "Записи о текущем статусе модификаций и ремонтов"),
("M.A.305(f)", "Записи о наработке ВС, двигателей и компонентов (часы/циклы)"),
("M.A.305(g)", "Записи о массе и центровке ВС"),
("M.A.305(h)", "Хранение записей не менее 3 лет после списания ВС"),
],
)
# 5. M.A.401 — Данные по техническому обслуживанию
_add_template(
db,
"M.A.401 — Данные по техническому обслуживанию",
"Чек-лист по Part-M RU. Категория: maintenance_data.",
"maintenance_data",
[
("M.A.401(a)", "Использование актуальных данных по ТО при выполнении работ"),
("M.A.401(b)", "Доступность AMM, SRM, IPC, WDM для персонала"),
("M.A.401(c)", "Данные по ТО соответствуют требованиям разработчика типа"),
("M.A.401(d)", "Процедура контроля актуальности ревизий документации"),
("M.A.401(e)", "Наличие утверждённых технологических карт (Task Cards)"),
("M.A.401(f)", "Учёт временных ревизий (Temporary Revisions)"),
],
)
# 6. M.A.501 — Компоненты и запасные части
_add_template(
db,
"M.A.501 — Компоненты и запасные части",
"Чек-лист по Part-M RU. Категория: components.",
"components",
[
("M.A.501(a)", "Установка только сертифицированных компонентов с Form 1 / АКТ-8a"),
("M.A.501(b)", "Прослеживаемость компонентов от изготовителя до установки"),
("M.A.501(c)", "Контроль ресурсных компонентов (life-limited parts)"),
("M.A.501(d)", "Идентификация и изоляция неисправных компонентов"),
("M.A.501(e)", "Контроль нестандартных (Standard) деталей"),
("M.A.501(f)", "Входной контроль компонентов перед установкой"),
("M.A.501(g)", "Система контроля расходных материалов (срок годности, хранение)"),
],
)
# 7. M.A.703 — Обязанности организации по управлению ПЛГ (CAMO)
_add_template(
db,
"M.A.703 — Обязанности организации по управлению ПЛГ (CAMO)",
"Чек-лист по Part-M RU. Категория: camo_obligations.",
"camo_obligations",
[
("M.A.703(a)", "Обеспечение поддержания лётной годности всех управляемых ВС"),
("M.A.703(b)", "Заключение договора с утверждённой организацией по ТО (Part-145)"),
("M.A.703(c)", "Контроль выполнения всех работ по ТО в установленные сроки"),
("M.A.703(d)", "Управление программой ТО и её своевременная актуализация"),
("M.A.703(e)", "Управление ресурсными компонентами и контроль их наработки"),
("M.A.703(f)", "Координация планового и внепланового ТО"),
("M.A.703(g)", "Управление записями по ПЛГ в соответствии с M.A.305"),
("M.A.703(h)", "Анализ эффективности программы ТО и подготовка отчётов"),
],
)
# 8. M.A.901 — Проверка лётной годности ВС (Airworthiness Review)
_add_template(
db,
"M.A.901 — Проверка лётной годности ВС (Airworthiness Review)",
"Чек-лист по Part-M RU. Категория: airworthiness_review.",
"airworthiness_review",
[
("M.A.901(a)", "Проверка ЛГ выполняется ежегодно или при продлении СЛГ"),
("M.A.901(b)", "Физический осмотр ВС проведён"),
("M.A.901(c)", "Проверка статуса выполнения ДЛГ и SB"),
("M.A.901(d)", "Проверка актуальности программы ТО"),
("M.A.901(e)", "Проверка полноты записей по ТО и наработке"),
("M.A.901(f)", "Проверка статуса ресурсных компонентов"),
("M.A.901(g)", "Проверка статуса модификаций и ремонтов"),
("M.A.901(h)", "Проверка массы и центровки"),
("M.A.901(i)", "Выпуск Сертификата проверки лётной годности (ARC) или рекомендации"),
("M.A.901(j)", "Уведомление компетентного органа при выявлении несоответствий"),
],
)
db.commit()
logger.info("Part-M RU checklist seed complete: 8 templates")
except Exception as e:
db.rollback()
logger.exception("Checklist seed failed: %s", e)
raise
finally:
db.close()