From e615d19038530dbf21742dee1fba0514231006ff Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Mon, 4 Aug 2025 16:45:13 +0700 Subject: [PATCH] fix --- src/aeros_simulation/model.py | 7 +++++++ src/aeros_simulation/router.py | 6 +++--- src/aeros_simulation/service.py | 14 ++++++++++++-- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/aeros_simulation/model.py b/src/aeros_simulation/model.py index 7ca894c..6991eae 100644 --- a/src/aeros_simulation/model.py +++ b/src/aeros_simulation/model.py @@ -80,6 +80,10 @@ class AerosNode(Base, DefaultMixin): "AerosSimulationPlotResult", back_populates="aeros_node" ) + aeros_equipment = relationship( + "AerosEquipment", lazy="selectin", primaryjoin="and_(AerosNode.node_name == foreign(AerosEquipment.node_name))", uselist=False + ) + class AerosSimulationCalcResult(Base, DefaultMixin): __tablename__ = "rbd_tr_aeros_simulation_calc_result" @@ -115,6 +119,9 @@ class AerosSimulationCalcResult(Base, DefaultMixin): average_level = Column(Float, nullable=True) potential_production = Column(Float, nullable=True) eaf = Column(Float, nullable=True) + eta = Column(Float, nullable=True) + beta = Column(Float, nullable=True) + mttr = Column(Integer, nullable=True) aeros_simulation_id = Column( UUID(as_uuid=True), ForeignKey("rbd_tr_aeros_simulation.id"), nullable=False diff --git a/src/aeros_simulation/router.py b/src/aeros_simulation/router.py index d91cb49..fa6c43a 100644 --- a/src/aeros_simulation/router.py +++ b/src/aeros_simulation/router.py @@ -84,9 +84,9 @@ async def run_simulations( db_session=db_session, project_name=project.project_name, schematic_name=simulation_in.SchematicName, custom_input=simulation_in.CustomInput ) - await update_simulation( - db_session=db_session, simulation_id=simulation_id, data={"reliability": results} - ) + # await update_simulation( + # db_session=db_session, simulation_id=simulation_id, data={"reliability": results} + # ) await execute_simulation( db_session=db_session, simulation_id=simulation_id, sim_data=sim_data, is_saved=True, eq_update=results diff --git a/src/aeros_simulation/service.py b/src/aeros_simulation/service.py index 1d3f130..ec2a106 100644 --- a/src/aeros_simulation/service.py +++ b/src/aeros_simulation/service.py @@ -160,7 +160,7 @@ async def execute_simulation( simulation.result = result await db_session.commit() await save_simulation_result( - db_session=db_session, simulation_id=simulation_id, result=result, schematic_name=sim_data["SchematicName"] + db_session=db_session, simulation_id=simulation_id, result=result, schematic_name=sim_data["SchematicName"],eq_update=eq_update ) print("Simulation completed with id: %s", simulation_id) @@ -198,7 +198,7 @@ async def get_all_aeros_node(*, db_session: DbSession, schematic_name: Optional[ async def save_simulation_result( - *, db_session: DbSession, simulation_id: UUID, result: dict, schematic_name: str + *, db_session: DbSession, simulation_id: UUID, result: dict, schematic_name: str, eq_update: dict ): print("Saving simulation result") """Save the simulation result.""" @@ -219,6 +219,13 @@ async def save_simulation_result( node_type = "RegularNode" if result["nodeType"] == "RegularNode" else "SchematicNode" node = avaiable_nodes.get(f"{node_type}:{result['nodeName']}", None) + eq_reliability = eq_update.get(result["nodeName"], { + "eta": 0, + "beta": 0, + "mttr": 0 + }) + + if not node: if result["nodeType"] != "RegularNode" and result["nodeType"] != "Schematic": @@ -261,6 +268,9 @@ async def save_simulation_result( average_level=result["averageLevel"], potential_production=result["potentialProduction"], eaf=result["production"] / result["idealProduction"] if result["idealProduction"] > 0 else 0, + beta=eq_reliability["beta"] if node_type == "RegularNode" else None, + eta=eq_reliability["eta"] if node_type == "RegularNode" else None, + mttr=eq_reliability["mttr"] if node_type == "RegularNode" else None ) calc_objects.append(calc_result)