-- ============================================================================= -- 运输计划管理模块 DDL -- 生成时间: 2026-06-11 -- 说明: pl_ 前缀,所有计划相关表 -- ============================================================================= SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ----------------------------------------------------------------------------- -- 1. 基础数据:承运商、车辆、人员、证书 -- ----------------------------------------------------------------------------- -- ---------------------------- -- Table structure for pl_carrier (承运商表) -- ---------------------------- DROP TABLE IF EXISTS `pl_carrier`; CREATE TABLE `pl_carrier` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `carrier_name` varchar(200) NOT NULL COMMENT '承运商名称', `contact_name` varchar(100) DEFAULT NULL COMMENT '联系人', `contact_phone` varchar(32) DEFAULT NULL COMMENT '联系电话', `status` char(1) NOT NULL DEFAULT '1' COMMENT '合作状态 1-合作中 0-已终止', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_tenant` (`tenant_no`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='承运商表'; -- ---------------------------- -- Table structure for pl_vehicle (车辆表) -- ---------------------------- DROP TABLE IF EXISTS `pl_vehicle`; CREATE TABLE `pl_vehicle` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `vehicle_type` varchar(20) NOT NULL COMMENT '车辆类型 self-自有 carrier-承运商', `carrier_id` varchar(64) DEFAULT NULL COMMENT '承运商ID(类型为承运商时必填)', `carrier_name` varchar(200) DEFAULT NULL COMMENT '承运商名称(冗余)', `license_plate` varchar(20) NOT NULL COMMENT '车牌号', `load_capacity` decimal(10,2) DEFAULT NULL COMMENT '载重(吨)', `vehicle_status` varchar(20) NOT NULL DEFAULT 'available' COMMENT '车辆状态 available-可用 maintaining-维修中 scrapped-报废', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_license_plate` (`license_plate`), KEY `idx_tenant` (`tenant_no`), KEY `idx_vehicle_type` (`vehicle_type`), KEY `idx_carrier_id` (`carrier_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆表'; -- ---------------------------- -- Table structure for pl_personnel (人员表) -- ---------------------------- DROP TABLE IF EXISTS `pl_personnel`; CREATE TABLE `pl_personnel` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `personnel_name` varchar(100) NOT NULL COMMENT '姓名', `phone_no` varchar(32) DEFAULT NULL COMMENT '手机号(非必填)', `age` int(11) DEFAULT NULL COMMENT '年龄', `id_card_no` varchar(32) DEFAULT NULL COMMENT '身份证号', `status` char(1) NOT NULL DEFAULT '1' COMMENT '状态 1-在职 0-停用', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_tenant` (`tenant_no`), KEY `idx_phone` (`phone_no`), KEY `idx_personnel_name` (`personnel_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-人员表'; -- ---------------------------- -- Table structure for pl_cert (证书表) -- ---------------------------- DROP TABLE IF EXISTS `pl_cert`; CREATE TABLE `pl_cert` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `owner_type` varchar(20) NOT NULL COMMENT '归属类型 vehicle-车辆 personnel-人员', `owner_id` varchar(64) NOT NULL COMMENT '归属主体ID', `cert_name` varchar(100) NOT NULL COMMENT '证书名称', `cert_no` varchar(64) DEFAULT NULL COMMENT '证号', `expire_date` date DEFAULT NULL COMMENT '有效期', `remind_days` int(11) NOT NULL DEFAULT 30 COMMENT '提前提醒天数', `attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL(逗号分隔)', `status` varchar(20) NOT NULL DEFAULT 'valid' COMMENT '状态 valid-有效 expired-已过期 revoked-已作废', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_tenant` (`tenant_no`), KEY `idx_owner` (`owner_type`, `owner_id`), KEY `idx_expire_date` (`expire_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-证书表'; -- ---------------------------- -- Table structure for pl_vehicle_personnel (车辆-人员关联表) -- ---------------------------- DROP TABLE IF EXISTS `pl_vehicle_personnel`; CREATE TABLE `pl_vehicle_personnel` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `vehicle_id` varchar(64) NOT NULL COMMENT '车辆ID', `personnel_id` varchar(64) NOT NULL COMMENT '人员ID', `role` varchar(20) NOT NULL DEFAULT 'driver' COMMENT '角色 driver-司机 escort-押运员', `is_default` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否默认司机 0-否 1-是', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '关联备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_vehicle_id` (`vehicle_id`), KEY `idx_personnel_id` (`personnel_id`), KEY `idx_tenant` (`tenant_no`), KEY `idx_vehicle_role` (`vehicle_id`, `role`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆-人员关联表'; -- ----------------------------------------------------------------------------- -- 2. 计划管理:计划主表、产品明细、变更记录 -- ----------------------------------------------------------------------------- -- ---------------------------- -- Table structure for pl_plan (计划主表) -- ---------------------------- DROP TABLE IF EXISTS `pl_plan`; CREATE TABLE `pl_plan` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `plan_no` varchar(32) NOT NULL COMMENT '计划订单编号 SXDDHYYYYMMDD######', `plan_date` date NOT NULL COMMENT '计划日期', `belongs_company` varchar(20) NOT NULL COMMENT '归属公司 shanxia-安庆山峡 yundong-安徽云栋', `plan_type` varchar(20) NOT NULL COMMENT '单据类型 direct-直销单 inbound-入库单 outbound-出库单', `follow_status` varchar(30) NOT NULL DEFAULT 'draft' COMMENT '跟进状态', `transport_status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '运输安排状态 pending-待安排 arranged-已安排', `archive_status` varchar(20) NOT NULL DEFAULT 'unarchived' COMMENT '归档状态 unarchived-未归档 archived-已归档', `complete_status` varchar(10) NOT NULL DEFAULT 'no' COMMENT '完成状态 yes-是 no-否', `contract_id` varchar(64) DEFAULT NULL COMMENT 'CRM合同ID', `contract_no` varchar(50) DEFAULT NULL COMMENT '合同编号', `supplier_id` varchar(64) DEFAULT NULL COMMENT '供应商ID', `supplier_name` varchar(200) DEFAULT NULL COMMENT '供应商名称', `destination_id` varchar(64) DEFAULT NULL COMMENT '目的地ID', `destination_name` varchar(200) DEFAULT NULL COMMENT '目的地名称', `customer_id` varchar(64) DEFAULT NULL COMMENT '客户ID', `customer_name` varchar(200) DEFAULT NULL COMMENT '客户名称', `contact_name` varchar(100) DEFAULT NULL COMMENT '联系人', `contact_phone` varchar(32) DEFAULT NULL COMMENT '联系电话', `party_a` varchar(200) DEFAULT NULL COMMENT '甲方', `party_b` varchar(200) DEFAULT NULL COMMENT '乙方', `contract_start_date` date DEFAULT NULL COMMENT '合同开始日期', `contract_end_date` date DEFAULT NULL COMMENT '合同结束日期', `delivery_method` varchar(20) DEFAULT NULL COMMENT '送货方式 self_pick-山峡自提 one_ticket-一票制 customer_pick-客户自提', `settlement_method` varchar(50) DEFAULT NULL COMMENT '结算方式', `has_freight` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否有运输费用 0-否 1-是', `transport_id` varchar(64) DEFAULT NULL COMMENT '运输ID', `transport_no` varchar(32) DEFAULT NULL COMMENT '运输编号', `vehicle_id` varchar(64) DEFAULT NULL COMMENT '车辆ID', `license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号', `driver_id` varchar(64) DEFAULT NULL COMMENT '司机ID', `driver_name` varchar(100) DEFAULT NULL COMMENT '司机姓名', `total_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '计划总金额', `freight_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '运费合计', `notify_message` text COMMENT '通知信息(标准模板)', `follow_user_id` varchar(64) DEFAULT NULL COMMENT '跟进人ID', `follow_user_name` varchar(100) DEFAULT NULL COMMENT '跟进人姓名', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_plan_no` (`plan_no`), KEY `idx_tenant` (`tenant_no`), KEY `idx_plan_type` (`plan_type`), KEY `idx_follow_status` (`follow_status`), KEY `idx_plan_date` (`plan_date`), KEY `idx_contract_id` (`contract_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划主表'; -- ---------------------------- -- Table structure for pl_plan_product (计划产品明细表) -- ---------------------------- DROP TABLE IF EXISTS `pl_plan_product`; CREATE TABLE `pl_plan_product` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `plan_id` varchar(64) NOT NULL COMMENT '计划ID', `product_id` varchar(64) NOT NULL COMMENT '产品ID', `product_no` varchar(50) NOT NULL COMMENT '产品编号', `product_name` varchar(200) NOT NULL COMMENT '产品名称', `model` varchar(100) DEFAULT NULL COMMENT '规格型号', `unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位', `is_explosive` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否易制爆 0-否 1-是', `is_toxic` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否易制毒 0-否 1-是', `purchase_cert_url` varchar(500) DEFAULT NULL COMMENT '购买证URL', `transport_cert_url` varchar(500) DEFAULT NULL COMMENT '运输证URL', `inbound_estimate_qty` decimal(15,3) DEFAULT NULL COMMENT '入库预估数', `inbound_qty` decimal(15,3) DEFAULT NULL COMMENT '入库数', `inbound_price` decimal(15,4) DEFAULT NULL COMMENT '入库价', `inbound_amount` decimal(15,2) DEFAULT NULL COMMENT '入库金额', `outbound_estimate_qty` decimal(15,3) DEFAULT NULL COMMENT '出库预估数', `outbound_qty` decimal(15,3) DEFAULT NULL COMMENT '出库数', `outbound_price` decimal(15,4) DEFAULT NULL COMMENT '出库单价', `outbound_amount` decimal(15,2) DEFAULT NULL COMMENT '出库金额', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_plan_id` (`plan_id`), KEY `idx_product_id` (`product_id`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划产品明细表'; -- ---------------------------- -- Table structure for pl_plan_change (计划变更记录表) -- ---------------------------- DROP TABLE IF EXISTS `pl_plan_change`; CREATE TABLE `pl_plan_change` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `plan_id` varchar(64) NOT NULL COMMENT '计划ID', `change_type` varchar(30) NOT NULL COMMENT '变更类型', `change_content` text COMMENT '变更内容', `change_user_id` varchar(64) DEFAULT NULL COMMENT '变更人ID', `change_user_name` varchar(100) DEFAULT NULL COMMENT '变更人姓名', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_plan_id` (`plan_id`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划变更记录表'; -- ----------------------------------------------------------------------------- -- 3. 运输管理:运输表、审批记录 -- ----------------------------------------------------------------------------- -- ---------------------------- -- Table structure for pl_transport (运输表) -- ---------------------------- DROP TABLE IF EXISTS `pl_transport`; CREATE TABLE `pl_transport` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `transport_no` varchar(32) NOT NULL COMMENT '运输编号 SXYS######', `vehicle_id` varchar(64) DEFAULT NULL COMMENT '车辆ID', `license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号', `driver_id` varchar(64) DEFAULT NULL COMMENT '司机ID', `driver_name` varchar(100) DEFAULT NULL COMMENT '司机姓名', `driver_phone` varchar(32) DEFAULT NULL COMMENT '司机电话', `carrier_id` varchar(64) DEFAULT NULL COMMENT '承运商ID', `carrier_name` varchar(200) DEFAULT NULL COMMENT '承运商名称', `transport_medium` varchar(100) DEFAULT NULL COMMENT '运输介质', `start_point` varchar(200) DEFAULT NULL COMMENT '运输起点', `end_point` varchar(200) DEFAULT NULL COMMENT '运输终点', `distance_km` decimal(10,2) DEFAULT NULL COMMENT '运输公里数', `unit` varchar(20) DEFAULT NULL COMMENT '计量单位 吨/趟', `freight_price` decimal(15,4) DEFAULT NULL COMMENT '运输单价', `freight_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '运输费用', `freight_type` varchar(20) NOT NULL DEFAULT 'by_weight' COMMENT '运费计算方式 by_weight-按重量 by_trip-按趟次', `has_invoice` smallint(6) NOT NULL DEFAULT 0 COMMENT '是否开票 0-否 1-是', `qr_code` varchar(500) DEFAULT NULL COMMENT '二维码内容', `qr_expire_date` date DEFAULT NULL COMMENT '二维码有效期', `driver_access_token` varchar(64) DEFAULT NULL COMMENT '司机免登录访问令牌', `transport_status` varchar(20) NOT NULL DEFAULT 'draft' COMMENT '运输状态 draft-草稿 pending-待执行 executing-执行中 completed-已完成 cancelled-已取消', `approval_status` varchar(20) NOT NULL DEFAULT 'none' COMMENT '审批状态 none-无需 pending-审批中 approved-已通过 rejected-已拒绝', `feedback_time` datetime DEFAULT NULL COMMENT '回传时间', `feedback_qty` decimal(15,3) DEFAULT NULL COMMENT '回传数量', `feedback_images` text COMMENT '回传图片URLs(JSON数组)', `feedback_remark` varchar(500) DEFAULT NULL COMMENT '回传备注', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_transport_no` (`transport_no`), KEY `idx_tenant` (`tenant_no`), KEY `idx_transport_status` (`transport_status`), KEY `idx_vehicle_id` (`vehicle_id`), KEY `idx_driver_id` (`driver_id`), UNIQUE KEY `uk_pl_transport_driver_token` (`driver_access_token`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输表'; -- ---------------------------- -- Table structure for pl_transport_db_link (运输-地磅出入库关联) -- ---------------------------- DROP TABLE IF EXISTS `pl_transport_db_link`; CREATE TABLE `pl_transport_db_link` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `transport_id` varchar(64) NOT NULL COMMENT '运输单ID', `plan_id` varchar(64) NOT NULL COMMENT '运输计划ID', `plan_product_id` varchar(64) NOT NULL COMMENT '计划产品行ID', `db_purchase_plan_id` varchar(64) NOT NULL COMMENT '地磅计划ID', `db_inventory_id` varchar(64) NOT NULL COMMENT '出入库单ID', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_pl_tdb_link_transport` (`transport_id`), KEY `idx_pl_tdb_link_plan` (`plan_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输-地磅出入库关联'; -- ---------------------------- -- Table structure for pl_plan_transport (计划-运输关联表) -- ---------------------------- DROP TABLE IF EXISTS `pl_plan_transport`; CREATE TABLE `pl_plan_transport` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `plan_id` varchar(64) NOT NULL COMMENT '计划ID', `transport_id` varchar(64) NOT NULL COMMENT '运输ID', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_plan_id` (`plan_id`), KEY `idx_transport_id` (`transport_id`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计划-运输关联表'; -- ---------------------------- -- Table structure for pl_transport_approval (运输审批记录表) -- ---------------------------- DROP TABLE IF EXISTS `pl_transport_approval`; CREATE TABLE `pl_transport_approval` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `transport_id` varchar(64) NOT NULL COMMENT '运输ID', `approver_id` varchar(64) NOT NULL COMMENT '审批人ID', `approver_name` varchar(100) NOT NULL COMMENT '审批人姓名', `approval_order` int(11) NOT NULL COMMENT '审批顺序', `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '审批状态 pending-待审批 approved-已通过 rejected-已拒绝', `comment` varchar(500) DEFAULT NULL COMMENT '审批意见', `approval_time` datetime DEFAULT NULL COMMENT '审批时间', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_transport_id` (`transport_id`), KEY `idx_approver_id` (`approver_id`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输审批记录表'; -- ----------------------------------------------------------------------------- -- 4. 运费结算 -- ----------------------------------------------------------------------------- -- ---------------------------- -- Table structure for pl_freight_settlement (运费结算表) -- ---------------------------- DROP TABLE IF EXISTS `pl_freight_settlement`; CREATE TABLE `pl_freight_settlement` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `settlement_no` varchar(32) NOT NULL COMMENT '结算单编号', `total_freight` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '运费合计', `invoice_amount` decimal(15,2) DEFAULT NULL COMMENT '发票金额', `invoice_no` varchar(50) DEFAULT NULL COMMENT '发票号', `invoice_date` date DEFAULT NULL COMMENT '开票日期', `invoice_attachment_urls` text DEFAULT NULL COMMENT '发票附件URLs,逗号分隔', `settlement_status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '结算状态 pending-待提交 submitted-已提交 approved-审核通过 confirmed-已确认', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_settlement_no` (`settlement_no`), KEY `idx_tenant` (`tenant_no`), KEY `idx_settlement_status` (`settlement_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运费结算表'; -- ---------------------------- -- Table structure for pl_freight_settlement_transport (结算单-运输关联表) -- ---------------------------- DROP TABLE IF EXISTS `pl_freight_settlement_transport`; CREATE TABLE `pl_freight_settlement_transport` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `settlement_id` varchar(64) NOT NULL COMMENT '结算单ID', `transport_id` varchar(64) NOT NULL COMMENT '运输ID', `freight_amount` decimal(15,2) NOT NULL COMMENT '运费金额', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_settlement_id` (`settlement_id`), KEY `idx_transport_id` (`transport_id`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='结算单-运输关联表'; -- ---------------------------- -- Table structure for pl_freight_settlement_approval (运费结算审批记录) -- ---------------------------- DROP TABLE IF EXISTS `pl_freight_settlement_approval`; CREATE TABLE `pl_freight_settlement_approval` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `settlement_id` varchar(64) NOT NULL COMMENT '结算单ID', `step` int(11) NOT NULL DEFAULT 1 COMMENT '步骤序号', `step_name` varchar(50) DEFAULT NULL COMMENT '步骤名称', `approver_id` varchar(64) NOT NULL COMMENT '审批人ID', `approver_name` varchar(64) DEFAULT NULL COMMENT '审批人姓名', `approval_type` varchar(20) NOT NULL DEFAULT 'sequential' COMMENT 'sequential/parallel/or', `approval_result` varchar(20) NOT NULL DEFAULT 'pending' COMMENT 'pending/approved/rejected/skipped', `approval_opinion` varchar(500) DEFAULT NULL COMMENT '审批意见', `approval_time` datetime DEFAULT NULL COMMENT '审批时间', `is_current` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否当前节点', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` tinyint(4) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_pl_fsa_settlement` (`settlement_id`, `del_flag`), KEY `idx_pl_fsa_approver` (`approver_id`, `approval_result`, `is_current`, `del_flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运费结算审批记录'; -- ---------------------------- -- Table structure for pl_remittance_voucher (汇款凭证表) -- ---------------------------- DROP TABLE IF EXISTS `pl_remittance_voucher`; CREATE TABLE `pl_remittance_voucher` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `settlement_id` varchar(64) NOT NULL COMMENT '结算单ID', `voucher_no` varchar(32) DEFAULT NULL COMMENT '凭证编号', `remittance_date` date DEFAULT NULL COMMENT '汇款日期', `remittance_amount` decimal(15,2) DEFAULT NULL COMMENT '汇款金额', `voucher_urls` text COMMENT '凭证文件URLs(JSON数组)', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_settlement_id` (`settlement_id`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='汇款凭证表'; -- ----------------------------------------------------------------------------- -- 5. 库存管理 -- ----------------------------------------------------------------------------- -- ---------------------------- -- Table structure for pl_inventory (库存表) -- ---------------------------- DROP TABLE IF EXISTS `pl_inventory`; CREATE TABLE `pl_inventory` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `product_id` varchar(64) NOT NULL COMMENT '产品ID', `product_no` varchar(50) NOT NULL COMMENT '产品编号', `product_name` varchar(200) NOT NULL COMMENT '产品名称', `model` varchar(100) DEFAULT NULL COMMENT '规格型号', `unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位', `stock_qty` decimal(15,3) NOT NULL DEFAULT 0.000 COMMENT '库存数量', `stock_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '库存金额', `low_stock_warning` decimal(15,3) DEFAULT NULL COMMENT '最低库存预警值', `high_stock_warning` decimal(15,3) DEFAULT NULL COMMENT '最高库存预警值', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_product_id` (`product_id`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存表'; -- ---------------------------- -- Table structure for pl_inventory_transaction (库存流水表) -- ---------------------------- DROP TABLE IF EXISTS `pl_inventory_transaction`; CREATE TABLE `pl_inventory_transaction` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `product_id` varchar(64) NOT NULL COMMENT '产品ID', `product_name` varchar(200) NOT NULL COMMENT '产品名称', `transaction_type` varchar(20) NOT NULL COMMENT '事务类型 inbound-入库 outbound-出库', `plan_id` varchar(64) DEFAULT NULL COMMENT '计划ID', `plan_no` varchar(32) DEFAULT NULL COMMENT '计划编号', `qty` decimal(15,3) NOT NULL COMMENT '变动数量(正数入库/负数出库)', `unit_price` decimal(15,4) NOT NULL COMMENT '单价', `amount` decimal(15,2) NOT NULL COMMENT '金额', `stock_after` decimal(15,3) NOT NULL COMMENT '变动后库存', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_product_id` (`product_id`), KEY `idx_transaction_type` (`transaction_type`), KEY `idx_plan_id` (`plan_id`), KEY `idx_create_time` (`create_time`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存流水表'; -- ---------------------------- -- Table structure for pl_inventory_warning (库存预警表) -- ---------------------------- DROP TABLE IF EXISTS `pl_inventory_warning`; CREATE TABLE `pl_inventory_warning` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `product_id` varchar(64) NOT NULL COMMENT '产品ID', `product_name` varchar(200) NOT NULL COMMENT '产品名称', `warning_type` varchar(20) NOT NULL COMMENT '预警类型 low-低于最低 high-高于最高', `current_qty` decimal(15,3) NOT NULL COMMENT '当前库存', `threshold_value` decimal(15,3) NOT NULL COMMENT '阈值', `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态 pending-待处理 resolved-已处理', `resolve_time` datetime DEFAULT NULL COMMENT '处理时间', `resolve_remark` varchar(500) DEFAULT NULL COMMENT '处理备注', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_product_id` (`product_id`), KEY `idx_warning_type` (`warning_type`), KEY `idx_status` (`status`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存预警表'; -- ---------------------------- -- Table structure for pl_document_reminder (证件到期提醒表) -- ---------------------------- DROP TABLE IF EXISTS `pl_document_reminder`; CREATE TABLE `pl_document_reminder` ( `id` varchar(64) NOT NULL COMMENT '主键ID', `cert_id` varchar(64) DEFAULT NULL COMMENT '证书ID', `owner_type` varchar(20) DEFAULT NULL COMMENT '归属类型 vehicle/personnel', `owner_id` varchar(64) DEFAULT NULL COMMENT '归属主体ID', `owner_label` varchar(200) DEFAULT NULL COMMENT '归属展示名(车牌/姓名)', `driver_id` varchar(64) DEFAULT NULL COMMENT '司机/人员ID(兼容)', `driver_name` varchar(100) DEFAULT NULL COMMENT '司机/人员姓名(兼容)', `document_type` varchar(100) NOT NULL COMMENT '证件类型/证书名称', `document_no` varchar(50) DEFAULT NULL COMMENT '证件号', `expire_date` date NOT NULL COMMENT '到期日期', `days_remaining` int(11) NOT NULL COMMENT '剩余天数', `status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '状态 pending-待处理 resolved-已处理', `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号', `order_num` int(11) DEFAULT NULL COMMENT '排序号', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id', `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `del_flag` smallint(6) NOT NULL DEFAULT 0 COMMENT '删除标记:0-正常 1-已删除', PRIMARY KEY (`id`), KEY `idx_cert_id` (`cert_id`), KEY `idx_driver_id` (`driver_id`), KEY `idx_document_type` (`document_type`), KEY `idx_expire_date` (`expire_date`), KEY `idx_status` (`status`), KEY `idx_tenant` (`tenant_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='证件到期提醒表'; SET FOREIGN_KEY_CHECKS = 1; -- ============================================================================= -- DDL 完成 -- 共计 16 张表(含 pl_cert;pl_driver 已由 pl_personnel 替代) -- =============================================================================