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

50 lines
2.3 KiB
Python

from sqlalchemy import Column, Integer, String, Float, DateTime, Text, ForeignKey, func
from app.database import Base
class ProductionRecord(Base):
"""生产实绩"""
__tablename__ = "production_records"
id = Column(Integer, primary_key=True, index=True)
coil_no = Column(String(30), nullable=False, index=True) # 兼容旧字段,等同于 sub_coil_no
sub_coil_no = Column(String(30), index=True, comment="子卷号")
hot_coil_no = Column(String(30), index=True, comment="热卷号")
plan_id = Column(Integer, ForeignKey("production_plans.id"), nullable=True)
shift = Column(String(10), comment="")
team = Column(String(10), comment="")
steel_grade = Column(String(30), comment="钢种")
incoming_thickness = Column(Float, comment="来料厚度 mm")
outlet_thickness = Column(Float, comment="出口厚度 mm")
deviation_upper = Column(Float, comment="偏差上限")
deviation_lower = Column(Float, comment="偏差下限")
incoming_width = Column(Float, comment="来料宽度 mm")
outlet_width = Column(Float, comment="出口宽度 mm")
incoming_weight = Column(Float, comment="来料重量 t")
weighed_weight = Column(Float, comment="称重重量 t")
packaging_req = Column(String(30), comment="包装要求")
trim_req = Column(String(30), comment="切边要求")
surface_quality = Column(String(30), comment="表面质量")
product_quality = Column(Float, comment="成品质量 %")
product_length = Column(Float, comment="成品长度 m")
length_per_ton = Column(Float, comment="吨钢长度 m/t")
offline_time = Column(DateTime, comment="下线时间")
status = Column(String(20), default="UNWEIGH", comment="状态: UNWEIGH/PRODUCT")
# 兼容历史字段
shift_date = Column(DateTime)
start_time = Column(DateTime)
end_time = Column(DateTime)
process_length = Column(Float)
process_weight = Column(Float)
avg_speed = Column(Float)
max_speed = Column(Float)
acid_consumption = Column(Float)
inlet_thickness = Column(Float)
inlet_width = Column(Float)
quality_grade = Column(String(10))
operator = Column(String(50))
remark = Column(Text)
created_at = Column(DateTime, server_default=func.now())
updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now())