|
|
|
@ -10,6 +10,7 @@ from .schema import CalculationTimeConstrainsParametersCreate, CalculationTimeCo
|
|
|
|
from .model import CalculationParam, OverhaulReferenceType, CalculationData, CalculationResult
|
|
|
|
from .model import CalculationParam, OverhaulReferenceType, CalculationData, CalculationResult
|
|
|
|
from fastapi import HTTPException, status
|
|
|
|
from fastapi import HTTPException, status
|
|
|
|
from src.scope.service import get_by_scope_name, get
|
|
|
|
from src.scope.service import get_by_scope_name, get
|
|
|
|
|
|
|
|
from src.scope_equipment.service import get_by_assetnum
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_overhaul_cost_by_time_chart(overhaul_cost: float, days: int) -> list:
|
|
|
|
def get_overhaul_cost_by_time_chart(overhaul_cost: float, days: int) -> list:
|
|
|
|
@ -79,7 +80,7 @@ async def create_param_and_data(*, db_session: DbSession, calculation_param_in:
|
|
|
|
|
|
|
|
|
|
|
|
async def get_calculation_result(db_session: DbSession, calculation_id: str):
|
|
|
|
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)
|
|
|
|
calculation = await get_calculation_data_by_id(db_session=db_session, calculation_id=calculation_id)
|
|
|
|
reference = calculation.reference_id if calculation.overhaul_reference_type == OverhaulReferenceType.ASSET else await get(db_session=db_session, scope_id=calculation.reference_id)
|
|
|
|
reference = await get_by_ass if calculation.overhaul_reference_type == OverhaulReferenceType.ASSET else await get(db_session=db_session, scope_id=calculation.reference_id)
|
|
|
|
|
|
|
|
|
|
|
|
stmt = select(CalculationResult).filter(
|
|
|
|
stmt = select(CalculationResult).filter(
|
|
|
|
CalculationResult.calculation_data_id == calculation_id).order_by(CalculationResult.day)
|
|
|
|
CalculationResult.calculation_data_id == calculation_id).order_by(CalculationResult.day)
|
|
|
|
@ -115,7 +116,7 @@ async def get_calculation_data_by_id(db_session: DbSession, calculation_id) -> C
|
|
|
|
async def create_calculation_result_service(db_session: DbSession, calculation_id: UUID, costPerFailure: Optional[float] = None):
|
|
|
|
async def create_calculation_result_service(db_session: DbSession, calculation_id: UUID, costPerFailure: Optional[float] = None):
|
|
|
|
days = 60
|
|
|
|
days = 60
|
|
|
|
calculation = await get_calculation_data_by_id(db_session=db_session, calculation_id=calculation_id)
|
|
|
|
calculation = await get_calculation_data_by_id(db_session=db_session, calculation_id=calculation_id)
|
|
|
|
reference = calculation.reference_id if calculation.overhaul_reference_type == OverhaulReferenceType.ASSET else await get(db_session=db_session, scope_id=calculation.reference_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)
|
|
|
|
|
|
|
|
|
|
|
|
# Parameter
|
|
|
|
# Parameter
|
|
|
|
overhaulCost = calculation.parameter.overhaul_cost
|
|
|
|
overhaulCost = calculation.parameter.overhaul_cost
|
|
|
|
@ -158,8 +159,10 @@ async def create_calculation_result_service(db_session: DbSession, calculation_i
|
|
|
|
|
|
|
|
|
|
|
|
return CalculationTimeConstrainsRead(
|
|
|
|
return CalculationTimeConstrainsRead(
|
|
|
|
id=calculation.id,
|
|
|
|
id=calculation.id,
|
|
|
|
reference=reference if isinstance(
|
|
|
|
name=reference.scope_name if hasattr(
|
|
|
|
reference, str) else reference.scope_name,
|
|
|
|
reference, "scope_name") else reference.master_equipment.name,
|
|
|
|
|
|
|
|
reference=reference.assetnum if hasattr(
|
|
|
|
|
|
|
|
reference, "assetnum") else reference.scope_name,
|
|
|
|
results=calculation_results,
|
|
|
|
results=calculation_results,
|
|
|
|
optimumOh=optimum
|
|
|
|
optimumOh=optimum
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|