diff --git a/src/calculation_target_reliability/router.py b/src/calculation_target_reliability/router.py index fc15abb..a381ead 100644 --- a/src/calculation_target_reliability/router.py +++ b/src/calculation_target_reliability/router.py @@ -1,3 +1,4 @@ +import asyncio from typing import Dict, List, Optional from temporalio.client import Client from fastapi import APIRouter, HTTPException, status @@ -76,13 +77,13 @@ async def get_target_reliability( print(f"Workflow {workflow_id} finished with status: {status}") return status - print(f"Workflow {workflow_id} still {status}, checking again in {interval} seconds...") + print(f"Workflow {workflow_id} still {status}, checking again in {30} seconds...") - except WorkflowNotFoundError: + except Exception as e: print(f"Workflow {workflow_id} not found, treating as done.") return "NOT_FOUND" - await asyncio.sleep(interval) + await asyncio.sleep(30) diff --git a/src/calculation_target_reliability/service.py b/src/calculation_target_reliability/service.py index cc12a15..1db56f3 100644 --- a/src/calculation_target_reliability/service.py +++ b/src/calculation_target_reliability/service.py @@ -96,13 +96,19 @@ def calculate_asset_eaf_contributions(plant_result, eq_results, standard_scope, for asset in eq_results: asset_name = asset.get("aeros_node").get("node_name") + contribution_factor = 0 + birbaum = 0 + current_availability = 0 + downtime = 0 + if asset_name not in standard_scope: continue - - contribution_factor = asset.get("contribution_factor", 0.0) - birbaum = asset.get("contribution", 0.0) - current_availability = asset.get("availability", 0.0) - downtime = asset.get("total_downtime", 0.0) + + if asset: + contribution_factor = asset.get("contribution_factor", 0.0) + birbaum = asset.get("contribution", 0.0) + current_availability = asset.get("availability", 0.0) + downtime = asset.get("total_downtime", 0.0) # Filter 1: Importance too low if contribution_factor < MIN_BIRNBAUM_IMPORTANCE: diff --git a/src/calculation_time_constrains/full_equipment_with_downtime_opdesc.json b/src/calculation_time_constrains/full_equipment_with_downtime_opdesc.json index 4c2e841..98586ec 100644 --- a/src/calculation_time_constrains/full_equipment_with_downtime_opdesc.json +++ b/src/calculation_time_constrains/full_equipment_with_downtime_opdesc.json @@ -109778,7 +109778,7 @@ "Description": "WALL DESLAGGER A-2", "Location": "3AI-Y502A", "Estimasi Waktu Maint. / Downtime / Gangguan (Jam)": 2880.0, - "Diskripsi Operasional Akibat Equip. Failure": "Trip" + "Diskripsi Operasional Akibat Equip. Failure": "No Effect" }, { "Asset No.": "A22949", diff --git a/src/maximo/service.py b/src/maximo/service.py index 4c4d97f..19b7a75 100644 --- a/src/maximo/service.py +++ b/src/maximo/service.py @@ -62,7 +62,7 @@ filtered_wo AS ( FROM wo_costs w JOIN location_max lm ON w.asset_location = lm.asset_location WHERE w.total_wo_cost > 0 - AND w.total_wo_cost >= lm.max_cost * 0.10 -- keep within 10% of max + AND w.total_wo_cost >= lm.max_cost * 0.1 -- keep within 10% of max ) SELECT asset_location,