feat(fleet): enforce reviewed trips and original fee coverage for dispatch
This commit is contained in:
@@ -263,7 +263,7 @@ CREATE TABLE ll_delivery_order (
|
||||
seller_name varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT 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.0000' COMMENT '总重量(千克)',
|
||||
total_weight_kg DECIMAL(18,4) NULL COMMENT '总重量(千克),任一来源未确认时为空',
|
||||
total_volume_cbm decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '总体积(立方米)',
|
||||
planned_delivery_at datetime(3) DEFAULT NULL COMMENT '预计派送时间',
|
||||
dispatched_at datetime(3) DEFAULT NULL COMMENT '实际派送时间',
|
||||
@@ -365,7 +365,7 @@ CREATE TABLE ll_dispatch_item (
|
||||
contact_name varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人快照',
|
||||
contact_phone varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话快照',
|
||||
package_count int NOT NULL DEFAULT '0' COMMENT '箱数',
|
||||
gross_weight_kg decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '毛重(千克)',
|
||||
gross_weight_kg DECIMAL(18,3) NULL COMMENT '毛重(千克),未知为NULL,不以材积重代替',
|
||||
volume_weight_kg decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)',
|
||||
volume_cbm decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '体积(立方米)',
|
||||
source_stage varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据来源阶段',
|
||||
@@ -1597,9 +1597,10 @@ CREATE TABLE ll_outbound_order (
|
||||
status varchar(32) COLLATE utf8mb4_unicode_ci 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.000' COMMENT '毛重(千克)',
|
||||
gross_weight_kg DECIMAL(18,3) NULL COMMENT '毛重(千克),来源未确认时为空',
|
||||
volume_weight_kg decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)',
|
||||
volume_cbm decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '体积(立方米)',
|
||||
fee_coverage_json JSON NULL COMMENT '本次发运引用的原费用版本、实际货物及明确服务覆盖确认快照',
|
||||
idempotency_key varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键',
|
||||
created_by varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID',
|
||||
created_at datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
@@ -1607,7 +1608,7 @@ CREATE TABLE ll_outbound_order (
|
||||
outbound_type varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DISPATCH_DELIVERY' COMMENT '出库类型:派送转出库、一件代发',
|
||||
lx_codes varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联一件代发领星入库单代码汇总',
|
||||
recipient_info varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发收件信息',
|
||||
request_hash char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发创建请求摘要,其他出库类型为空',
|
||||
request_hash char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建或转派送业务请求摘要,用于幂等内容校验',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_ll_outbound_no (outbound_no),
|
||||
UNIQUE KEY uk_ll_outbound_idempotency (customer_id,idempotency_key),
|
||||
@@ -1625,7 +1626,7 @@ CREATE TABLE ll_outbound_pallet_item (
|
||||
destination_warehouse_code varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照',
|
||||
destination_warehouse_name varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照',
|
||||
package_count int NOT NULL DEFAULT '0' COMMENT '箱数',
|
||||
gross_weight_kg decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '毛重(千克)',
|
||||
gross_weight_kg DECIMAL(18,3) NULL COMMENT '毛重(千克),来源未确认时为空',
|
||||
volume_weight_kg decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)',
|
||||
volume_cbm decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '体积(立方米)',
|
||||
picked_package_count int NOT NULL DEFAULT '0' COMMENT '已拣箱数',
|
||||
@@ -2556,7 +2557,65 @@ CREATE TABLE ll_us_truck_order_status_history (
|
||||
KEY idx_ll_us_truck_history (customer_id,order_id,created_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci 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 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) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车牌号',
|
||||
model varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车型',
|
||||
@@ -2575,9 +2634,181 @@ CREATE TABLE ll_vehicle (
|
||||
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 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci 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='运输车次操作历史';
|
||||
|
||||
CREATE TABLE ll_wallet_event_inbox (
|
||||
event_id varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内Finance资金结果事件ID',
|
||||
command_event_id varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原海外资金指令事件ID',
|
||||
@@ -3020,4 +3251,4 @@ CREATE TABLE event_delivery_attempt (
|
||||
KEY idx_delivery_attempt_outcome (outcome,started_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='本服务业务事件逐次投递审计';
|
||||
|
||||
SELECT 'PASS' AS initialization_status, 'OVERSEAS' AS region, 136 AS initialized_tables;
|
||||
SELECT 'PASS' AS initialization_status, 'OVERSEAS' AS region, 145 AS initialized_tables;
|
||||
|
||||
Reference in New Issue
Block a user