|
|
|
|
@ -6,13 +6,14 @@ from sqlalchemy import Select, Delete, and_
|
|
|
|
|
from src.maximo.service import MaximoDataMapper
|
|
|
|
|
from src.overhaul_history.enums import OverhaulStatus
|
|
|
|
|
from src.overhaul_history.utils import determine_overhaul_status
|
|
|
|
|
from .model import OverhaulHistory
|
|
|
|
|
from .model import OverhaulHistory, OverhaulHistoryEquip
|
|
|
|
|
from .schema import OverhaulHistoryRead, OverhaulHistoryCreate
|
|
|
|
|
from typing import Optional
|
|
|
|
|
|
|
|
|
|
from src.database.core import DbSession
|
|
|
|
|
from src.auth.service import CurrentUser
|
|
|
|
|
from src.scope.service import get_by_scope_name
|
|
|
|
|
from src.scope_equipment.service import get_by_scope_name as scope_equipment_by_scope_name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def get(*, db_session: DbSession, overhaul_history_id: str) -> Optional[OverhaulHistory]:
|
|
|
|
|
@ -47,7 +48,7 @@ async def start_overhaul(*, db_session: DbSession, maximo_data: dict):
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
status, status_reason = await determine_overhaul_status(maximo_data)
|
|
|
|
|
scope = await get_by_scope_name("A")
|
|
|
|
|
scope = await get_by_scope_name(db_session=db_session, scope_name="A")
|
|
|
|
|
|
|
|
|
|
overhaul = OverhaulHistory(
|
|
|
|
|
scope_id=scope.id,
|
|
|
|
|
@ -57,6 +58,20 @@ async def start_overhaul(*, db_session: DbSession, maximo_data: dict):
|
|
|
|
|
maximo_id=maximo_id,
|
|
|
|
|
status=status
|
|
|
|
|
)
|
|
|
|
|
# Get equipment list asynchronously
|
|
|
|
|
scope_equipment = await scope_equipment_by_scope_name(
|
|
|
|
|
db_session=db_session,
|
|
|
|
|
scope_name="A"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Create equipment instances
|
|
|
|
|
equipments = [OverhaulHistoryEquip(assetnum=eq.assetnum)
|
|
|
|
|
for eq in scope_equipment]
|
|
|
|
|
|
|
|
|
|
# Assign equipment to overhaul
|
|
|
|
|
overhaul.equipments = equipments
|
|
|
|
|
|
|
|
|
|
# Get All Equipment
|
|
|
|
|
|
|
|
|
|
db_session.add(overhaul)
|
|
|
|
|
await db_session.commit()
|
|
|
|
|
|