79 lines
2.7 KiB
Python
79 lines
2.7 KiB
Python
|
|
"""库存系统 ORM 模型(只读,从现有数据库逆向生成)"""
|
|||
|
|
from sqlalchemy import Column, Integer, String, Numeric, Boolean, ForeignKey
|
|||
|
|
from sqlalchemy.orm import relationship
|
|||
|
|
from app.database import Base
|
|||
|
|
|
|||
|
|
|
|||
|
|
class SysUser(Base):
|
|||
|
|
"""系统用户表(只读,从旧库映射)"""
|
|||
|
|
__tablename__ = "sys_user"
|
|||
|
|
|
|||
|
|
id = Column(Integer, primary_key=True, index=True)
|
|||
|
|
username = Column(String(100), unique=True, nullable=False, index=True)
|
|||
|
|
password = Column(String(255), nullable=False)
|
|||
|
|
real_name = Column(String(100))
|
|||
|
|
department = Column(String(100))
|
|||
|
|
is_active = Column(Integer, default=1)
|
|||
|
|
|
|||
|
|
|
|||
|
|
class MaterialBase(Base):
|
|||
|
|
"""物料基础表(只读)"""
|
|||
|
|
__tablename__ = "material_base"
|
|||
|
|
|
|||
|
|
id = Column(Integer, primary_key=True, index=True)
|
|||
|
|
name = Column(String(255), nullable=False)
|
|||
|
|
spec_model = Column(String(255))
|
|||
|
|
unit = Column(String(50))
|
|||
|
|
|
|||
|
|
|
|||
|
|
class BomTable(Base):
|
|||
|
|
"""BOM物料清单表(只读)"""
|
|||
|
|
__tablename__ = "bom_table"
|
|||
|
|
|
|||
|
|
id = Column(Integer, primary_key=True, index=True)
|
|||
|
|
parent_id = Column(Integer, ForeignKey("material_base.id"), nullable=False)
|
|||
|
|
child_id = Column(Integer, ForeignKey("material_base.id"), nullable=False)
|
|||
|
|
dosage = Column(Numeric(10, 4), nullable=False)
|
|||
|
|
bom_no = Column(String(100), nullable=True)
|
|||
|
|
version = Column(String(50), nullable=True)
|
|||
|
|
is_enabled = Column(Boolean, default=True)
|
|||
|
|
|
|||
|
|
parent = relationship("MaterialBase", foreign_keys=[parent_id])
|
|||
|
|
child = relationship("MaterialBase", foreign_keys=[child_id])
|
|||
|
|
|
|||
|
|
|
|||
|
|
class StockProduct(Base):
|
|||
|
|
"""库存产品表(只读)"""
|
|||
|
|
__tablename__ = "stock_product"
|
|||
|
|
|
|||
|
|
id = Column(Integer, primary_key=True, index=True)
|
|||
|
|
base_id = Column(Integer, ForeignKey("material_base.id"), nullable=False)
|
|||
|
|
stock_quantity = Column(Numeric(10, 2), default=0)
|
|||
|
|
work_order_id = Column(Integer, nullable=True)
|
|||
|
|
|
|||
|
|
material = relationship("MaterialBase", foreign_keys=[base_id])
|
|||
|
|
|
|||
|
|
|
|||
|
|
class TransOutbound(Base):
|
|||
|
|
"""出库记录表(只读)"""
|
|||
|
|
__tablename__ = "trans_outbound"
|
|||
|
|
|
|||
|
|
id = Column(Integer, primary_key=True, index=True)
|
|||
|
|
outbound_no = Column(String(100), unique=True, nullable=False)
|
|||
|
|
stock_id = Column(Integer, ForeignKey("stock_product.id"), nullable=False)
|
|||
|
|
quantity = Column(Numeric(10, 2), nullable=False)
|
|||
|
|
consumer_name = Column(String(255))
|
|||
|
|
|
|||
|
|
stock = relationship("StockProduct", foreign_keys=[stock_id])
|
|||
|
|
|
|||
|
|
|
|||
|
|
class StockBuy(Base):
|
|||
|
|
"""原材料库存表(只读)"""
|
|||
|
|
__tablename__ = "stock_buy"
|
|||
|
|
|
|||
|
|
id = Column(Integer, primary_key=True, index=True)
|
|||
|
|
base_id = Column(Integer, ForeignKey("material_base.id"), nullable=False)
|
|||
|
|
stock_quantity = Column(Numeric(10, 2), default=0)
|
|||
|
|
|
|||
|
|
material = relationship("MaterialBase", foreign_keys=[base_id])
|