diff --git a/src/equipment/__pycache__/router.cpython-311.pyc b/src/equipment/__pycache__/router.cpython-311.pyc index 02dad94..d38b233 100644 Binary files a/src/equipment/__pycache__/router.cpython-311.pyc and b/src/equipment/__pycache__/router.cpython-311.pyc differ diff --git a/src/equipment/__pycache__/schema.cpython-311.pyc b/src/equipment/__pycache__/schema.cpython-311.pyc index 7191162..0d1857c 100644 Binary files a/src/equipment/__pycache__/schema.cpython-311.pyc and b/src/equipment/__pycache__/schema.cpython-311.pyc differ diff --git a/src/equipment/__pycache__/service.cpython-311.pyc b/src/equipment/__pycache__/service.cpython-311.pyc index 1d59c71..2a19362 100644 Binary files a/src/equipment/__pycache__/service.cpython-311.pyc and b/src/equipment/__pycache__/service.cpython-311.pyc differ diff --git a/src/equipment/router.py b/src/equipment/router.py index 213cf94..2580fb5 100644 --- a/src/equipment/router.py +++ b/src/equipment/router.py @@ -155,7 +155,7 @@ async def get_generated_equipment_transaction(db_session: DbSession, token: Toke @router.get("/{assetnum}", response_model=StandardResponse[EquipmentRead]) -async def get_equipment(db_session: DbSession, assetnum: str): +async def get_equipment(db_session: DbSession, collector_db_session: CollectorDbSession, assetnum: str): ( equipment_master_record, equipment_data, @@ -163,7 +163,8 @@ async def get_equipment(db_session: DbSession, assetnum: str): min_eac_value, min_seq, last_actual_year, - ) = await get_master_by_assetnum(db_session=db_session, assetnum=assetnum) + maximo_data + ) = await get_master_by_assetnum(db_session=db_session, collector_db_session=collector_db_session, assetnum=assetnum) # raise Exception(equipment[0]) if not chart_data: raise HTTPException( @@ -179,6 +180,7 @@ async def get_equipment(db_session: DbSession, assetnum: str): min_eac_value=min_eac_value, min_seq=min_seq, last_actual_year=last_actual_year, + maximo_data=maximo_data ), message="Data retrieved successfully", ) diff --git a/src/equipment/schema.py b/src/equipment/schema.py index d7ecbb1..7a5acd4 100644 --- a/src/equipment/schema.py +++ b/src/equipment/schema.py @@ -88,6 +88,7 @@ class EquipmentRead(DefaultBase): min_eac_value: Optional[float] = Field(None, nullable=True, le=MAX_PRICE) min_seq: Optional[float] = Field(None, nullable=True) last_actual_year: Optional[int] = Field(None, nullable=True) + maximo_data: Optional[List[dict]] = Field(None, nullable=True) class EquipmentTop10EconomicLife(EquipmentBase): diff --git a/src/equipment/service.py b/src/equipment/service.py index e0289d7..68b8d06 100644 --- a/src/equipment/service.py +++ b/src/equipment/service.py @@ -9,7 +9,7 @@ from ..equipment_master.model import EquipmentMaster from .schema import EquipmentCreate, EquipmentUpdate, MasterBase from typing import Optional -from src.database.core import DbSession +from src.database.core import DbSession, CollectorDbSession from src.auth.service import CurrentUser from src.config import RELIABILITY_APP_URL import httpx @@ -21,7 +21,7 @@ from sqlalchemy import text async def get_master_by_assetnum( - *, db_session: DbSession, assetnum: str + *, db_session: DbSession, collector_db_session: CollectorDbSession, assetnum: str ) -> tuple[list[EquipmentTransactionRecords], float | None]: """Returns master records with equipment data based on asset number.""" @@ -117,6 +117,20 @@ async def get_master_by_assetnum( ) min_seq = min_record[1] if min_record else None + maximo_query = f""" + SELECT + * + FROM public.wo_maximo AS a + WHERE a.asset_unit = '3' + AND a.asset_assetnum = '{assetnum}' + AND a.wonum NOT LIKE 'T%' + """ + + query = text(maximo_query) + # Pass parameters to execute to avoid bindparam/name mismatches + result_maximo = await collector_db_session.execute(query) + maximo_record = result_maximo.mappings().all() + return ( equipment_master_record, equipment_record, @@ -124,6 +138,7 @@ async def get_master_by_assetnum( min_eac_value, min_seq, last_actual_year, + maximo_record ) # return result.scalars().all()