1457 lines
91 KiB
Python
1457 lines
91 KiB
Python
"""运输计划管理模块数据模型"""
|
||
from datetime import datetime
|
||
from decimal import Decimal
|
||
|
||
from sqlalchemy import (
|
||
BigInteger,
|
||
Column,
|
||
DECIMAL,
|
||
Date,
|
||
DateTime,
|
||
Integer,
|
||
SmallInteger,
|
||
String,
|
||
Text,
|
||
CHAR,
|
||
ForeignKey,
|
||
)
|
||
from sqlalchemy.orm import relationship
|
||
|
||
from app.core.database import Base
|
||
|
||
|
||
# =============================================================================
|
||
# 1. 基础数据:承运商、车辆、司机
|
||
# =============================================================================
|
||
|
||
|
||
class PlCarrier(Base):
|
||
"""承运商表 pl_carrier"""
|
||
|
||
__tablename__ = "pl_carrier"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
carrier_name = Column(String(200), nullable=False, comment="承运商名称")
|
||
contact_name = Column(String(100), nullable=True, comment="联系人")
|
||
contact_phone = Column(String(32), nullable=True, comment="联系电话")
|
||
status = Column(CHAR(1), nullable=False, default="1", comment="合作状态 1-合作中 0-已终止")
|
||
business_license_urls = Column(String(2000), nullable=True, comment="营业执照附件URL,逗号分隔")
|
||
road_transport_license_urls = Column(String(2000), nullable=True, comment="道路经营许可证附件URL,逗号分隔")
|
||
transport_agreement_urls = Column(String(2000), nullable=True, comment="运输协议附件URL,逗号分隔")
|
||
transport_agreement_expire_date = Column(Date, nullable=True, comment="运输协议有效期")
|
||
audit_status = Column(String(20), nullable=False, default="pending", comment="审核状态 pending-待审核 approved-已通过 rejected-已驳回")
|
||
audit_by = Column(String(64), nullable=True, comment="审核人id")
|
||
audit_time = Column(DateTime, nullable=True, comment="审核时间")
|
||
audit_remark = Column(String(512), nullable=True, comment="审核备注(驳回原因等)")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlVehicle(Base):
|
||
"""车辆表 pl_vehicle"""
|
||
|
||
__tablename__ = "pl_vehicle"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
vehicle_type = Column(String(20), nullable=False, comment="车辆类型 self-自有 carrier-承运商")
|
||
carrier_id = Column(String(64), nullable=True, comment="承运商ID(类型为承运商时必填)")
|
||
carrier_name = Column(String(200), nullable=True, comment="承运商名称(冗余)")
|
||
license_plate = Column(String(20), nullable=False, unique=True, comment="车牌号")
|
||
trailer_no = Column(String(20), nullable=True, comment="挂车号")
|
||
default_driver_id = Column(String(64), nullable=True, comment="默认司机ID")
|
||
default_driver_name = Column(String(100), nullable=True, comment="默认司机姓名(冗余)")
|
||
load_capacity = Column(DECIMAL(10, 2), nullable=True, comment="载重(吨)")
|
||
vehicle_status = Column(String(20), nullable=False, default="available", comment="车辆状态 available-可用 maintaining-维修中 scrapped-报废")
|
||
photo_urls = Column(String(2000), nullable=True, comment="车辆照片URL,逗号分隔")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPersonnel(Base):
|
||
"""人员表 pl_personnel"""
|
||
|
||
__tablename__ = "pl_personnel"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
personnel_name = Column(String(100), nullable=False, comment="姓名")
|
||
phone_no = Column(String(32), nullable=True, comment="手机号(非必填)")
|
||
age = Column(Integer, nullable=True, comment="年龄")
|
||
id_card_no = Column(String(32), nullable=True, comment="身份证号")
|
||
personnel_type = Column(
|
||
String(20),
|
||
nullable=False,
|
||
default="both",
|
||
comment="人员类型 driver-驾驶员 escort-押运员 both-驾驶员兼押运员",
|
||
)
|
||
personnel_affiliation = Column(
|
||
String(20),
|
||
nullable=False,
|
||
default="self",
|
||
comment="人员归属 self-山峡 carrier-非山峡",
|
||
)
|
||
status = Column(CHAR(1), nullable=False, default="1", comment="状态 1-在职 0-停用")
|
||
photo_urls = Column(String(2000), nullable=True, comment="人员照片URL,逗号分隔")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlTransportAddress(Base):
|
||
"""运输通用地址库 pl_transport_address"""
|
||
|
||
__tablename__ = "pl_transport_address"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
address_name = Column(String(200), nullable=False, comment="地址名称")
|
||
full_address = Column(String(500), nullable=False, comment="详细地址")
|
||
lng = Column(DECIMAL(10, 6), nullable=False, comment="经度")
|
||
lat = Column(DECIMAL(10, 6), nullable=False, comment="纬度")
|
||
contact_name = Column(String(100), nullable=True, comment="联系人")
|
||
contact_phone = Column(String(32), nullable=True, comment="联系电话")
|
||
status = Column(CHAR(1), nullable=False, default="1", comment="状态 1-启用 0-停用")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlCustomerStopPref(Base):
|
||
"""客户装/送货物流默认记忆 pl_customer_stop_pref"""
|
||
|
||
__tablename__ = "pl_customer_stop_pref"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
customer_id = Column(String(64), nullable=False, comment="客户ID")
|
||
customer_name = Column(String(200), nullable=True, comment="客户名称")
|
||
stop_type = Column(String(20), nullable=False, comment="load-装货 delivery-送货")
|
||
address = Column(String(500), nullable=True, comment="地址")
|
||
lng = Column(DECIMAL(10, 6), nullable=True, comment="经度")
|
||
lat = Column(DECIMAL(10, 6), nullable=True, comment="纬度")
|
||
contact = Column(String(200), nullable=True, comment="联系方式")
|
||
notes = Column(String(500), nullable=True, comment="注意事项")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlCert(Base):
|
||
"""证书表 pl_cert"""
|
||
|
||
__tablename__ = "pl_cert"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
owner_type = Column(String(20), nullable=False, comment="归属类型 vehicle-车辆 personnel-人员")
|
||
owner_id = Column(String(64), nullable=False, comment="归属主体ID")
|
||
vehicle_part = Column(String(20), nullable=True, comment="车辆部位 head-主车 trailer-挂车,人员证书为空")
|
||
cert_name = Column(String(100), nullable=False, comment="证书名称")
|
||
cert_no = Column(String(64), nullable=True, comment="证号")
|
||
expire_date = Column(Date, nullable=True, comment="有效期")
|
||
remind_days = Column(Integer, nullable=False, default=30, comment="提前提醒天数")
|
||
attachment_urls = Column(String(2000), nullable=True, comment="附件URL(逗号分隔)")
|
||
status = Column(String(20), nullable=False, default="valid", comment="状态 valid-有效 expired-已过期 revoked-已作废")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlDriver(Base):
|
||
"""司机表 pl_driver(兼容旧表,迁移后逐步废弃)"""
|
||
|
||
__tablename__ = "pl_driver"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
driver_name = Column(String(100), nullable=False, comment="姓名")
|
||
phone_no = Column(String(32), nullable=False, comment="手机号")
|
||
id_card_no = Column(String(32), nullable=True, comment="身份证号")
|
||
driving_license_no = Column(String(32), nullable=True, comment="驾驶证号")
|
||
driving_license_expire = Column(Date, nullable=True, comment="驾驶证有效期")
|
||
vehicle_license_no = Column(String(32), nullable=True, comment="行驶证号")
|
||
vehicle_license_expire = Column(Date, nullable=True, comment="行驶证有效期")
|
||
hazmat_cert_no = Column(String(32), nullable=True, comment="危化品证号")
|
||
hazmat_cert_expire = Column(Date, nullable=True, comment="危化品证有效期")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlVehiclePersonnel(Base):
|
||
"""车辆-人员关联表 pl_vehicle_personnel"""
|
||
|
||
__tablename__ = "pl_vehicle_personnel"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
vehicle_id = Column(String(64), nullable=False, comment="车辆ID")
|
||
personnel_id = Column(String(64), nullable=False, comment="人员ID")
|
||
role = Column(String(20), nullable=False, default="driver", comment="角色 driver-司机 escort-押运员")
|
||
is_default = Column(SmallInteger, nullable=False, default=0, comment="是否默认司机 0-否 1-是")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="关联备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlVehicleDriver(Base):
|
||
"""车辆-司机关联表 pl_vehicle_driver(兼容旧表)"""
|
||
|
||
__tablename__ = "pl_vehicle_driver"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
vehicle_id = Column(String(64), nullable=False, comment="车辆ID")
|
||
driver_id = Column(String(64), nullable=False, comment="司机ID")
|
||
is_default = Column(SmallInteger, nullable=False, default=0, comment="是否默认 0-否 1-是")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
# =============================================================================
|
||
# 2. 计划管理:计划主表、产品明细、变更记录
|
||
# =============================================================================
|
||
|
||
|
||
class PlPlan(Base):
|
||
"""计划主表 pl_plan"""
|
||
|
||
__tablename__ = "pl_plan"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
|
||
# 编号信息
|
||
plan_no = Column(String(32), nullable=False, unique=True, comment="计划订单编号 POYYYYMMDD###")
|
||
create_date = Column(Date, nullable=False, comment="创建日期")
|
||
plan_date = Column(Date, nullable=True, comment="计划日期")
|
||
|
||
# 基本信息
|
||
belongs_company = Column(String(20), nullable=False, comment="归属公司 shanxia-安庆山峡 yundong-安徽云栋")
|
||
plan_type = Column(String(20), nullable=False, comment="单据类型 direct-直销单 inbound-入库单 outbound-出库单")
|
||
follow_status = Column(
|
||
String(30),
|
||
nullable=False,
|
||
default="pending_arrange",
|
||
comment="跟进状态 wait_notice-等通知 pending_arrange-待安排 arranged-已安排 completed-已完成 cancelled-已取消",
|
||
)
|
||
transport_status = Column(String(20), nullable=False, default="pending", comment="运输安排状态 pending-待安排 arranged-已安排")
|
||
archive_status = Column(String(20), nullable=False, default="unarchived", comment="归档状态 unarchived-未归档 archived-已归档")
|
||
complete_status = Column(String(10), nullable=False, default="no", comment="完成状态 yes-是 no-否")
|
||
|
||
# 合同关联
|
||
contract_id = Column(String(64), nullable=True, comment="CRM合同ID")
|
||
contract_no = Column(String(50), nullable=True, comment="合同编号")
|
||
|
||
# 供应商与目的地
|
||
supplier_id = Column(String(64), nullable=True, comment="供应商ID")
|
||
supplier_name = Column(String(200), nullable=True, comment="供应商名称")
|
||
destination_id = Column(String(64), nullable=True, comment="目的地ID")
|
||
destination_name = Column(String(200), nullable=True, comment="目的地名称")
|
||
|
||
# 客户信息(冗余自合同)
|
||
customer_id = Column(String(64), nullable=True, comment="客户ID")
|
||
customer_name = Column(String(200), nullable=True, comment="客户名称")
|
||
contact_name = Column(String(100), nullable=True, comment="联系人")
|
||
contact_phone = Column(String(32), nullable=True, comment="联系电话")
|
||
party_a = Column(String(200), nullable=True, comment="甲方")
|
||
party_b = Column(String(200), nullable=True, comment="乙方")
|
||
|
||
# 合同有效期
|
||
contract_start_date = Column(Date, nullable=True, comment="合同开始日期")
|
||
contract_end_date = Column(Date, nullable=True, comment="合同结束日期")
|
||
|
||
# 送货与结算
|
||
delivery_method = Column(String(20), nullable=True, comment="送货方式 self_pick-山峡自提 one_ticket-一票制 customer_pick-客户自提")
|
||
settlement_method = Column(String(50), nullable=True, comment="结算方式")
|
||
|
||
# 运输信息
|
||
has_freight = Column(SmallInteger, nullable=False, default=0, comment="是否有运输费用 0-否 1-是")
|
||
pickup_address = Column(String(500), nullable=True, comment="取货地址")
|
||
pickup_lng = Column(DECIMAL(10, 6), nullable=True, comment="取货经度")
|
||
pickup_lat = Column(DECIMAL(10, 6), nullable=True, comment="取货纬度")
|
||
pickup_time = Column(DateTime, nullable=True, comment="取货时间")
|
||
pickup_contact = Column(String(200), nullable=True, comment="取货联系方式")
|
||
pickup_notes = Column(String(500), nullable=True, comment="取货注意事项")
|
||
destination_address = Column(String(500), nullable=True, comment="目的地地址")
|
||
destination_lng = Column(DECIMAL(10, 6), nullable=True, comment="送货经度")
|
||
destination_lat = Column(DECIMAL(10, 6), nullable=True, comment="送货纬度")
|
||
delivery_time = Column(DateTime, nullable=True, comment="送达时间")
|
||
delivery_contact = Column(String(200), nullable=True, comment="送货联系方式")
|
||
destination_notes = Column(String(500), nullable=True, comment="目的地注意事项")
|
||
transport_id = Column(String(64), nullable=True, comment="运输ID")
|
||
transport_no = Column(String(32), nullable=True, comment="运输编号")
|
||
vehicle_id = Column(String(64), nullable=True, comment="车辆ID")
|
||
license_plate = Column(String(20), nullable=True, comment="车牌号")
|
||
trailer_no = Column(String(20), nullable=True, comment="挂车号(安排运输时快照)")
|
||
driver_id = Column(String(64), nullable=True, comment="司机ID")
|
||
driver_name = Column(String(100), nullable=True, comment="司机姓名")
|
||
personnel_summary = Column(String(500), nullable=True, comment="关联人员摘要(安排运输时快照)")
|
||
resource_snapshot = Column(Text, nullable=True, comment="车辆/人员/证件整包快照 JSON")
|
||
|
||
# 金额汇总
|
||
total_amount = Column(DECIMAL(15, 2), nullable=False, default=0, comment="计划总金额")
|
||
freight_amount = Column(DECIMAL(15, 2), nullable=False, default=0, comment="运费合计")
|
||
freight_remark = Column(String(512), nullable=True, comment="运费备注")
|
||
|
||
# 通知信息
|
||
notify_message = Column(Text, nullable=True, comment="通知信息(标准模板)")
|
||
slip_template_content = Column(Text, nullable=True, comment="入库单打印模板内容(富文本HTML)")
|
||
delivery_slip_template_content = Column(Text, nullable=True, comment="送(提)货单打印模板内容(富文本HTML)")
|
||
subpack_slip_template_content = Column(Text, nullable=True, comment="分装单打印模板内容(富文本HTML)")
|
||
subpack_slip_no = Column(String(32), nullable=True, comment="分装单号 NO:SXFZYYYYMMDD-序号")
|
||
|
||
# 跟进人
|
||
follow_user_id = Column(String(64), nullable=True, comment="跟进人ID")
|
||
follow_user_name = Column(String(100), nullable=True, comment="跟进人姓名")
|
||
|
||
# 危化品证书齐备(人工确认)
|
||
hazard_cert_ready = Column(SmallInteger, nullable=False, default=0, comment="危化品证书是否已人工确认齐备 0-否 1-是")
|
||
hazard_cert_ready_by = Column(String(64), nullable=True, comment="危化品证书确认人")
|
||
hazard_cert_ready_time = Column(DateTime, nullable=True, comment="危化品证书确认时间")
|
||
erp_entered = Column(SmallInteger, nullable=False, default=0, comment="是否已录入ERP 0-否 1-是")
|
||
|
||
# 公共字段
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPlanContract(Base):
|
||
"""运输计划-合同关联(分侧多选) pl_plan_contract"""
|
||
|
||
__tablename__ = "pl_plan_contract"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
plan_id = Column(String(64), nullable=False, comment="运输计划ID")
|
||
side = Column(String(20), nullable=False, comment="supplier-供方 demander-需方 load-装货 delivery-送货")
|
||
stop_id = Column(String(64), nullable=True, comment="停靠段ID(装货段或送货段)")
|
||
contract_id = Column(String(64), nullable=False, comment="CRM合同ID")
|
||
contract_no = Column(String(50), nullable=True, comment="合同编号快照")
|
||
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPlanProduct(Base):
|
||
"""计划产品明细表 pl_plan_product"""
|
||
|
||
__tablename__ = "pl_plan_product"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
|
||
# 产品信息
|
||
product_id = Column(String(64), nullable=False, comment="产品ID")
|
||
product_no = Column(String(50), nullable=False, comment="产品编号")
|
||
product_name = Column(String(200), nullable=False, comment="产品名称")
|
||
brand_mode = Column(String(20), nullable=True, comment="required/any")
|
||
brand_id = Column(String(64), nullable=True, comment="指定品牌ID")
|
||
brand_name = Column(String(100), nullable=True, comment="品牌名快照")
|
||
model = Column(String(100), nullable=True, comment="规格型号")
|
||
unit = Column(String(20), nullable=False, default="吨", comment="单位")
|
||
category_name = Column(String(200), nullable=True, comment="产品分类")
|
||
package_spec = Column(String(200), nullable=True, comment="包装规格")
|
||
delivery_method = Column(String(50), nullable=True, comment="送货方式")
|
||
quantity = Column(DECIMAL(15, 3), nullable=True, comment="合同数量")
|
||
actual_qty = Column(DECIMAL(15, 3), nullable=True, comment="实际数量")
|
||
tax_price = Column(DECIMAL(15, 4), nullable=True, comment="含税单价")
|
||
tax_amount = Column(DECIMAL(15, 2), nullable=True, comment="税费")
|
||
tax_subtotal = Column(DECIMAL(15, 2), nullable=True, comment="含税总价")
|
||
|
||
# 产品属性(冗余自产品主数据)
|
||
is_explosive = Column(SmallInteger, nullable=False, default=0, comment="是否易制爆 0-否 1-是")
|
||
is_toxic = Column(SmallInteger, nullable=False, default=0, comment="是否易制毒 0-否 1-是")
|
||
|
||
# 危化品证书(按 is_toxic / is_explosive 决定所需种类)
|
||
purchase_cert_url = Column(String(2000), nullable=True, comment="购买证URL,逗号分隔")
|
||
transport_cert_url = Column(String(2000), nullable=True, comment="运输证URL,逗号分隔")
|
||
legal_use_cert_url = Column(String(2000), nullable=True, comment="合法使用证明URL,逗号分隔")
|
||
|
||
# 入库信息
|
||
inbound_estimate_qty = Column(DECIMAL(15, 3), nullable=True, comment="入库预估数")
|
||
inbound_qty = Column(DECIMAL(15, 3), nullable=True, comment="入库数")
|
||
inbound_price = Column(DECIMAL(15, 4), nullable=True, comment="入库价")
|
||
inbound_amount = Column(DECIMAL(15, 2), nullable=True, comment="入库金额")
|
||
|
||
# 出库信息
|
||
outbound_estimate_qty = Column(DECIMAL(15, 3), nullable=True, comment="出库预估数")
|
||
outbound_qty = Column(DECIMAL(15, 3), nullable=True, comment="出库数")
|
||
outbound_price = Column(DECIMAL(15, 4), nullable=True, comment="出库单价")
|
||
outbound_amount = Column(DECIMAL(15, 2), nullable=True, comment="出库金额")
|
||
|
||
# 公共字段
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPlanProductBrandQty(Base):
|
||
"""计划产品归档品牌数量 pl_plan_product_brand_qty
|
||
|
||
stop_product_id 为空:计划产品级汇总;非空:装货/送货段产品行上的填写值。
|
||
"""
|
||
|
||
__tablename__ = "pl_plan_product_brand_qty"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品明细ID")
|
||
stop_type = Column(String(20), nullable=True, comment="load/delivery,空=计划级汇总")
|
||
stop_product_id = Column(String(64), nullable=True, comment="段产品行ID,空=计划级汇总")
|
||
brand_id = Column(String(64), nullable=False, default="", comment="品牌ID,空串=无品牌键")
|
||
brand_name = Column(String(100), nullable=True, comment="品牌名称")
|
||
qty = Column(DECIMAL(15, 3), nullable=False, default=0, comment="本品牌归档实际数量")
|
||
unit_price = Column(DECIMAL(15, 4), nullable=True, comment="本品牌归档单价")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPlanChange(Base):
|
||
"""计划变更记录表 pl_plan_change"""
|
||
|
||
__tablename__ = "pl_plan_change"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
change_type = Column(String(30), nullable=False, comment="变更类型")
|
||
change_content = Column(Text, nullable=True, comment="变更内容")
|
||
change_user_id = Column(String(64), nullable=True, comment="变更人ID")
|
||
change_user_name = Column(String(100), nullable=True, comment="变更人姓名")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPlanLoad(Base):
|
||
"""运输计划-装货段 pl_plan_load(plan 1:1)"""
|
||
|
||
__tablename__ = "pl_plan_load"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
customer_id = Column(String(64), nullable=True, comment="装货客户ID")
|
||
customer_name = Column(String(200), nullable=True, comment="装货客户名称")
|
||
address = Column(String(500), nullable=True, comment="装货地址")
|
||
lng = Column(DECIMAL(10, 6), nullable=True, comment="经度")
|
||
lat = Column(DECIMAL(10, 6), nullable=True, comment="纬度")
|
||
load_time = Column(DateTime, nullable=True, comment="装货时间")
|
||
contact = Column(String(200), nullable=True, comment="联系方式")
|
||
notes = Column(String(500), nullable=True, comment="注意事项")
|
||
generate_dibang = Column(SmallInteger, nullable=False, default=0, comment="是否生成地磅单 0-否 1-是")
|
||
dibang_direction = Column(String(20), nullable=True, comment="地磅方向 outbound-出库 inbound-入库 none-无")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPlanLoadProduct(Base):
|
||
"""运输计划-装货段产品明细 pl_plan_load_product"""
|
||
|
||
__tablename__ = "pl_plan_load_product"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
load_id = Column(String(64), nullable=False, comment="装货段ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
product_id = Column(String(64), nullable=False, comment="产品ID")
|
||
product_no = Column(String(50), nullable=False, comment="产品编号")
|
||
product_name = Column(String(200), nullable=False, comment="产品名称")
|
||
model = Column(String(100), nullable=True, comment="规格型号")
|
||
unit = Column(String(20), nullable=False, default="吨", comment="单位")
|
||
package_spec = Column(String(200), nullable=True, comment="包装规格")
|
||
delivery_method = Column(String(50), nullable=True, comment="送货方式")
|
||
plan_qty = Column(DECIMAL(15, 3), nullable=True, comment="本段计划数量")
|
||
inbound_qty = Column(DECIMAL(15, 3), nullable=True, comment="入库数量(归档)")
|
||
inbound_price = Column(DECIMAL(15, 4), nullable=True, comment="入库单价(归档)")
|
||
inbound_amount = Column(DECIMAL(15, 2), nullable=True, comment="入库金额(归档)")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPlanDelivery(Base):
|
||
"""运输计划-送货段 pl_plan_delivery(plan 1:N)"""
|
||
|
||
__tablename__ = "pl_plan_delivery"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
seq = Column(Integer, nullable=False, default=1, comment="顺序号(打印、链接展示)")
|
||
customer_id = Column(String(64), nullable=True, comment="送货客户ID")
|
||
customer_name = Column(String(200), nullable=True, comment="送货客户名称")
|
||
address = Column(String(500), nullable=True, comment="送货地址")
|
||
lng = Column(DECIMAL(10, 6), nullable=True, comment="经度")
|
||
lat = Column(DECIMAL(10, 6), nullable=True, comment="纬度")
|
||
delivery_time = Column(DateTime, nullable=True, comment="送货时间")
|
||
contact = Column(String(200), nullable=True, comment="联系方式")
|
||
notes = Column(String(500), nullable=True, comment="注意事项")
|
||
generate_dibang = Column(SmallInteger, nullable=False, default=0, comment="是否生成地磅单 0-否 1-是")
|
||
dibang_direction = Column(String(20), nullable=True, comment="地磅方向 outbound-出库 inbound-入库 none-无")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPlanDeliveryProduct(Base):
|
||
"""运输计划-送货段产品明细 pl_plan_delivery_product"""
|
||
|
||
__tablename__ = "pl_plan_delivery_product"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
delivery_id = Column(String(64), nullable=False, comment="送货段ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
product_id = Column(String(64), nullable=False, comment="产品ID")
|
||
product_no = Column(String(50), nullable=False, comment="产品编号")
|
||
product_name = Column(String(200), nullable=False, comment="产品名称")
|
||
model = Column(String(100), nullable=True, comment="规格型号")
|
||
unit = Column(String(20), nullable=False, default="吨", comment="单位")
|
||
package_spec = Column(String(200), nullable=True, comment="包装规格")
|
||
delivery_method = Column(String(50), nullable=True, comment="送货方式")
|
||
plan_qty = Column(DECIMAL(15, 3), nullable=True, comment="本段计划数量")
|
||
outbound_qty = Column(DECIMAL(15, 3), nullable=True, comment="出库数量(归档)")
|
||
outbound_price = Column(DECIMAL(15, 4), nullable=True, comment="出库单价(归档)")
|
||
outbound_amount = Column(DECIMAL(15, 2), nullable=True, comment="出库金额(归档)")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
# =============================================================================
|
||
# 3. 运输管理:运输表、审批记录
|
||
# =============================================================================
|
||
|
||
|
||
class PlTransport(Base):
|
||
"""运输表 pl_transport"""
|
||
|
||
__tablename__ = "pl_transport"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
transport_no = Column(String(32), nullable=False, unique=True, comment="运输编号 SXYS######")
|
||
|
||
# 车辆与司机
|
||
vehicle_id = Column(String(64), nullable=True, comment="车辆ID")
|
||
license_plate = Column(String(20), nullable=True, comment="车牌号")
|
||
trailer_no = Column(String(20), nullable=True, comment="挂车号(安排运输时快照)")
|
||
driver_id = Column(String(64), nullable=True, comment="司机ID")
|
||
driver_name = Column(String(100), nullable=True, comment="司机姓名")
|
||
driver_phone = Column(String(32), nullable=True, comment="司机电话")
|
||
resource_snapshot = Column(Text, nullable=True, comment="车辆/人员/证件整包快照 JSON")
|
||
|
||
# 承运商
|
||
carrier_id = Column(String(64), nullable=True, comment="承运商ID")
|
||
carrier_name = Column(String(200), nullable=True, comment="承运商名称")
|
||
|
||
# 运输信息
|
||
transport_medium = Column(String(100), nullable=True, comment="运输介质")
|
||
start_point = Column(String(200), nullable=True, comment="运输起点")
|
||
end_point = Column(String(200), nullable=True, comment="运输终点")
|
||
distance_km = Column(DECIMAL(10, 2), nullable=True, comment="运输公里数")
|
||
unit = Column(String(20), nullable=True, comment="计量单位 吨/趟")
|
||
transport_qty = Column(DECIMAL(15, 3), nullable=True, comment="运输量(按重量计费基数)")
|
||
|
||
# 运费
|
||
freight_price = Column(DECIMAL(15, 4), nullable=True, comment="运输单价")
|
||
freight_amount = Column(DECIMAL(15, 2), nullable=False, default=0, comment="运输费用")
|
||
freight_type = Column(String(20), nullable=False, default="by_weight", comment="运费计算方式 by_weight-按重量 by_trip-按趟次")
|
||
has_invoice = Column(SmallInteger, nullable=False, default=0, comment="是否开票 0-否 1-是")
|
||
|
||
# 二维码
|
||
qr_code = Column(String(500), nullable=True, comment="二维码内容")
|
||
qr_expire_date = Column(Date, nullable=True, comment="二维码有效期")
|
||
driver_access_token = Column(String(64), nullable=True, comment="司机免登录访问令牌")
|
||
site_access_token = Column(String(64), nullable=True, comment="现场免登录访问令牌")
|
||
|
||
# 运输状态
|
||
transport_status = Column(String(20), nullable=False, default="draft", comment="运输状态 draft-草稿 pending-待执行 executing-执行中 completed-已完成 cancelled-已取消")
|
||
approval_status = Column(String(20), nullable=False, default="none", comment="审批状态 none-无需 pending-审批中 approved-已通过 rejected-已拒绝")
|
||
|
||
# 司机回传信息
|
||
feedback_time = Column(DateTime, nullable=True, comment="回传时间")
|
||
feedback_qty = Column(DECIMAL(15, 3), nullable=True, comment="回传数量")
|
||
feedback_images = Column(Text, nullable=True, comment="回传图片URLs(JSON数组)")
|
||
feedback_remark = Column(String(500), nullable=True, comment="回传备注")
|
||
|
||
# 公共字段
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlTransportProductFeedback(Base):
|
||
"""运输单按产品回传 pl_transport_product_feedback"""
|
||
|
||
__tablename__ = "pl_transport_product_feedback"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输单ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
actual_qty = Column(DECIMAL(15, 3), nullable=False, default=0, comment="该产品回传总量")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlTransportProductBrandQty(Base):
|
||
"""运输单产品回传品牌数量 pl_transport_product_brand_qty"""
|
||
|
||
__tablename__ = "pl_transport_product_brand_qty"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输单ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
feedback_id = Column(String(64), nullable=True, comment="产品回传行ID")
|
||
brand_id = Column(String(64), nullable=False, default="", comment="品牌ID")
|
||
brand_name = Column(String(100), nullable=True, comment="品牌名称")
|
||
qty = Column(DECIMAL(15, 3), nullable=False, default=0, comment="本品牌数量")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlTransportDbLink(Base):
|
||
"""运输-地磅出入库关联 pl_transport_db_link"""
|
||
|
||
__tablename__ = "pl_transport_db_link"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输单ID")
|
||
plan_id = Column(String(64), nullable=False, comment="运输计划ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
stop_type = Column(String(20), nullable=True, comment="停靠段类型 load-装货 delivery-送货")
|
||
stop_id = Column(String(64), nullable=True, comment="停靠段ID")
|
||
db_purchase_plan_id = Column(String(64), nullable=False, comment="地磅计划ID")
|
||
db_inventory_id = Column(String(64), nullable=False, comment="出入库单ID")
|
||
contributed_qty = Column(DECIMAL(15, 3), nullable=True, comment="本次联动贡献量(吨)")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlPlanTransport(Base):
|
||
"""计划-运输关联表 pl_plan_transport"""
|
||
|
||
__tablename__ = "pl_plan_transport"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输ID")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlTransportDriverStopFeedback(Base):
|
||
"""运输单-司机按段附件回传 pl_transport_driver_stop_feedback"""
|
||
|
||
__tablename__ = "pl_transport_driver_stop_feedback"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输单ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
stop_type = Column(String(20), nullable=False, comment="停靠段类型 load-装货 delivery-送货")
|
||
stop_id = Column(String(64), nullable=False, comment="停靠段ID")
|
||
attachment_urls = Column(Text, nullable=True, comment="附件URLs(JSON数组)")
|
||
product_feedbacks = Column(
|
||
Text,
|
||
nullable=True,
|
||
comment="段产品回传 JSON:[{stopProductId,actualQty,brandQtys}]",
|
||
)
|
||
remark = Column(String(500), nullable=True, comment="备注")
|
||
feedback_time = Column(DateTime, nullable=True, comment="回传时间")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlTransportSiteStopFeedback(Base):
|
||
"""运输单-现场按段回传 pl_transport_site_stop_feedback"""
|
||
|
||
__tablename__ = "pl_transport_site_stop_feedback"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输单ID")
|
||
plan_id = Column(String(64), nullable=False, comment="计划ID")
|
||
stop_type = Column(String(20), nullable=False, comment="停靠段类型 load-装货 delivery-送货")
|
||
stop_id = Column(String(64), nullable=False, comment="停靠段ID")
|
||
business_type = Column(String(20), nullable=False, comment="业务类型:入库/出库")
|
||
quantity = Column(DECIMAL(15, 3), nullable=True, comment="现场回传数量")
|
||
attachment_urls = Column(Text, nullable=True, comment="附件URLs(JSON数组)")
|
||
product_feedbacks = Column(
|
||
Text,
|
||
nullable=True,
|
||
comment="段产品回传 JSON:[{stopProductId,actualQty,brandQtys}]",
|
||
)
|
||
remark = Column(String(500), nullable=True, comment="备注")
|
||
feedback_time = Column(DateTime, nullable=True, comment="回传时间")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlTransportSiteLink(Base):
|
||
"""运输计划现场链接 pl_transport_site_link(与地磅出入库单解耦)"""
|
||
|
||
__tablename__ = "pl_transport_site_link"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输单ID")
|
||
plan_id = Column(String(64), nullable=False, comment="运输计划ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
site_access_token = Column(String(64), nullable=False, comment="现场人员免登录访问令牌")
|
||
business_type = Column(String(20), nullable=False, comment="业务类型:入库/出库")
|
||
partner_company = Column(String(200), nullable=True, comment="往来单位")
|
||
product_id = Column(String(64), nullable=True, comment="CRM产品ID")
|
||
product = Column(String(200), nullable=True, comment="产品名称快照")
|
||
specification = Column(String(200), nullable=True, comment="规格快照")
|
||
quantity = Column(DECIMAL(15, 3), nullable=True, comment="数量(吨)")
|
||
vehicle_no = Column(String(32), nullable=True, comment="车牌号")
|
||
plan_no = Column(String(64), nullable=True, comment="运输计划号")
|
||
plan_date = Column(Date, nullable=True, comment="计划日期")
|
||
site_feedback_remark = Column(String(500), nullable=True, comment="现场回执备注")
|
||
site_feedback_images = Column(Text, nullable=True, comment="现场回执附件URLs(JSON数组)")
|
||
site_feedback_time = Column(DateTime, nullable=True, comment="现场回执保存时间")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlInboundOrder(Base):
|
||
"""运输计划-入库单 pl_inbound_order"""
|
||
|
||
__tablename__ = "pl_inbound_order"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
order_no = Column(String(32), nullable=False, comment="入库单号")
|
||
plan_id = Column(String(64), nullable=False, comment="运输计划ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输单ID")
|
||
status = Column(String(20), nullable=False, default="in_progress", comment="in_progress/completed/voided")
|
||
partner_company = Column(String(200), nullable=True, comment="往来单位快照")
|
||
vehicle_no = Column(String(32), nullable=True, comment="车牌快照")
|
||
plan_no = Column(String(64), nullable=True, comment="计划号快照")
|
||
plan_date = Column(Date, nullable=True, comment="计划日期快照")
|
||
site_access_token = Column(String(64), nullable=False, comment="现场免登录令牌")
|
||
site_feedback_remark = Column(String(500), nullable=True, comment="现场备注")
|
||
site_feedback_images = Column(Text, nullable=True, comment="现场附件URLs(JSON数组)")
|
||
site_feedback_time = Column(DateTime, nullable=True, comment="最近现场提交时间")
|
||
site_first_submitted_at = Column(DateTime, nullable=True, comment="首次现场提交时间")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlInboundOrderItem(Base):
|
||
"""运输计划-入库单明细 pl_inbound_order_item"""
|
||
|
||
__tablename__ = "pl_inbound_order_item"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
order_id = Column(String(64), nullable=False, comment="入库单ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
product_id = Column(String(64), nullable=True, comment="CRM产品ID")
|
||
product_name = Column(String(200), nullable=True, comment="产品名称快照")
|
||
specification = Column(String(200), nullable=True, comment="规格快照")
|
||
unit = Column(String(32), nullable=True, comment="单位")
|
||
plan_qty = Column(DECIMAL(15, 3), nullable=True, comment="计划数量")
|
||
actual_qty = Column(DECIMAL(15, 3), nullable=True, comment="实际数量")
|
||
qty_source = Column(String(20), nullable=True, default="plan", comment="plan/dibang/manual")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlInboundOrderItemBrandQty(Base):
|
||
"""入库明细品牌数量 pl_inbound_order_item_brand_qty"""
|
||
|
||
__tablename__ = "pl_inbound_order_item_brand_qty"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
order_id = Column(String(64), nullable=False, comment="入库单ID")
|
||
order_item_id = Column(String(64), nullable=False, comment="入库明细ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
brand_id = Column(String(64), nullable=False, default="", comment="品牌ID")
|
||
brand_name = Column(String(100), nullable=True, comment="品牌名称")
|
||
qty = Column(DECIMAL(15, 3), nullable=False, default=0, comment="本品牌数量")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlOutboundOrder(Base):
|
||
"""运输计划-出库单 pl_outbound_order"""
|
||
|
||
__tablename__ = "pl_outbound_order"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
order_no = Column(String(32), nullable=False, comment="出库单号")
|
||
plan_id = Column(String(64), nullable=False, comment="运输计划ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输单ID")
|
||
status = Column(String(20), nullable=False, default="in_progress", comment="in_progress/completed/voided")
|
||
partner_company = Column(String(200), nullable=True, comment="往来单位快照")
|
||
vehicle_no = Column(String(32), nullable=True, comment="车牌快照")
|
||
plan_no = Column(String(64), nullable=True, comment="计划号快照")
|
||
plan_date = Column(Date, nullable=True, comment="计划日期快照")
|
||
site_access_token = Column(String(64), nullable=False, comment="现场免登录令牌")
|
||
site_feedback_remark = Column(String(500), nullable=True, comment="现场备注")
|
||
site_feedback_images = Column(Text, nullable=True, comment="现场附件URLs(JSON数组)")
|
||
site_feedback_time = Column(DateTime, nullable=True, comment="最近现场提交时间")
|
||
site_first_submitted_at = Column(DateTime, nullable=True, comment="首次现场提交时间")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlOutboundOrderItem(Base):
|
||
"""运输计划-出库单明细 pl_outbound_order_item"""
|
||
|
||
__tablename__ = "pl_outbound_order_item"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
order_id = Column(String(64), nullable=False, comment="出库单ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
product_id = Column(String(64), nullable=True, comment="CRM产品ID")
|
||
product_name = Column(String(200), nullable=True, comment="产品名称快照")
|
||
specification = Column(String(200), nullable=True, comment="规格快照")
|
||
unit = Column(String(32), nullable=True, comment="单位")
|
||
plan_qty = Column(DECIMAL(15, 3), nullable=True, comment="计划数量")
|
||
actual_qty = Column(DECIMAL(15, 3), nullable=True, comment="实际数量")
|
||
qty_source = Column(String(20), nullable=True, default="plan", comment="plan/dibang/manual")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlOutboundOrderItemBrandQty(Base):
|
||
"""出库明细品牌数量 pl_outbound_order_item_brand_qty"""
|
||
|
||
__tablename__ = "pl_outbound_order_item_brand_qty"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
order_id = Column(String(64), nullable=False, comment="出库单ID")
|
||
order_item_id = Column(String(64), nullable=False, comment="出库明细ID")
|
||
plan_product_id = Column(String(64), nullable=False, comment="计划产品行ID")
|
||
brand_id = Column(String(64), nullable=False, default="", comment="品牌ID")
|
||
brand_name = Column(String(100), nullable=True, comment="品牌名称")
|
||
qty = Column(DECIMAL(15, 3), nullable=False, default=0, comment="本品牌数量")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlTransportApproval(Base):
|
||
"""运输审批记录表 pl_transport_approval"""
|
||
|
||
__tablename__ = "pl_transport_approval"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输ID")
|
||
approver_id = Column(String(64), nullable=False, comment="审批人ID")
|
||
approver_name = Column(String(100), nullable=False, comment="审批人姓名")
|
||
approval_order = Column(Integer, nullable=False, comment="审批顺序")
|
||
status = Column(String(20), nullable=False, default="pending", comment="审批状态 pending-待审批 approved-已通过 rejected-已拒绝")
|
||
comment = Column(String(500), nullable=True, comment="审批意见")
|
||
approval_time = Column(DateTime, nullable=True, comment="审批时间")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
# =============================================================================
|
||
# 4. 运费结算
|
||
# =============================================================================
|
||
|
||
|
||
class PlFreightSettlement(Base):
|
||
"""运费结算表 pl_freight_settlement"""
|
||
|
||
__tablename__ = "pl_freight_settlement"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
settlement_no = Column(String(32), nullable=False, unique=True, comment="结算单编号")
|
||
|
||
# 结算金额
|
||
total_freight = Column(DECIMAL(15, 2), nullable=False, default=0, comment="运费合计")
|
||
invoice_amount = Column(DECIMAL(15, 2), nullable=True, comment="发票金额")
|
||
|
||
# 发票信息
|
||
invoice_no = Column(String(50), nullable=True, comment="发票号")
|
||
invoice_date = Column(Date, nullable=True, comment="开票日期")
|
||
invoice_attachment_urls = Column(Text, nullable=True, comment="发票附件URLs,逗号分隔")
|
||
|
||
# 结算状态
|
||
settlement_status = Column(String(20), nullable=False, default="pending", comment="结算状态 pending-待提交 submitted-已提交 approved-审核通过 confirmed-已确认")
|
||
|
||
# 公共字段
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlFreightSettlementApproval(Base):
|
||
"""运费结算审批 pl_freight_settlement_approval"""
|
||
|
||
__tablename__ = "pl_freight_settlement_approval"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
settlement_id = Column(String(64), nullable=False, comment="结算单ID")
|
||
step = Column(Integer, nullable=False, default=1, comment="步骤序号")
|
||
step_name = Column(String(50), nullable=True, comment="步骤名称")
|
||
approver_id = Column(String(64), nullable=False, comment="审批人ID")
|
||
approver_name = Column(String(64), nullable=True, comment="审批人姓名")
|
||
approval_type = Column(String(20), nullable=False, default="sequential", comment="审批类型")
|
||
approval_result = Column(String(20), nullable=False, default="pending", comment="审批结果")
|
||
approval_opinion = Column(String(500), nullable=True, comment="审批意见")
|
||
approval_time = Column(DateTime, nullable=True, comment="审批时间")
|
||
is_current = Column(SmallInteger, nullable=False, default=0, comment="是否当前节点")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlFreightSettlementTransport(Base):
|
||
"""结算单-运输关联表 pl_freight_settlement_transport"""
|
||
|
||
__tablename__ = "pl_freight_settlement_transport"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
settlement_id = Column(String(64), nullable=False, comment="结算单ID")
|
||
transport_id = Column(String(64), nullable=False, comment="运输ID")
|
||
freight_amount = Column(DECIMAL(15, 2), nullable=False, comment="运费金额")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlRemittanceVoucher(Base):
|
||
"""汇款凭证表 pl_remittance_voucher"""
|
||
|
||
__tablename__ = "pl_remittance_voucher"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
settlement_id = Column(String(64), nullable=False, comment="结算单ID")
|
||
voucher_no = Column(String(32), nullable=True, comment="凭证编号")
|
||
remittance_date = Column(Date, nullable=True, comment="汇款日期")
|
||
remittance_amount = Column(DECIMAL(15, 2), nullable=True, comment="汇款金额")
|
||
voucher_urls = Column(Text, nullable=True, comment="凭证文件URLs(JSON数组)")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
# =============================================================================
|
||
# 5. 库存管理
|
||
# =============================================================================
|
||
|
||
|
||
class PlInventory(Base):
|
||
"""库存表 pl_inventory"""
|
||
|
||
__tablename__ = "pl_inventory"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
product_id = Column(String(64), nullable=False, comment="产品ID")
|
||
brand_id = Column(String(64), nullable=False, default="", comment="品牌ID,无品牌为空串")
|
||
brand_name = Column(String(100), nullable=True, comment="品牌名称")
|
||
product_no = Column(String(50), nullable=False, comment="产品编号")
|
||
product_name = Column(String(200), nullable=False, comment="产品名称")
|
||
model = Column(String(100), nullable=True, comment="规格型号")
|
||
unit = Column(String(20), nullable=False, default="吨", comment="单位")
|
||
|
||
# 库存数量与金额
|
||
stock_qty = Column(DECIMAL(15, 3), nullable=False, default=0, comment="库存数量")
|
||
stock_amount = Column(DECIMAL(15, 2), nullable=False, default=0, comment="库存金额")
|
||
|
||
# 预警阈值
|
||
low_stock_warning = Column(DECIMAL(15, 3), nullable=True, comment="最低库存预警值")
|
||
high_stock_warning = Column(DECIMAL(15, 3), nullable=True, comment="最高库存预警值")
|
||
|
||
# 公共字段
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlInventoryTransaction(Base):
|
||
"""库存流水表 pl_inventory_transaction"""
|
||
|
||
__tablename__ = "pl_inventory_transaction"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
product_id = Column(String(64), nullable=False, comment="产品ID")
|
||
brand_id = Column(String(64), nullable=False, default="", comment="品牌ID,无品牌为空串")
|
||
brand_name = Column(String(100), nullable=True, comment="品牌名称")
|
||
product_name = Column(String(200), nullable=False, comment="产品名称")
|
||
transaction_type = Column(String(20), nullable=False, comment="事务类型 inbound-入库 outbound-出库")
|
||
plan_id = Column(String(64), nullable=True, comment="计划ID")
|
||
plan_no = Column(String(32), nullable=True, comment="计划编号")
|
||
|
||
# 数量与价格
|
||
qty = Column(DECIMAL(15, 3), nullable=False, comment="变动数量(正数入库/负数出库)")
|
||
unit_price = Column(DECIMAL(15, 4), nullable=False, comment="单价")
|
||
amount = Column(DECIMAL(15, 2), nullable=False, comment="金额")
|
||
stock_after = Column(DECIMAL(15, 3), nullable=False, comment="变动后库存")
|
||
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlInventoryWarning(Base):
|
||
"""库存预警表 pl_inventory_warning"""
|
||
|
||
__tablename__ = "pl_inventory_warning"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
product_id = Column(String(64), nullable=False, comment="产品ID")
|
||
brand_id = Column(String(64), nullable=False, default="", comment="品牌ID,无品牌为空串")
|
||
brand_name = Column(String(100), nullable=True, comment="品牌名称")
|
||
product_name = Column(String(200), nullable=False, comment="产品名称")
|
||
warning_type = Column(String(20), nullable=False, comment="预警类型 low-低于最低 high-高于最高")
|
||
current_qty = Column(DECIMAL(15, 3), nullable=False, comment="当前库存")
|
||
threshold_value = Column(DECIMAL(15, 3), nullable=False, comment="阈值")
|
||
status = Column(String(20), nullable=False, default="pending", comment="状态 pending-待处理 resolved-已处理")
|
||
resolve_time = Column(DateTime, nullable=True, comment="处理时间")
|
||
resolve_remark = Column(String(500), nullable=True, comment="处理备注")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlDocumentReminder(Base):
|
||
"""证件到期提醒表 pl_document_reminder"""
|
||
|
||
__tablename__ = "pl_document_reminder"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
cert_id = Column(String(64), nullable=True, comment="证书ID")
|
||
owner_type = Column(String(20), nullable=True, comment="归属类型 vehicle/personnel")
|
||
owner_id = Column(String(64), nullable=True, comment="归属主体ID")
|
||
owner_label = Column(String(200), nullable=True, comment="归属展示名(车牌/姓名)")
|
||
driver_id = Column(String(64), nullable=True, comment="司机/人员ID(兼容)")
|
||
driver_name = Column(String(100), nullable=True, comment="司机/人员姓名(兼容)")
|
||
document_type = Column(String(100), nullable=False, comment="证件类型/证书名称")
|
||
document_no = Column(String(50), nullable=True, comment="证件号")
|
||
expire_date = Column(Date, nullable=False, comment="到期日期")
|
||
days_remaining = Column(Integer, nullable=False, comment="剩余天数")
|
||
status = Column(String(20), nullable=False, default="pending", comment="状态 pending-待处理 resolved-已处理")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlVehicleRechargeApply(Base):
|
||
"""车辆ETC/加油充值申请 pl_vehicle_recharge_apply"""
|
||
|
||
__tablename__ = "pl_vehicle_recharge_apply"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
apply_no = Column(String(32), nullable=False, unique=True, comment="申请单号")
|
||
license_plate = Column(String(20), nullable=False, comment="车牌号")
|
||
recharge_type = Column(String(20), nullable=False, comment="充值类型 etc/fuel")
|
||
apply_date = Column(Date, nullable=False, comment="申请日期")
|
||
odometer_km = Column(DECIMAL(10, 1), nullable=True, comment="期初公里数")
|
||
attachment_urls = Column(String(2000), nullable=True, comment="附件URL")
|
||
applicant_id = Column(String(64), nullable=False, comment="申请人ID")
|
||
status = Column(String(20), nullable=False, default="pending", comment="申请状态")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlVehicleMaintenanceApply(Base):
|
||
"""车辆维保申请 pl_vehicle_maintenance_apply"""
|
||
|
||
__tablename__ = "pl_vehicle_maintenance_apply"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
apply_no = Column(String(32), nullable=False, unique=True, comment="申请单号")
|
||
license_plate = Column(String(20), nullable=False, comment="车牌号")
|
||
applicant_id = Column(String(64), nullable=False, comment="申请人ID")
|
||
apply_date = Column(Date, nullable=False, comment="申请时间")
|
||
maintenance_type = Column(String(64), nullable=False, comment="维保类型")
|
||
start_date = Column(Date, nullable=False, comment="维保开始时间")
|
||
expected_pickup_date = Column(Date, nullable=True, comment="预计取车时间")
|
||
maintenance_content = Column(String(1000), nullable=True, comment="维保内容")
|
||
shop_address = Column(String(500), nullable=True, comment="维保店铺地址")
|
||
attachment_urls = Column(String(2000), nullable=True, comment="附件URL")
|
||
status = Column(String(20), nullable=False, default="pending", comment="申请状态")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlVehicleMaintenanceProcess(Base):
|
||
"""车辆维保处理登记 pl_vehicle_maintenance_process"""
|
||
|
||
__tablename__ = "pl_vehicle_maintenance_process"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
process_no = Column(String(32), nullable=False, unique=True, comment="处理单号")
|
||
apply_id = Column(String(64), nullable=True, unique=True, comment="关联申请单ID")
|
||
license_plate = Column(String(20), nullable=True, comment="车牌号冗余")
|
||
amount = Column(DECIMAL(10, 2), nullable=True, comment="金额")
|
||
handler_id = Column(String(64), nullable=False, comment="处理人ID")
|
||
process_date = Column(Date, nullable=False, comment="处理时间")
|
||
attachment_urls = Column(String(2000), nullable=True, comment="附件URL")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlVehicleUreaApply(Base):
|
||
"""车辆尿素申请 pl_vehicle_urea_apply"""
|
||
|
||
__tablename__ = "pl_vehicle_urea_apply"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
apply_no = Column(String(32), nullable=False, unique=True, comment="申请单号")
|
||
license_plate = Column(String(20), nullable=False, comment="车牌号")
|
||
applicant_id = Column(String(64), nullable=False, comment="申请人ID")
|
||
apply_date = Column(Date, nullable=False, comment="申请时间")
|
||
warehouse_in_date = Column(Date, nullable=False, comment="入库时间")
|
||
unit = Column(String(32), nullable=False, comment="单位")
|
||
quantity = Column(DECIMAL(10, 2), nullable=False, comment="入库数")
|
||
apply_amount = Column(DECIMAL(10, 2), nullable=False, comment="申请金额")
|
||
attachment_urls = Column(String(2000), nullable=True, comment="附件URL")
|
||
status = Column(String(20), nullable=False, default="pending", comment="申请状态")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlVehicleUreaDisburse(Base):
|
||
"""车辆尿素发放登记 pl_vehicle_urea_disburse"""
|
||
|
||
__tablename__ = "pl_vehicle_urea_disburse"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
disburse_no = Column(String(32), nullable=False, unique=True, comment="发放单号")
|
||
apply_id = Column(String(64), nullable=True, unique=True, comment="关联申请单ID")
|
||
license_plate = Column(String(20), nullable=True, comment="车牌号冗余")
|
||
amount = Column(DECIMAL(10, 2), nullable=False, comment="发放金额")
|
||
handler_id = Column(String(64), nullable=False, comment="处理人ID")
|
||
disburse_date = Column(Date, nullable=False, comment="发放时间")
|
||
attachment_urls = Column(String(2000), nullable=True, comment="附件URL")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlOcrUsageMonth(Base):
|
||
"""阿里云 OCR 月度调用计数 pl_ocr_usage_month(按自然月全局统计)"""
|
||
|
||
__tablename__ = "pl_ocr_usage_month"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
usage_month = Column(String(7), nullable=False, unique=True, comment="自然月 YYYY-MM")
|
||
used_count = Column(Integer, nullable=False, default=0, comment="当月已调用次数")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|
||
|
||
|
||
class PlVehicleRechargeRecord(Base):
|
||
"""车辆ETC/加油充值发放登记 pl_vehicle_recharge_record"""
|
||
|
||
__tablename__ = "pl_vehicle_recharge_record"
|
||
|
||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||
recharge_order_no = Column(String(32), nullable=False, unique=True, comment="充值订单号")
|
||
recharge_date = Column(Date, nullable=False, comment="充值日期")
|
||
recharge_type = Column(String(20), nullable=False, comment="充值类型")
|
||
card_no = Column(String(64), nullable=True, comment="卡号")
|
||
gas_station = Column(String(200), nullable=True, comment="加油站/渠道")
|
||
amount = Column(DECIMAL(10, 2), nullable=False, comment="充值金额")
|
||
attachment_urls = Column(String(2000), nullable=True, comment="附件URL")
|
||
apply_id = Column(String(64), nullable=True, unique=True, comment="关联申请单ID")
|
||
license_plate = Column(String(20), nullable=True, comment="车牌号冗余")
|
||
tenant_no = Column(String(64), nullable=False, default="shanxia2.0", comment="租户编号")
|
||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||
remark = Column(String(512), nullable=True, comment="备注")
|
||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||
create_time = Column(DateTime, nullable=False, default=datetime.now, comment="创建时间")
|
||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||
update_time = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now, comment="更新时间")
|
||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记:0-正常 1-已删除")
|