From a11083624283f09362d6ee427996be96b5cffbb6 Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Tue, 4 Feb 2025 15:52:14 +0700 Subject: [PATCH] add new attribute to calculaiton --- src/calculation_time_constrains/model.py | 10 ++++++++++ src/calculation_time_constrains/schema.py | 3 +++ src/calculation_time_constrains/service.py | 3 --- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/calculation_time_constrains/model.py b/src/calculation_time_constrains/model.py index 7d12834..1953b66 100644 --- a/src/calculation_time_constrains/model.py +++ b/src/calculation_time_constrains/model.py @@ -147,4 +147,14 @@ class CalculationEquipmentResult(Base, DefaultMixin): optimum_day = Column(Integer, default=1) is_included = Column(Boolean, default=True) + master_equipment = relationship( + "MasterEquipment", + lazy="joined", + primaryjoin="and_(CalculationEquipmentResult.assetnum == foreign(MasterEquipment.assetnum))", + uselist=False # Add this if it's a one-to-one relationship + ) + + + + diff --git a/src/calculation_time_constrains/schema.py b/src/calculation_time_constrains/schema.py index b39f22f..f97e8b3 100644 --- a/src/calculation_time_constrains/schema.py +++ b/src/calculation_time_constrains/schema.py @@ -8,6 +8,7 @@ from pydantic import Field from src.models import DefultBase from dataclasses import dataclass +from src.scope_equipment.schema import MasterEquipmentBase class CalculationTimeConstrainsBase(DefultBase): pass @@ -70,6 +71,8 @@ class EquipmentResult(CalculationTimeConstrainsBase): material_cost: float service_cost: float optimum_day: int # Added optimum result for each equipment + is_included: bool + master_equipment: MasterEquipmentBase class CalculationTimeConstrainsRead(CalculationTimeConstrainsBase): id: Union[UUID, str] diff --git a/src/calculation_time_constrains/service.py b/src/calculation_time_constrains/service.py index 8930eb0..9f613cf 100644 --- a/src/calculation_time_constrains/service.py +++ b/src/calculation_time_constrains/service.py @@ -57,9 +57,6 @@ def get_corrective_cost_time_chart(material_cost: float, service_cost: float, da # Calculate daily failure rate using sigmoid function daily_failure_rate = base_rate / (1 + np.exp(-acceleration * (day_points - grace_period)/days)) - - noise = np.random.normal(0.0, 0.05, days) # Mean 0.0, Std Dev 0.05 - daily_failure_rate += noise # Calculate cumulative failures failure_counts = np.cumsum(daily_failure_rate)