| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554 |
- """运输计划管理模块数据模型"""
- 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,逗号分隔")
- sys_user_id = Column(String(64), nullable=True, 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 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="联系电话")
- notes = Column(String(500), 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###")
- copy_seq_no = Column(Integer, nullable=True, comment="复制发群序号(租户内固定流水)")
- 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-未归档 draft-已暂存 archived-已归档 cancelled-已取消")
- 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="司机姓名")
- escort_id = Column(String(64), nullable=True, comment="押运员人员ID")
- escort_name = Column(String(100), nullable=True, comment="押运员姓名")
- escort_phone = Column(String(32), 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-是")
- cancel_reason = Column(String(500), nullable=True, comment="作废原因")
- cancel_time = Column(DateTime, nullable=True, comment="作废时间")
- cancel_by = Column(String(64), nullable=True, 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 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="送货方式")
- contract_id = Column(String(64), nullable=True, comment="绑定 CRM 合同ID")
- contract_product_id = Column(String(64), nullable=True, comment="绑定合同产品明细行ID")
- 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="备注")
- archive_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="送货方式")
- contract_id = Column(String(64), nullable=True, comment="绑定 CRM 合同ID")
- contract_product_id = Column(String(64), nullable=True, comment="绑定合同产品明细行ID")
- 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="备注")
- archive_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="司机电话")
- escort_id = Column(String(64), nullable=True, comment="押运员人员ID")
- escort_name = Column(String(100), nullable=True, comment="押运员姓名")
- escort_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-已确认")
- cancel_reason = Column(String(500), nullable=True, comment="作废原因")
- cancel_time = Column(DateTime, nullable=True, comment="作废时间")
- cancel_by = Column(String(64), nullable=True, 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 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="计划编号")
- stop_type = Column(String(20), nullable=False, default="", comment="来源段类型:load装货 delivery送货,按产品归档为空")
- stop_product_id = Column(String(64), nullable=False, default="", comment="装货或送货产品明细ID,按产品归档为空")
- # 数量与价格
- 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 PlVehicleFuelRegister(Base):
- """车辆加油登记 pl_vehicle_fuel_register"""
- __tablename__ = "pl_vehicle_fuel_register"
- id = Column(String(64), primary_key=True, comment="主键ID")
- register_no = Column(String(32), nullable=False, unique=True, comment="登记单号")
- fuel_category = Column(
- String(20), nullable=False, comment="加油类别 bailian/gas_station/shanxia_factory(山峡)"
- )
- register_date = Column(Date, nullable=False, comment="日期")
- registrant_id = Column(String(64), nullable=False, comment="登记人用户ID")
- license_plate = Column(String(20), nullable=False, comment="车牌号")
- odometer_km = Column(DECIMAL(10, 1), nullable=True, comment="期初公里数")
- fuel_liters = Column(DECIMAL(10, 2), nullable=False, comment="加油升数")
- fuel_tons = Column(DECIMAL(10, 3), nullable=True, comment="加油/吨(升÷1176)")
- attachment_urls = Column(String(2000), nullable=True, comment="附件URL")
- status = Column(String(20), nullable=False, default="normal", comment="状态")
- cancel_reason = Column(String(500), nullable=True, comment="作废原因")
- cancel_time = Column(DateTime, nullable=True, comment="作废时间")
- cancel_by = Column(String(64), nullable=True, 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 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/shanxia")
- 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="draft",
- comment="draft/in_approval/rejected/disbursed/cancelled",
- )
- cancel_reason = Column(String(500), nullable=True, comment="作废原因")
- cancel_time = Column(DateTime, nullable=True, comment="作废时间")
- cancel_by = Column(String(64), nullable=True, comment="作废人ID")
- wf_id = Column(String(64), nullable=True, comment="工作流定义ID")
- current_node = Column(String(64), nullable=True, comment="当前节点ID")
- approval_round = 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 PlVehicleRechargeApproval(Base):
- """车辆充值申请审批历史 pl_vehicle_recharge_approval"""
- __tablename__ = "pl_vehicle_recharge_approval"
- id = Column(String(64), primary_key=True, comment="主键ID")
- apply_id = Column(String(64), nullable=False, comment="申请单ID")
- approval_round = Column(Integer, nullable=False, default=1, comment="审批轮次")
- node_id = Column(String(64), nullable=True, comment="节点ID快照")
- node_name = Column(String(128), nullable=True, comment="节点名称快照")
- approver_id = Column(String(64), nullable=False, comment="审批人用户ID")
- approver_name = Column(String(64), nullable=False, comment="审批人姓名")
- approval_status = Column(String(32), nullable=False, comment="approved/rejected/disbursed")
- approval_opinion = Column(String(1024), nullable=True, comment="审批意见")
- approval_time = Column(DateTime, 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 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="申请状态")
- cancel_reason = Column(String(500), nullable=True, comment="作废原因")
- cancel_time = Column(DateTime, nullable=True, comment="作废时间")
- cancel_by = Column(String(64), nullable=True, 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 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="申请状态")
- cancel_reason = Column(String(500), nullable=True, comment="作废原因")
- cancel_time = Column(DateTime, nullable=True, comment="作废时间")
- cancel_by = Column(String(64), nullable=True, 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 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-已删除")
|