197 lines
13 KiB
Python
197 lines
13 KiB
Python
"""
|
||
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()
|