61 lines
3.4 KiB
SQL
61 lines
3.4 KiB
SQL
-- 目标数据库:baiyue_lastleg;仅增加结构,不修改既有业务数据,可重复执行。
|
|
USE baiyue_lastleg;
|
|
SET @pickup_column_sql = IF((SELECT COUNT(*) FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_fleet_trip' AND column_name='trip_purpose')=0,
|
|
'ALTER TABLE ll_fleet_trip ADD COLUMN trip_purpose VARCHAR(16) NOT NULL DEFAULT ''DELIVERY'' COMMENT ''DELIVERY出库派送 PICKUP上门取货入仓''',
|
|
'SELECT 1');
|
|
PREPARE pickup_column_stmt FROM @pickup_column_sql;
|
|
EXECUTE pickup_column_stmt;
|
|
DEALLOCATE PREPARE pickup_column_stmt;
|
|
|
|
CREATE TABLE IF NOT EXISTS ll_fleet_pickup_plan (
|
|
trip_no VARCHAR(64) NOT NULL COMMENT '现有车辆车次号',
|
|
request_hash VARCHAR(64) NOT NULL COMMENT '创建来源与计划摘要',
|
|
PRIMARY KEY(trip_no)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='仓储转运取货计划';
|
|
|
|
CREATE TABLE IF NOT EXISTS ll_fleet_pickup_task (
|
|
transfer_order_id BIGINT NOT NULL COMMENT '原仓储转运单ID,一票唯一',
|
|
customer_id VARCHAR(64) NOT NULL COMMENT '客户隔离键',
|
|
transfer_no VARCHAR(64) NOT NULL COMMENT '原仓储转运单号',
|
|
trip_no VARCHAR(64) NULL COMMENT '当前取货车次,解除后为空',
|
|
status VARCHAR(32) NOT NULL COMMENT 'WAITING待安排 ASSIGNED已安排 PICKED已取货 ARRIVED已送仓',
|
|
actual_packages INT NULL COMMENT '司机实提箱数,非仓库实收',
|
|
picked_at DATETIME NULL COMMENT '实际确认取货UTC时间',
|
|
arrived_at DATETIME NULL COMMENT '实际确认送仓UTC时间',
|
|
evidence_json LONGTEXT NULL COMMENT '本票已确认凭证元数据',
|
|
remark VARCHAR(1000) NULL COMMENT '取货备注',
|
|
updated_at DATETIME NOT NULL COMMENT '最近修改UTC时间',
|
|
PRIMARY KEY(transfer_order_id),
|
|
UNIQUE KEY uk_pickup_source(customer_id,transfer_no),
|
|
KEY idx_pickup_trip(trip_no,status)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='仓储转运逐票取货执行';
|
|
|
|
CREATE TABLE IF NOT EXISTS ll_fleet_pickup_command (
|
|
trip_no VARCHAR(64) NOT NULL COMMENT '取货车次号',
|
|
request_key VARCHAR(128) NOT NULL COMMENT '成功命令幂等键',
|
|
request_hash VARCHAR(64) NOT NULL COMMENT '命令动作与内容摘要',
|
|
PRIMARY KEY(trip_no,request_key)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='取货命令幂等记录';
|
|
|
|
CREATE TABLE IF NOT EXISTS ll_fleet_pickup_upload (
|
|
transfer_order_id BIGINT NOT NULL COMMENT '凭证所属原单',
|
|
trip_no VARCHAR(64) NOT NULL COMMENT '凭证所属车次',
|
|
file_id BIGINT NOT NULL COMMENT '平台归属文件ID',
|
|
PRIMARY KEY(file_id),
|
|
KEY idx_pickup_upload_source(transfer_order_id,trip_no)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='取货上传凭证精确单据归属';
|
|
|
|
CREATE TABLE IF NOT EXISTS ll_fleet_pickup_history (
|
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '操作流水',
|
|
customer_id VARCHAR(64) NOT NULL COMMENT '客户隔离键',
|
|
transfer_no VARCHAR(64) NOT NULL COMMENT '原转运单号',
|
|
trip_no VARCHAR(64) NOT NULL COMMENT '当时取货车次号',
|
|
action VARCHAR(32) NOT NULL COMMENT '安排解除取货到仓动作',
|
|
operator_id VARCHAR(64) NOT NULL COMMENT '操作人',
|
|
occurred_at DATETIME NOT NULL COMMENT '操作UTC时间',
|
|
detail VARCHAR(2000) NULL COMMENT '操作说明',
|
|
PRIMARY KEY(id),
|
|
KEY idx_pickup_history_source(customer_id,transfer_no,id),
|
|
KEY idx_pickup_history_trip(trip_no,id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='取货不可变操作历史';
|