Files
SCGL/backend/app/models/inventory.py

79 lines
2.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""库存系统 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])