|
|
|
@ -15,7 +15,8 @@ from .schema import (
|
|
|
|
SimulationInput,
|
|
|
|
SimulationInput,
|
|
|
|
SimulationPagination,
|
|
|
|
SimulationPagination,
|
|
|
|
SimulationPlotResult,
|
|
|
|
SimulationPlotResult,
|
|
|
|
SimulationCalc
|
|
|
|
SimulationCalc,
|
|
|
|
|
|
|
|
SimulationData
|
|
|
|
)
|
|
|
|
)
|
|
|
|
from .service import (
|
|
|
|
from .service import (
|
|
|
|
create_simulation,
|
|
|
|
create_simulation,
|
|
|
|
@ -25,6 +26,8 @@ from .service import (
|
|
|
|
get_simulation_by_id,
|
|
|
|
get_simulation_by_id,
|
|
|
|
get_simulation_with_calc_result,
|
|
|
|
get_simulation_with_calc_result,
|
|
|
|
get_simulation_with_plot_result,
|
|
|
|
get_simulation_with_plot_result,
|
|
|
|
|
|
|
|
update_simulation,
|
|
|
|
|
|
|
|
get_result_ranking
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
router = APIRouter()
|
|
|
|
@ -43,6 +46,16 @@ async def get_all_simulation(db_session: DbSession, common: CommonParameters):
|
|
|
|
"message": "Simulations result retrieved successfully",
|
|
|
|
"message": "Simulations result retrieved successfully",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/{simulation_id}", response_model=StandardResponse[SimulationData])
|
|
|
|
|
|
|
|
async def get_simulation(db_session: DbSession, simulation_id):
|
|
|
|
|
|
|
|
"""Get simulation."""
|
|
|
|
|
|
|
|
result = await get_simulation_by_id(db_session=db_session, simulation_id=simulation_id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
"data": result,
|
|
|
|
|
|
|
|
"status": "success",
|
|
|
|
|
|
|
|
"message": "Simulation result retrieved successfully",
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@router.post("/run", response_model=StandardResponse[str])
|
|
|
|
@router.post("/run", response_model=StandardResponse[str])
|
|
|
|
async def run_simulations(
|
|
|
|
async def run_simulations(
|
|
|
|
@ -67,12 +80,16 @@ async def run_simulations(
|
|
|
|
|
|
|
|
|
|
|
|
##background_tasks.add_task(execute_simulation, db_session=db_session ,simulation_id=simulation_id, sim_data=sim_data)
|
|
|
|
##background_tasks.add_task(execute_simulation, db_session=db_session ,simulation_id=simulation_id, sim_data=sim_data)
|
|
|
|
|
|
|
|
|
|
|
|
await update_equipment_for_simulation(
|
|
|
|
results = await update_equipment_for_simulation(
|
|
|
|
db_session=db_session, project_name=project.project_name, schematic_name=simulation_in.SchematicName
|
|
|
|
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 execute_simulation(
|
|
|
|
await execute_simulation(
|
|
|
|
db_session=db_session, simulation_id=simulation_id, sim_data=sim_data, is_saved=True
|
|
|
|
db_session=db_session, simulation_id=simulation_id, sim_data=sim_data, is_saved=True, eq_update=results
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
@ -120,6 +137,17 @@ async def get_simulation_result_plot(db_session: DbSession, simulation_id):
|
|
|
|
"message": "Simulation result retrieved successfully",
|
|
|
|
"message": "Simulation result retrieved successfully",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/result/ranking/{simulation_id}", response_model=StandardResponse[List[SimulationCalc]])
|
|
|
|
|
|
|
|
async def get_simulation_result_ranking(db_session: DbSession, simulation_id):
|
|
|
|
|
|
|
|
"""Get simulation result."""
|
|
|
|
|
|
|
|
simulation_result = await get_result_ranking(db_session=db_session, simulation_id=simulation_id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
"data": simulation_result,
|
|
|
|
|
|
|
|
"status": "success",
|
|
|
|
|
|
|
|
"message": "Simulation result retrieved successfully",
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/custom_parameters", response_model=StandardResponse[list])
|
|
|
|
@router.get("/custom_parameters", response_model=StandardResponse[list])
|
|
|
|
async def get_custom_parameters_controller(db_session: DbSession):
|
|
|
|
async def get_custom_parameters_controller(db_session: DbSession):
|
|
|
|
|