add new attribute to calculaiton

main
Cizz22 11 months ago
parent df42af12e6
commit a110836242

@ -147,4 +147,14 @@ class CalculationEquipmentResult(Base, DefaultMixin):
optimum_day = Column(Integer, default=1) optimum_day = Column(Integer, default=1)
is_included = Column(Boolean, default=True) 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
)

@ -8,6 +8,7 @@ from pydantic import Field
from src.models import DefultBase from src.models import DefultBase
from dataclasses import dataclass from dataclasses import dataclass
from src.scope_equipment.schema import MasterEquipmentBase
class CalculationTimeConstrainsBase(DefultBase): class CalculationTimeConstrainsBase(DefultBase):
pass pass
@ -70,6 +71,8 @@ class EquipmentResult(CalculationTimeConstrainsBase):
material_cost: float material_cost: float
service_cost: float service_cost: float
optimum_day: int # Added optimum result for each equipment optimum_day: int # Added optimum result for each equipment
is_included: bool
master_equipment: MasterEquipmentBase
class CalculationTimeConstrainsRead(CalculationTimeConstrainsBase): class CalculationTimeConstrainsRead(CalculationTimeConstrainsBase):
id: Union[UUID, str] id: Union[UUID, str]

@ -58,9 +58,6 @@ def get_corrective_cost_time_chart(material_cost: float, service_cost: float, da
# Calculate daily failure rate using sigmoid function # Calculate daily failure rate using sigmoid function
daily_failure_rate = base_rate / (1 + np.exp(-acceleration * (day_points - grace_period)/days)) 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 # Calculate cumulative failures
failure_counts = np.cumsum(daily_failure_rate) failure_counts = np.cumsum(daily_failure_rate)

Loading…
Cancel
Save