276 lines
11 KiB
Python
276 lines
11 KiB
Python
from datetime import datetime
|
||
|
||
from sqlalchemy import (
|
||
CHAR,
|
||
BigInteger,
|
||
CheckConstraint,
|
||
Column,
|
||
DateTime,
|
||
ForeignKey,
|
||
Integer,
|
||
String,
|
||
UniqueConstraint,
|
||
)
|
||
|
||
from config.database import Base
|
||
from config.env import DataBaseConfig
|
||
from utils.common_util import SqlalchemyUtil
|
||
|
||
|
||
class BizStrain(Base):
|
||
"""菌种主数据表。"""
|
||
|
||
__tablename__ = 'biz_strain'
|
||
__table_args__ = (
|
||
CheckConstraint("status IN ('0', '1')", name='ck_biz_strain_status'),
|
||
{'comment': '菌种主数据表'},
|
||
)
|
||
|
||
strain_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='菌种ID')
|
||
test_batch_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_test_batch.batch_id'),
|
||
nullable=True,
|
||
index=True,
|
||
comment='测试数据批次ID;NULL表示正式数据',
|
||
)
|
||
strain_code = Column(String(64), nullable=False, unique=True, comment='菌种编码')
|
||
strain_name = Column(String(100), nullable=False, comment='菌种名称')
|
||
status = Column(CHAR(1), nullable=False, server_default='0', comment='状态(0正常 1停用)')
|
||
create_by = Column(String(64), nullable=True, server_default='', comment='创建者')
|
||
create_time = Column(DateTime, nullable=True, default=datetime.now, comment='创建时间')
|
||
update_by = Column(String(64), nullable=True, server_default='', comment='更新者')
|
||
update_time = Column(DateTime, nullable=True, default=datetime.now, comment='更新时间')
|
||
remark = Column(
|
||
String(500),
|
||
nullable=True,
|
||
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
|
||
comment='备注',
|
||
)
|
||
|
||
|
||
class BizWarehouse(Base):
|
||
"""仓库主数据表。"""
|
||
|
||
__tablename__ = 'biz_warehouse'
|
||
__table_args__ = (
|
||
CheckConstraint("status IN ('0', '1')", name='ck_biz_warehouse_status'),
|
||
{'comment': '仓库主数据表'},
|
||
)
|
||
|
||
warehouse_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='仓库ID')
|
||
test_batch_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_test_batch.batch_id'),
|
||
nullable=True,
|
||
index=True,
|
||
comment='测试数据批次ID;NULL表示正式数据',
|
||
)
|
||
warehouse_code = Column(String(64), nullable=False, unique=True, comment='仓库编码')
|
||
warehouse_name = Column(String(100), nullable=False, comment='仓库名称')
|
||
address = Column(String(500), nullable=True, comment='仓库地址')
|
||
status = Column(CHAR(1), nullable=False, server_default='0', comment='状态(0正常 1停用)')
|
||
create_by = Column(String(64), nullable=True, server_default='', comment='创建者')
|
||
create_time = Column(DateTime, nullable=True, default=datetime.now, comment='创建时间')
|
||
update_by = Column(String(64), nullable=True, server_default='', comment='更新者')
|
||
update_time = Column(DateTime, nullable=True, default=datetime.now, comment='更新时间')
|
||
remark = Column(
|
||
String(500),
|
||
nullable=True,
|
||
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
|
||
comment='备注',
|
||
)
|
||
|
||
|
||
class BizCustomer(Base):
|
||
"""客户主数据表。"""
|
||
|
||
__tablename__ = 'biz_customer'
|
||
__table_args__ = (
|
||
CheckConstraint("status IN ('0', '1')", name='ck_biz_customer_status'),
|
||
{'comment': '客户主数据表'},
|
||
)
|
||
|
||
customer_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='客户ID')
|
||
test_batch_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_test_batch.batch_id'),
|
||
nullable=True,
|
||
index=True,
|
||
comment='测试数据批次ID;NULL表示正式数据',
|
||
)
|
||
customer_code = Column(String(64), nullable=False, unique=True, comment='客户编码')
|
||
customer_name = Column(String(100), nullable=False, comment='客户名称')
|
||
status = Column(CHAR(1), nullable=False, server_default='0', comment='状态(0正常 1停用)')
|
||
create_by = Column(String(64), nullable=True, server_default='', comment='创建者')
|
||
create_time = Column(DateTime, nullable=True, default=datetime.now, comment='创建时间')
|
||
update_by = Column(String(64), nullable=True, server_default='', comment='更新者')
|
||
update_time = Column(DateTime, nullable=True, default=datetime.now, comment='更新时间')
|
||
remark = Column(
|
||
String(500),
|
||
nullable=True,
|
||
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
|
||
comment='备注',
|
||
)
|
||
|
||
|
||
class BizCustomerSite(Base):
|
||
"""客户现场主数据表。"""
|
||
|
||
__tablename__ = 'biz_customer_site'
|
||
__table_args__ = (
|
||
UniqueConstraint('customer_id', 'site_code', name='uq_biz_customer_site_customer_code'),
|
||
CheckConstraint("status IN ('0', '1')", name='ck_biz_customer_site_status'),
|
||
{'comment': '客户现场主数据表'},
|
||
)
|
||
|
||
site_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='现场ID')
|
||
test_batch_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_test_batch.batch_id'),
|
||
nullable=True,
|
||
index=True,
|
||
comment='测试数据批次ID;NULL表示正式数据',
|
||
)
|
||
customer_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_customer.customer_id'),
|
||
nullable=False,
|
||
comment='客户ID',
|
||
)
|
||
site_code = Column(String(64), nullable=False, comment='现场编码')
|
||
site_name = Column(String(100), nullable=False, comment='现场名称')
|
||
address = Column(String(500), nullable=True, comment='现场地址')
|
||
status = Column(CHAR(1), nullable=False, server_default='0', comment='状态(0正常 1停用)')
|
||
create_by = Column(String(64), nullable=True, server_default='', comment='创建者')
|
||
create_time = Column(DateTime, nullable=True, default=datetime.now, comment='创建时间')
|
||
update_by = Column(String(64), nullable=True, server_default='', comment='更新者')
|
||
update_time = Column(DateTime, nullable=True, default=datetime.now, comment='更新时间')
|
||
remark = Column(
|
||
String(500),
|
||
nullable=True,
|
||
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
|
||
comment='备注',
|
||
)
|
||
|
||
|
||
class BizProductionLine(Base):
|
||
"""客户现场产线主数据表。"""
|
||
|
||
__tablename__ = 'biz_production_line'
|
||
__table_args__ = (
|
||
UniqueConstraint('site_id', 'line_code', name='uq_biz_production_line_site_code'),
|
||
CheckConstraint("status IN ('0', '1')", name='ck_biz_production_line_status'),
|
||
{'comment': '客户现场产线主数据表'},
|
||
)
|
||
|
||
line_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='产线ID')
|
||
test_batch_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_test_batch.batch_id'),
|
||
nullable=True,
|
||
index=True,
|
||
comment='测试数据批次ID;NULL表示正式数据',
|
||
)
|
||
site_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_customer_site.site_id'),
|
||
nullable=False,
|
||
comment='现场ID',
|
||
)
|
||
line_code = Column(String(64), nullable=False, comment='产线编码')
|
||
line_name = Column(String(100), nullable=False, comment='产线名称')
|
||
status = Column(CHAR(1), nullable=False, server_default='0', comment='状态(0正常 1停用)')
|
||
create_by = Column(String(64), nullable=True, server_default='', comment='创建者')
|
||
create_time = Column(DateTime, nullable=True, default=datetime.now, comment='创建时间')
|
||
update_by = Column(String(64), nullable=True, server_default='', comment='更新者')
|
||
update_time = Column(DateTime, nullable=True, default=datetime.now, comment='更新时间')
|
||
remark = Column(
|
||
String(500),
|
||
nullable=True,
|
||
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
|
||
comment='备注',
|
||
)
|
||
|
||
|
||
class BizPallet(Base):
|
||
"""托盘资产主数据表。"""
|
||
|
||
__tablename__ = 'biz_pallet'
|
||
__table_args__ = (
|
||
CheckConstraint('capacity_packages > 0', name='ck_biz_pallet_capacity_packages'),
|
||
CheckConstraint("asset_status IN ('0', '1')", name='ck_biz_pallet_asset_status'),
|
||
{'comment': '托盘资产主数据表'},
|
||
)
|
||
|
||
pallet_id = Column(BigInteger, primary_key=True, nullable=False, autoincrement=True, comment='托盘ID')
|
||
test_batch_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_test_batch.batch_id'),
|
||
nullable=True,
|
||
index=True,
|
||
comment='测试数据批次ID;NULL表示正式数据',
|
||
)
|
||
pallet_code = Column(String(64), nullable=False, unique=True, comment='托盘编号')
|
||
qr_token = Column(String(128), nullable=False, unique=True, comment='二维码固定标识')
|
||
capacity_packages = Column(Integer, nullable=False, comment='容量包数')
|
||
asset_status = Column(CHAR(1), nullable=False, server_default='0', comment='资产状态(0正常 1停用)')
|
||
create_by = Column(String(64), nullable=True, server_default='', comment='创建者')
|
||
create_time = Column(DateTime, nullable=True, default=datetime.now, comment='创建时间')
|
||
update_by = Column(String(64), nullable=True, server_default='', comment='更新者')
|
||
update_time = Column(DateTime, nullable=True, default=datetime.now, comment='更新时间')
|
||
remark = Column(
|
||
String(500),
|
||
nullable=True,
|
||
server_default=SqlalchemyUtil.get_server_default_null(DataBaseConfig.db_type),
|
||
comment='备注',
|
||
)
|
||
|
||
|
||
class BizUserWarehouse(Base):
|
||
"""用户与仓库关联表。"""
|
||
|
||
__tablename__ = 'biz_user_warehouse'
|
||
__table_args__ = {'comment': '用户与仓库关联表'}
|
||
|
||
user_id = Column(
|
||
BigInteger,
|
||
ForeignKey('sys_user.user_id'),
|
||
primary_key=True,
|
||
nullable=False,
|
||
comment='用户ID',
|
||
)
|
||
warehouse_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_warehouse.warehouse_id'),
|
||
primary_key=True,
|
||
nullable=False,
|
||
comment='仓库ID',
|
||
)
|
||
create_by = Column(String(64), nullable=True, server_default='', comment='创建者')
|
||
create_time = Column(DateTime, nullable=True, default=datetime.now, comment='创建时间')
|
||
|
||
|
||
class BizUserSite(Base):
|
||
"""用户与客户现场关联表。"""
|
||
|
||
__tablename__ = 'biz_user_site'
|
||
__table_args__ = {'comment': '用户与客户现场关联表'}
|
||
|
||
user_id = Column(
|
||
BigInteger,
|
||
ForeignKey('sys_user.user_id'),
|
||
primary_key=True,
|
||
nullable=False,
|
||
comment='用户ID',
|
||
)
|
||
site_id = Column(
|
||
BigInteger,
|
||
ForeignKey('biz_customer_site.site_id'),
|
||
primary_key=True,
|
||
nullable=False,
|
||
comment='现场ID',
|
||
)
|
||
create_by = Column(String(64), nullable=True, server_default='', comment='创建者')
|
||
create_time = Column(DateTime, nullable=True, default=datetime.now, comment='创建时间')
|