From e805ba42edb41e2c7506d6319de65e1a054a13de Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Wed, 17 Sep 2025 08:51:58 +0700 Subject: [PATCH] fix --- src/calculation_budget_constrains/router.py | 2 +- src/calculation_budget_constrains/service.py | 7 +- src/calculation_time_constrains/service.py | 45 +------ src/overhaul/service.py | 117 ++++++++++++++++--- src/overhaul_scope/service.py | 2 +- 5 files changed, 104 insertions(+), 69 deletions(-) diff --git a/src/calculation_budget_constrains/router.py b/src/calculation_budget_constrains/router.py index 568533a..3e9ab7c 100644 --- a/src/calculation_budget_constrains/router.py +++ b/src/calculation_budget_constrains/router.py @@ -24,7 +24,7 @@ async def get_target_reliability( """Get all scope pagination.""" results = await get_simulation_results( - simulation_id="76b2c981-c338-4d69-b85b-6977cb47ed41", + simulation_id = "f31103ef-1ac8-4c29-8f66-ea9ccf06bd87", token=token ) diff --git a/src/calculation_budget_constrains/service.py b/src/calculation_budget_constrains/service.py index ecb2482..6906fce 100644 --- a/src/calculation_budget_constrains/service.py +++ b/src/calculation_budget_constrains/service.py @@ -48,8 +48,8 @@ async def get_all_budget_constrains( plant_result=plant_result, eq_results=eq_results, ) - - + + # Create result array of dictionaries result = [ { @@ -91,12 +91,11 @@ def calculate_asset_eaf_contributions(plant_result, eq_results): Calculate each asset's negative contribution to plant EAF Higher contribution = more impact on reducing plant EAF """ - plant_production = plant_result.get('production', 0) results = defaultdict(float) for asset in eq_results: - results[asset['aeros_node']['node_name']] = asset['contribution'] * 100 + results[asset['aeros_node']['node_name']] = asset['contribution'] * 100.0 # Sort by contribution (worst contributors first) # results = sorted(results.items(), key=lambda x: x[1], reverse=True) diff --git a/src/calculation_time_constrains/service.py b/src/calculation_time_constrains/service.py index e0a40ac..3a7ee78 100644 --- a/src/calculation_time_constrains/service.py +++ b/src/calculation_time_constrains/service.py @@ -904,50 +904,7 @@ class OptimumCostModel: return None return None - """ - Async version of reliability API call with retry logic - - Args: - target_date: Date to query - location_tag: Location identifier - max_retries: Maximum number of retry attempts - retry_delay: Initial delay between retries (exponential backoff) - - Returns: - Reliability value or None if failed - """ - date_str = target_date.strftime('%Y-%m-%d %H:%M:%S.%f') - url = f"{self.api_base_url}/calculate/reliability/{location_tag}/{date_str}" - - for attempt in range(max_retries + 1): - try: - async with self.session.get(url) as response: - if response.status == 200: - data = await response.json() - return data['data']['value'] - elif response.status >= 500: - # Server error - may be worth retrying - error_msg = f"Server error {response.status} for {location_tag} on {date_str}" - if attempt < max_retries: - await asyncio.sleep(retry_delay * (2 ** attempt)) - continue - else: - # Client error - no point retrying - print(f"API Error for {location_tag} on {date_str}: Status {response.status}") - return None - - except aiohttp.ClientError as e: - print(f"Network error for {location_tag} on {date_str} (attempt {attempt + 1}): {e}") - if attempt < max_retries: - await asyncio.sleep(retry_delay * (2 ** attempt)) - continue - return None - except Exception as e: - print(f"Unexpected error for {location_tag} on {date_str}: {e}") - return None - - return None - + async def _get_reliability_equipment_batch( self, location_tags: List[str], diff --git a/src/overhaul/service.py b/src/overhaul/service.py index df4c412..901a84f 100644 --- a/src/overhaul/service.py +++ b/src/overhaul/service.py @@ -40,25 +40,104 @@ def get_overhaul_system_components(): """Get all overhaul system components with dummy data.""" powerplant_reliability = { - "Plant Control": 98, - "SPS": 98, - "Turbine": 98, - "Generator": 98, - "Condensate Water": 98, - "Feedwater System": 98, - "Cooling Water": 98, - "SCR": 98, - "Ash Handling": 98, - "Air Flue Gas": 98, - "Boiler": 98, - "SAC-IAC": 98, - "KLH": 98, - "CL": 98, - "Desalination": 98, - "FGD": 98, - "CHS": 98, - "SSB": 98, - "WTP": 98, + "Plant Control": { + "availability": 0.9994866529774127, + "efficiency": 0.9994956204510826, + "total_uptime": 17523.0, + }, + "SPS": { + "availability": 0.9932694501483038, + "efficiency": 0.9810193821516867, + "total_uptime": 17414.000000000062, + }, + "Turbine": { + "availability": 0.9931553730321733, + "efficiency": 0.9666721976783572, + "total_uptime": 17412.000000000062, + }, + "Generator": { + "availability": 0.9934405658224995, + "efficiency": 0.9625424646119242, + "total_uptime": 17417.000000000062, + }, + "Condensate Water": { + "availability": 0.9934405658224995, + "efficiency": 0.9531653517377116, + "total_uptime": 17417.000000000062, + }, + "Feedwater System": { + "availability": 0.9936116814966953, + "efficiency": 0.9687512254370128, + "total_uptime": 17420.000000000062, + }, + "Cooling Water": { + "availability": 0.99355464293863, + "efficiency": 0.9749999189617731, + "total_uptime": 17419.000000000062, + }, + "SCR": { + "availability": 0.9996577686516085, + "efficiency": 0.9996690612127086, + "total_uptime": 17526.0, + }, + + "Ash Handling": { + "availability": 0.9931838923112059, + "efficiency": 0.9933669638506657, + "total_uptime": 17412.500000000062, + }, + "Air Flue Gas": { + "availability": 0.9906456764773022, + "efficiency": 0.8565868045084128, + "total_uptime": 17368.000000000062, + }, + "Boiler": { + "availability": 0.9934976043805648, + "efficiency": 0.9693239775686654, + "total_uptime": 17418.000000000062, + }, + "SAC-IAC": { + "availability": 0.9936116814966953, + "efficiency": 0.9878742473840645, + "total_uptime": 17420.000000000062, + }, + "KLH": { + "availability": 0.992185717545064, + "efficiency": 0.9426658166507496, + "total_uptime": 17395.000000000062, + }, + "CL": { + "availability": 0.9984029203741729, + "efficiency": 0.9984546987034779, + "total_uptime": 17504.0, + }, + "Desalination": { + "total_uptime": 17275.500000000062, + "availability": 0.9853696098562663, + "efficiency": 0.9118366404915063, + + }, + "FGD": { + "availability": 0.9933835272644342, + "efficiency": 0.9623105228919693, + "total_uptime": 17416.000000000062, + }, + "CHS": { + "availability": 1.0, + "efficiency": 0.9665857756206829, + "total_uptime": 17532.0, + }, + "SSB": { + "availability": 0.9933264887063691, + "efficiency": 0.993508327346586, + "total_uptime": 17415.000000000062, + + }, + "WTP": { + "availability": 0.9925849874515208, + "efficiency": 0.9925849874515206, + "total_uptime": 17402.000000000062, + }, } return powerplant_reliability diff --git a/src/overhaul_scope/service.py b/src/overhaul_scope/service.py index cb7b88b..b39a846 100644 --- a/src/overhaul_scope/service.py +++ b/src/overhaul_scope/service.py @@ -211,7 +211,7 @@ async def get_overview_overhaul(*, db_session: DbSession): "end_date": selected_overhaul.end_date, "duration_oh": selected_overhaul.duration_oh, "crew_number": selected_overhaul.crew_number, - "remaining_days": (selected_overhaul.end_date - current_date).days, + "remaining_days": (selected_overhaul.start_date - current_date).days, "equipment_count": len(results.scalars().all()), }, }