fix current scope oh

feature/reliability_stat
Cizz22 6 months ago
parent e828bbe570
commit a3ff35e0ef

@ -15,23 +15,24 @@ router = APIRouter()
@router.get( @router.get(
"/{overhaul_session}", response_model=StandardResponse[List[OverhaulActivityRead]] "/{overhaul_session}", response_model=StandardResponse[OverhaulActivityPagination]
) )
async def get_scope_equipments( async def get_scope_equipments(
db_session: DbSession, common: CommonParameters,
overhaul_session: str, overhaul_session: str,
assetnum: Optional[str] = Query(None), location_tag: Optional[str] = Query(None),
scope_name: Optional[str] = Query(None), scope_name: Optional[str] = Query(None),
): ):
"""Get all scope activity pagination.""" """Get all scope activity pagination."""
# return # return
data = await get_all( data = await get_all(
db_session=db_session, common=common,
assetnum=assetnum, location_tag=location_tag,
scope_name=scope_name, scope_name=scope_name,
overhaul_session_id=overhaul_session, overhaul_session_id=overhaul_session,
) )
return StandardResponse( return StandardResponse(
data=data, data=data,
message="Data retrieved successfully", message="Data retrieved successfully",

@ -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_activity.utils import get_material_cost, get_service_cost
from src.overhaul_scope.model import OverhaulScope from src.overhaul_scope.model import OverhaulScope
from src.overhaul_scope.service import get as get_session 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.standard_scope.service import get_by_oh_session_id
from src.workscope_group.model import MasterActivity from src.workscope_group.model import MasterActivity
from src.equipment_workscope_group.model import EquipmentWorkscopeGroup 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 .model import OverhaulActivity
from .schema import (OverhaulActivityCreate, OverhaulActivityRead, from .schema import (OverhaulActivityCreate, OverhaulActivityRead,
OverhaulActivityUpdate) OverhaulActivityUpdate)
@ -43,9 +46,9 @@ async def get(
async def get_all( async def get_all(
*, *,
db_session: DbSession, common: CommonParameters,
overhaul_session_id: UUID, overhaul_session_id: UUID,
assetnum: Optional[str] = None, location_tag: Optional[str] = None,
scope_name: Optional[str] = None scope_name: Optional[str] = None
): ):
# query = ( # query = (
@ -70,13 +73,32 @@ async def get_all(
##raise Exception(results['items'][0].equipment.parent.__dict__) ##raise Exception(results['items'][0].equipment.parent.__dict__)
equipments, overhaul = await get_by_oh_session_id( # equipments, overhaul = await get_by_oh_session_id(
db_session=db_session, oh_session_id=overhaul_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 = [] results = []
for equipment in equipments: for equipment in data:
res = OverhaulActivityRead( res = OverhaulActivityRead(
id=equipment.id, id=equipment.id,
material_cost=35000000000, material_cost=35000000000,
@ -88,7 +110,9 @@ async def get_all(
results.append(res) results.append(res)
return results equipments['items'] = results
return equipments
async def get_all_by_session_id(*, db_session: DbSession, overhaul_session_id): async def get_all_by_session_id(*, db_session: DbSession, overhaul_session_id):

Loading…
Cancel
Save