From aa432c6015b52aee296b61cd4b6aa2d0323d28bf Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Wed, 26 Feb 2025 14:54:24 +0700 Subject: [PATCH] fix calculation --- src/calculation_time_constrains/service.py | 20 ++++++++++++-------- src/overhaul_activity/model.py | 2 +- src/overhaul_activity/service.py | 4 ++-- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/calculation_time_constrains/service.py b/src/calculation_time_constrains/service.py index 5949313..ff8ff0f 100644 --- a/src/calculation_time_constrains/service.py +++ b/src/calculation_time_constrains/service.py @@ -140,9 +140,9 @@ async def get_corrective_cost_time_chart( days_difference = (end_date - start_date).days today = datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) - - url_prediction = f"http://192.168.1.82:8000/reliability/main/number-of-failures/{location_tag}/{start_date.strftime('%Y-%m-%d')}/{end_date.strftime('%Y-%m-%d')}" - url_history = f"http://192.168.1.82:8000/reliability/main/failures/{location_tag}/{start_date.strftime('%Y-%m-%d')}/{end_date.strftime('%Y-%m-%d')}" + tomorrow = today + datetime.timedelta(days=1) + url_prediction = f"http://192.168.1.82:8000/reliability/main/number-of-failures/{location_tag}/{tomorrow.strftime('%Y-%m-%d')}/{end_date.strftime('%Y-%m-%d')}" + url_history = f"http://192.168.1.82:8000/reliability/main/failures/{location_tag}/{start_date.strftime('%Y-%m-%d')}/{today.strftime('%Y-%m-%d')}" # Initialize monthly data dictionary monthly_data = {} @@ -366,10 +366,7 @@ async def create_param_and_data( async def get_calculation_result(db_session: DbSession, calculation_id: str): - start_date = datetime.datetime(2025, 1, 1) - end_date = datetime.datetime(2026, 12, 31) - months_num = get_months_between(start_date, end_date) scope_calculation = await get_calculation_data_by_id( db_session=db_session, calculation_id=calculation_id @@ -388,6 +385,10 @@ async def get_calculation_result(db_session: DbSession, calculation_id: str): status_code=status.HTTP_404_NOT_FOUND, detail="A data with this id does not exist.", ) + start_date = datetime.datetime.combine(scope_overhaul.start_date, datetime.time.min) + end_date = datetime.datetime.combine(scope_overhaul.end_date, datetime.time.min) + + months_num = get_months_between(start_date, end_date) calculation_results = [] for i in range(months_num): @@ -511,10 +512,13 @@ async def get_calculation_by_assetnum( async def create_calculation_result_service( db_session: DbSession, calculation: CalculationData, token: str ) -> CalculationTimeConstrainsRead: - start_date = datetime.datetime(2023, 1, 23) - end_date = datetime.datetime(2025, 12, 31) + scope = await get_scope(db_session=db_session, overhaul_session_id=calculation.overhaul_session_id) + + start_date = datetime.datetime.combine(scope.start_date, datetime.time.min) + end_date = datetime.datetime.combine(scope.end_date, datetime.time.min) + months_num = get_months_between(start_date, end_date) # Get all equipment for this calculation session diff --git a/src/overhaul_activity/model.py b/src/overhaul_activity/model.py index 44afbd0..32da226 100644 --- a/src/overhaul_activity/model.py +++ b/src/overhaul_activity/model.py @@ -27,5 +27,5 @@ class OverhaulActivity(Base, DefaultMixin): overhaul_scope = relationship( "OverhaulScope", - lazy="joined", + lazy="raise", ) diff --git a/src/overhaul_activity/service.py b/src/overhaul_activity/service.py index c86b2a0..8bf57a4 100644 --- a/src/overhaul_activity/service.py +++ b/src/overhaul_activity/service.py @@ -5,7 +5,7 @@ from uuid import UUID from sqlalchemy import Delete, Select, func, select from sqlalchemy import update as sqlUpdate from sqlalchemy.dialects.postgresql import insert -from sqlalchemy.orm import joinedload +from sqlalchemy.orm import joinedload, selectinload from src.auth.service import CurrentUser from src.database.core import DbSession @@ -69,7 +69,7 @@ async def get_all_by_session_id(*, db_session: DbSession, overhaul_session_id): Select(OverhaulActivity) .where(OverhaulActivity.overhaul_scope_id == overhaul_session_id) .options(joinedload(OverhaulActivity.equipment)) - .options(joinedload(OverhaulActivity.overhaul_scope)) + .options(selectinload(OverhaulActivity.overhaul_scope)) ) results = await db_session.execute(query)