871 lines
50 KiB
SQL
871 lines
50 KiB
SQL
-- =============================================================================
|
||
-- 运输计划管理模块 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-已终止',
|
||
`business_license_urls` varchar(2000) DEFAULT NULL COMMENT '营业执照附件URL,逗号分隔',
|
||
`road_transport_license_urls` varchar(2000) DEFAULT NULL COMMENT '道路经营许可证附件URL,逗号分隔',
|
||
`transport_agreement_urls` varchar(2000) DEFAULT NULL COMMENT '运输协议附件URL,逗号分隔',
|
||
`transport_agreement_expire_date` date DEFAULT NULL COMMENT '运输协议有效期',
|
||
`audit_status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '审核状态 pending-待审核 approved-已通过 rejected-已驳回',
|
||
`audit_by` varchar(64) DEFAULT NULL COMMENT '审核人id',
|
||
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
|
||
`audit_remark` varchar(512) 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_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',
|
||
`vehicle_part` varchar(20) DEFAULT NULL COMMENT '车辆部位 head-主车 trailer-挂车,人员证书为空',
|
||
`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 '车牌号',
|
||
`trailer_no` varchar(20) DEFAULT NULL COMMENT '挂车号(安排运输时快照)',
|
||
`driver_id` varchar(64) DEFAULT NULL COMMENT '司机ID',
|
||
`driver_name` varchar(100) DEFAULT NULL COMMENT '司机姓名',
|
||
`personnel_summary` varchar(500) DEFAULT NULL COMMENT '关联人员摘要(安排运输时快照)',
|
||
`resource_snapshot` text COMMENT '车辆/人员/证件整包快照 JSON',
|
||
`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 '通知信息(标准模板)',
|
||
`slip_template_content` longtext COMMENT '入库单打印模板内容(富文本HTML)',
|
||
`delivery_slip_template_content` longtext COMMENT '送(提)货单打印模板内容(富文本HTML)',
|
||
`subpack_slip_template_content` longtext COMMENT '分装单打印模板内容(富文本HTML)',
|
||
`subpack_slip_no` varchar(32) DEFAULT NULL COMMENT '分装单号 NO:SXFZ-YYYY-MM-DD-序号',
|
||
`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',
|
||
`legal_use_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 '车牌号',
|
||
`trailer_no` 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 '司机电话',
|
||
`resource_snapshot` text COMMENT '车辆/人员/证件整包快照 JSON',
|
||
`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='证件到期提醒表';
|
||
|
||
|
||
-- ----------------------------
|
||
-- Table structure for pl_vehicle_recharge_apply (车辆ETC/加油充值申请)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `pl_vehicle_recharge_apply`;
|
||
CREATE TABLE `pl_vehicle_recharge_apply` (
|
||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||
`apply_no` varchar(32) NOT NULL COMMENT '申请单号 ETC+YYYYMMDD+2位',
|
||
`license_plate` varchar(20) NOT NULL COMMENT '车牌号',
|
||
`recharge_type` varchar(20) NOT NULL COMMENT '充值类型 etc-ETC fuel-加油',
|
||
`apply_date` date NOT NULL COMMENT '申请日期',
|
||
`odometer_km` decimal(10,1) DEFAULT NULL COMMENT '期初公里数',
|
||
`attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
|
||
`applicant_id` varchar(64) NOT NULL COMMENT '申请人用户ID',
|
||
`status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT 'pending-待发放 disbursed-已发放 cancelled-已作废',
|
||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
|
||
`order_num` int(11) DEFAULT NULL,
|
||
`remark` varchar(512) DEFAULT NULL,
|
||
`create_by` varchar(64) DEFAULT NULL,
|
||
`create_dept_id` varchar(64) NOT NULL DEFAULT '',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`update_by` varchar(64) DEFAULT NULL,
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`del_flag` smallint(6) NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_apply_no` (`apply_no`),
|
||
KEY `idx_tenant` (`tenant_no`),
|
||
KEY `idx_license_plate` (`license_plate`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_apply_date` (`apply_date`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆ETC/加油充值申请';
|
||
|
||
-- ----------------------------
|
||
-- Table structure for pl_vehicle_recharge_record (车辆ETC/加油充值发放登记)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `pl_vehicle_recharge_record`;
|
||
CREATE TABLE `pl_vehicle_recharge_record` (
|
||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||
`recharge_order_no` varchar(32) NOT NULL COMMENT '充值订单号 SXCL+YYYYMMDD+6位',
|
||
`recharge_date` date NOT NULL COMMENT '充值日期',
|
||
`recharge_type` varchar(20) NOT NULL COMMENT '充值类型 etc-ETC fuel-加油',
|
||
`card_no` varchar(64) DEFAULT NULL COMMENT '卡号',
|
||
`gas_station` varchar(200) DEFAULT NULL COMMENT '加油站/充值渠道',
|
||
`amount` decimal(10,2) NOT NULL COMMENT '充值金额(元)',
|
||
`attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
|
||
`apply_id` varchar(64) DEFAULT NULL COMMENT '关联申请单ID',
|
||
`license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号冗余',
|
||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
|
||
`order_num` int(11) DEFAULT NULL,
|
||
`remark` varchar(512) DEFAULT NULL,
|
||
`create_by` varchar(64) DEFAULT NULL,
|
||
`create_dept_id` varchar(64) NOT NULL DEFAULT '',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`update_by` varchar(64) DEFAULT NULL,
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`del_flag` smallint(6) NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_recharge_order_no` (`recharge_order_no`),
|
||
UNIQUE KEY `uk_apply_id` (`apply_id`),
|
||
KEY `idx_tenant` (`tenant_no`),
|
||
KEY `idx_recharge_date` (`recharge_date`),
|
||
KEY `idx_license_plate` (`license_plate`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆ETC/加油充值发放登记';
|
||
|
||
-- ----------------------------
|
||
-- Table structure for pl_vehicle_maintenance_apply (车辆维保申请)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `pl_vehicle_maintenance_apply`;
|
||
CREATE TABLE `pl_vehicle_maintenance_apply` (
|
||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||
`apply_no` varchar(32) NOT NULL COMMENT '申请单号 WB+YYYYMMDD+2位',
|
||
`license_plate` varchar(20) NOT NULL COMMENT '车牌号',
|
||
`applicant_id` varchar(64) NOT NULL COMMENT '申请人用户ID',
|
||
`apply_date` date NOT NULL COMMENT '申请时间',
|
||
`maintenance_type` varchar(64) NOT NULL COMMENT '维保类型',
|
||
`start_date` date NOT NULL COMMENT '维保开始时间',
|
||
`expected_pickup_date` date DEFAULT NULL COMMENT '预计取车时间',
|
||
`maintenance_content` varchar(1000) DEFAULT NULL COMMENT '维保内容',
|
||
`shop_address` varchar(500) DEFAULT NULL COMMENT '维保店铺地址',
|
||
`attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
|
||
`status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT 'pending-待处理 processed-已处理 cancelled-已作废',
|
||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
|
||
`order_num` int(11) DEFAULT NULL,
|
||
`remark` varchar(512) DEFAULT NULL,
|
||
`create_by` varchar(64) DEFAULT NULL,
|
||
`create_dept_id` varchar(64) NOT NULL DEFAULT '',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`update_by` varchar(64) DEFAULT NULL,
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`del_flag` smallint(6) NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_apply_no` (`apply_no`),
|
||
KEY `idx_tenant` (`tenant_no`),
|
||
KEY `idx_license_plate` (`license_plate`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_apply_date` (`apply_date`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆维保申请';
|
||
|
||
-- ----------------------------
|
||
-- Table structure for pl_vehicle_maintenance_process (车辆维保处理登记)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `pl_vehicle_maintenance_process`;
|
||
CREATE TABLE `pl_vehicle_maintenance_process` (
|
||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||
`process_no` varchar(32) NOT NULL COMMENT '处理单号 SXWC+YYYYMMDD+6位',
|
||
`apply_id` varchar(64) DEFAULT NULL COMMENT '关联申请单ID',
|
||
`license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号冗余',
|
||
`amount` decimal(10,2) DEFAULT NULL COMMENT '金额(元)',
|
||
`handler_id` varchar(64) NOT NULL COMMENT '处理人用户ID',
|
||
`process_date` date NOT NULL COMMENT '处理时间',
|
||
`attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
|
||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
|
||
`order_num` int(11) DEFAULT NULL,
|
||
`remark` varchar(512) DEFAULT NULL,
|
||
`create_by` varchar(64) DEFAULT NULL,
|
||
`create_dept_id` varchar(64) NOT NULL DEFAULT '',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`update_by` varchar(64) DEFAULT NULL,
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`del_flag` smallint(6) NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_process_no` (`process_no`),
|
||
UNIQUE KEY `uk_apply_id` (`apply_id`),
|
||
KEY `idx_tenant` (`tenant_no`),
|
||
KEY `idx_process_date` (`process_date`),
|
||
KEY `idx_license_plate` (`license_plate`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆维保处理登记';
|
||
|
||
-- ----------------------------
|
||
-- Table structure for pl_vehicle_urea_apply (车辆尿素申请)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `pl_vehicle_urea_apply`;
|
||
CREATE TABLE `pl_vehicle_urea_apply` (
|
||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||
`apply_no` varchar(32) NOT NULL COMMENT '申请单号 SXNS+YYYYMMDD+6位',
|
||
`license_plate` varchar(20) NOT NULL COMMENT '车牌号',
|
||
`applicant_id` varchar(64) NOT NULL COMMENT '申请人用户ID',
|
||
`apply_date` date NOT NULL COMMENT '申请时间',
|
||
`warehouse_in_date` date NOT NULL COMMENT '入库时间',
|
||
`unit` varchar(32) NOT NULL COMMENT '单位',
|
||
`quantity` decimal(10,2) NOT NULL COMMENT '入库数',
|
||
`apply_amount` decimal(10,2) NOT NULL COMMENT '申请金额(元)',
|
||
`attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
|
||
`status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT 'pending-待发放 disbursed-已发放 cancelled-已作废',
|
||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
|
||
`order_num` int(11) DEFAULT NULL,
|
||
`remark` varchar(512) DEFAULT NULL,
|
||
`create_by` varchar(64) DEFAULT NULL,
|
||
`create_dept_id` varchar(64) NOT NULL DEFAULT '',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`update_by` varchar(64) DEFAULT NULL,
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`del_flag` smallint(6) NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_apply_no` (`apply_no`),
|
||
KEY `idx_tenant` (`tenant_no`),
|
||
KEY `idx_license_plate` (`license_plate`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_apply_date` (`apply_date`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆尿素申请';
|
||
|
||
-- ----------------------------
|
||
-- Table structure for pl_vehicle_urea_disburse (车辆尿素发放登记)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `pl_vehicle_urea_disburse`;
|
||
CREATE TABLE `pl_vehicle_urea_disburse` (
|
||
`id` varchar(64) NOT NULL COMMENT '主键ID',
|
||
`disburse_no` varchar(32) NOT NULL COMMENT '发放单号 SXUF+YYYYMMDD+6位',
|
||
`apply_id` varchar(64) DEFAULT NULL COMMENT '关联申请单ID',
|
||
`license_plate` varchar(20) DEFAULT NULL COMMENT '车牌号冗余',
|
||
`amount` decimal(10,2) NOT NULL COMMENT '发放金额(元)',
|
||
`handler_id` varchar(64) NOT NULL COMMENT '处理人用户ID',
|
||
`disburse_date` date NOT NULL COMMENT '发放时间',
|
||
`attachment_urls` varchar(2000) DEFAULT NULL COMMENT '附件URL,逗号分隔',
|
||
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0',
|
||
`order_num` int(11) DEFAULT NULL,
|
||
`remark` varchar(512) DEFAULT NULL,
|
||
`create_by` varchar(64) DEFAULT NULL,
|
||
`create_dept_id` varchar(64) NOT NULL DEFAULT '',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
`update_by` varchar(64) DEFAULT NULL,
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`del_flag` smallint(6) NOT NULL DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_disburse_no` (`disburse_no`),
|
||
UNIQUE KEY `uk_apply_id` (`apply_id`),
|
||
KEY `idx_tenant` (`tenant_no`),
|
||
KEY `idx_disburse_date` (`disburse_date`),
|
||
KEY `idx_license_plate` (`license_plate`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆尿素发放登记';
|
||
|
||
SET FOREIGN_KEY_CHECKS = 1;
|
||
|
||
-- =============================================================================
|
||
-- 增量迁移(已有库执行)
|
||
-- ALTER TABLE `pl_plan` ADD COLUMN `personnel_summary` varchar(500) DEFAULT NULL COMMENT '关联人员摘要(安排运输时快照)' AFTER `driver_name`;
|
||
-- ALTER TABLE `pl_plan` ADD COLUMN `trailer_no` varchar(20) DEFAULT NULL COMMENT '挂车号(安排运输时快照)' AFTER `license_plate`;
|
||
-- ALTER TABLE `pl_plan` ADD COLUMN `resource_snapshot` text COMMENT '车辆/人员/证件整包快照 JSON' AFTER `personnel_summary`;
|
||
-- ALTER TABLE `pl_transport` ADD COLUMN `trailer_no` varchar(20) DEFAULT NULL COMMENT '挂车号(安排运输时快照)' AFTER `license_plate`;
|
||
-- ALTER TABLE `pl_transport` ADD COLUMN `resource_snapshot` text COMMENT '车辆/人员/证件整包快照 JSON' AFTER `driver_phone`;
|
||
-- =============================================================================
|
||
|
||
-- =============================================================================
|
||
-- DDL 完成
|
||
-- 共计 22 张表(含 pl_cert;pl_driver 已由 pl_personnel 替代)
|
||
-- =============================================================================
|