|
|
|
|
@ -213,17 +213,17 @@ async def get_plant_calc_result(
|
|
|
|
|
|
|
|
|
|
async def get_result_ranking(*, db_session: DbSession, simulation_id: UUID):
|
|
|
|
|
|
|
|
|
|
query = select(AerosEquipment, AerosSimulationCalcResult.eaf).join(AerosNode, AerosNode.node_name == AerosEquipment.node_name).join(AerosSimulationCalcResult, AerosSimulationCalcResult.aeros_node_id == AerosNode.id)
|
|
|
|
|
query = select(AerosEquipment, AerosSimulationCalcResult.availability).join(AerosNode, AerosNode.node_name == AerosEquipment.node_name).join(AerosSimulationCalcResult, AerosSimulationCalcResult.aeros_node_id == AerosNode.id)
|
|
|
|
|
|
|
|
|
|
query = query.filter(
|
|
|
|
|
and_(
|
|
|
|
|
AerosSimulationCalcResult.aeros_simulation_id == simulation_id,
|
|
|
|
|
AerosNode.node_type == "RegularNode",
|
|
|
|
|
AerosEquipment.custom_parameters.any()
|
|
|
|
|
# AerosEquipment.custom_parameters.any()
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
query = query.order_by(AerosSimulationCalcResult.eaf.desc())
|
|
|
|
|
query = query.order_by(AerosSimulationCalcResult.availability.desc()).limit(10)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
query = query.options(
|
|
|
|
|
@ -238,9 +238,9 @@ async def get_result_ranking(*, db_session: DbSession, simulation_id: UUID):
|
|
|
|
|
location_tag=equipment.location_tag,
|
|
|
|
|
master_equipment=equipment.master_equipment,
|
|
|
|
|
custom_parameters=equipment.custom_parameters,
|
|
|
|
|
eaf=eaf
|
|
|
|
|
availability=availability
|
|
|
|
|
)
|
|
|
|
|
for equipment, eaf in result
|
|
|
|
|
for equipment, availability in result
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
return data
|
|
|
|
|
@ -919,7 +919,7 @@ async def save_recusive_simulation_result_node(*, db_session: DbSession, data, s
|
|
|
|
|
node_type="SchematicNode",
|
|
|
|
|
aeros_schematic_id=aeros_schematic_id,
|
|
|
|
|
structure_name=structure_dict.get(result["nodeName"]),
|
|
|
|
|
model_image= model_image.get(result["nodeName"], "")
|
|
|
|
|
model_image= model_image.get(result["nodeName"], None)
|
|
|
|
|
)
|
|
|
|
|
results.append(schematic)
|
|
|
|
|
|
|
|
|
|
@ -985,6 +985,13 @@ def convert_id_to_none_if_negative(value):
|
|
|
|
|
async def create_simulation(*, db_session: DbSession, simulation_in: SimulationInput):
|
|
|
|
|
"""Create a new simulation."""
|
|
|
|
|
input = simulation_in.model_dump(exclude={"SimulationName"})
|
|
|
|
|
|
|
|
|
|
# Check if is default
|
|
|
|
|
if simulation_in.IsDefault:
|
|
|
|
|
prev_simulation = await get_default_simulation(db_session=db_session)
|
|
|
|
|
prev_simulation.is_default = False
|
|
|
|
|
await db_session.commit()
|
|
|
|
|
|
|
|
|
|
active_simulations = {
|
|
|
|
|
"status": "running",
|
|
|
|
|
"started_at": datetime.now(),
|
|
|
|
|
|