refactor: add asset name on equipment by id

main
MrWaradana 1 year ago
parent 94f12d1ac5
commit 53383cd812

@ -48,7 +48,7 @@ authenticated_api_router.include_router(
)
authenticated_api_router.include_router(
equipment_router, prefix="/equipment", tags=["equipment"]
equipment_router, prefix="/equipment", tags=["equipment"]
)
authenticated_api_router.include_router(

@ -15,7 +15,6 @@ class Equipment(Base, DefaultMixin, IdentityMixin):
forecasting_target_year = Column(Integer, nullable=False)
manhours_rate = Column(Float, nullable=False)
class MasterRecords(Base, DefaultMixin, IdentityMixin):
__tablename__ = "lcc_tr_data"

@ -31,8 +31,8 @@ async def get_equipment_tree():
@router.get("/{assetnum}", response_model=StandardResponse[EquipmentRead])
async def get_equipment(db_session: DbSession, assetnum: str):
equipment_data, chart_data, min_eac_value, min_seq = await get(
db_session=db_session, assetnum=assetnum
equipment_master_record, equipment_data, chart_data, min_eac_value, min_seq = (
await get(db_session=db_session, assetnum=assetnum)
)
# raise Exception(equipment[0])
if not chart_data:
@ -43,6 +43,7 @@ async def get_equipment(db_session: DbSession, assetnum: str):
return StandardResponse(
data=EquipmentRead(
equipment_master_record=equipment_master_record,
equipment_data=equipment_data,
chart_data=chart_data,
min_eac_value=min_eac_value,

@ -19,6 +19,11 @@ class EquipmentBase(DefaultBase):
updated_by: Optional[str] = Field(None, nullable=True)
class EquipmentMasterBase(DefaultBase):
assetnum: Optional[str] = Field(None, nullable=True)
name: Optional[str] = Field(None, nullable=True)
class MasterBase(DefaultBase):
assetnum: Optional[str] = Field(None, nullable=True)
tahun: Optional[float] = Field(None, nullable=True)
@ -69,6 +74,7 @@ class EquipmentUpdate(EquipmentBase):
class EquipmentRead(DefaultBase):
equipment_master_record: EquipmentMasterBase
equipment_data: EquipmentBase
chart_data: List[MasterBase]
min_eac_value: Optional[float] = Field(None, nullable=True)

@ -1,6 +1,7 @@
from sqlalchemy import Select, Delete, Float, func
from sqlalchemy.orm import selectinload
from .model import Equipment, MasterRecords
from ..equipment_master.model import EquipmentMaster
from .schema import EquipmentCreate, EquipmentUpdate
from typing import Optional
@ -14,6 +15,11 @@ async def get(
"""Returns master records with equipment data based on asset number."""
# First query to get equipment record
equipment_master_query = Select(EquipmentMaster).filter(
EquipmentMaster.assetnum == assetnum
)
equipment_master_result = await db_session.execute(equipment_master_query)
equipment_master_record = equipment_master_result.scalars().one_or_none()
equipment_query = Select(Equipment).filter(Equipment.assetnum == assetnum)
equipment_result = await db_session.execute(equipment_query)
equipment_record = equipment_result.scalars().one_or_none()
@ -45,7 +51,7 @@ async def get(
)
min_seq = min_record[1] if min_record else None
return equipment_record, records, min_eac_value, min_seq
return equipment_master_record, equipment_record, records, min_eac_value, min_seq
# return result.scalars().all()

@ -1,19 +1,32 @@
from sqlalchemy import UUID, Column, Float, ForeignKey, Integer, String
from src.database.core import Base
from src.models import DefaultMixin
from sqlalchemy.orm import relationship, declarative_base, declared_attr, remote, foreign, backref
from sqlalchemy.orm import (
relationship,
declarative_base,
declared_attr,
remote,
foreign,
backref,
)
class EquipmentMaster(Base, DefaultMixin):
__table_args__ = {"extend_existing": True}
__tablename__ = "ms_equipment_master"
id = Column(UUID(as_uuid=True), primary_key=True, index=True)
name = Column(String, nullable=False)
parent_id = Column(UUID(as_uuid=True), ForeignKey(
'ms_equipment_master.id', ondelete='CASCADE'), nullable=True)
equipment_tree_id = Column(UUID(as_uuid=True), ForeignKey(
'ms_equipment_tree.id', ondelete='CASCADE'), nullable=True)
parent_id = Column(
UUID(as_uuid=True),
ForeignKey("ms_equipment_master.id", ondelete="CASCADE"),
nullable=True,
)
equipment_tree_id = Column(
UUID(as_uuid=True),
ForeignKey("ms_equipment_tree.id", ondelete="CASCADE"),
nullable=True,
)
category_id = Column(UUID(as_uuid=True), nullable=True)
system_tag = Column(String, nullable=True)
assetnum = Column(String, nullable=True)
@ -28,9 +41,7 @@ class EquipmentMaster(Base, DefaultMixin):
# )
children = relationship(
"EquipmentMaster",
backref=backref("parent", remote_side=[id]),
lazy="selectin"
"EquipmentMaster", backref=backref("parent", remote_side=[id]), lazy="selectin"
)
# equipment_tree = relationship(

Loading…
Cancel
Save