|
|
|
|
@ -63,32 +63,20 @@ async def create_param_and_data(*, db_session: DbSession, calculation_param_in:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def get_calculation_result(db_session: DbSession, calculation_id: str):
|
|
|
|
|
calculation = await get_calculation_data_by_id(db_session=db_session, calculation_id=calculation_id)
|
|
|
|
|
reference = await get_by_assetnum(db_session=db_session, assetnum=calculation.reference_id) if calculation.overhaul_reference_type == OverhaulReferenceType.ASSET else await get(db_session=db_session, scope_id=calculation.reference_id)
|
|
|
|
|
|
|
|
|
|
stmt = select(CalculationResult).filter(
|
|
|
|
|
CalculationResult.calculation_data_id == calculation_id).order_by(CalculationResult.day)
|
|
|
|
|
|
|
|
|
|
optimum = stmt.filter(CalculationResult.day == calculation.optimum_oh_day)
|
|
|
|
|
results = await db_session.execute(stmt)
|
|
|
|
|
optimumOh = await db_session.scalar(optimum)
|
|
|
|
|
|
|
|
|
|
optimumRes = {
|
|
|
|
|
"overhaulCost": optimumOh.overhaul_cost,
|
|
|
|
|
"correctiveCost": optimumOh.corrective_cost,
|
|
|
|
|
"numOfFailures": optimumOh.num_failures,
|
|
|
|
|
"days": optimumOh.day
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
scope_calculation = await get_calculation_data_by_id(db_session=db_session, calculation_id=calculation_id)
|
|
|
|
|
if not scope_calculation:
|
|
|
|
|
raise HTTPException(
|
|
|
|
|
status_code=status.HTTP_404_NOT_FOUND,
|
|
|
|
|
detail="A data with this id does not exist.",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# Check if calculation already exist
|
|
|
|
|
return CalculationTimeConstrainsRead(
|
|
|
|
|
id=calculation.id,
|
|
|
|
|
name=reference.scope_name if hasattr(
|
|
|
|
|
reference, "scope_name") else reference.master_equipment.name,
|
|
|
|
|
reference=reference.assetnum if hasattr(
|
|
|
|
|
reference, "assetnum") else reference.scope_name,
|
|
|
|
|
results=results.scalars().all(),
|
|
|
|
|
optimumOh=optimumRes
|
|
|
|
|
id=scope_calculation.id,
|
|
|
|
|
reference=scope_calculation.overhaul_session_id,
|
|
|
|
|
results=scope_calculation.results,
|
|
|
|
|
optimum_oh=scope_calculation.optimum_oh_day,
|
|
|
|
|
equipment_results=scope_calculation.equipment_results
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|