feat(fleet): enforce reviewed trips and original fee coverage for dispatch
This commit is contained in:
@@ -299,7 +299,7 @@ CREATE TABLE IF NOT EXISTS ll_delivery_order (
|
||||
seller_name VARCHAR(128) NULL COMMENT '卖家姓名',
|
||||
package_count INT NOT NULL DEFAULT 0 COMMENT '派送箱数',
|
||||
pallet_count INT NOT NULL DEFAULT 0 COMMENT '派送托盘数',
|
||||
total_weight_kg DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '总重量(千克)',
|
||||
total_weight_kg DECIMAL(18,4) NULL COMMENT '总重量(千克),任一来源未确认时为空',
|
||||
total_volume_cbm DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '总体积(立方米)',
|
||||
planned_delivery_at DATETIME(3) NULL COMMENT '预计派送时间',
|
||||
dispatched_at DATETIME(3) NULL COMMENT '实际派送时间',
|
||||
@@ -968,7 +968,65 @@ CREATE TABLE IF NOT EXISTS ll_monthly_exchange_rate_history (
|
||||
KEY idx_ll_exchange_rate_history (exchange_rate_id,created_at)
|
||||
) ENGINE=InnoDB COMMENT='月度汇率变更历史';
|
||||
|
||||
CREATE TABLE ll_fleet_driver (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
driver_no VARCHAR(32) NOT NULL COMMENT '司机业务编号',
|
||||
warehouse_id BIGINT NULL COMMENT '所属公共仓库引用',
|
||||
warehouse_code VARCHAR(64) NULL COMMENT '所属仓库编码快照',
|
||||
warehouse_name VARCHAR(256) NULL COMMENT '所属仓库名称快照',
|
||||
vehicle_models VARCHAR(128) NULL COMMENT '可驾驶车型描述',
|
||||
languages_and_area VARCHAR(256) NULL COMMENT '语言及服务区域',
|
||||
medical_expires_on DATE NULL COMMENT '体检到期日,当前不作为必需资质',
|
||||
training_expires_on DATE NULL COMMENT '培训安全到期日,当前不作为必需资质',
|
||||
insurance_expires_on DATE NULL COMMENT '保险到期日,当前不作为必需资质',
|
||||
name VARCHAR(128) NOT NULL COMMENT '姓名',
|
||||
phone VARCHAR(64) NOT NULL COMMENT '联系电话',
|
||||
ownership VARCHAR(16) NOT NULL COMMENT '归属 OWNED自有 DISPATCHED外派',
|
||||
region VARCHAR(16) NOT NULL COMMENT '区域 DOMESTIC国内 OVERSEAS海外',
|
||||
active TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||||
review_status VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '证照审核 PENDING待审 APPROVED通过 REJECTED打回',
|
||||
license_number VARCHAR(128) NULL COMMENT '驾驶证编号',
|
||||
license_type VARCHAR(64) NULL COMMENT '驾驶证类型',
|
||||
license_issued_on DATE NULL COMMENT '驾驶证签发日期',
|
||||
license_expires_on DATE NULL COMMENT '驾驶证有效截止日',
|
||||
license_zone VARCHAR(64) NOT NULL COMMENT '证照有效日期的IANA时区',
|
||||
license_file_id BIGINT NULL COMMENT '平台驾驶证文件引用',
|
||||
remark VARCHAR(1000) NULL COMMENT '备注',
|
||||
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '并发版本',
|
||||
created_by VARCHAR(64) NOT NULL COMMENT '创建人',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '创建时间UTC',
|
||||
updated_by VARCHAR(64) NOT NULL COMMENT '修改人',
|
||||
updated_at DATETIME(3) NOT NULL COMMENT '修改时间UTC',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_fleet_driver_no (driver_no),
|
||||
KEY idx_fleet_driver_page (active,review_status,updated_at,id),
|
||||
KEY idx_fleet_driver_expiry (license_expires_on),
|
||||
CONSTRAINT chk_fleet_driver_ownership CHECK (ownership IN ('OWNED','DISPATCHED')),
|
||||
CONSTRAINT chk_fleet_driver_region CHECK (region IN ('DOMESTIC','OVERSEAS')),
|
||||
CONSTRAINT chk_fleet_driver_review CHECK (review_status IN ('PENDING','APPROVED','REJECTED')),
|
||||
CONSTRAINT chk_fleet_driver_dates CHECK (license_issued_on IS NULL OR license_expires_on IS NULL OR license_issued_on <= license_expires_on)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台司机档案';
|
||||
|
||||
CREATE TABLE ll_fleet_driver_history (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
driver_id BIGINT NOT NULL COMMENT '司机内部引用',
|
||||
record_version BIGINT NOT NULL COMMENT '操作后的档案版本',
|
||||
action VARCHAR(32) NOT NULL COMMENT '创建编辑启停证照上传及审核动作',
|
||||
reason VARCHAR(1000) NULL COMMENT '操作原因或审核意见',
|
||||
license_file_id BIGINT NULL COMMENT '当时驾驶证文件引用',
|
||||
snapshot_json JSON NOT NULL COMMENT '操作后不可变档案快照',
|
||||
operator_id VARCHAR(64) NOT NULL COMMENT '操作人',
|
||||
occurred_at DATETIME(3) NOT NULL COMMENT '操作时间UTC',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_fleet_driver_history_version (driver_id,record_version),
|
||||
KEY idx_fleet_driver_history_file (driver_id,license_file_id),
|
||||
CONSTRAINT fk_fleet_driver_history_driver FOREIGN KEY (driver_id) REFERENCES ll_fleet_driver(id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='司机档案及审核历史';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ll_vehicle (
|
||||
max_pallet_spaces INT NULL COMMENT '最大标准托位,未知时为空',
|
||||
max_load_kg DECIMAL(12,3) NULL COMMENT '最大载重,千克',
|
||||
max_volume_cbm DECIMAL(12,3) NULL COMMENT '可用容积,立方米',
|
||||
id BIGINT NOT NULL COMMENT '车辆档案ID', plate_number VARCHAR(64) NOT NULL COMMENT '车牌号',
|
||||
model VARCHAR(128) NOT NULL COMMENT '车型', fuel_consumption_per100_km DECIMAL(10,2) NOT NULL COMMENT '百公里油耗,单位升',
|
||||
mileage_km BIGINT NOT NULL COMMENT '当前公里码,单位公里', driver_or_dispatch_company VARCHAR(128) NULL COMMENT '司机姓名或外派单位',
|
||||
@@ -979,9 +1037,181 @@ CREATE TABLE IF NOT EXISTS ll_vehicle (
|
||||
created_by VARCHAR(128) NOT NULL COMMENT '创建人', updated_by VARCHAR(128) NOT NULL COMMENT '更新人',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '创建时间', updated_at DATETIME(3) NOT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (id), UNIQUE KEY uk_ll_vehicle_plate (plate_number),
|
||||
KEY idx_ll_vehicle_page (ownership,region,status,updated_at,id)
|
||||
KEY idx_ll_vehicle_page (ownership,region,status,updated_at,id),
|
||||
CONSTRAINT chk_ll_vehicle_capacity CHECK ((max_pallet_spaces IS NULL AND max_load_kg IS NULL AND max_volume_cbm IS NULL)
|
||||
OR (max_pallet_spaces IS NOT NULL AND max_load_kg IS NOT NULL AND max_volume_cbm IS NOT NULL
|
||||
AND max_pallet_spaces BETWEEN 1 AND 10000 AND max_load_kg > 0 AND max_volume_cbm > 0))
|
||||
) ENGINE=InnoDB COMMENT='平台车辆主数据';
|
||||
|
||||
CREATE TABLE ll_fleet_vehicle_record (
|
||||
id BIGINT NOT NULL COMMENT '记录内部主键',
|
||||
record_no VARCHAR(32) NOT NULL COMMENT '车辆运维业务编号',
|
||||
vehicle_id BIGINT NOT NULL COMMENT '所属车辆主键',
|
||||
vehicle_plate VARCHAR(64) NOT NULL COMMENT '建档时车牌快照',
|
||||
record_type VARCHAR(32) NOT NULL COMMENT '运维类型:保养、加油、维修、故障、救援、异常',
|
||||
occurred_at DATETIME(3) NOT NULL COMMENT '记录发生时间(UTC)',
|
||||
details_json JSON NOT NULL COMMENT '带明确单位的业务字段快照',
|
||||
files_json JSON NOT NULL COMMENT '所属记录照片与上传幂等摘要',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '创建请求幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '原创建业务内容摘要',
|
||||
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '乐观锁版本',
|
||||
created_by VARCHAR(64) NOT NULL COMMENT '创建操作人',
|
||||
updated_by VARCHAR(64) NOT NULL COMMENT '最后操作人',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '创建时间(UTC)',
|
||||
updated_at DATETIME(3) NOT NULL COMMENT '更新时间(UTC)',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_vehicle_record_no (record_no),
|
||||
UNIQUE KEY uk_vehicle_record_creation (vehicle_id, created_by, idempotency_key),
|
||||
KEY idx_vehicle_record_page (vehicle_id, record_type, occurred_at, id),
|
||||
CONSTRAINT fk_vehicle_record_vehicle FOREIGN KEY (vehicle_id) REFERENCES ll_vehicle(id),
|
||||
CONSTRAINT ck_vehicle_record_type CHECK (record_type IN ('MAINTENANCE','FUEL','REPAIR','BREAKDOWN','RESCUE','EXCEPTION'))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆运维记录';
|
||||
|
||||
CREATE TABLE ll_fleet_vehicle_record_history (
|
||||
id BIGINT NOT NULL COMMENT '历史内部主键',
|
||||
record_id BIGINT NOT NULL COMMENT '运维记录主键',
|
||||
record_version BIGINT NOT NULL COMMENT '对应业务版本',
|
||||
action VARCHAR(32) NOT NULL COMMENT '操作类型',
|
||||
reason VARCHAR(1000) DEFAULT NULL COMMENT '更正原因或附件名称',
|
||||
operator_id VARCHAR(64) NOT NULL COMMENT '操作人',
|
||||
occurred_at DATETIME(3) NOT NULL COMMENT '操作时间(UTC)',
|
||||
snapshot_json JSON NOT NULL COMMENT '当时完整业务快照',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_vehicle_record_revision (record_id, record_version),
|
||||
CONSTRAINT fk_vehicle_record_history FOREIGN KEY (record_id) REFERENCES ll_fleet_vehicle_record(id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆运维记录不可变历史';
|
||||
|
||||
CREATE TABLE ll_fleet_trip (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
trip_no VARCHAR(32) NOT NULL COMMENT '车次业务编号',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '创建请求幂等键',
|
||||
request_hash VARCHAR(64) NOT NULL COMMENT '创建请求SHA256',
|
||||
status VARCHAR(16) NOT NULL COMMENT '车次状态',
|
||||
warehouse_id BIGINT NOT NULL COMMENT '起运公共仓库引用',
|
||||
warehouse_code VARCHAR(64) NOT NULL COMMENT '起运仓编码快照',
|
||||
warehouse_name VARCHAR(256) NOT NULL COMMENT '起运仓名称快照',
|
||||
vehicle_id BIGINT NULL COMMENT '车辆档案引用',
|
||||
vehicle_plate VARCHAR(64) NULL COMMENT '分配时车牌快照',
|
||||
driver_id BIGINT NULL COMMENT '司机档案引用',
|
||||
driver_name VARCHAR(128) NULL COMMENT '分配时司机姓名',
|
||||
driver_phone VARCHAR(64) NULL COMMENT '分配时司机电话',
|
||||
max_pallet_spaces INT NULL COMMENT '分配时托位容量快照',
|
||||
max_load_kg DECIMAL(12,3) NULL COMMENT '分配时载重千克',
|
||||
max_volume_cbm DECIMAL(12,3) NULL COMMENT '分配时可用容积立方米',
|
||||
planned_departure_at DATETIME(3) NOT NULL COMMENT '计划发车UTC',
|
||||
expected_driver_end_at DATETIME(3) NOT NULL COMMENT '司机预计任务结束UTC,含承担的返程转场',
|
||||
departed_at DATETIME(3) NULL COMMENT '实际发车UTC',
|
||||
completed_at DATETIME(3) NULL COMMENT '实际运输完成UTC',
|
||||
stops_json JSON NOT NULL COMMENT '按顺序保存的路线站点',
|
||||
planned_load_json JSON NULL COMMENT '拣货前自有货计划载荷与逐段剩余容量',
|
||||
load_json JSON NULL COMMENT '已确认实物装载及客户货物来源快照',
|
||||
loading_review_json LONGTEXT NULL COMMENT '整车理货审核快照,空值为待审核',
|
||||
departure_key VARCHAR(128) NULL COMMENT '整车发车幂等标识',
|
||||
departure_hash CHAR(64) NULL COMMENT '整车发车请求摘要',
|
||||
departure_result_json JSON NULL COMMENT '整车发车结果及各客户出库结果',
|
||||
completion_json JSON NULL COMMENT '货物结案来源及幂等结果快照',
|
||||
vehicle_release_json JSON NULL COMMENT '车辆任务结束地点状态与幂等记录',
|
||||
driver_release_json JSON NULL COMMENT '司机任务结束地点与幂等记录',
|
||||
remark VARCHAR(1000) NULL COMMENT '备注',
|
||||
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '并发版本',
|
||||
created_by VARCHAR(64) NOT NULL COMMENT '创建人',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '创建UTC时间',
|
||||
updated_by VARCHAR(64) NOT NULL COMMENT '更新人',
|
||||
updated_at DATETIME(3) NOT NULL COMMENT '更新UTC时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_fleet_trip_no (trip_no),
|
||||
UNIQUE KEY uk_fleet_trip_create (created_by,idempotency_key),
|
||||
KEY idx_fleet_trip_page (warehouse_id,status,updated_at,id),
|
||||
CONSTRAINT fk_fleet_trip_vehicle FOREIGN KEY (vehicle_id) REFERENCES ll_vehicle(id),
|
||||
CONSTRAINT fk_fleet_trip_driver FOREIGN KEY (driver_id) REFERENCES ll_fleet_driver(id),
|
||||
CONSTRAINT chk_fleet_trip_status CHECK (status IN ('PLANNED','DEPARTING','IN_TRANSIT','COMPLETED','CANCELLED')),
|
||||
CONSTRAINT chk_fleet_trip_time CHECK (expected_driver_end_at > planned_departure_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台运输车次';
|
||||
|
||||
CREATE TABLE ll_fleet_external_booking (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
booking_no VARCHAR(32) NOT NULL COMMENT '外接预订业务编号',
|
||||
trip_id BIGINT NOT NULL COMMENT '所属车次',
|
||||
trip_no VARCHAR(32) NOT NULL COMMENT '车次业务编号',
|
||||
customer_id VARCHAR(128) NOT NULL COMMENT '委托客户及付款归属',
|
||||
customer_code VARCHAR(64) NOT NULL COMMENT '客户编号快照',
|
||||
customer_name VARCHAR(255) NOT NULL COMMENT '客户名称快照',
|
||||
status VARCHAR(16) NOT NULL COMMENT 'DRAFT询价/CONFIRMED占位/RECEIVED确认实收/BOUND关联发运/CANCELLED取消',
|
||||
cargo_json JSON NOT NULL COMMENT '货物、计划载荷、联系人及约定报价快照',
|
||||
destination_key VARCHAR(160) NOT NULL COMMENT '已有路线卸货站匹配键',
|
||||
destination_label VARCHAR(255) NOT NULL COMMENT '约定卸货站名称',
|
||||
agreed_amount DECIMAL(16,2) NULL COMMENT '约定金额,非已入账应收或实收',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '登记请求键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '登记内容摘要',
|
||||
confirm_key VARCHAR(128) NULL COMMENT '承运确认请求键',
|
||||
confirm_hash CHAR(64) NULL COMMENT '承运确认摘要',
|
||||
cancel_key VARCHAR(128) NULL COMMENT '取消请求键',
|
||||
cancel_hash CHAR(64) NULL COMMENT '取消摘要',
|
||||
incoming_no VARCHAR(64) NULL COMMENT '正式来货单业务编号',
|
||||
dispatch_no VARCHAR(64) NULL COMMENT '已关联客户排车业务编号',
|
||||
receipt_json JSON NULL COMMENT '实测来源及运营确认的托位和运费依据',
|
||||
incoming_key VARCHAR(128) NULL COMMENT '来货登记请求键',
|
||||
incoming_hash CHAR(64) NULL COMMENT '来货登记摘要',
|
||||
receipt_key VARCHAR(128) NULL COMMENT '实收确认请求键',
|
||||
receipt_hash CHAR(64) NULL COMMENT '实收确认摘要',
|
||||
binding_key VARCHAR(128) NULL COMMENT '关联发运请求键',
|
||||
binding_hash CHAR(64) NULL COMMENT '关联发运摘要',
|
||||
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '记录版本',
|
||||
created_by VARCHAR(64) NOT NULL COMMENT '登记人',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '登记UTC时间',
|
||||
updated_by VARCHAR(64) NOT NULL COMMENT '修改人',
|
||||
updated_at DATETIME(3) NOT NULL COMMENT '修改UTC时间',
|
||||
PRIMARY KEY(id),
|
||||
UNIQUE KEY uk_fleet_booking_no(booking_no),
|
||||
UNIQUE KEY uk_fleet_booking_create(trip_id,created_by,idempotency_key),
|
||||
KEY idx_fleet_booking_trip(trip_id,status,id),
|
||||
UNIQUE KEY uk_fleet_booking_incoming(incoming_no),
|
||||
KEY idx_fleet_booking_dispatch(dispatch_no),
|
||||
CONSTRAINT fk_fleet_booking_trip FOREIGN KEY(trip_id) REFERENCES ll_fleet_trip(id),
|
||||
CONSTRAINT chk_fleet_booking_status CHECK(status IN ('DRAFT','CONFIRMED','RECEIVED','BOUND','CANCELLED'))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='外接询价及确认承运占位;货物收发和费用入账分别引用正式事实';
|
||||
|
||||
CREATE TABLE ll_fleet_resource_assignment (
|
||||
resource_kind VARCHAR(16) NOT NULL COMMENT '资源种类 VEHICLE或DRIVER',
|
||||
resource_id BIGINT NOT NULL COMMENT '对应车辆或司机档案引用',
|
||||
trip_id BIGINT NOT NULL COMMENT '占用车次',
|
||||
trip_no VARCHAR(32) NOT NULL COMMENT '占用车次业务编号',
|
||||
PRIMARY KEY (resource_kind,resource_id),
|
||||
KEY idx_fleet_resource_trip (trip_id),
|
||||
CONSTRAINT fk_fleet_resource_trip FOREIGN KEY (trip_id) REFERENCES ll_fleet_trip(id),
|
||||
CONSTRAINT chk_fleet_resource_kind CHECK (resource_kind IN ('VEHICLE','DRIVER'))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆及司机当前车次占用,释放后删除锁行,历史保留在车次';
|
||||
|
||||
CREATE TABLE ll_fleet_trip_dispatch (
|
||||
dispatch_id BIGINT NOT NULL COMMENT '客户排车单内部引用,唯一有效车次关联',
|
||||
dispatch_no VARCHAR(64) NOT NULL COMMENT '客户排车业务单号',
|
||||
customer_id VARCHAR(128) NOT NULL COMMENT '排车单自身客户归属',
|
||||
trip_id BIGINT NOT NULL COMMENT '共享运输车次内部引用',
|
||||
trip_no VARCHAR(32) NOT NULL COMMENT '共享运输车次业务编号',
|
||||
package_count INT NOT NULL COMMENT '关联时待发运箱数快照',
|
||||
bound_by VARCHAR(64) NOT NULL COMMENT '关联操作人',
|
||||
bound_at DATETIME(3) NOT NULL COMMENT '关联UTC时间',
|
||||
review_json LONGTEXT NULL COMMENT '客户排车调度审核快照,空值为待审核',
|
||||
PRIMARY KEY (dispatch_id),
|
||||
UNIQUE KEY uk_fleet_trip_dispatch_no (dispatch_no),
|
||||
KEY idx_fleet_trip_dispatch_trip (trip_id,dispatch_id),
|
||||
CONSTRAINT fk_fleet_trip_dispatch_trip FOREIGN KEY (trip_id) REFERENCES ll_fleet_trip(id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车次与各客户排车单的有效关联,解除前快照保留在车次历史';
|
||||
|
||||
CREATE TABLE ll_fleet_trip_history (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
trip_id BIGINT NOT NULL COMMENT '车次内部引用',
|
||||
record_version BIGINT NOT NULL COMMENT '操作后版本',
|
||||
action VARCHAR(32) NOT NULL COMMENT '车次操作',
|
||||
reason VARCHAR(1000) NULL COMMENT '操作原因',
|
||||
operator_id VARCHAR(64) NOT NULL COMMENT '操作人',
|
||||
occurred_at DATETIME(3) NOT NULL COMMENT '操作UTC时间',
|
||||
snapshot_json JSON NOT NULL COMMENT '操作后不可变车次快照',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_fleet_trip_history_version (trip_id,record_version),
|
||||
CONSTRAINT fk_fleet_trip_history FOREIGN KEY (trip_id) REFERENCES ll_fleet_trip(id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输车次操作历史';
|
||||
|
||||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_event_outbox' AND column_name='locked_at'), 'SELECT 1', 'ALTER TABLE ll_event_outbox ADD COLUMN locked_at DATETIME(3) NULL COMMENT ''投递租约获取时间'' AFTER published_at'));
|
||||
PREPARE ll_outbox_lease_stmt FROM @ddl; EXECUTE ll_outbox_lease_stmt; DEALLOCATE PREPARE ll_outbox_lease_stmt;
|
||||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_event_outbox' AND column_name='locked_by'), 'SELECT 1', 'ALTER TABLE ll_event_outbox ADD COLUMN locked_by VARCHAR(128) NULL COMMENT ''投递租约持有者'' AFTER locked_at'));
|
||||
@@ -1389,7 +1619,7 @@ CREATE TABLE IF NOT EXISTS ll_dispatch_item (
|
||||
contact_name VARCHAR(128) NULL COMMENT '私人仓联系人快照',
|
||||
contact_phone VARCHAR(64) NULL COMMENT '私人仓联系电话快照',
|
||||
package_count INT NOT NULL DEFAULT 0 COMMENT '箱数',
|
||||
gross_weight_kg DECIMAL(18,3) NOT NULL DEFAULT 0 COMMENT '毛重(千克)',
|
||||
gross_weight_kg DECIMAL(18,3) NULL COMMENT '毛重(千克),未知为NULL,不以材积重代替',
|
||||
volume_weight_kg DECIMAL(18,3) NOT NULL DEFAULT 0 COMMENT '材积重(千克)',
|
||||
volume_cbm DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '体积(立方米)',
|
||||
source_stage VARCHAR(32) NOT NULL COMMENT '数据来源阶段',
|
||||
@@ -1510,13 +1740,14 @@ CREATE TABLE IF NOT EXISTS ll_outbound_order (
|
||||
outbound_no VARCHAR(64) NOT NULL COMMENT '出库单号', dispatch_order_id BIGINT NULL COMMENT '派车单ID,一件代发为空', dispatch_no VARCHAR(64) NULL COMMENT '派车单号,一件代发为空',
|
||||
overseas_warehouse_id VARCHAR(128) NULL COMMENT '海外仓ID', status VARCHAR(32) NOT NULL DEFAULT 'WAIT_OUTBOUND' COMMENT '业务状态',
|
||||
package_count INT NOT NULL DEFAULT 0 COMMENT '箱数', pallet_count INT NOT NULL DEFAULT 0 COMMENT '托盘数',
|
||||
gross_weight_kg DECIMAL(18,3) NOT NULL DEFAULT 0 COMMENT '毛重(千克)', volume_weight_kg DECIMAL(18,3) NOT NULL DEFAULT 0 COMMENT '材积重(千克)',
|
||||
gross_weight_kg DECIMAL(18,3) NULL COMMENT '毛重(千克),来源未确认时为空', volume_weight_kg DECIMAL(18,3) NOT NULL DEFAULT 0 COMMENT '材积重(千克)',
|
||||
volume_cbm DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '体积(立方米)',
|
||||
idempotency_key VARCHAR(255) NOT NULL COMMENT '业务幂等键', created_by VARCHAR(128) NULL COMMENT '创建人ID',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||||
outbound_type VARCHAR(32) NOT NULL DEFAULT 'DISPATCH_DELIVERY' COMMENT '出库类型:派送转出库、一件代发', lx_codes VARCHAR(1000) NULL COMMENT '关联一件代发领星入库单代码汇总',
|
||||
recipient_info VARCHAR(1000) NULL COMMENT '一件代发收件信息',
|
||||
request_hash CHAR(64) NULL COMMENT '一件代发创建请求摘要,其他出库类型为空',
|
||||
request_hash CHAR(64) NULL COMMENT '创建或转派送业务请求摘要,用于幂等内容校验',
|
||||
fee_coverage_json JSON NULL COMMENT '本次发运引用的原费用版本、实际货物及明确服务覆盖确认快照',
|
||||
PRIMARY KEY (id), UNIQUE KEY uk_ll_outbound_no (outbound_no),
|
||||
UNIQUE KEY uk_ll_outbound_idempotency (customer_id,idempotency_key), UNIQUE KEY uk_ll_outbound_dispatch (customer_id,dispatch_order_id),
|
||||
KEY idx_ll_outbound_list (customer_id,status,created_at)
|
||||
@@ -1526,7 +1757,7 @@ CREATE TABLE IF NOT EXISTS ll_outbound_pallet_item (
|
||||
id BIGINT NOT NULL COMMENT '主键ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户租户ID', outbound_order_id BIGINT NOT NULL COMMENT '出库单ID',
|
||||
warehouse_pallet_id BIGINT NULL COMMENT '仓库实物托盘ID', pallet_no VARCHAR(128) NULL COMMENT '托盘号',
|
||||
destination_warehouse_id VARCHAR(128) NULL COMMENT '目的仓ID', destination_warehouse_code VARCHAR(128) NULL COMMENT '目的仓编码快照', destination_warehouse_name VARCHAR(255) NULL COMMENT '目的仓名称快照',
|
||||
package_count INT NOT NULL DEFAULT 0 COMMENT '箱数', gross_weight_kg DECIMAL(18,3) NOT NULL DEFAULT 0 COMMENT '毛重(千克)', volume_weight_kg DECIMAL(18,3) NOT NULL DEFAULT 0 COMMENT '材积重(千克)', volume_cbm DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '体积(立方米)', picked_package_count INT NOT NULL DEFAULT 0 COMMENT '已拣箱数', status VARCHAR(32) NOT NULL DEFAULT 'WAIT_PICK' COMMENT '拣货状态', sku_code VARCHAR(128) NULL COMMENT '一件代发SKU', order_refs VARCHAR(2000) NULL COMMENT '关联订单信息', inbound_code VARCHAR(128) NULL COMMENT '入仓单号快照',
|
||||
package_count INT NOT NULL DEFAULT 0 COMMENT '箱数', gross_weight_kg DECIMAL(18,3) NULL COMMENT '毛重(千克),来源未确认时为空', volume_weight_kg DECIMAL(18,3) NOT NULL DEFAULT 0 COMMENT '材积重(千克)', volume_cbm DECIMAL(18,4) NOT NULL DEFAULT 0 COMMENT '体积(立方米)', picked_package_count INT NOT NULL DEFAULT 0 COMMENT '已拣箱数', status VARCHAR(32) NOT NULL DEFAULT 'WAIT_PICK' COMMENT '拣货状态', sku_code VARCHAR(128) NULL COMMENT '一件代发SKU', order_refs VARCHAR(2000) NULL COMMENT '关联订单信息', inbound_code VARCHAR(128) NULL COMMENT '入仓单号快照',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_ll_outbound_pallet (customer_id,outbound_order_id,warehouse_pallet_id,inbound_code,sku_code),
|
||||
KEY idx_ll_outbound_pallet_list (customer_id,outbound_order_id), KEY idx_ll_outbound_pallet_destination (customer_id,destination_warehouse_code)
|
||||
|
||||
Reference in New Issue
Block a user