|
|
|
@ -444,6 +444,7 @@ async def create_calculation_result_service(
|
|
|
|
# Store results for each equipment
|
|
|
|
# Store results for each equipment
|
|
|
|
equipment_results: List[CalculationEquipmentResult] = []
|
|
|
|
equipment_results: List[CalculationEquipmentResult] = []
|
|
|
|
total_corrective_costs = np.zeros(months_num)
|
|
|
|
total_corrective_costs = np.zeros(months_num)
|
|
|
|
|
|
|
|
total_overhaul_cost = np.zeros(months_num)
|
|
|
|
total_daily_failures = np.zeros(months_num)
|
|
|
|
total_daily_failures = np.zeros(months_num)
|
|
|
|
|
|
|
|
|
|
|
|
# Calculate for each equipment
|
|
|
|
# Calculate for each equipment
|
|
|
|
@ -468,6 +469,7 @@ async def create_calculation_result_service(
|
|
|
|
equipment_optimum_index = np.argmin(equipment_total_cost)
|
|
|
|
equipment_optimum_index = np.argmin(equipment_total_cost)
|
|
|
|
equipment_failure_sum = sum(daily_failures[:equipment_optimum_index])
|
|
|
|
equipment_failure_sum = sum(daily_failures[:equipment_optimum_index])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
equipment_results.append(
|
|
|
|
equipment_results.append(
|
|
|
|
CalculationEquipmentResult(
|
|
|
|
CalculationEquipmentResult(
|
|
|
|
corrective_costs=corrective_costs.tolist(),
|
|
|
|
corrective_costs=corrective_costs.tolist(),
|
|
|
|
@ -484,14 +486,16 @@ async def create_calculation_result_service(
|
|
|
|
|
|
|
|
|
|
|
|
# Add to totals
|
|
|
|
# Add to totals
|
|
|
|
total_corrective_costs += corrective_costs
|
|
|
|
total_corrective_costs += corrective_costs
|
|
|
|
|
|
|
|
total_overhaul_cost += overhaul_cost_points
|
|
|
|
total_daily_failures += daily_failures
|
|
|
|
total_daily_failures += daily_failures
|
|
|
|
|
|
|
|
|
|
|
|
db_session.add_all(equipment_results)
|
|
|
|
db_session.add_all(equipment_results)
|
|
|
|
|
|
|
|
|
|
|
|
# Calculate optimum points using total costs
|
|
|
|
# Calculate optimum points using total costs
|
|
|
|
total_cost = total_corrective_costs + overhaul_cost_points
|
|
|
|
total_cost = total_corrective_costs + total_overhaul_cost
|
|
|
|
optimum_oh_index = np.argmin(total_cost)
|
|
|
|
optimum_oh_index = np.argmin(total_cost)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
numbers_of_failure = sum(total_daily_failures[:optimum_oh_index])
|
|
|
|
numbers_of_failure = sum(total_daily_failures[:optimum_oh_index])
|
|
|
|
|
|
|
|
|
|
|
|
optimum = OptimumResult(
|
|
|
|
optimum = OptimumResult(
|
|
|
|
|