You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.8 KiB
Python
111 lines
2.8 KiB
Python
from datetime import datetime
|
|
from typing import Any, Dict, List, Optional
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from src.models import DefultBase, Pagination
|
|
|
|
|
|
class OverhaulBase(BaseModel):
|
|
pass
|
|
|
|
|
|
class OverhaulCriticalParts(OverhaulBase):
|
|
criticalParts: List[str] = Field(..., description="List of critical parts")
|
|
|
|
|
|
class OverhaulSchedules(OverhaulBase):
|
|
schedules: List[Dict[str, Any]] = Field(..., description="List of schedules")
|
|
|
|
|
|
class OverhaulSystemComponents(OverhaulBase):
|
|
systemComponents: Dict[str, Any] = Field(
|
|
..., description="List of system components"
|
|
)
|
|
|
|
|
|
class OverhaulRead(OverhaulBase):
|
|
overview: Dict[str, Any]
|
|
criticalParts: List[str]
|
|
schedules: List[Dict[str, Any]]
|
|
systemComponents: Dict[str, Any]
|
|
|
|
class AssetWeight(OverhaulBase):
|
|
node: dict
|
|
availability:float
|
|
contribution: float
|
|
required_improvement: float
|
|
num_of_failures: int
|
|
down_time: float
|
|
efficiency: float
|
|
improvement_impact:float
|
|
birbaum: float
|
|
|
|
class MaintenanceScenario(OverhaulBase):
|
|
location_tag: str
|
|
current_eaf: float
|
|
projected_eaf_improvement: float
|
|
priority_score: float
|
|
plant_level_benefit: float = 0.0
|
|
capacity_weight : float
|
|
|
|
|
|
class OptimizationResult(OverhaulBase):
|
|
current_plant_eaf: float
|
|
target_plant_eaf: float
|
|
possible_plant_eaf:float
|
|
eaf_gap: float
|
|
eaf_improvement_text:str
|
|
recommended_reduced_outage:Optional[float] = 0
|
|
warning_message:Optional[str]
|
|
asset_contributions: List[dict]
|
|
optimization_success: bool = False
|
|
simulation_id: Optional[str] = None
|
|
|
|
|
|
class TargetReliabiltiyQuery(DefultBase):
|
|
oh_session_id: Optional[str] = Field(None)
|
|
eaf_input: float = Field(99.8)
|
|
duration: int = Field(17520)
|
|
simulation_id: Optional[str] = Field(None)
|
|
cut_hours:int = Field(0)
|
|
|
|
# {
|
|
# "overview": {
|
|
# "totalEquipment": 30,
|
|
# "nextSchedule": {
|
|
# "date": "2025-01-12",
|
|
# "Overhaul": "B",
|
|
# "equipmentCount": 30
|
|
# }
|
|
# },
|
|
# "criticalParts": [
|
|
# "Boiler feed pump",
|
|
# "Boiler reheater system",
|
|
# "Drum Level (Right) Root Valve A",
|
|
# "BCP A Discharge Valve",
|
|
# "BFPT A EXH Press HI Root VLV"
|
|
# ],
|
|
# "schedules": [
|
|
# {
|
|
# "date": "2025-01-12",
|
|
# "Overhaul": "B",
|
|
# "status": "upcoming"
|
|
# }
|
|
# // ... other scheduled overhauls
|
|
# ],
|
|
# "systemComponents": {
|
|
# "boiler": {
|
|
# "status": "operational",
|
|
# "lastOverhaul": "2024-06-15"
|
|
# },
|
|
# "turbine": {
|
|
# "hpt": { "status": "operational" },
|
|
# "ipt": { "status": "operational" },
|
|
# "lpt": { "status": "operational" }
|
|
# }
|
|
# // ... other major components
|
|
# }
|
|
# }
|