From cc6f05c905bc3d15a38173ab9ff37c65d8c7ec18 Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Tue, 29 Jul 2025 17:37:54 +0700 Subject: [PATCH] fix eaf --- src/aeros_simulation/service.py | 11 +++++++---- src/dashboard_model/service.py | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/aeros_simulation/service.py b/src/aeros_simulation/service.py index f86dbed..2b14a11 100644 --- a/src/aeros_simulation/service.py +++ b/src/aeros_simulation/service.py @@ -206,7 +206,7 @@ async def save_simulation_result( """Save the simulation result""" avaiable_nodes = { - node.node_name: node + f"{node.node_type}:{node.node_name}": node for node in await get_all_aeros_node(db_session=db_session, schematic_name=schematic_name) } calc_objects = [] @@ -215,11 +215,13 @@ async def save_simulation_result( try: for result in calc_result: - node = avaiable_nodes.get(result["nodeName"], None) + node_type = "RegularNode" if result["nodeType"] == "RegularNode" else "SchematicNode" + node = avaiable_nodes.get(f"{node_type}:{result['nodeName']}", None) + + if not node: if result["nodeType"] != "RegularNode" and result["nodeType"] != "Schematic": continue - node = await get_or_save_node( db_session=db_session, node_data=result, type="calc" ) @@ -263,7 +265,8 @@ async def save_simulation_result( calc_objects.append(calc_result) for result in plot_result: - node = avaiable_nodes.get(result["nodeName"], None) + node_type = "RegularNode" if result["nodeType"] == "RegularNode" else "SchematicNode" + node = avaiable_nodes.get(f"{node_type}:{result['nodeName']}", None) if not node: if result["nodeType"] != "RegularNode" and result["nodeType"] != "Schematic": continue diff --git a/src/dashboard_model/service.py b/src/dashboard_model/service.py index ec1e13d..54a9463 100644 --- a/src/dashboard_model/service.py +++ b/src/dashboard_model/service.py @@ -39,9 +39,9 @@ async def get_model_data(*, db_session: DbSession, simulation_id: Optional[UUID] availability = (main_calc_data.availability) * 100 # Equivalent Forced Outage Rate (EFOR) - EFOR = (main_calc_data.total_downtime / total_time) * 100 + EFOR = (main_calc_data.total_cm_downtime / total_time) * 100 - EAF = (main_calc_data.production / main_calc_data.ideal_production) * 100 + EAF = (main_calc_data.availability - (main_calc_data.total_cm_downtime / total_time) - (main_calc_data.total_oh_downtime / total_time)) * 100 powerplant_reliability = { "COAL HANDLING (CHS)": 98,