This commit is contained in:
zlwu committed 2026-07-12 18:23:02 +08:00
1 parent 2142b33cfa
commit 3520f9ce90
27 files changed
+248553 -252041

No files matched your search

@@ -1,3 +0,0 @@
-- 运输联动贡献量(吨),用于地磅月计划量累加/回减
ALTER TABLE pl_transport_db_link
ADD COLUMN contributed_qty DECIMAL(15,3) NULL COMMENT '本次联动贡献量(吨)' AFTER db_inventory_id;
@@ -1,19 +0,0 @@
-- 修复商机 follow_count 与跟进记录数不一致(历史数据回填)
-- 原因:创建跟进时 recalc 发生在 flush 之前,导致冗余字段长期少 1
UPDATE crm_opportunity o
LEFT JOIN (
SELECT opportunity_id, COUNT(*) AS cnt
FROM crm_opportunity_follow
WHERE del_flag = 0
GROUP BY opportunity_id
) f ON f.opportunity_id = o.id
SET o.follow_count = IFNULL(f.cnt, 0),
o.last_time = (
SELECT MAX(COALESCE(f2.follow_time, f2.create_time))
FROM crm_opportunity_follow f2
WHERE f2.opportunity_id = o.id
AND f2.del_flag = 0
)
WHERE o.del_flag = 0
AND IFNULL(o.follow_count, 0) <> IFNULL(f.cnt, 0);
@@ -1,24 +0,0 @@
-- pl_personnel 增加人员归属:self-山峡 carrier-非山峡
SET @col_exists := (
SELECT COUNT(*)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'pl_personnel'
AND COLUMN_NAME = 'personnel_affiliation'
);
SET @ddl := IF(
@col_exists = 0,
'ALTER TABLE `pl_personnel`
ADD COLUMN `personnel_affiliation` varchar(20) NOT NULL DEFAULT ''self''
COMMENT ''人员归属 self-山峡 carrier-非山峡''
AFTER `personnel_type`',
'SELECT ''personnel_affiliation already exists'' AS msg'
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
UPDATE `pl_personnel`
SET `personnel_affiliation` = 'self'
WHERE `personnel_affiliation` IS NULL OR `personnel_affiliation` = '';
@@ -1,52 +0,0 @@
-- pl_personnel 增加人员类型;历史数据按车辆关联推断
-- 可重复执行(列已存在则跳过加列,UPDATE 可重复跑)
SET @col_exists := (
SELECT COUNT(*)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'pl_personnel'
AND COLUMN_NAME = 'personnel_type'
);
SET @ddl := IF(
@col_exists = 0,
'ALTER TABLE `pl_personnel`
ADD COLUMN `personnel_type` varchar(20) NOT NULL DEFAULT ''both''
COMMENT ''人员类型 driver-驾驶员 escort-押运员 both-驾驶员兼押运员''
AFTER `id_card_no`',
'SELECT 1'
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
-- 仅有 driver 关联
UPDATE pl_personnel p
SET p.personnel_type = 'driver'
WHERE p.del_flag = 0
AND (p.personnel_type IS NULL OR p.personnel_type = '' OR p.personnel_type = 'both')
AND EXISTS (
SELECT 1 FROM pl_vehicle_personnel vp
WHERE vp.personnel_id = p.id AND vp.del_flag = 0 AND vp.role = 'driver'
)
AND NOT EXISTS (
SELECT 1 FROM pl_vehicle_personnel vp
WHERE vp.personnel_id = p.id AND vp.del_flag = 0 AND vp.role = 'escort'
);
-- 仅有 escort 关联
UPDATE pl_personnel p
SET p.personnel_type = 'escort'
WHERE p.del_flag = 0
AND (p.personnel_type IS NULL OR p.personnel_type = '' OR p.personnel_type = 'both')
AND EXISTS (
SELECT 1 FROM pl_vehicle_personnel vp
WHERE vp.personnel_id = p.id AND vp.del_flag = 0 AND vp.role = 'escort'
)
AND NOT EXISTS (
SELECT 1 FROM pl_vehicle_personnel vp
WHERE vp.personnel_id = p.id AND vp.del_flag = 0 AND vp.role = 'driver'
);
-- 同时有 driver + escort 或无关联保持 both(默认)
-873
View File
@@ -1,873 +0,0 @@
-- =============================================================================
-- 运输计划管理模块 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 '身份证号',
`personnel_type` varchar(20) NOT NULL DEFAULT 'both' COMMENT '人员类型 driver-驾驶员 escort-押运员 both-驾驶员兼押运员',
`personnel_affiliation` varchar(20) NOT NULL DEFAULT 'self' COMMENT '人员归属 self-山峡 carrier-非山峡',
`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',
`contributed_qty` 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`),
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 替代)
-- =============================================================================
-445
View File
@@ -1,445 +0,0 @@
/*
Navicat Premium Dump SQL
Source Server : 47.99.164.66 hn02le.34lkdLKD
Source Server Type : MySQL
Source Server Version : 50736 (5.7.36)
Source Host : 47.99.164.66:3306
Source Schema : vehicle_management
Target Server Type : MySQL
Target Server Version : 50736 (5.7.36)
File Encoding : 65001
Date: 05/05/2026 10:14:43
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for certificates
-- ----------------------------
DROP TABLE IF EXISTS `certificates`;
CREATE TABLE `certificates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '用户ID',
`certificate_type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '证件类型: driving_license(驾驶证), escort_license(押运证)等',
`file_url` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件URL',
`file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原文件名',
`expiry_date` date DEFAULT NULL COMMENT '证件过期日期',
`uploaded_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除: 0-正常, 1-删除',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_certificates_expiry` (`expiry_date`),
CONSTRAINT `certificates_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='证件表';
-- ----------------------------
-- Records of certificates
-- ----------------------------
BEGIN;
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (5, 11, 'driving_license', 'http://localhost:8000/files/uploads/general/2026/01/15/7cbec2b6-6bef-4b57-90fc-b85460f99fd8.png', 'Snipaste_2025-12-27_16-03-25.png', '2026-01-21', '2026-01-15 16:50:44', 0);
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (6, 12, 'driving_license', 'http://121.43.228.102:9000/clgl/ed678c29-239d-46d4-a03b-75d1bbca6d1c.png', 'Snipaste_2025-12-27_16-03-21.png', '2026-02-04', '2026-01-15 17:05:56', 0);
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (7, 12, 'id_card', 'http://121.43.228.102:9000/clgl/4dbae2be-ab0b-43ca-b7f1-d9f1cdf9bbc1.png', 'Snipaste_2025-12-27_16-03-11.png', '2025-12-30', '2026-01-15 17:06:14', 1);
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (8, 12, 'escort_license', 'http://121.43.228.102:9000/clgl/6f20a27a-7399-47f3-aa23-5e30d74f507b.png', 'Snipaste_2025-12-27_16-03-06.png', '2026-01-14', '2026-01-15 17:10:05', 1);
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (9, 12, 'id_card', 'http://121.43.228.102:9000/clgl/736349d7-9443-4677-aacf-8ced1396c14c.png', 'Snipaste_2025-12-27_16-03-33.png', '2026-01-21', '2026-01-15 17:10:13', 0);
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (10, 12, 'id_card', 'http://121.43.228.102:9000/clgl/5e3203df-b0c3-45d5-a6b2-0a83c6ea7cda.png', 'Snipaste_2025-12-27_16-03-21.png', '2025-12-30', '2026-01-15 17:10:40', 0);
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (11, 12, 'qualification_certificate', 'http://121.43.228.102:9000/clgl/3b3bf250-62ab-42b9-920e-79401538ead2.png', 'Snipaste_2025-12-27_16-03-17.png', '2025-12-30', '2026-01-15 17:10:47', 0);
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (12, 12, 'escort_license', 'http://121.43.228.102:9000/clgl/bb416d90-8ce1-43bb-841d-ff86bb192190.png', 'Snipaste_2025-12-27_16-03-21.png', '2026-01-14', '2026-01-15 17:10:56', 0);
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (13, 9, 'driving_license', 'http://121.43.228.102:9000/clgl/ac003234-a437-4a18-92cf-5260ac71ec07.png', 'Snipaste_2025-12-27_16-03-33.png', '2026-01-14', '2026-01-15 22:53:09', 0);
INSERT INTO `certificates` (`id`, `user_id`, `certificate_type`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (14, 10, 'escort_license', 'http://121.43.228.102:9000/clgl/4907c641-d10e-4016-a517-65d1824df918.png', 'Snipaste_2025-12-27_16-03-21.png', '2025-12-31', '2026-01-15 22:53:21', 0);
COMMIT;
-- ----------------------------
-- Table structure for manufacturers
-- ----------------------------
DROP TABLE IF EXISTS `manufacturers`;
CREATE TABLE `manufacturers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '厂商名称',
`safety_notice` text COLLATE utf8mb4_unicode_ci COMMENT '厂商安全须知',
`address` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '厂商地址',
`is_active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除: 0-正常, 1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `idx_name` (`name`),
KEY `idx_is_active` (`is_active`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='厂商表';
-- ----------------------------
-- Records of manufacturers
-- ----------------------------
BEGIN;
INSERT INTO `manufacturers` (`id`, `name`, `safety_notice`, `address`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (1, '山峡水泥厂', '注意安全,戴好安全帽,禁止在装卸区吸烟', '山峡市工业区A区', 1, '2026-01-13 07:14:49', '2026-01-13 07:14:49', 0);
INSERT INTO `manufacturers` (`id`, `name`, `safety_notice`, `address`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (2, '山峡钢材厂', '注意防火,禁止明火,穿戴好防护装备', '山峡市工业区B区', 1, '2026-01-13 07:14:49', '2026-01-13 07:14:49', 0);
INSERT INTO `manufacturers` (`id`, `name`, `safety_notice`, `address`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (3, '山峡物流中心', '注意交通安全,服从指挥', '山峡市物流园区', 1, '2026-01-13 07:14:49', '2026-01-13 07:14:49', 0);
INSERT INTO `manufacturers` (`id`, `name`, `safety_notice`, `address`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (4, 'a s d f da s', '<h1><span style=\"color: rgb(225, 60, 57);\">123123123123123123213</span></h1><p><br></p><p>1额啊范德萨范德萨</p>', '啊是否撒点发三顿饭撒的范德萨发撒点饭撒的饭都是法师123123123123', 1, '2026-01-16 00:20:08', '2026-01-16 00:20:24', 1);
COMMIT;
-- ----------------------------
-- Table structure for plan_photos
-- ----------------------------
DROP TABLE IF EXISTS `plan_photos`;
CREATE TABLE `plan_photos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`plan_id` int(11) NOT NULL COMMENT '计划ID',
`photo_type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '照片类型: loading_arrival(装货到场), loading_departure(装货离场), unloading_arrival(卸货到场), unloading_departure(卸货离场), waybill(运单)',
`file_url` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件URL',
`file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原文件名',
`uploaded_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除: 0-正常, 1-删除',
PRIMARY KEY (`id`),
KEY `idx_plan_id` (`plan_id`),
CONSTRAINT `plan_photos_ibfk_1` FOREIGN KEY (`plan_id`) REFERENCES `vehicle_plans` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='计划照片表';
-- ----------------------------
-- Records of plan_photos
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for products
-- ----------------------------
DROP TABLE IF EXISTS `products`;
CREATE TABLE `products` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品名称',
`specification` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品规格',
`is_active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除: 0-正常, 1-删除',
PRIMARY KEY (`id`),
KEY `idx_name` (`name`),
KEY `idx_is_active` (`is_active`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品表';
-- ----------------------------
-- Records of products
-- ----------------------------
BEGIN;
INSERT INTO `products` (`id`, `name`, `specification`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (1, '水泥', '425号普通硅酸盐水泥', 1, '2026-01-13 07:14:49', '2026-01-13 07:14:49', 0);
INSERT INTO `products` (`id`, `name`, `specification`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (2, '钢筋', '直径12mm HRB400钢筋', 1, '2026-01-13 07:14:49', '2026-01-13 07:14:49', 0);
INSERT INTO `products` (`id`, `name`, `specification`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (3, '砂石', '中砂(细度模数2.3-1.6)', 1, '2026-01-13 07:14:49', '2026-01-13 07:14:49', 0);
INSERT INTO `products` (`id`, `name`, `specification`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (4, '混凝土', 'C30商品混凝土', 1, '2026-01-13 07:14:49', '2026-01-16 00:33:18', 1);
INSERT INTO `products` (`id`, `name`, `specification`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (5, '12344', '12344', 0, '2026-01-16 00:36:27', '2026-01-16 00:36:34', 1);
COMMIT;
-- ----------------------------
-- Table structure for schema_version
-- ----------------------------
DROP TABLE IF EXISTS `schema_version`;
CREATE TABLE `schema_version` (
`version` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据库版本',
`description` text COLLATE utf8mb4_unicode_ci COMMENT '版本描述',
`applied_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '应用时间',
PRIMARY KEY (`version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ----------------------------
-- Records of schema_version
-- ----------------------------
BEGIN;
INSERT INTO `schema_version` (`version`, `description`, `applied_at`) VALUES ('2.0.0', '添加证件过期时间管理功能,完善车辆证件分类系统', '2026-01-13 07:14:49');
COMMIT;
-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '登录工号',
`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码',
`role` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'operator' COMMENT '角色: operator(操作员), admin(管理员), driver(司机), escort(押运员)',
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '姓名',
`phone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机号码(司机、押运员必填)',
`id_card` varchar(18) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '身份证号(司机、押运员必填)',
`is_active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除: 0-正常, 1-删除',
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
KEY `idx_username` (`username`),
KEY `idx_role` (`role`),
KEY `idx_is_active` (`is_active`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
-- ----------------------------
-- Records of users
-- ----------------------------
BEGIN;
INSERT INTO `users` (`id`, `username`, `password`, `role`, `name`, `phone`, `id_card`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (1, 'admin', 'admin123', 'admin', '系统管理员', NULL, NULL, 1, '2026-01-13 07:14:49', '2026-01-13 07:14:49', 0);
INSERT INTO `users` (`id`, `username`, `password`, `role`, `name`, `phone`, `id_card`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (2, 'testuser1768458386083', '123456', 'operator', '测试用户', NULL, NULL, 1, '2026-01-15 14:26:26', '2026-01-15 14:26:26', 0);
INSERT INTO `users` (`id`, `username`, `password`, `role`, `name`, `phone`, `id_card`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (3, 'testuser1768458429763', '123456', 'operator', '测试用户', NULL, NULL, 1, '2026-01-15 14:27:09', '2026-01-15 14:27:09', 0);
INSERT INTO `users` (`id`, `username`, `password`, `role`, `name`, `phone`, `id_card`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (7, 'test422', '123456', 'operator', '测试422', '13877711221', NULL, 1, '2026-01-15 14:37:18', '2026-01-15 14:37:18', 0);
INSERT INTO `users` (`id`, `username`, `password`, `role`, `name`, `phone`, `id_card`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (8, 'czy03', '123456', 'operator', '操作员03', '13899001122', NULL, 1, '2026-01-15 14:39:18', '2026-01-15 14:39:18', 0);
INSERT INTO `users` (`id`, `username`, `password`, `role`, `name`, `phone`, `id_card`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (9, '1231', '123456', 'escort', '王五', '13899112232', '340822198111221122', 1, '2026-01-15 14:43:18', '2026-01-15 19:01:50', 0);
INSERT INTO `users` (`id`, `username`, `password`, `role`, `name`, `phone`, `id_card`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (10, '3', '123456', 'driver', 'lisan', '13877112211', '340822198811223344', 1, '2026-01-15 14:43:41', '2026-01-15 15:09:56', 0);
INSERT INTO `users` (`id`, `username`, `password`, `role`, `name`, `phone`, `id_card`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (11, '4', '123456', 'operator', '4', '13511223311', NULL, 1, '2026-01-15 14:49:14', '2026-01-15 14:49:14', 0);
INSERT INTO `users` (`id`, `username`, `password`, `role`, `name`, `phone`, `id_card`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (12, '5', '123456', 'operator', '5', '13611332211', NULL, 0, '2026-01-15 14:49:23', '2026-01-15 17:19:18', 0);
COMMIT;
-- ----------------------------
-- Table structure for vehicle_certificates
-- ----------------------------
DROP TABLE IF EXISTS `vehicle_certificates`;
CREATE TABLE `vehicle_certificates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`vehicle_id` int(11) NOT NULL COMMENT '车辆ID',
`certificate_category` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '证件类别: license(车牌), registration(行驶证), transport(运输证), insurance(保险), inspection(罐检)',
`vehicle_part` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车辆部位: head(车头), tail(车尾), tank(罐体)',
`file_url` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件URL',
`file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原文件名',
`expiry_date` date DEFAULT NULL COMMENT '证件过期日期',
`uploaded_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除: 0-正常, 1-删除',
PRIMARY KEY (`id`),
KEY `idx_vehicle_id` (`vehicle_id`),
KEY `idx_vehicle_certificates_expiry` (`expiry_date`),
KEY `idx_vehicle_certificates_part_category` (`vehicle_part`,`certificate_category`),
CONSTRAINT `vehicle_certificates_ibfk_1` FOREIGN KEY (`vehicle_id`) REFERENCES `vehicles` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆证件表';
-- ----------------------------
-- Records of vehicle_certificates
-- ----------------------------
BEGIN;
INSERT INTO `vehicle_certificates` (`id`, `vehicle_id`, `certificate_category`, `vehicle_part`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (1, 1, 'license', 'head', 'http://121.43.228.102:9000/clgl/77ccdee8-1e0e-47fc-a34f-d9d06574a335.png', 'Snipaste_2025-12-27_16-03-25.png', '2026-01-13', '2026-01-15 20:00:52', 1);
INSERT INTO `vehicle_certificates` (`id`, `vehicle_id`, `certificate_category`, `vehicle_part`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (2, 1, 'registration', 'head', 'http://example.com/test.pdf', 'test.pdf', '2025-12-31', '2026-01-15 20:01:02', 1);
INSERT INTO `vehicle_certificates` (`id`, `vehicle_id`, `certificate_category`, `vehicle_part`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (3, 1, 'registration', 'head', 'http://121.43.228.102:9000/clgl/40194dc8-62f9-49eb-9e13-b5a7fefb9ed0.png', 'Snipaste_2025-12-27_16-03-25.png', '2026-01-21', '2026-01-15 20:28:36', 0);
INSERT INTO `vehicle_certificates` (`id`, `vehicle_id`, `certificate_category`, `vehicle_part`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (4, 1, 'inspection', 'head', 'http://121.43.228.102:9000/clgl/56f3c3a2-355f-4ffb-b59a-63db99d82ad3.png', 'Snipaste_2025-12-27_16-03-21.png', '2026-01-06', '2026-01-15 20:32:47', 1);
INSERT INTO `vehicle_certificates` (`id`, `vehicle_id`, `certificate_category`, `vehicle_part`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (5, 1, 'insurance', 'head', 'http://121.43.228.102:9000/clgl/350bad8b-ce21-42f4-913c-b279a0347f92.png', 'Snipaste_2025-12-27_16-03-33.png', '2025-12-30', '2026-01-15 20:33:01', 1);
INSERT INTO `vehicle_certificates` (`id`, `vehicle_id`, `certificate_category`, `vehicle_part`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (6, 1, 'registration', 'head', 'http://121.43.228.102:9000/clgl/b799d8e6-8b94-439a-8402-1fc11016b90e.png', 'Snipaste_2025-12-27_16-03-25.png', '2025-12-30', '2026-01-15 20:52:21', 1);
INSERT INTO `vehicle_certificates` (`id`, `vehicle_id`, `certificate_category`, `vehicle_part`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (7, 1, 'transport', 'tail', 'http://121.43.228.102:9000/clgl/86b2b5f4-938f-4bac-9621-eebcc5522b08.png', 'Snipaste_2025-12-27_16-03-25.png', '2026-01-28', '2026-01-15 21:28:56', 0);
INSERT INTO `vehicle_certificates` (`id`, `vehicle_id`, `certificate_category`, `vehicle_part`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (8, 1, 'registration', 'tail', 'http://121.43.228.102:9000/clgl/9468380e-9f5d-44a3-ba22-b5805570e8bc.png', 'Snipaste_2025-12-27_16-03-17.png', '2026-01-07', '2026-01-15 21:29:10', 0);
INSERT INTO `vehicle_certificates` (`id`, `vehicle_id`, `certificate_category`, `vehicle_part`, `file_url`, `file_name`, `expiry_date`, `uploaded_at`, `is_deleted`) VALUES (9, 1, 'license', 'tail', 'http://121.43.228.102:9000/clgl/b17330dc-1c32-4408-8f2d-bbcae00a3046.jpg', 'avatar.jpg', '2026-01-22', '2026-01-15 21:29:21', 0);
COMMIT;
-- ----------------------------
-- Table structure for vehicle_heads
-- ----------------------------
DROP TABLE IF EXISTS `vehicle_heads`;
CREATE TABLE `vehicle_heads` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`plate_number` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
`is_active` tinyint(1) DEFAULT '1',
`is_deleted` tinyint(1) DEFAULT '0',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`category` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'owned' COMMENT '车辆分类: owned(自有车辆), other(其他车辆)',
PRIMARY KEY (`id`),
UNIQUE KEY `plate_number` (`plate_number`),
KEY `idx_plate_number` (`plate_number`),
KEY `idx_is_active` (`is_active`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车头表';
-- ----------------------------
-- Records of vehicle_heads
-- ----------------------------
BEGIN;
INSERT INTO `vehicle_heads` (`id`, `plate_number`, `is_active`, `is_deleted`, `created_at`, `updated_at`, `category`) VALUES (1, '皖P13231', 1, 0, '2026-01-15 19:18:40', '2026-01-15 19:18:40', 'owned');
INSERT INTO `vehicle_heads` (`id`, `plate_number`, `is_active`, `is_deleted`, `created_at`, `updated_at`, `category`) VALUES (2, '皖D13223', 1, 1, '2026-01-15 21:16:13', '2026-01-15 21:30:24', 'owned');
INSERT INTO `vehicle_heads` (`id`, `plate_number`, `is_active`, `is_deleted`, `created_at`, `updated_at`, `category`) VALUES (3, '皖S12222', 1, 0, '2026-01-15 22:28:32', '2026-01-15 22:28:32', 'owned');
COMMIT;
-- ----------------------------
-- Table structure for vehicle_plans
-- ----------------------------
DROP TABLE IF EXISTS `vehicle_plans`;
CREATE TABLE `vehicle_plans` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`plan_date` date NOT NULL COMMENT '计划日期',
`start_time` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '开始时间 (HH:MM格式)',
`end_time` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '结束时间 (HH:MM格式)',
`customer_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户名称',
`product_id` int(11) NOT NULL COMMENT '商品ID',
`quantity` float NOT NULL COMMENT '数量',
`unit` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '单位',
`loading_manufacturer_id` int(11) NOT NULL COMMENT '装货厂商ID',
`unloading_manufacturer_id` int(11) NOT NULL COMMENT '卸货厂商ID',
`vehicle_id` int(11) NOT NULL COMMENT '车辆ID',
`driver_id` int(11) NOT NULL COMMENT '司机ID',
`escort_id` int(11) NOT NULL COMMENT '押运员ID',
`loading_arrival_time` datetime DEFAULT NULL COMMENT '装货到场时间',
`loading_departure_time` datetime DEFAULT NULL COMMENT '装货离场时间',
`unloading_arrival_time` datetime DEFAULT NULL COMMENT '卸货到场时间',
`unloading_departure_time` datetime DEFAULT NULL COMMENT '卸货离场时间',
`status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'pending' COMMENT '状态: pending(待开始), loading(装货中), unloading(卸货中), completed(已完成)',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除: 0-正常, 1-删除',
PRIMARY KEY (`id`),
KEY `idx_plan_date` (`plan_date`),
KEY `idx_status` (`status`),
KEY `idx_driver_id` (`driver_id`),
KEY `idx_escort_id` (`escort_id`),
KEY `product_id` (`product_id`),
KEY `loading_manufacturer_id` (`loading_manufacturer_id`),
KEY `unloading_manufacturer_id` (`unloading_manufacturer_id`),
KEY `vehicle_id` (`vehicle_id`),
KEY `idx_vehicle_plans_date_status` (`plan_date`,`status`),
KEY `idx_vehicle_plans_driver_escort` (`driver_id`,`escort_id`),
CONSTRAINT `vehicle_plans_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`),
CONSTRAINT `vehicle_plans_ibfk_2` FOREIGN KEY (`loading_manufacturer_id`) REFERENCES `manufacturers` (`id`),
CONSTRAINT `vehicle_plans_ibfk_3` FOREIGN KEY (`unloading_manufacturer_id`) REFERENCES `manufacturers` (`id`),
CONSTRAINT `vehicle_plans_ibfk_4` FOREIGN KEY (`vehicle_id`) REFERENCES `vehicles` (`id`),
CONSTRAINT `vehicle_plans_ibfk_5` FOREIGN KEY (`driver_id`) REFERENCES `users` (`id`),
CONSTRAINT `vehicle_plans_ibfk_6` FOREIGN KEY (`escort_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆计划表';
-- ----------------------------
-- Records of vehicle_plans
-- ----------------------------
BEGIN;
COMMIT;
-- ----------------------------
-- Table structure for vehicle_tails
-- ----------------------------
DROP TABLE IF EXISTS `vehicle_tails`;
CREATE TABLE `vehicle_tails` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`plate_number` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
`is_active` tinyint(1) DEFAULT '1',
`is_deleted` tinyint(1) DEFAULT '0',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`category` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT 'owned' COMMENT '车辆分类: owned(自有车辆), other(其他车辆)',
PRIMARY KEY (`id`),
UNIQUE KEY `plate_number` (`plate_number`),
KEY `idx_plate_number` (`plate_number`),
KEY `idx_is_active` (`is_active`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车尾表';
-- ----------------------------
-- Records of vehicle_tails
-- ----------------------------
BEGIN;
INSERT INTO `vehicle_tails` (`id`, `plate_number`, `is_active`, `is_deleted`, `created_at`, `updated_at`, `category`) VALUES (1, '皖A09871', 0, 0, '2026-01-15 19:18:41', '2026-01-15 21:29:50', 'owned');
INSERT INTO `vehicle_tails` (`id`, `plate_number`, `is_active`, `is_deleted`, `created_at`, `updated_at`, `category`) VALUES (2, '皖A12333', 1, 0, '2026-01-15 22:28:39', '2026-01-15 22:28:39', 'owned');
COMMIT;
-- ----------------------------
-- Table structure for vehicles
-- ----------------------------
DROP TABLE IF EXISTS `vehicles`;
CREATE TABLE `vehicles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '分类: owned(自有车辆), other(其他车辆)',
`head_id` int(11) DEFAULT NULL,
`tail_id` int(11) DEFAULT NULL,
`default_driver_id` int(11) DEFAULT NULL COMMENT '默认司机ID',
`default_escort_id` int(11) DEFAULT NULL COMMENT '默认押运员ID',
`is_active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除: 0-正常, 1-删除',
PRIMARY KEY (`id`),
KEY `idx_category` (`category`),
KEY `idx_is_active` (`is_active`),
KEY `default_driver_id` (`default_driver_id`),
KEY `default_escort_id` (`default_escort_id`),
KEY `fk_vehicle_head` (`head_id`),
KEY `fk_vehicle_tail` (`tail_id`),
CONSTRAINT `fk_vehicle_head` FOREIGN KEY (`head_id`) REFERENCES `vehicle_heads` (`id`),
CONSTRAINT `fk_vehicle_tail` FOREIGN KEY (`tail_id`) REFERENCES `vehicle_tails` (`id`) ON DELETE SET NULL,
CONSTRAINT `vehicles_ibfk_1` FOREIGN KEY (`default_driver_id`) REFERENCES `users` (`id`) ON DELETE SET NULL,
CONSTRAINT `vehicles_ibfk_2` FOREIGN KEY (`default_escort_id`) REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆表';
-- ----------------------------
-- Records of vehicles
-- ----------------------------
BEGIN;
INSERT INTO `vehicles` (`id`, `category`, `head_id`, `tail_id`, `default_driver_id`, `default_escort_id`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (1, 'owned', 1, 1, 10, 9, 1, '2026-01-15 19:02:06', '2026-01-15 22:35:59', 1);
INSERT INTO `vehicles` (`id`, `category`, `head_id`, `tail_id`, `default_driver_id`, `default_escort_id`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (2, 'other', 1, 1, 10, 9, 1, '2026-01-15 22:28:10', '2026-01-15 22:43:35', 0);
INSERT INTO `vehicles` (`id`, `category`, `head_id`, `tail_id`, `default_driver_id`, `default_escort_id`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (3, 'owned', 3, 2, 10, 9, 0, '2026-01-15 22:29:18', '2026-01-15 23:45:59', 0);
INSERT INTO `vehicles` (`id`, `category`, `head_id`, `tail_id`, `default_driver_id`, `default_escort_id`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (4, 'owned', 1, 2, 10, 9, 1, '2026-01-15 22:33:46', '2026-01-15 22:33:46', 0);
INSERT INTO `vehicles` (`id`, `category`, `head_id`, `tail_id`, `default_driver_id`, `default_escort_id`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (5, 'owned', 1, 2, 10, 9, 1, '2026-01-15 22:33:58', '2026-01-15 22:33:58', 0);
INSERT INTO `vehicles` (`id`, `category`, `head_id`, `tail_id`, `default_driver_id`, `default_escort_id`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (6, 'owned', 1, 2, 10, 9, 1, '2026-01-15 22:35:36', '2026-01-15 22:35:36', 0);
INSERT INTO `vehicles` (`id`, `category`, `head_id`, `tail_id`, `default_driver_id`, `default_escort_id`, `is_active`, `created_at`, `updated_at`, `is_deleted`) VALUES (7, 'owned', 1, 2, 10, 9, 1, '2026-01-15 22:35:54', '2026-01-15 22:35:54', 0);
COMMIT;
-- ----------------------------
-- Triggers structure for table manufacturers
-- ----------------------------
DROP TRIGGER IF EXISTS `update_manufacturers_timestamp`;
delimiter ;;
CREATE TRIGGER `vehicle_management`.`update_manufacturers_timestamp` BEFORE UPDATE ON `manufacturers` FOR EACH ROW BEGIN
SET NEW.updated_at = CURRENT_TIMESTAMP;
END
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table products
-- ----------------------------
DROP TRIGGER IF EXISTS `update_products_timestamp`;
delimiter ;;
CREATE TRIGGER `vehicle_management`.`update_products_timestamp` BEFORE UPDATE ON `products` FOR EACH ROW BEGIN
SET NEW.updated_at = CURRENT_TIMESTAMP;
END
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table users
-- ----------------------------
DROP TRIGGER IF EXISTS `update_users_timestamp`;
delimiter ;;
CREATE TRIGGER `vehicle_management`.`update_users_timestamp` BEFORE UPDATE ON `users` FOR EACH ROW BEGIN
SET NEW.updated_at = CURRENT_TIMESTAMP;
END
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table vehicle_heads
-- ----------------------------
DROP TRIGGER IF EXISTS `update_vehicle_heads_timestamp`;
delimiter ;;
CREATE TRIGGER `vehicle_management`.`update_vehicle_heads_timestamp` BEFORE UPDATE ON `vehicle_heads` FOR EACH ROW SET NEW.updated_at = CURRENT_TIMESTAMP
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table vehicle_plans
-- ----------------------------
DROP TRIGGER IF EXISTS `update_vehicle_plans_timestamp`;
delimiter ;;
CREATE TRIGGER `vehicle_management`.`update_vehicle_plans_timestamp` BEFORE UPDATE ON `vehicle_plans` FOR EACH ROW BEGIN
SET NEW.updated_at = CURRENT_TIMESTAMP;
END
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table vehicle_tails
-- ----------------------------
DROP TRIGGER IF EXISTS `update_vehicle_tails_timestamp`;
delimiter ;;
CREATE TRIGGER `vehicle_management`.`update_vehicle_tails_timestamp` BEFORE UPDATE ON `vehicle_tails` FOR EACH ROW SET NEW.updated_at = CURRENT_TIMESTAMP
;;
delimiter ;
-- ----------------------------
-- Triggers structure for table vehicles
-- ----------------------------
DROP TRIGGER IF EXISTS `update_vehicles_timestamp`;
delimiter ;;
CREATE TRIGGER `vehicle_management`.`update_vehicles_timestamp` BEFORE UPDATE ON `vehicles` FOR EACH ROW BEGIN
SET NEW.updated_at = CURRENT_TIMESTAMP;
END
;;
delimiter ;
SET FOREIGN_KEY_CHECKS = 1;