From a8610b3a2d55b572ed3c57a2fb948f3d47c65562 Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Fri, 17 Jan 2025 16:01:28 +0700 Subject: [PATCH] minor change --- src/calculation_time_constrains/model.py | 4 +-- src/calculation_time_constrains/service.py | 36 ++++++++-------------- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/src/calculation_time_constrains/model.py b/src/calculation_time_constrains/model.py index 1145137..fc4549f 100644 --- a/src/calculation_time_constrains/model.py +++ b/src/calculation_time_constrains/model.py @@ -72,11 +72,11 @@ class CalculationData(Base, DefaultMixin, IdentityMixin): "CalculationParam", back_populates="calculation_data") equipment_results = relationship( - "CalculationEquipmentResult", lazy="raise" + "CalculationEquipmentResult", lazy="raise", viewonly=True ) results = relationship( - "CalculationResult", lazy="raise" + "CalculationResult", lazy="raise", viewonly=True ) diff --git a/src/calculation_time_constrains/service.py b/src/calculation_time_constrains/service.py index 4c02d83..58ad5bd 100644 --- a/src/calculation_time_constrains/service.py +++ b/src/calculation_time_constrains/service.py @@ -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 )