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.
180 lines
4.6 KiB
Python
180 lines
4.6 KiB
Python
from typing import Optional
|
|
|
|
from sqlalchemy import Delete, Select
|
|
|
|
from src.auth.service import CurrentUser
|
|
from src.database.core import DbSession
|
|
from src.overhaul_scope.model import OverhaulScope
|
|
from src.overhaul_scope.service import get_all as get_all_session
|
|
from src.overhaul_scope.service import get_overview_overhaul
|
|
|
|
|
|
async def get_overhaul_overview(db_session: DbSession):
|
|
"""Get all overhaul overview."""
|
|
results = await get_overview_overhaul(db_session=db_session)
|
|
|
|
return results
|
|
|
|
|
|
def get_overhaul_critical_parts():
|
|
"""Get all overhaul critical parts."""
|
|
return [
|
|
"Boiler feed pump",
|
|
"Boiler reheater system",
|
|
"Drum Level (Right) Root Valve A",
|
|
"BCP A Discharge Valve",
|
|
"BFPT A EXH Press HI Root VLV",
|
|
]
|
|
|
|
|
|
async def get_overhaul_schedules(*, db_session: DbSession):
|
|
"""Get all overhaul schedules."""
|
|
query = Select(OverhaulScope)
|
|
|
|
results = await db_session.execute(query)
|
|
|
|
return results.scalars().all()
|
|
|
|
|
|
def get_overhaul_system_components():
|
|
"""Get all overhaul system components with dummy data."""
|
|
|
|
powerplant_reliability = {
|
|
"Plant Control": 98,
|
|
"SPS": 98,
|
|
"Turbine": 98,
|
|
"Generator": 98,
|
|
"Condensate Water": 98,
|
|
"Feedwater System": 98,
|
|
"Cooling Water": 98,
|
|
"SCR": 98,
|
|
"Ash Handling": 98,
|
|
"Air Flue Gas": 98,
|
|
"Boiler": 98,
|
|
"SAC-IAC": 98,
|
|
"KLH": 98,
|
|
"CL": 98,
|
|
"Desalination": 98,
|
|
"FGD": 98,
|
|
"CHS": 98,
|
|
"SSB": 98,
|
|
"WTP": 98,
|
|
}
|
|
|
|
return powerplant_reliability
|
|
|
|
return {
|
|
"HPT": {
|
|
"efficiency": "92%",
|
|
"work_hours": "1200",
|
|
"reliability": "96%",
|
|
},
|
|
"IPT": {
|
|
"efficiency": "91%",
|
|
"work_hours": "1100",
|
|
"reliability": "95%",
|
|
},
|
|
"LPT": {
|
|
"efficiency": "90%",
|
|
"work_hours": "1000",
|
|
"reliability": "94%",
|
|
},
|
|
"EG": {
|
|
"efficiency": "88%",
|
|
"work_hours": "950",
|
|
"reliability": "93%",
|
|
},
|
|
"boiler": {
|
|
"efficiency": "90%",
|
|
"work_hours": "1000",
|
|
"reliability": "95%",
|
|
},
|
|
"HPH1": {
|
|
"efficiency": "89%",
|
|
"work_hours": "1050",
|
|
"reliability": "94%",
|
|
},
|
|
"HPH2": {
|
|
"efficiency": "88%",
|
|
"work_hours": "1020",
|
|
"reliability": "93%",
|
|
},
|
|
"HPH3": {
|
|
"efficiency": "87%",
|
|
"work_hours": "1010",
|
|
"reliability": "92%",
|
|
},
|
|
"HPH5": {
|
|
"efficiency": "86%",
|
|
"work_hours": "980",
|
|
"reliability": "91%",
|
|
},
|
|
"HPH6": {
|
|
"efficiency": "85%",
|
|
"work_hours": "970",
|
|
"reliability": "90%",
|
|
},
|
|
"HPH7": {
|
|
"efficiency": "84%",
|
|
"work_hours": "960",
|
|
"reliability": "89%",
|
|
},
|
|
"Condensor": {
|
|
"efficiency": "83%",
|
|
"work_hours": "940",
|
|
"reliability": "88%",
|
|
},
|
|
"Deaerator": {
|
|
"efficiency": "82%",
|
|
"work_hours": "930",
|
|
"reliability": "87%",
|
|
},
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# async def get(*, db_session: DbSession, scope_id: str) -> Optional[Scope]:
|
|
# """Returns a document based on the given document id."""
|
|
# query = Select(Scope).filter(Scope.id == scope_id)
|
|
# result = await db_session.execute(query)
|
|
# return result.scalars().one_or_none()
|
|
|
|
|
|
# async def get_all(*, db_session: DbSession):
|
|
# """Returns all documents."""
|
|
# query = Select(Scope)
|
|
# result = await db_session.execute(query)
|
|
# return result.scalars().all()
|
|
|
|
|
|
# async def create(*, db_session: DbSession, scope_id: ScopeCreate):
|
|
# """Creates a new document."""
|
|
# scope = Scope(**scope_id.model_dump())
|
|
# db_session.add(scope)
|
|
# await db_session.commit()
|
|
# return scope
|
|
|
|
|
|
# async def update(*, db_session: DbSession, scope: Scope, scope_id: ScopeUpdate):
|
|
# """Updates a document."""
|
|
# data = scope_id.model_dump()
|
|
|
|
# update_data = scope_id.model_dump(exclude_defaults=True)
|
|
|
|
# for field in data:
|
|
# if field in update_data:
|
|
# setattr(scope, field, update_data[field])
|
|
|
|
# await db_session.commit()
|
|
|
|
# return scope
|
|
|
|
|
|
# async def delete(*, db_session: DbSession, scope_id: str):
|
|
# """Deletes a document."""
|
|
# query = Delete(Scope).where(Scope.id == scope_id)
|
|
# await db_session.execute(query)
|
|
# await db_session.commit()
|