2026-08-04 10:07:45 +08:00
|
|
|
|
SET NAMES utf8mb4;
|
|
|
|
|
|
|
|
|
|
|
|
CREATE DATABASE IF NOT EXISTS baiyue_firstleg
|
|
|
|
|
|
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
|
|
|
|
|
|
USE baiyue_firstleg;
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_order (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID(雪花ID)',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
task_id BIGINT UNSIGNED NULL COMMENT '头程履约任务ID',
|
|
|
|
|
|
order_id BIGINT UNSIGNED NOT NULL COMMENT '订单服务订单ID,不建立跨库外键',
|
|
|
|
|
|
order_no VARCHAR(32) NOT NULL COMMENT '订单号快照',
|
|
|
|
|
|
inbound_code VARCHAR(40) NOT NULL COMMENT '租户内唯一入仓码',
|
|
|
|
|
|
process_status VARCHAR(24) NOT NULL DEFAULT 'WAIT_MEASURE' COMMENT '入库流程状态',
|
|
|
|
|
|
order_status_snapshot VARCHAR(24) NOT NULL COMMENT '订单状态快照',
|
|
|
|
|
|
measure_review_status VARCHAR(24) NOT NULL DEFAULT 'NOT_SUBMITTED' COMMENT '测量数据审核状态',
|
|
|
|
|
|
fee_status VARCHAR(24) NOT NULL DEFAULT 'UNPRICED' COMMENT '费用业务状态',
|
|
|
|
|
|
fee_review_status VARCHAR(24) NOT NULL DEFAULT 'NOT_SUBMITTED' COMMENT '费用审核状态',
|
|
|
|
|
|
notification_status VARCHAR(24) NOT NULL DEFAULT 'NOT_CREATED' COMMENT '客户通知状态',
|
|
|
|
|
|
expected_arrival_at DATETIME(3) NULL COMMENT '预计到达时间',
|
|
|
|
|
|
customer_id BIGINT UNSIGNED NULL COMMENT '客户逻辑ID',
|
|
|
|
|
|
customer_name VARCHAR(128) NOT NULL COMMENT '客户名称快照',
|
|
|
|
|
|
company_id BIGINT UNSIGNED NULL COMMENT '运营公司逻辑ID',
|
|
|
|
|
|
company_name VARCHAR(128) NULL COMMENT '运营公司名称快照',
|
|
|
|
|
|
warehouse_id BIGINT UNSIGNED NOT NULL COMMENT '实际作业仓库ID',
|
|
|
|
|
|
warehouse_name VARCHAR(128) NOT NULL COMMENT '实际作业仓库名称快照',
|
|
|
|
|
|
delivery_warehouse_id BIGINT UNSIGNED NULL COMMENT '交货仓逻辑ID',
|
|
|
|
|
|
delivery_warehouse_name VARCHAR(128) NULL COMMENT '交货仓名称快照',
|
|
|
|
|
|
business_type VARCHAR(32) NOT NULL COMMENT '业务类型',
|
|
|
|
|
|
channel_code VARCHAR(64) NULL COMMENT '渠道编码',
|
|
|
|
|
|
channel_name VARCHAR(128) NULL COMMENT '渠道名称快照',
|
|
|
|
|
|
carrier_id BIGINT UNSIGNED NULL COMMENT '计费船司逻辑ID',
|
|
|
|
|
|
carrier_name VARCHAR(128) NULL COMMENT '计费船司名称快照',
|
|
|
|
|
|
tax_mode VARCHAR(24) NULL COMMENT '买单或退税模式',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
pricing_tax_mode VARCHAR(16) NULL COMMENT '报价包税维度:TAX_INCLUDED/TAX_EXCLUDED',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
container_mode VARCHAR(24) NULL COMMENT '整柜或散货模式',
|
|
|
|
|
|
customs_inspection TINYINT(1) NULL COMMENT '是否商检',
|
|
|
|
|
|
destination_type VARCHAR(24) NULL COMMENT '目的仓类型',
|
|
|
|
|
|
destination_warehouse_id BIGINT UNSIGNED NULL COMMENT '目的仓逻辑ID',
|
|
|
|
|
|
destination_code VARCHAR(32) NULL COMMENT '目的仓编码,例如FBA仓编码',
|
|
|
|
|
|
destination_name VARCHAR(128) NULL COMMENT '目的仓名称快照',
|
|
|
|
|
|
hold_flag TINYINT(1) NOT NULL DEFAULT 0 COMMENT '当前是否扣货',
|
|
|
|
|
|
current_hold_reason VARCHAR(500) NULL COMMENT '当前扣货理由快照',
|
|
|
|
|
|
total_package_count INT UNSIGNED NULL COMMENT '确认后的总箱数',
|
|
|
|
|
|
actual_gross_weight_kg DECIMAL(18,3) NULL COMMENT '确认后的实际总毛重kg',
|
|
|
|
|
|
chargeable_weight_kg DECIMAL(18,3) NULL COMMENT '当前费用快照的计费重量kg',
|
|
|
|
|
|
actual_volume_cbm DECIMAL(18,4) NULL COMMENT '确认后的实际总体积m3',
|
|
|
|
|
|
chargeable_volume_cbm DECIMAL(18,4) NULL COMMENT '当前费用快照的计费体积m3',
|
|
|
|
|
|
pallet_count INT UNSIGNED NULL COMMENT '已分配总托盘数快照',
|
|
|
|
|
|
volume_weight_kg DECIMAL(18,3) NULL COMMENT '总材积重kg',
|
|
|
|
|
|
actual_net_weight_kg DECIMAL(18,3) NULL COMMENT '总净重kg',
|
|
|
|
|
|
measure_completed_at DATETIME(3) NULL COMMENT '测量完成时间',
|
|
|
|
|
|
inbounded_at DATETIME(3) NULL COMMENT '入库完成时间',
|
|
|
|
|
|
express_company_code VARCHAR(64) NULL COMMENT '快递公司编码快照',
|
|
|
|
|
|
express_company_name VARCHAR(128) NULL COMMENT '快递公司名称快照',
|
|
|
|
|
|
express_tracking_no VARCHAR(128) NULL COMMENT '快递单号快照',
|
|
|
|
|
|
public_remark VARCHAR(1000) NULL COMMENT '客户可见备注',
|
|
|
|
|
|
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建人ID',
|
|
|
|
|
|
created_by_name VARCHAR(64) NULL COMMENT '创建人名称快照',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
|
|
|
|
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改人ID',
|
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
|
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记',
|
|
|
|
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_inbound_tenant_code (tenant_id, inbound_code),
|
|
|
|
|
|
UNIQUE KEY uk_inbound_tenant_order (tenant_id, order_id),
|
|
|
|
|
|
KEY idx_inbound_process_time (tenant_id, process_status, created_at, id),
|
|
|
|
|
|
KEY idx_inbound_measure_time (tenant_id, measure_review_status, created_at, id),
|
|
|
|
|
|
KEY idx_inbound_fee_time (tenant_id, fee_review_status, created_at, id),
|
|
|
|
|
|
KEY idx_inbound_warehouse_status (tenant_id, warehouse_id, process_status, created_at),
|
|
|
|
|
|
KEY idx_inbound_customer_time (tenant_id, customer_id, created_at),
|
|
|
|
|
|
KEY idx_inbound_company_time (tenant_id, company_id, created_at),
|
|
|
|
|
|
KEY idx_inbound_arrival (tenant_id, expected_arrival_at),
|
|
|
|
|
|
KEY idx_inbound_destination (tenant_id, destination_code, created_at),
|
|
|
|
|
|
KEY idx_inbound_channel (tenant_id, channel_code, created_at),
|
|
|
|
|
|
CONSTRAINT fk_inbound_task FOREIGN KEY (task_id) REFERENCES fl_fulfillment_task (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='二期头程入库单聚合根和列表查询快照';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_pickup_snapshot (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '提货信息快照ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
pickup_method VARCHAR(24) NULL COMMENT '提货方式',
|
|
|
|
|
|
pickup_at DATETIME(3) NULL COMMENT '提货时间',
|
|
|
|
|
|
contact_name VARCHAR(64) NULL COMMENT '提货联系人',
|
|
|
|
|
|
contact_phone VARCHAR(32) NULL COMMENT '提货联系人电话',
|
|
|
|
|
|
contact_email VARCHAR(128) NULL COMMENT '提货联系人邮箱',
|
|
|
|
|
|
country_code CHAR(2) NULL COMMENT '国家二字码',
|
|
|
|
|
|
province VARCHAR(64) NULL COMMENT '省或州',
|
|
|
|
|
|
city VARCHAR(64) NULL COMMENT '城市',
|
|
|
|
|
|
district VARCHAR(64) NULL COMMENT '区县',
|
|
|
|
|
|
address_line VARCHAR(512) NULL COMMENT '提货详细地址',
|
|
|
|
|
|
postal_code VARCHAR(20) NULL COMMENT '提货邮编',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_pickup_inbound (tenant_id, inbound_id),
|
|
|
|
|
|
CONSTRAINT fk_pickup_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库单提货信息不可变快照';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_destination_snapshot (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '目的仓地址快照ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
destination_type VARCHAR(24) NULL COMMENT '目的仓类型',
|
|
|
|
|
|
destination_code VARCHAR(32) NULL COMMENT '目的仓编码',
|
|
|
|
|
|
destination_name VARCHAR(128) NULL COMMENT '目的仓名称',
|
|
|
|
|
|
country_code CHAR(2) NULL COMMENT '国家二字码',
|
|
|
|
|
|
state_province VARCHAR(100) NULL COMMENT '省或州',
|
|
|
|
|
|
city VARCHAR(100) NULL COMMENT '城市',
|
|
|
|
|
|
address_line VARCHAR(512) NULL COMMENT '详细地址',
|
|
|
|
|
|
postal_code VARCHAR(20) NULL COMMENT '邮编',
|
|
|
|
|
|
contact_name VARCHAR(64) NULL COMMENT '联系人',
|
|
|
|
|
|
contact_phone VARCHAR(32) NULL COMMENT '联系人电话',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_destination_inbound (tenant_id, inbound_id),
|
|
|
|
|
|
CONSTRAINT fk_destination_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库单目的仓地址和联系人快照';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_transport_snapshot (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '运输信息快照ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
loading_status VARCHAR(24) NULL COMMENT '配载状态快照',
|
|
|
|
|
|
container_no VARCHAR(64) NULL COMMENT '集装箱号',
|
|
|
|
|
|
cabinet_no VARCHAR(64) NULL COMMENT '柜号或内部柜单号',
|
|
|
|
|
|
vessel_name VARCHAR(128) NULL COMMENT '船名',
|
|
|
|
|
|
voyage_no VARCHAR(64) NULL COMMENT '航次',
|
|
|
|
|
|
sailing_at DATETIME(3) NULL COMMENT '开船时间',
|
|
|
|
|
|
port_arrival_at DATETIME(3) NULL COMMENT '到港时间',
|
|
|
|
|
|
source_updated_at DATETIME(3) NULL COMMENT '上游数据更新时间',
|
|
|
|
|
|
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 '更新时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_transport_inbound (tenant_id, inbound_id),
|
|
|
|
|
|
KEY idx_transport_container (tenant_id, container_no),
|
|
|
|
|
|
KEY idx_transport_cabinet (tenant_id, cabinet_no),
|
|
|
|
|
|
KEY idx_transport_loading (tenant_id, loading_status, sailing_at),
|
|
|
|
|
|
CONSTRAINT fk_transport_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库单关联运输信息只读快照';
|
|
|
|
|
|
|
2026-08-07 15:53:55 +08:00
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_carton_label (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '实际箱唛头映射ID(雪花ID)',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '当前客户隔离ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
order_id BIGINT UNSIGNED NOT NULL COMMENT '订单服务订单ID快照',
|
|
|
|
|
|
inbound_detail_id BIGINT UNSIGNED NOT NULL COMMENT '订单货物明细ID,不建立跨库外键',
|
|
|
|
|
|
cargo_item_no INT UNSIGNED NOT NULL COMMENT '订单货物明细序号快照',
|
|
|
|
|
|
cargo_name VARCHAR(255) NULL COMMENT '货物名称快照',
|
|
|
|
|
|
detail_package_count INT UNSIGNED NOT NULL COMMENT '该订单货物明细箱数快照',
|
|
|
|
|
|
inbound_code VARCHAR(40) NOT NULL COMMENT '入仓码快照',
|
|
|
|
|
|
box_code VARCHAR(80) NOT NULL COMMENT '固定二维码内容:入仓码#总箱数-箱下标',
|
|
|
|
|
|
total_carton_count INT UNSIGNED NOT NULL COMMENT '首次分配时整单总箱数',
|
|
|
|
|
|
carton_index INT UNSIGNED NOT NULL COMMENT '整单从1开始的稳定箱下标',
|
|
|
|
|
|
box_specification VARCHAR(255) NOT NULL COMMENT '订单箱规或货物明细描述快照',
|
|
|
|
|
|
length_cm DECIMAL(12,3) NULL COMMENT '下单箱规长度cm快照',
|
|
|
|
|
|
width_cm DECIMAL(12,3) NULL COMMENT '下单箱规宽度cm快照',
|
|
|
|
|
|
height_cm DECIMAL(12,3) NULL COMMENT '下单箱规高度cm快照',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '首次分配时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_carton_label_box_code (tenant_id, box_code),
|
|
|
|
|
|
UNIQUE KEY uk_carton_label_index (tenant_id, inbound_id, carton_index),
|
|
|
|
|
|
KEY idx_carton_label_detail (tenant_id, inbound_id, inbound_detail_id),
|
|
|
|
|
|
CONSTRAINT fk_carton_label_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='首次打印前冻结的实际箱号与订单货物明细映射';
|
|
|
|
|
|
|
2026-08-04 10:07:45 +08:00
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_measurement (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '测量批次ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
source_type VARCHAR(24) NOT NULL COMMENT '数据来源:THIRD_PARTY或MANUAL',
|
|
|
|
|
|
source_code VARCHAR(64) NULL COMMENT '第三方应用或来源编码',
|
|
|
|
|
|
external_event_no VARCHAR(128) NULL COMMENT '第三方事件号',
|
2026-08-04 12:23:46 +08:00
|
|
|
|
external_request_hash CHAR(64) NULL COMMENT '第三方data原文和图片内容联合请求哈希',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
device_code VARCHAR(64) NULL COMMENT '测量设备编码',
|
|
|
|
|
|
warehouse_code VARCHAR(50) NULL COMMENT '第三方回传仓库编码',
|
|
|
|
|
|
measured_at DATETIME(3) NULL COMMENT '设备测量时间',
|
|
|
|
|
|
status VARCHAR(24) NOT NULL DEFAULT 'RECEIVED' COMMENT '测量批次状态',
|
|
|
|
|
|
raw_payload_json JSON NULL COMMENT '第三方原始报文',
|
|
|
|
|
|
original_document_no VARCHAR(64) NULL COMMENT '原单据号码快照',
|
|
|
|
|
|
original_gross_weight_kg DECIMAL(18,3) NULL COMMENT '原单据毛重kg',
|
|
|
|
|
|
original_volume_cbm DECIMAL(18,4) NULL COMMENT '原单据体积或材积m3',
|
|
|
|
|
|
actual_goods_name VARCHAR(255) NULL COMMENT '实际品名',
|
|
|
|
|
|
total_package_count INT UNSIGNED NULL COMMENT '本批次总箱数',
|
|
|
|
|
|
total_volume_raw_cbm DECIMAL(18,6) NULL COMMENT '本批次原始总体积m3',
|
|
|
|
|
|
total_volume_cbm DECIMAL(18,4) NULL COMMENT '本批次业务总体积m3',
|
|
|
|
|
|
volume_weight_kg DECIMAL(18,3) NULL COMMENT '本批次总材积重kg',
|
|
|
|
|
|
created_by BIGINT UNSIGNED 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 '更新时间',
|
|
|
|
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_measure_external_event (tenant_id, source_code, external_event_no),
|
|
|
|
|
|
KEY idx_measure_inbound_time (tenant_id, inbound_id, created_at),
|
|
|
|
|
|
CONSTRAINT fk_measure_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库长宽高测量批次和第三方原始数据';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_measurement_item (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '测量明细ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
measurement_id BIGINT UNSIGNED NOT NULL COMMENT '测量批次ID',
|
2026-08-04 12:23:46 +08:00
|
|
|
|
inbound_detail_id BIGINT UNSIGNED NULL COMMENT '绑定的订单货物明细ID,平台手工明细可为空',
|
|
|
|
|
|
external_detail_no VARCHAR(128) NULL COMMENT '第三方测量明细唯一号,平台手工明细可为空',
|
2026-08-07 15:53:55 +08:00
|
|
|
|
box_code VARCHAR(128) NULL COMMENT '柏悦唛头箱号;设备单箱测量时同一客户内唯一',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
item_no VARCHAR(32) NOT NULL COMMENT '批次内明细号',
|
|
|
|
|
|
box_specification VARCHAR(64) NOT NULL COMMENT '箱规标识',
|
|
|
|
|
|
package_count INT UNSIGNED NOT NULL COMMENT '相同箱规箱数',
|
|
|
|
|
|
length_cm DECIMAL(12,3) NOT NULL COMMENT '原始长度cm',
|
|
|
|
|
|
width_cm DECIMAL(12,3) NOT NULL COMMENT '原始宽度cm',
|
|
|
|
|
|
height_cm DECIMAL(12,3) NOT NULL COMMENT '原始高度cm',
|
|
|
|
|
|
girth_cm DECIMAL(12,3) NOT NULL COMMENT '周长cm,规则为长+2*(宽+高)',
|
|
|
|
|
|
unit_weight_kg DECIMAL(18,3) NULL COMMENT '单箱重量kg,第三方仅回传尺寸时可为空',
|
|
|
|
|
|
unit_volume_cbm DECIMAL(18,4) NOT NULL COMMENT '单箱业务体积m3',
|
|
|
|
|
|
volume_raw_cbm DECIMAL(18,6) NOT NULL COMMENT '原始体积m3',
|
|
|
|
|
|
volume_cbm DECIMAL(18,4) NOT NULL COMMENT '业务体积m3',
|
|
|
|
|
|
total_weight_kg DECIMAL(18,3) NULL COMMENT '本箱规总重量kg',
|
|
|
|
|
|
total_volume_cbm DECIMAL(18,4) NOT NULL COMMENT '本箱规总体积m3',
|
|
|
|
|
|
volume_weight_kg DECIMAL(18,3) NOT NULL COMMENT '本箱规材积重kg',
|
2026-08-08 11:33:18 +08:00
|
|
|
|
calculation_rule_version VARCHAR(64) NOT NULL COMMENT '体积计算和舍入规则版本',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
source_image_file_id BIGINT UNSIGNED NULL COMMENT '测量设备图片文件ID',
|
2026-08-07 15:53:55 +08:00
|
|
|
|
machine_no VARCHAR(64) NULL COMMENT '本次测量设备编号',
|
|
|
|
|
|
device_measured_at DATETIME(3) NULL COMMENT '本次设备测量时间',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
over_limit_warning VARCHAR(500) NULL COMMENT '超线提醒快照',
|
|
|
|
|
|
outer_length_cm DECIMAL(12,3) NULL COMMENT '外箱规长度cm',
|
|
|
|
|
|
outer_width_cm DECIMAL(12,3) NULL COMMENT '外箱规宽度cm',
|
|
|
|
|
|
outer_height_cm DECIMAL(12,3) NULL COMMENT '外箱规高度cm',
|
|
|
|
|
|
remark VARCHAR(500) NULL COMMENT '测量明细备注',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
2026-08-07 15:53:55 +08:00
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_measure_item_no (tenant_id, measurement_id, item_no),
|
2026-08-04 12:23:46 +08:00
|
|
|
|
UNIQUE KEY uk_measure_external_detail (tenant_id, inbound_detail_id, external_detail_no),
|
2026-08-07 15:53:55 +08:00
|
|
|
|
UNIQUE KEY uk_measure_box_code (tenant_id, box_code),
|
2026-08-04 10:07:45 +08:00
|
|
|
|
CONSTRAINT fk_measure_item_batch FOREIGN KEY (measurement_id) REFERENCES fl_inbound_measurement (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库长宽高和箱数测量明细';
|
|
|
|
|
|
|
2026-08-08 12:01:45 +08:00
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_mojia_measurement_receipt (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '墨家联调收件记录ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户隔离ID',
|
|
|
|
|
|
subject_id BIGINT UNSIGNED NOT NULL COMMENT '设备应用操作主体ID',
|
|
|
|
|
|
box_code VARCHAR(128) NOT NULL COMMENT '设备扫描的原始箱码',
|
|
|
|
|
|
length_cm DECIMAL(12,3) NOT NULL COMMENT '设备实测长度cm',
|
|
|
|
|
|
width_cm DECIMAL(12,3) NOT NULL COMMENT '设备实测宽度cm',
|
|
|
|
|
|
height_cm DECIMAL(12,3) NOT NULL COMMENT '设备实测高度cm',
|
|
|
|
|
|
weight_kg DECIMAL(18,3) NULL COMMENT '设备实测重量kg',
|
|
|
|
|
|
machine_no VARCHAR(64) NOT NULL COMMENT '设备编号',
|
|
|
|
|
|
measured_at DATETIME(3) NOT NULL COMMENT '设备测量时间或服务接收时间',
|
|
|
|
|
|
image_file_id BIGINT UNSIGNED NOT NULL COMMENT 'File服务中的墨家联调图片ID',
|
|
|
|
|
|
status VARCHAR(24) NOT NULL DEFAULT 'UNMATCHED' COMMENT '收件状态',
|
|
|
|
|
|
match_failure_code VARCHAR(16) NOT NULL COMMENT '正式业务匹配失败码',
|
|
|
|
|
|
match_failure_reason VARCHAR(500) NOT NULL COMMENT '脱敏后的匹配失败原因',
|
|
|
|
|
|
request_id VARCHAR(128) NULL COMMENT '请求链路ID',
|
|
|
|
|
|
trace_id 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 '更新时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
KEY idx_mojia_receipt_status_time (tenant_id, status, created_at),
|
|
|
|
|
|
KEY idx_mojia_receipt_box_time (tenant_id, box_code, created_at)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='墨家模拟或未匹配入库单的原始测量收件箱';
|
|
|
|
|
|
|
2026-08-04 10:07:45 +08:00
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_weight_result (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT 'OCR重量结果ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
file_id BIGINT UNSIGNED NOT NULL COMMENT '称重图片文件ID',
|
|
|
|
|
|
ocr_provider VARCHAR(64) NULL COMMENT 'OCR服务商编码',
|
|
|
|
|
|
ocr_raw_text VARCHAR(1000) NULL COMMENT 'OCR原始文本',
|
|
|
|
|
|
ocr_weight_value DECIMAL(18,3) NULL COMMENT 'OCR识别原始重量值',
|
|
|
|
|
|
ocr_weight_unit VARCHAR(8) NULL COMMENT 'OCR识别原始单位',
|
|
|
|
|
|
confidence DECIMAL(6,5) NULL COMMENT '识别置信度',
|
|
|
|
|
|
adjusted_weight_value DECIMAL(18,3) NULL COMMENT '人工修正后的原单位重量',
|
|
|
|
|
|
adjusted_weight_unit VARCHAR(8) NULL COMMENT '人工修正后的单位',
|
|
|
|
|
|
final_weight_kg DECIMAL(18,3) NULL COMMENT '确认并统一换算后的重量kg',
|
|
|
|
|
|
recognition_status VARCHAR(24) NOT NULL DEFAULT 'PENDING' COMMENT '识别和确认状态',
|
|
|
|
|
|
adjustment_reason VARCHAR(500) NULL COMMENT '人工修正原因',
|
|
|
|
|
|
adjusted_by BIGINT UNSIGNED NULL COMMENT '修正人ID',
|
|
|
|
|
|
adjusted_at DATETIME(3) NULL COMMENT '修正时间',
|
|
|
|
|
|
confirmed_by BIGINT UNSIGNED NULL COMMENT '确认人ID',
|
|
|
|
|
|
confirmed_at DATETIME(3) NULL COMMENT '确认时间',
|
2026-08-04 17:18:07 +08:00
|
|
|
|
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建人ID',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
2026-08-04 17:18:07 +08:00
|
|
|
|
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改人ID',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
|
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记',
|
|
|
|
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_weight_inbound_file (tenant_id, inbound_id, file_id),
|
|
|
|
|
|
KEY idx_weight_inbound_status (tenant_id, inbound_id, recognition_status),
|
|
|
|
|
|
CONSTRAINT fk_weight_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='称重图片OCR原值、人工修正值和确认重量';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_weight_revision (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT 'OCR重量修订记录ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
weight_result_id BIGINT UNSIGNED NOT NULL COMMENT 'OCR重量结果ID',
|
|
|
|
|
|
revision_no INT UNSIGNED NOT NULL COMMENT '结果版本号,与乐观锁版本一致',
|
|
|
|
|
|
action VARCHAR(24) NOT NULL COMMENT '动作:CORRECT或CONFIRM',
|
|
|
|
|
|
before_weight_value DECIMAL(18,3) NULL COMMENT '变更前原单位重量',
|
|
|
|
|
|
before_weight_unit VARCHAR(8) NULL COMMENT '变更前单位',
|
|
|
|
|
|
after_weight_value DECIMAL(18,3) NULL COMMENT '变更后原单位重量',
|
|
|
|
|
|
after_weight_unit VARCHAR(8) NULL COMMENT '变更后单位',
|
|
|
|
|
|
final_weight_kg DECIMAL(18,3) NULL COMMENT '确认时统一换算后的重量kg',
|
|
|
|
|
|
reason VARCHAR(500) NULL COMMENT '人工修正原因',
|
|
|
|
|
|
operator_id BIGINT UNSIGNED NOT NULL COMMENT '操作人ID',
|
|
|
|
|
|
operator_name VARCHAR(64) NULL COMMENT '操作人名称快照',
|
|
|
|
|
|
operated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_weight_revision_no (tenant_id, weight_result_id, revision_no),
|
|
|
|
|
|
KEY idx_weight_revision_time (tenant_id, inbound_id, operated_at),
|
|
|
|
|
|
CONSTRAINT fk_weight_revision_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id),
|
|
|
|
|
|
CONSTRAINT fk_weight_revision_result FOREIGN KEY (weight_result_id) REFERENCES fl_inbound_weight_result (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='OCR重量人工修正和确认的不可变版本历史';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_measure_review_record (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '测量审核记录ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
measurement_id BIGINT UNSIGNED NULL COMMENT '被审核的测量批次ID',
|
|
|
|
|
|
review_result VARCHAR(24) NOT NULL COMMENT '审核结果',
|
|
|
|
|
|
review_reason VARCHAR(1000) NULL COMMENT '审核或驳回原因',
|
|
|
|
|
|
exception_release TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否异常放行',
|
|
|
|
|
|
release_reason VARCHAR(1000) NULL COMMENT '异常放行原因',
|
|
|
|
|
|
allow_rejected_config TINYINT(1) NOT NULL DEFAULT 0 COMMENT '操作时Nacos异常放行开关值',
|
|
|
|
|
|
reviewer_id BIGINT UNSIGNED NOT NULL COMMENT '审核人ID',
|
|
|
|
|
|
reviewer_name VARCHAR(64) NULL COMMENT '审核人名称快照',
|
|
|
|
|
|
reviewed_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '审核时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
KEY idx_review_inbound_time (tenant_id, inbound_id, reviewed_at),
|
|
|
|
|
|
KEY idx_review_exception_release (tenant_id, inbound_id, exception_release, reviewed_at),
|
|
|
|
|
|
CONSTRAINT fk_review_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id),
|
|
|
|
|
|
CONSTRAINT fk_review_measurement FOREIGN KEY (measurement_id) REFERENCES fl_inbound_measurement (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='测量审核、驳回和异常放行不可变记录';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customer_charge_rule (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '客户计费规则ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
rule_code VARCHAR(50) NOT NULL COMMENT '租户内规则编码',
|
|
|
|
|
|
rule_version INT UNSIGNED NOT NULL COMMENT '规则版本号',
|
|
|
|
|
|
customer_id BIGINT UNSIGNED NOT NULL COMMENT '客户逻辑ID',
|
|
|
|
|
|
customer_name VARCHAR(128) NOT NULL COMMENT '客户名称快照',
|
|
|
|
|
|
business_type VARCHAR(32) NOT NULL COMMENT '业务类型',
|
|
|
|
|
|
charge_mode VARCHAR(16) NOT NULL COMMENT '计费口径:KG或CBM',
|
|
|
|
|
|
tax_mode VARCHAR(24) NULL COMMENT '包税或不包税类型',
|
|
|
|
|
|
conversion_factor DECIMAL(18,6) NOT NULL COMMENT '重量体积换算系数',
|
|
|
|
|
|
rounding_scale TINYINT UNSIGNED NOT NULL DEFAULT 3 COMMENT '结果保留小数位数',
|
|
|
|
|
|
rounding_mode VARCHAR(24) NOT NULL DEFAULT 'CEILING' COMMENT '舍入方式',
|
|
|
|
|
|
currency CHAR(3) NOT NULL COMMENT '默认币种',
|
|
|
|
|
|
effective_from DATETIME(3) NOT NULL COMMENT '生效开始时间',
|
|
|
|
|
|
effective_to DATETIME(3) NULL COMMENT '生效结束时间',
|
|
|
|
|
|
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '规则状态',
|
|
|
|
|
|
remark VARCHAR(500) NULL COMMENT '规则备注',
|
|
|
|
|
|
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建人ID',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
|
|
|
|
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改人ID',
|
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
|
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记',
|
|
|
|
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_charge_rule_version (tenant_id, rule_code, rule_version),
|
|
|
|
|
|
KEY idx_charge_rule_match (tenant_id, customer_id, business_type, status, effective_from, effective_to)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='客户头程计费规则版本';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_carrier_fba_rate (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '船司FBA价格ID',
|
2026-08-06 18:01:59 +08:00
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '平台价格作用域ID,船司价格固定为0',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
price_book_version_id BIGINT UNSIGNED NULL COMMENT '整表价格版本ID;历史兼容价格可为空',
|
2026-08-06 18:01:59 +08:00
|
|
|
|
rate_code VARCHAR(50) NOT NULL COMMENT '平台公共价格编码',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
rate_version INT UNSIGNED NOT NULL COMMENT '价格版本号',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
origin_warehouse_id BIGINT UNSIGNED NULL COMMENT '确认前可为空;确认后绑定平台公共起运仓逻辑ID',
|
|
|
|
|
|
origin_warehouse_code VARCHAR(64) NULL COMMENT '起运仓稳定编码',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
origin_warehouse_name VARCHAR(128) NOT NULL COMMENT '起运仓名称快照',
|
|
|
|
|
|
business_type VARCHAR(32) NOT NULL COMMENT '业务或计费类型',
|
|
|
|
|
|
channel_code VARCHAR(64) NULL COMMENT '渠道编码',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
price_model VARCHAR(32) NOT NULL DEFAULT 'FBA_WAREHOUSE_RATE' COMMENT '价格模型',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
carrier_id BIGINT UNSIGNED NULL COMMENT '船司逻辑ID',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
carrier_name VARCHAR(128) NULL COMMENT '历史承运商名称;渠道价格可为空',
|
|
|
|
|
|
destination_type VARCHAR(16) NULL COMMENT '目的地类型:FBA或OVERSEAS;REGION_WEIGHT_TIER区域阶梯行为空',
|
|
|
|
|
|
destination_code VARCHAR(32) NULL COMMENT 'FBA目的仓编码;区域阶梯模型为空',
|
|
|
|
|
|
destination_warehouse_id BIGINT UNSIGNED NULL COMMENT '平台海外仓稳定ID;不存环境专属ID',
|
|
|
|
|
|
destination_name VARCHAR(128) NULL COMMENT '目的仓名称快照',
|
|
|
|
|
|
region_code VARCHAR(16) NULL COMMENT '区域阶梯模型区域编码',
|
|
|
|
|
|
pricing_tax_mode VARCHAR(16) NULL COMMENT '报价包税维度;独立于订单tax_mode',
|
|
|
|
|
|
weight_from_kg DECIMAL(18,6) NULL COMMENT '区域阶梯起始计费重量KG',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
charge_unit VARCHAR(16) NOT NULL COMMENT '计费单位:KG或CBM',
|
|
|
|
|
|
unit_price DECIMAL(18,6) NOT NULL COMMENT '基础单价',
|
|
|
|
|
|
currency CHAR(3) NOT NULL COMMENT '币种',
|
|
|
|
|
|
additional_fee DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '固定附加费',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
source_sheet_name VARCHAR(128) NULL COMMENT '原始Excel Sheet',
|
|
|
|
|
|
source_row_number INT UNSIGNED NULL COMMENT '原始Excel行号',
|
|
|
|
|
|
source_destination_text VARCHAR(1000) NULL COMMENT '原始组合仓库或区域文本',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
effective_from DATETIME(3) NOT NULL COMMENT '生效开始时间',
|
|
|
|
|
|
effective_to DATETIME(3) NULL COMMENT '生效结束时间',
|
2026-08-07 17:36:02 +08:00
|
|
|
|
status VARCHAR(24) NOT NULL DEFAULT 'ACTIVE' COMMENT '价格状态:PENDING_CONFIRMATION、ACTIVE或SUPERSEDED',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
remark VARCHAR(500) NULL COMMENT '价格备注',
|
|
|
|
|
|
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建人ID',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
|
|
|
|
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改人ID',
|
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
|
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记',
|
|
|
|
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_fba_rate_version (tenant_id, rate_code, rate_version),
|
2026-08-07 14:46:55 +08:00
|
|
|
|
KEY idx_fba_rate_match (tenant_id, origin_warehouse_id, business_type, channel_code, carrier_id, destination_type, destination_code, destination_warehouse_id, charge_unit, status, effective_from, effective_to),
|
|
|
|
|
|
KEY idx_fba_rate_book (price_book_version_id, channel_code, origin_warehouse_id, price_model, status),
|
|
|
|
|
|
KEY idx_fba_rate_destination (price_book_version_id, channel_code, origin_warehouse_id, destination_type, destination_warehouse_id, destination_code),
|
|
|
|
|
|
KEY idx_fba_rate_region (price_book_version_id, channel_code, origin_warehouse_id, region_code, weight_from_kg)
|
2026-08-04 10:07:45 +08:00
|
|
|
|
) ENGINE=InnoDB COMMENT='船司FBA目的仓价格版本';
|
|
|
|
|
|
|
2026-08-07 14:46:55 +08:00
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_price_channel_catalog (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '渠道目录ID',
|
|
|
|
|
|
channel_code VARCHAR(64) NOT NULL COMMENT '稳定渠道编码',
|
|
|
|
|
|
display_name VARCHAR(128) NOT NULL COMMENT '平台渠道名称',
|
|
|
|
|
|
price_model VARCHAR(32) NOT NULL COMMENT '默认价格模型',
|
|
|
|
|
|
source_sheet_name VARCHAR(128) NOT NULL COMMENT '来源Sheet名称;海派为同一Sheet',
|
|
|
|
|
|
aliases_json JSON NOT NULL COMMENT '上传名称别名数组',
|
|
|
|
|
|
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '目录状态',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_price_channel_code (channel_code),
|
|
|
|
|
|
KEY idx_price_channel_status (status, price_model)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='平台公共船期价格固定渠道目录';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_price_origin_alias (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '起运仓别名ID',
|
|
|
|
|
|
warehouse_code VARCHAR(64) NOT NULL COMMENT '平台仓库稳定编码,不存环境专属ID',
|
|
|
|
|
|
alias_name VARCHAR(128) NOT NULL COMMENT 'Excel起运仓名称别名',
|
|
|
|
|
|
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_price_origin_alias (warehouse_code, alias_name),
|
|
|
|
|
|
KEY idx_price_origin_alias_name (alias_name, status)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='价格表起运仓名称别名映射';
|
|
|
|
|
|
|
2026-08-07 17:46:23 +08:00
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_price_warehouse_mapping (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '价格仓映射ID',
|
|
|
|
|
|
source_type VARCHAR(24) NOT NULL COMMENT '来源维度:ORIGIN_CODE或OVERSEAS_NAME',
|
|
|
|
|
|
source_value VARCHAR(128) NOT NULL COMMENT '解析后的来源仓编码或海外仓名称',
|
|
|
|
|
|
warehouse_id BIGINT UNSIGNED NOT NULL COMMENT '固定平台公共仓库ID',
|
|
|
|
|
|
warehouse_code VARCHAR(64) NOT NULL COMMENT '平台仓库稳定编码快照',
|
|
|
|
|
|
warehouse_type VARCHAR(16) NOT NULL COMMENT 'DOMESTIC或OVERSEAS',
|
|
|
|
|
|
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_price_warehouse_mapping_source (source_type, source_value),
|
|
|
|
|
|
KEY idx_price_warehouse_mapping_target (warehouse_id, status)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='价格表来源仓与固定平台公共仓映射';
|
|
|
|
|
|
|
2026-08-07 14:46:55 +08:00
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_price_book_version (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '整表价格版本ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '平台公共价格作用域固定为0',
|
|
|
|
|
|
version_no INT UNSIGNED NOT NULL COMMENT '整表版本号',
|
|
|
|
|
|
original_file_name VARCHAR(255) NOT NULL COMMENT '原始Excel文件名',
|
|
|
|
|
|
source_file_id BIGINT UNSIGNED NULL COMMENT 'File服务原始文件ID',
|
|
|
|
|
|
source_sha256 CHAR(64) NULL COMMENT '原始文件SHA-256',
|
|
|
|
|
|
status VARCHAR(24) NOT NULL DEFAULT 'PENDING_CONFIRMATION' COMMENT '待确认上传记录;ACTIVE/SUPERSEDED/FAILED',
|
|
|
|
|
|
blocking_error_count INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '阻断错误数',
|
|
|
|
|
|
warning_count INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '警告数',
|
|
|
|
|
|
parse_issues_json JSON NULL COMMENT '上传解析问题及待确认重新校验结果',
|
|
|
|
|
|
channel_count INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '解析渠道数',
|
|
|
|
|
|
rate_count INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '解析价格数',
|
|
|
|
|
|
created_by BIGINT UNSIGNED NOT NULL,
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
published_by BIGINT UNSIGNED NULL,
|
|
|
|
|
|
published_at DATETIME(3) NULL COMMENT '确认并生效时间',
|
|
|
|
|
|
superseded_at DATETIME(3) NULL COMMENT '被下一版本替换时间',
|
|
|
|
|
|
updated_by BIGINT UNSIGNED NOT NULL,
|
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0,
|
|
|
|
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_price_book_version (tenant_id, version_no),
|
|
|
|
|
|
KEY idx_price_book_status (tenant_id, status, published_at),
|
|
|
|
|
|
KEY idx_price_book_source_hash (tenant_id, source_sha256)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='平台公共船期价格整表版本';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_price_book_channel (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '版本渠道快照ID',
|
|
|
|
|
|
price_book_version_id BIGINT UNSIGNED NOT NULL COMMENT '整表价格版本ID',
|
|
|
|
|
|
channel_code VARCHAR(64) NOT NULL COMMENT '固定渠道编码',
|
|
|
|
|
|
channel_name VARCHAR(128) NOT NULL COMMENT '渠道名称快照',
|
|
|
|
|
|
price_model VARCHAR(32) NOT NULL COMMENT '价格模型快照',
|
|
|
|
|
|
source_sheet_name VARCHAR(128) NOT NULL COMMENT '原始Excel Sheet',
|
|
|
|
|
|
estimated_departure_date DATE NULL COMMENT '标准预计开船日期',
|
|
|
|
|
|
estimated_departure_text VARCHAR(128) NULL COMMENT '原始预计开船日期文本',
|
|
|
|
|
|
latest_warehouse_entry VARCHAR(128) NULL COMMENT '最晚进仓时间',
|
|
|
|
|
|
vessel_name VARCHAR(128) NULL COMMENT '船名',
|
|
|
|
|
|
voyage_no VARCHAR(64) NULL COMMENT '航次',
|
|
|
|
|
|
reference_transit VARCHAR(128) NULL COMMENT '参考时效',
|
|
|
|
|
|
surcharge_description VARCHAR(2000) NULL COMMENT '附加费说明,仅展示',
|
|
|
|
|
|
remark VARCHAR(2000) NULL COMMENT '渠道备注',
|
2026-08-07 17:14:40 +08:00
|
|
|
|
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建人ID',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
2026-08-07 17:14:40 +08:00
|
|
|
|
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改人ID',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
2026-08-07 17:14:40 +08:00
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记',
|
|
|
|
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_price_book_channel (price_book_version_id, channel_code),
|
|
|
|
|
|
KEY idx_price_book_channel_code (channel_code, price_book_version_id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='价格版本渠道及船期快照';
|
|
|
|
|
|
|
|
|
|
|
|
INSERT INTO fl_price_channel_catalog
|
|
|
|
|
|
(id, channel_code, display_name, price_model, source_sheet_name, aliases_json, status)
|
|
|
|
|
|
VALUES
|
|
|
|
|
|
(1, 'MATSON_CLX_TRUCK', '美森正班海卡', 'FBA_WAREHOUSE_RATE', '美森正班海卡', JSON_ARRAY('美森正班海卡'), 'ACTIVE'),
|
|
|
|
|
|
(2, 'MATSON_MAX_TRUCK', '美森加班海卡', 'FBA_WAREHOUSE_RATE', '美森加班海卡', JSON_ARRAY('美森加班海卡'), 'ACTIVE'),
|
|
|
|
|
|
(3, 'EXX_TRUCK', 'EXX海卡', 'FBA_WAREHOUSE_RATE', 'EXX海卡', JSON_ARRAY('EXX海卡'), 'ACTIVE'),
|
|
|
|
|
|
(4, 'HEDE_TRUCK', '合德海卡', 'FBA_WAREHOUSE_RATE', '合德海卡', JSON_ARRAY('合德海卡'), 'ACTIVE'),
|
|
|
|
|
|
(5, 'EXX_RAIL_NY', '纽约EXX海铁', 'FBA_WAREHOUSE_RATE', '纽约EXX海铁', JSON_ARRAY('纽约EXX海铁'), 'ACTIVE'),
|
|
|
|
|
|
(6, 'OA_LA_TRUCK', '洛杉矶普船海卡', 'FBA_WAREHOUSE_RATE', '洛杉矶普船海卡', JSON_ARRAY('洛杉矶普船海卡'), 'ACTIVE'),
|
|
|
|
|
|
(7, 'OA_LA_FULL_TRUCK', '洛杉矶普船全卡', 'FBA_WAREHOUSE_RATE', '洛杉矶普船全卡', JSON_ARRAY('洛杉矶普船全卡'), 'ACTIVE'),
|
|
|
|
|
|
(8, 'OA_CHICAGO_RAIL', '芝加哥普船海铁', 'FBA_WAREHOUSE_RATE', '芝加哥普船海铁', JSON_ARRAY('芝加哥普船海铁'), 'ACTIVE'),
|
|
|
|
|
|
(9, 'OA_HOUSTON_TRUCK', '休斯顿普船海卡', 'FBA_WAREHOUSE_RATE', '休斯顿普船海卡', JSON_ARRAY('休斯顿普船海卡'), 'ACTIVE'),
|
|
|
|
|
|
(10, 'OA_NEW_YORK_TRUCK', '纽约普船海卡', 'FBA_WAREHOUSE_RATE', '纽约普船海卡', JSON_ARRAY('纽约普船海卡'), 'ACTIVE'),
|
|
|
|
|
|
(11, 'OA_SAVANNAH_TRUCK', '萨凡纳普船海卡', 'FBA_WAREHOUSE_RATE', '萨凡纳普船海卡', JSON_ARRAY('萨凡纳普船海卡'), 'ACTIVE'),
|
|
|
|
|
|
(12, 'MATSON_CLX_PARCEL', '美森正班海派', 'REGION_WEIGHT_TIER', '海派', JSON_ARRAY('美森正班海派'), 'ACTIVE'),
|
|
|
|
|
|
(13, 'MATSON_MAX_PARCEL', '美森加班海派', 'REGION_WEIGHT_TIER', '海派', JSON_ARRAY('美森加班海派'), 'ACTIVE'),
|
|
|
|
|
|
(14, 'HEDE_PARCEL', '合德海派', 'REGION_WEIGHT_TIER', '海派', JSON_ARRAY('合德海派'), 'ACTIVE'),
|
|
|
|
|
|
(15, 'OA_PARCEL', '普船海派', 'REGION_WEIGHT_TIER', '海派', JSON_ARRAY('普船海派'), 'ACTIVE')
|
|
|
|
|
|
ON DUPLICATE KEY UPDATE
|
|
|
|
|
|
display_name = VALUES(display_name), price_model = VALUES(price_model),
|
|
|
|
|
|
source_sheet_name = VALUES(source_sheet_name), aliases_json = VALUES(aliases_json), status = VALUES(status);
|
|
|
|
|
|
|
|
|
|
|
|
INSERT INTO fl_price_origin_alias (id, warehouse_code, alias_name, status)
|
|
|
|
|
|
VALUES
|
|
|
|
|
|
(1, 'CN-YIWU-01', '华东仓(义乌)', 'ACTIVE'),
|
|
|
|
|
|
(2, 'CN-YIWU-01', '义乌仓', 'ACTIVE'),
|
|
|
|
|
|
(3, 'CN-YIWU-01', '义乌', 'ACTIVE'),
|
|
|
|
|
|
(4, 'CN-DONGGUAN-01', '华南仓(深圳)', 'ACTIVE'),
|
|
|
|
|
|
(5, 'CN-DONGGUAN-01', '东莞仓', 'ACTIVE'),
|
2026-08-07 17:46:23 +08:00
|
|
|
|
(6, 'CN-DONGGUAN-01', '深圳仓', 'ACTIVE'),
|
|
|
|
|
|
(7, 'CN-DONGGUAN-01', '华南仓(深圳/东莞)', 'ACTIVE')
|
2026-08-07 14:46:55 +08:00
|
|
|
|
ON DUPLICATE KEY UPDATE status = VALUES(status);
|
|
|
|
|
|
|
2026-08-07 17:46:23 +08:00
|
|
|
|
INSERT INTO fl_price_warehouse_mapping
|
|
|
|
|
|
(id, source_type, source_value, warehouse_id, warehouse_code, warehouse_type, status)
|
|
|
|
|
|
VALUES
|
|
|
|
|
|
(1, 'ORIGIN_CODE', 'CN-YIWU-01', 193000000000200001, 'CN-YIWU-01', 'DOMESTIC', 'ACTIVE'),
|
|
|
|
|
|
(2, 'ORIGIN_CODE', 'CN-DONGGUAN-01', 193000000000200002, 'CN-DONGGUAN-01', 'DOMESTIC', 'ACTIVE'),
|
|
|
|
|
|
(3, 'OVERSEAS_NAME', '洛杉矶仓', 193000000000200003, 'US-LAX-01', 'OVERSEAS', 'ACTIVE'),
|
|
|
|
|
|
(4, 'OVERSEAS_NAME', '纽约仓', 193000000000200004, 'US-NYC-01', 'OVERSEAS', 'ACTIVE')
|
|
|
|
|
|
ON DUPLICATE KEY UPDATE
|
|
|
|
|
|
warehouse_id = VALUES(warehouse_id), warehouse_code = VALUES(warehouse_code),
|
|
|
|
|
|
warehouse_type = VALUES(warehouse_type), status = VALUES(status);
|
|
|
|
|
|
|
2026-08-04 10:07:45 +08:00
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_fee (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '入库费用ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
fee_no VARCHAR(40) NOT NULL COMMENT '租户内唯一费用单号',
|
|
|
|
|
|
fee_version INT UNSIGNED NOT NULL DEFAULT 1 COMMENT '费用快照版本',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
charge_rule_id BIGINT UNSIGNED NULL COMMENT '历史客户计费规则ID;渠道价格可为空',
|
|
|
|
|
|
charge_rule_version INT UNSIGNED NULL COMMENT '历史客户规则版本快照',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
carrier_rate_id BIGINT UNSIGNED NOT NULL COMMENT '船司FBA价格ID',
|
|
|
|
|
|
carrier_rate_version INT UNSIGNED NOT NULL COMMENT '船司价格版本快照',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
price_book_version_id BIGINT UNSIGNED NULL COMMENT '整表价格版本ID快照',
|
|
|
|
|
|
rule_code VARCHAR(50) NULL COMMENT '历史客户规则编码快照',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
customer_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID快照',
|
|
|
|
|
|
customer_name VARCHAR(128) NOT NULL COMMENT '客户名称快照',
|
|
|
|
|
|
business_type VARCHAR(32) NOT NULL COMMENT '业务类型快照',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
tax_mode VARCHAR(24) NULL COMMENT '订单买单或退税模式快照',
|
|
|
|
|
|
pricing_tax_mode VARCHAR(16) NULL COMMENT '报价包税维度快照',
|
|
|
|
|
|
rounding_scale TINYINT UNSIGNED NULL COMMENT '历史客户规则计费量保留位数快照',
|
|
|
|
|
|
rounding_mode VARCHAR(24) NULL COMMENT '历史客户规则舍入方式快照',
|
|
|
|
|
|
rule_effective_from DATETIME(3) NULL COMMENT '历史客户规则生效开始快照',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
rule_effective_to DATETIME(3) NULL COMMENT '客户规则生效结束快照',
|
|
|
|
|
|
rate_code VARCHAR(50) NOT NULL COMMENT '船司价格编码快照',
|
|
|
|
|
|
origin_warehouse_id BIGINT UNSIGNED NOT NULL COMMENT '起运仓ID快照',
|
|
|
|
|
|
origin_warehouse_name VARCHAR(128) NOT NULL COMMENT '起运仓名称快照',
|
|
|
|
|
|
channel_code VARCHAR(64) NOT NULL COMMENT '渠道编码快照',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
carrier_id BIGINT UNSIGNED NULL COMMENT '历史承运商ID;渠道价格可为空',
|
|
|
|
|
|
carrier_name VARCHAR(128) NULL COMMENT '历史承运商名称;渠道价格可为空',
|
|
|
|
|
|
destination_type VARCHAR(16) NULL COMMENT '目的地类型快照:FBA或OVERSEAS',
|
|
|
|
|
|
destination_warehouse_id BIGINT UNSIGNED NULL COMMENT '海外仓或FBA目的仓ID快照',
|
|
|
|
|
|
destination_name VARCHAR(128) NULL COMMENT '目的仓名称快照',
|
|
|
|
|
|
destination_code VARCHAR(32) NULL COMMENT 'FBA仓编码快照;海外仓可为空',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
rate_effective_from DATETIME(3) NOT NULL COMMENT '价格生效开始快照',
|
|
|
|
|
|
rate_effective_to DATETIME(3) NULL COMMENT '价格生效结束快照',
|
2026-08-07 14:46:55 +08:00
|
|
|
|
charge_mode VARCHAR(16) NULL COMMENT '计费口径:KG或CBM',
|
|
|
|
|
|
conversion_factor DECIMAL(18,6) NULL COMMENT '历史客户规则使用的换算系数快照',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
actual_weight_kg DECIMAL(18,3) NOT NULL COMMENT '试算时实际重量kg',
|
|
|
|
|
|
actual_volume_cbm DECIMAL(18,4) NOT NULL COMMENT '试算时实际体积m3',
|
|
|
|
|
|
converted_quantity DECIMAL(18,4) NOT NULL COMMENT '换算后的重量或体积',
|
|
|
|
|
|
chargeable_quantity DECIMAL(18,4) NOT NULL COMMENT '最终计费量',
|
|
|
|
|
|
charge_unit VARCHAR(16) NOT NULL COMMENT '计费单位',
|
|
|
|
|
|
currency CHAR(3) NOT NULL COMMENT '币种',
|
|
|
|
|
|
subtotal_amount DECIMAL(18,2) NOT NULL COMMENT '基础费用金额',
|
|
|
|
|
|
additional_amount DECIMAL(18,2) NOT NULL DEFAULT 0 COMMENT '附加费金额',
|
|
|
|
|
|
total_amount DECIMAL(18,2) NOT NULL COMMENT '总金额',
|
|
|
|
|
|
fee_status VARCHAR(24) NOT NULL DEFAULT 'CALCULATED' COMMENT '费用状态',
|
|
|
|
|
|
review_status VARCHAR(24) NOT NULL DEFAULT 'NOT_SUBMITTED' COMMENT '费用审核状态',
|
|
|
|
|
|
exception_release TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否基于测量异常放行生成',
|
|
|
|
|
|
calculated_by BIGINT UNSIGNED NOT NULL COMMENT '试算人ID',
|
|
|
|
|
|
calculated_at DATETIME(3) NOT NULL COMMENT '试算时间',
|
|
|
|
|
|
confirmed_by BIGINT UNSIGNED NULL COMMENT '确认人ID',
|
|
|
|
|
|
confirmed_at DATETIME(3) NULL COMMENT '确认时间',
|
|
|
|
|
|
sent_by BIGINT UNSIGNED NULL COMMENT '发送人ID',
|
|
|
|
|
|
sent_at DATETIME(3) NULL COMMENT '发送客户时间',
|
|
|
|
|
|
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 '更新时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_inbound_fee_no (tenant_id, fee_no),
|
|
|
|
|
|
UNIQUE KEY uk_inbound_fee_version (tenant_id, inbound_id, fee_version),
|
|
|
|
|
|
KEY idx_inbound_fee_status (tenant_id, inbound_id, fee_status, review_status),
|
|
|
|
|
|
CONSTRAINT fk_fee_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id),
|
|
|
|
|
|
CONSTRAINT fk_fee_charge_rule FOREIGN KEY (charge_rule_id) REFERENCES fl_customer_charge_rule (id),
|
|
|
|
|
|
CONSTRAINT fk_fee_carrier_rate FOREIGN KEY (carrier_rate_id) REFERENCES fl_carrier_fba_rate (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库头程费用计算和确认快照';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_fee_item (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '费用明细ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
fee_id BIGINT UNSIGNED NOT NULL COMMENT '费用头ID',
|
|
|
|
|
|
item_no INT UNSIGNED NOT NULL COMMENT '费用单内序号',
|
|
|
|
|
|
fee_code VARCHAR(50) NOT NULL COMMENT '费用项目编码',
|
|
|
|
|
|
fee_name VARCHAR(128) NOT NULL COMMENT '费用项目名称快照',
|
|
|
|
|
|
quantity DECIMAL(18,4) NOT NULL COMMENT '计费数量',
|
|
|
|
|
|
unit VARCHAR(16) NOT NULL COMMENT '计费单位',
|
|
|
|
|
|
unit_price DECIMAL(18,6) NOT NULL COMMENT '单价',
|
|
|
|
|
|
amount DECIMAL(18,2) NOT NULL COMMENT '金额',
|
|
|
|
|
|
currency CHAR(3) NOT NULL COMMENT '币种',
|
|
|
|
|
|
automatic_flag TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否自动计算',
|
|
|
|
|
|
remark VARCHAR(500) NULL COMMENT '费用备注',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_fee_item_no (tenant_id, fee_id, item_no),
|
|
|
|
|
|
CONSTRAINT fk_fee_item_header FOREIGN KEY (fee_id) REFERENCES fl_inbound_fee (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库头程费用项目明细';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_pallet_allocation (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '头程托盘分配引用ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
allocation_no INT UNSIGNED NOT NULL COMMENT '入库单内分配序号',
|
|
|
|
|
|
warehouse_id BIGINT UNSIGNED NOT NULL COMMENT '仓库服务仓库ID',
|
2026-08-05 16:26:10 +08:00
|
|
|
|
warehouse_resource_tenant_id BIGINT UNSIGNED NOT NULL COMMENT '平台公共仓储资源固定使用 0;tenant_id 仍是客户隔离键',
|
2026-08-04 10:07:45 +08:00
|
|
|
|
pallet_id BIGINT UNSIGNED NOT NULL COMMENT '仓库服务托盘ID',
|
|
|
|
|
|
pallet_code VARCHAR(50) NOT NULL COMMENT '托盘编码快照',
|
|
|
|
|
|
pallet_capacity_cbm DECIMAL(18,4) NOT NULL COMMENT '托盘可用容积快照',
|
|
|
|
|
|
allocated_volume_cbm DECIMAL(18,4) NOT NULL COMMENT '本托盘分配体积',
|
|
|
|
|
|
allocated_package_count INT UNSIGNED NULL COMMENT '本托盘分配箱数',
|
|
|
|
|
|
location_id BIGINT UNSIGNED NOT NULL COMMENT '仓库服务库位ID',
|
|
|
|
|
|
location_code VARCHAR(50) NOT NULL COMMENT '库位编码快照',
|
|
|
|
|
|
reservation_no VARCHAR(64) NOT NULL COMMENT '仓库库位预占单号',
|
|
|
|
|
|
allocation_status VARCHAR(24) NOT NULL DEFAULT 'RESERVED' COMMENT '分配状态',
|
|
|
|
|
|
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 '更新时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_pallet_allocation_no (tenant_id, inbound_id, allocation_no),
|
|
|
|
|
|
UNIQUE KEY uk_pallet_allocation_pallet (tenant_id, inbound_id, pallet_id),
|
|
|
|
|
|
KEY idx_allocation_location (tenant_id, warehouse_id, location_id, allocation_status),
|
|
|
|
|
|
CONSTRAINT fk_allocation_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='头程侧托盘、库位和仓库预占结果引用';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_file (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '入库单文件关系ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
file_id BIGINT UNSIGNED NOT NULL COMMENT '文件服务文件ID',
|
|
|
|
|
|
file_type VARCHAR(24) NOT NULL COMMENT '文件类型:RELATED、MARK、PC_ORDER、MEASURE或WEIGHT',
|
|
|
|
|
|
file_name_snapshot VARCHAR(255) NOT NULL COMMENT '文件名快照',
|
|
|
|
|
|
visibility VARCHAR(16) NOT NULL DEFAULT 'INTERNAL' COMMENT '可见范围',
|
|
|
|
|
|
file_version INT UNSIGNED NOT NULL DEFAULT 1 COMMENT '业务文件版本',
|
|
|
|
|
|
uploaded_by BIGINT UNSIGNED NOT NULL COMMENT '上传人ID',
|
|
|
|
|
|
uploaded_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '上传时间',
|
|
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除标记',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_inbound_file_relation (tenant_id, inbound_id, file_id, file_type),
|
|
|
|
|
|
KEY idx_inbound_file_type (tenant_id, inbound_id, file_type, deleted),
|
|
|
|
|
|
CONSTRAINT fk_file_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库单与文件中心对象的分类关系';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_hold_record (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '扣货记录ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
hold_action VARCHAR(16) NOT NULL COMMENT '动作:HOLD或RELEASE',
|
|
|
|
|
|
reason VARCHAR(1000) NOT NULL COMMENT '扣货或解除原因',
|
|
|
|
|
|
evidence_file_id BIGINT UNSIGNED NULL COMMENT '证据文件ID',
|
|
|
|
|
|
operator_id BIGINT UNSIGNED NOT NULL COMMENT '操作人ID',
|
|
|
|
|
|
operator_name VARCHAR(64) NULL COMMENT '操作人名称快照',
|
|
|
|
|
|
operated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
KEY idx_hold_inbound_time (tenant_id, inbound_id, operated_at),
|
|
|
|
|
|
CONSTRAINT fk_hold_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库单扣货和解除扣货不可变历史';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_internal_note (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '客服内部备注ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
content VARCHAR(2000) NOT NULL COMMENT '仅内部可见备注',
|
|
|
|
|
|
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建人ID',
|
|
|
|
|
|
created_by_name VARCHAR(64) NULL COMMENT '创建人名称快照',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
KEY idx_internal_note_time (tenant_id, inbound_id, created_at),
|
|
|
|
|
|
CONSTRAINT fk_internal_note_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库单客服内部备注历史';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_status_history (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '入库状态历史ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
from_status VARCHAR(24) NULL COMMENT '变更前状态',
|
|
|
|
|
|
to_status VARCHAR(24) NOT NULL COMMENT '变更后状态',
|
|
|
|
|
|
action VARCHAR(32) NOT NULL COMMENT '触发动作',
|
|
|
|
|
|
reason VARCHAR(1000) NULL COMMENT '变更原因',
|
|
|
|
|
|
operator_id BIGINT UNSIGNED NOT NULL COMMENT '操作人ID',
|
|
|
|
|
|
operator_name VARCHAR(64) NULL COMMENT '操作人名称快照',
|
|
|
|
|
|
occurred_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '发生时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
KEY idx_inbound_history_time (tenant_id, inbound_id, occurred_at),
|
|
|
|
|
|
CONSTRAINT fk_history_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库单流程状态不可变历史';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_outbox (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '领域事件全局ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '事件所属租户ID',
|
|
|
|
|
|
aggregate_type VARCHAR(32) NOT NULL DEFAULT 'INBOUND' COMMENT '聚合类型',
|
|
|
|
|
|
aggregate_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
|
|
|
|
|
event_type VARCHAR(64) NOT NULL COMMENT '事件类型',
|
|
|
|
|
|
payload_json JSON NOT NULL COMMENT '事件负载快照',
|
|
|
|
|
|
publish_status VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '发布状态',
|
|
|
|
|
|
retry_count INT NOT NULL DEFAULT 0 COMMENT '重试次数',
|
|
|
|
|
|
next_retry_at DATETIME(3) NULL COMMENT '下次重试时间',
|
|
|
|
|
|
published_at DATETIME(3) NULL COMMENT '发布时间',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
KEY idx_inbound_outbox_publish (publish_status, next_retry_at, created_at)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='入库事务Outbox事件表';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_idempotency (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '入库写操作幂等记录ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '租户ID',
|
|
|
|
|
|
operation VARCHAR(40) NOT NULL COMMENT '操作类型',
|
|
|
|
|
|
operator_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '操作者或外部应用ID',
|
|
|
|
|
|
inbound_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '入库单ID,创建前可为0',
|
|
|
|
|
|
idempotency_key VARCHAR(128) NOT NULL COMMENT '幂等键',
|
|
|
|
|
|
request_hash CHAR(64) NOT NULL COMMENT '请求内容摘要',
|
|
|
|
|
|
status VARCHAR(16) NOT NULL COMMENT '处理状态',
|
|
|
|
|
|
result_json JSON NULL COMMENT '成功结果摘要',
|
|
|
|
|
|
result_resource_id BIGINT UNSIGNED NULL COMMENT '成功结果资源ID',
|
|
|
|
|
|
completed_at DATETIME(3) NULL COMMENT '完成时间',
|
|
|
|
|
|
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 '更新时间',
|
|
|
|
|
|
PRIMARY KEY (id),
|
|
|
|
|
|
UNIQUE KEY uk_inbound_idempotency (tenant_id, operation, operator_id, idempotency_key),
|
|
|
|
|
|
KEY idx_inbound_idempotency_created (created_at)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='第三方测量、审核、费用发送和入库写操作幂等记录';
|
2026-08-07 19:23:40 +08:00
|
|
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_customer_dimension_config (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '配置ID',
|
|
|
|
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户隔离ID',
|
2026-08-07 20:07:30 +08:00
|
|
|
|
box_type VARCHAR(24) NOT NULL COMMENT '固定箱规类型:SMALL/MEDIUM/LARGE/EXTRA_LARGE',
|
|
|
|
|
|
inner_length_cm DECIMAL(9,3) NOT NULL COMMENT '箱规内长(厘米)',
|
|
|
|
|
|
inner_width_cm DECIMAL(9,3) NOT NULL COMMENT '箱规内宽(厘米)',
|
|
|
|
|
|
inner_height_cm DECIMAL(9,3) NOT NULL COMMENT '箱规内高(厘米)',
|
2026-08-07 19:23:40 +08:00
|
|
|
|
edge_addition_cm DECIMAL(6,3) NOT NULL DEFAULT 2.000 COMMENT '每个尺寸方向的单侧加宽厘米数',
|
|
|
|
|
|
remark VARCHAR(500) NULL COMMENT '备注',
|
|
|
|
|
|
initialization_key VARCHAR(128) NOT NULL COMMENT '创建流程幂等键及补偿归属',
|
|
|
|
|
|
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建人ID',
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
|
|
|
|
|
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改人ID',
|
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
|
|
|
|
|
deleted TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除',
|
|
|
|
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
|
|
|
|
|
PRIMARY KEY (id),
|
2026-08-07 20:07:30 +08:00
|
|
|
|
UNIQUE KEY uk_customer_dimension_config_tenant_box (tenant_id, box_type),
|
|
|
|
|
|
KEY idx_customer_dimension_config_initialization (tenant_id, initialization_key),
|
|
|
|
|
|
CONSTRAINT chk_customer_dimension_box_type
|
|
|
|
|
|
CHECK (box_type IN ('SMALL', 'MEDIUM', 'LARGE', 'EXTRA_LARGE')),
|
|
|
|
|
|
CONSTRAINT chk_customer_dimension_inner_size
|
|
|
|
|
|
CHECK (inner_length_cm >= 0.001 AND inner_width_cm >= 0.001 AND inner_height_cm >= 0.001),
|
2026-08-07 19:23:40 +08:00
|
|
|
|
CONSTRAINT chk_customer_dimension_edge_addition
|
|
|
|
|
|
CHECK (edge_addition_cm >= 0.001 AND edge_addition_cm <= 100.000)
|
2026-08-07 20:07:30 +08:00
|
|
|
|
) ENGINE=InnoDB COMMENT='客户固定四箱规尺寸配置';
|