Files
pickling-mes/backend/app/models/downtime.py

39 lines
1.7 KiB
Python
Raw Normal View History

from sqlalchemy import Column, Integer, String, Float, DateTime, Text, ForeignKey, func
from app.database import Base
class DowntimeCategory(Base):
"""停机类别"""
__tablename__ = "downtime_categories"
id = Column(Integer, primary_key=True, index=True)
code = Column(String(20), unique=True, nullable=False)
name = Column(String(50), nullable=False)
category = Column(String(20), comment="大类: equipment/process/material/other")
description = Column(Text)
is_active = Column(Integer, default=1)
class DowntimeRecord(Base):
"""停机记录"""
__tablename__ = "downtime_records"
id = Column(Integer, primary_key=True, index=True)
category_id = Column(Integer, ForeignKey("downtime_categories.id"))
category_code = Column(String(20), index=True)
category_name = Column(String(50))
shift = Column(String(10), comment="班次")
shift_date = Column(DateTime, comment="班期")
start_time = Column(DateTime, nullable=False, comment="停机开始时间")
end_time = Column(DateTime, comment="停机结束时间")
duration = Column(Float, comment="停机时长min自动计算")
equipment_code = Column(String(30), comment="停机设备编号")
fault_desc = Column(Text, comment="故障描述")
action_taken = Column(Text, comment="处理措施")
root_cause = Column(Text, comment="根本原因")
reporter = Column(String(50), comment="报告人")
handler = Column(String(50), comment="处理人")
is_planned = Column(Integer, default=0, comment="是否计划停机")
created_at = Column(DateTime, server_default=func.now())
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())