|
|
|
|
@ -13,11 +13,14 @@ from src.database.service import CommonParameters, search_filter_sort_paginate
|
|
|
|
|
from src.overhaul_activity.utils import get_material_cost, get_service_cost
|
|
|
|
|
from src.overhaul_scope.model import OverhaulScope
|
|
|
|
|
from src.overhaul_scope.service import get as get_session
|
|
|
|
|
from src.standard_scope.model import MasterEquipment
|
|
|
|
|
from src.standard_scope.model import MasterEquipment, StandardScope
|
|
|
|
|
from src.standard_scope.service import get_by_oh_session_id
|
|
|
|
|
from src.workscope_group.model import MasterActivity
|
|
|
|
|
from src.equipment_workscope_group.model import EquipmentWorkscopeGroup
|
|
|
|
|
|
|
|
|
|
from src.overhaul_scope.model import MaintenanceType
|
|
|
|
|
from src.workscope_group_maintenance_type.model import WorkscopeOHType
|
|
|
|
|
from src.overhaul_scope.service import get as get_overhaul
|
|
|
|
|
from src.standard_scope.model import EquipmentOHHistory
|
|
|
|
|
from .model import OverhaulActivity
|
|
|
|
|
from .schema import (OverhaulActivityCreate, OverhaulActivityRead,
|
|
|
|
|
OverhaulActivityUpdate)
|
|
|
|
|
@ -43,9 +46,9 @@ async def get(
|
|
|
|
|
|
|
|
|
|
async def get_all(
|
|
|
|
|
*,
|
|
|
|
|
db_session: DbSession,
|
|
|
|
|
common: CommonParameters,
|
|
|
|
|
overhaul_session_id: UUID,
|
|
|
|
|
assetnum: Optional[str] = None,
|
|
|
|
|
location_tag: Optional[str] = None,
|
|
|
|
|
scope_name: Optional[str] = None
|
|
|
|
|
):
|
|
|
|
|
# query = (
|
|
|
|
|
@ -70,13 +73,32 @@ async def get_all(
|
|
|
|
|
|
|
|
|
|
##raise Exception(results['items'][0].equipment.parent.__dict__)
|
|
|
|
|
|
|
|
|
|
equipments, overhaul = await get_by_oh_session_id(
|
|
|
|
|
db_session=db_session, oh_session_id=overhaul_session_id
|
|
|
|
|
# equipments, overhaul = await get_by_oh_session_id(
|
|
|
|
|
# db_session=db_session, oh_session_id=overhaul_session_id
|
|
|
|
|
# )
|
|
|
|
|
|
|
|
|
|
overhaul = await get_overhaul(db_session=common['db_session'], overhaul_session_id=overhaul_session_id)
|
|
|
|
|
|
|
|
|
|
query = (
|
|
|
|
|
Select(StandardScope)
|
|
|
|
|
.outerjoin(StandardScope.oh_history) # Use outerjoin to handle None values
|
|
|
|
|
.join(StandardScope.workscope_groups)
|
|
|
|
|
.join(EquipmentWorkscopeGroup.workscope_group)
|
|
|
|
|
.join(MasterActivity.oh_types)
|
|
|
|
|
.join(WorkscopeOHType.oh_type)
|
|
|
|
|
.filter(MaintenanceType.name == overhaul.maintenance_type.name).filter(
|
|
|
|
|
(StandardScope.is_alternating_oh == False) |
|
|
|
|
|
(StandardScope.oh_history == None) |
|
|
|
|
|
(StandardScope.oh_history.has(EquipmentOHHistory.last_oh_type != overhaul.maintenance_type.name))
|
|
|
|
|
).distinct()
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
equipments = await search_filter_sort_paginate(model=query, **common)
|
|
|
|
|
data = equipments['items']
|
|
|
|
|
|
|
|
|
|
results = []
|
|
|
|
|
|
|
|
|
|
for equipment in equipments:
|
|
|
|
|
for equipment in data:
|
|
|
|
|
res = OverhaulActivityRead(
|
|
|
|
|
id=equipment.id,
|
|
|
|
|
material_cost=35000000000,
|
|
|
|
|
@ -88,7 +110,9 @@ async def get_all(
|
|
|
|
|
|
|
|
|
|
results.append(res)
|
|
|
|
|
|
|
|
|
|
return results
|
|
|
|
|
equipments['items'] = results
|
|
|
|
|
|
|
|
|
|
return equipments
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def get_all_by_session_id(*, db_session: DbSession, overhaul_session_id):
|
|
|
|
|
|