diff --git a/src/equipment/__pycache__/service.cpython-311.pyc b/src/equipment/__pycache__/service.cpython-311.pyc index 2a19362..568b31f 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 2580fb5..6a86c49 100644 --- a/src/equipment/router.py +++ b/src/equipment/router.py @@ -162,6 +162,7 @@ async def get_equipment(db_session: DbSession, collector_db_session: CollectorDb chart_data, min_eac_value, min_seq, + min_eac_year, last_actual_year, maximo_data ) = await get_master_by_assetnum(db_session=db_session, collector_db_session=collector_db_session, assetnum=assetnum) @@ -179,6 +180,7 @@ async def get_equipment(db_session: DbSession, collector_db_session: CollectorDb chart_data=chart_data, min_eac_value=min_eac_value, min_seq=min_seq, + min_eac_year=min_eac_year, last_actual_year=last_actual_year, maximo_data=maximo_data ), diff --git a/src/equipment/schema.py b/src/equipment/schema.py index 7a5acd4..58c709a 100644 --- a/src/equipment/schema.py +++ b/src/equipment/schema.py @@ -87,6 +87,7 @@ class EquipmentRead(DefaultBase): chart_data: List[MasterBase] min_eac_value: Optional[float] = Field(None, nullable=True, le=MAX_PRICE) min_seq: Optional[float] = Field(None, nullable=True) + min_eac_year: Optional[float] = Field(None, nullable=True) last_actual_year: Optional[int] = Field(None, nullable=True) maximo_data: Optional[List[dict]] = Field(None, nullable=True) diff --git a/src/equipment/service.py b/src/equipment/service.py index 68b8d06..cd0e902 100644 --- a/src/equipment/service.py +++ b/src/equipment/service.py @@ -101,21 +101,9 @@ async def get_master_by_assetnum( last_actual_year_result = await db_session.execute(last_actual_year_query) last_actual_year = last_actual_year_result.scalar() - # Third query specifically for minimum eac_eac - min_query = ( - Select(func.min(func.cast(EquipmentTransactionRecords.eac_eac, Float)), EquipmentTransactionRecords.seq) - .join(EquipmentTransactionRecords.equipment) - .filter(Equipment.assetnum == assetnum) - .group_by(EquipmentTransactionRecords.seq) - .order_by(func.min(func.cast(EquipmentTransactionRecords.eac_eac, Float))) - .limit(1) - ) - min_result = await db_session.execute(min_query) - min_record = min_result.first() - min_eac_value = ( - float(min_record[0]) if min_record and min_record[0] is not None else None - ) - min_seq = min_record[1] if min_record else None + min_eac_value = equipment_record.minimum_eac if equipment_record else None + min_seq = equipment_record.minimum_eac_seq if equipment_record else None + min_eac_year = equipment_record.minimum_eac_year if equipment_record else None maximo_query = f""" SELECT @@ -137,6 +125,7 @@ async def get_master_by_assetnum( records, min_eac_value, min_seq, + min_eac_year, last_actual_year, maximo_record ) diff --git a/src/modules/equipment/Eac.py b/src/modules/equipment/Eac.py index f615b7e..24bbcd8 100644 --- a/src/modules/equipment/Eac.py +++ b/src/modules/equipment/Eac.py @@ -274,7 +274,7 @@ class Eac: lowest_eac_record = min(zeros, key=lambda x: float(x.get("npv", 0))) else: lowest_eac_record = min(rslt, key=lambda x: float(x.get("eac", 0))) - # print(json.dumps(lowest_eac_record)) + print(json.dumps(lowest_eac_record)) # Update lcc_equipment_tr_data update_query = """ UPDATE lcc_ms_equipment_data @@ -363,7 +363,7 @@ if __name__ == "__main__": sys.exit(1) cursor = connection.cursor(cursor_factory=DictCursor) - query_main = "SELECT DISTINCT(assetnum) FROM ms_equipment_master" + query_main = "SELECT DISTINCT(assetnum) FROM ms_equipment_master WHERE assetnum = 'A26190'" cursor.execute(query_main) results = cursor.fetchall() diff --git a/src/modules/equipment/__pycache__/Eac.cpython-311.pyc b/src/modules/equipment/__pycache__/Eac.cpython-311.pyc index baa1835..4f302a9 100644 Binary files a/src/modules/equipment/__pycache__/Eac.cpython-311.pyc and b/src/modules/equipment/__pycache__/Eac.cpython-311.pyc differ diff --git a/src/modules/equipment/run.py b/src/modules/equipment/run.py index 0c6558d..daea2e1 100644 --- a/src/modules/equipment/run.py +++ b/src/modules/equipment/run.py @@ -23,18 +23,17 @@ async def main(): # print(f"Error in query_data: {str(e)}") # return - try: - await predict_run() - except Exception as e: - print(f"Error in predict_equipment_data: {str(e)}") - return + # try: + # await predict_run() + # except Exception as e: + # print(f"Error in predict_equipment_data: {str(e)}") + # return try: # eac = Eac() # eac.hitung_eac_equipment(assetnum) - result = await eac_run() - if asyncio.iscoroutine(result): - result = await result + result = eac_run() + result = result if not asyncio.iscoroutine(result) else await result # if the function returned a list of objects, optionally log or handle it if isinstance(result, (list, tuple)):