feat(fleet): add internal capacity pool and warehouse fulfillment bridge
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
# 单测试环境数据库空库初始化
|
||||
|
||||
内部拼车需求池的当前结构在 Lastleg 源基线和海外统一空库基线同步维护,独立五项权限在 IAM 源种子和国内统一基线维护。已存在基础表的指定环境结构补齐使用 `migrations/overseas/baiyue_lastleg/V10__fleet_capacity_pool.sql` 与 `migrations/cn/baiyue_iam/V4__fleet_capacity_offer_permissions.sql`;执行前确认三张新表、六个新增字段均未存在,并单独核对目标环境。它们不回填、删除或重置业务数据,不能重放整个空库基线。候选文件存在不表示已经执行。
|
||||
|
||||
## 唯一入口与区域边界
|
||||
|
||||
两个统一 SQL 文件仍只用于空库初始化,名称中的“增量”不表示可向已有业务库重放。已有生产库的受控结构补齐单独放在 `migrations/`,只允许明确审阅过的增量变更;不提供存量数据回填、清理或兼容入口。
|
||||
@@ -7,7 +9,7 @@
|
||||
| 区域 | 完整入口 | 服务 schema | 表数 |
|
||||
|---|---|---|---:|
|
||||
| 国内 | `头程数据库统一增量-MySQL8.sql` | `baiyue_auth`、`baiyue_iam`、`baiyue_order`、`baiyue_warehouse`、`baiyue_firstleg`、`baiyue_file`、`baiyue_audit`、`baiyue_finance` | 226 |
|
||||
| 海外 | `海外区域统一增量-MySQL8.sql` | `baiyue_lastleg`、`baiyue_lastlag_warehouse` | 154 |
|
||||
| 海外 | `海外区域统一增量-MySQL8.sql` | `baiyue_lastleg`、`baiyue_lastlag_warehouse` | 157 |
|
||||
|
||||
- 所有服务位于同一测试环境;两份文件只分组组织服务 schema,不代表两个部署区域。`baiyue_lastlag_warehouse` 保留当前正式的 `lastlag` 拼写。
|
||||
- 两份文件必须在同一测试数据库实例中完成初始化;业务服务仍只访问本服务 schema,经内部接口访问 IAM/Warehouse。已移除事件桥两个 schema 的创建,不对已有数据库执行 DROP。
|
||||
@@ -29,7 +31,7 @@
|
||||
5. DDL 隐式提交,不可整体回滚。失败后停止并保留错误;经另行授权准备空库后从头执行,不针对半初始化库追加迁移或从失败行续跑。
|
||||
6. Firstleg 测量项与拆分项互为外键:建空表期间暂设会话 `foreign_key_checks=0`,随后立即恢复 `1`,再插入种子。失败时关闭连接。两边外键完整保留在 CREATE TABLE 内。
|
||||
|
||||
成功时只在最末输出一行 `initialization_status=PASS`,并带 `region=CN/OVERSEAS`、`initialized_tables=226/154`。必须同时确认客户端退出码 0;忽略错误后出现的 PASS 不算成功。
|
||||
成功时只在最末输出一行 `initialization_status=PASS`,并带 `region=CN/OVERSEAS`、`initialized_tables=226/157`。必须同时确认客户端退出码 0;忽略错误后出现的 PASS 不算成功。
|
||||
|
||||
## 平台管理员密码
|
||||
|
||||
@@ -45,7 +47,7 @@
|
||||
|
||||
| 所属库 | 保留内容 | 不包含 |
|
||||
|---|---|---|
|
||||
| Auth / IAM | 平台主体、唯一平台管理员、8 个系统角色及企业管理员模板、412 个权限、593 条角色权限、7 个数据范围、客户编号起点;无人工完成订单权限 | 测试客户、固定客户账号、额外扩权 |
|
||||
| Auth / IAM | 平台主体、唯一平台管理员、8 个系统角色及企业管理员模板、417 个权限、598 条角色权限、7 个数据范围、客户编号起点;无人工完成订单权限 | 测试客户、固定客户账号、额外扩权 |
|
||||
| Warehouse | 既有公共仓目录 318 条及地址;义乌、东莞、洛杉矶、纽约 4 个作业仓收货能力 | 示例供应商、快递、往来单位、托盘、库位、预占、库存 |
|
||||
| Firstleg | 112 个费用项目、15 个渠道目录、7 个始发地别名、4 个公共仓映射 | 客户报价、订单、入库、实测或履约记录 |
|
||||
| File / Finance | 导出互斥键 `GLOBAL_CREATE`、默认平台财务主体 | 文件任务、资金、账单或交易流水 |
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
-- Region: CN
|
||||
-- Schema: baiyue_iam
|
||||
-- Purpose: 内部拼车需求池五项独立权限
|
||||
-- Preconditions: 权限编号5107410至5107414及对应code未使用
|
||||
-- Postconditions: 仅默认平台管理员获得新权限;原客户权限不变
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107410,0,'PLATFORM','MENU',0,'platform:fleet:capacity-offer:list','拼车需求池','/overseas-master-data/capacity-offers','GET',1040,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107410,0,CURRENT_TIMESTAMP(3));
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107411,0,'PLATFORM','BUTTON',5107410,'platform:fleet:capacity-offer:manage','管理拼车发布和确认承运',NULL,'POST',1041,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107411,0,CURRENT_TIMESTAMP(3));
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107412,0,'PLATFORM','BUTTON',5107410,'platform:fleet:capacity-offer:inquiry-create','登记拼车意向',NULL,'POST',1042,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107412,0,CURRENT_TIMESTAMP(3));
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107413,0,'PLATFORM','BUTTON',5107410,'platform:fleet:capacity-offer:inquiry-edit','修改本人拼车意向',NULL,'PUT',1043,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107413,0,CURRENT_TIMESTAMP(3));
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107414,0,'PLATFORM','BUTTON',5107410,'platform:fleet:capacity-offer:inquiry-cancel','取消本人拼车意向',NULL,'POST',1044,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107414,0,CURRENT_TIMESTAMP(3));
|
||||
@@ -0,0 +1,94 @@
|
||||
-- Region: OVERSEAS
|
||||
-- Schema: baiyue_lastleg
|
||||
-- Purpose: 内部拼车需求池、持久幂等及本土订单唯一履约桥
|
||||
-- Preconditions: 已有车次与外接预订基线;新表和新增字段均不存在
|
||||
-- Postconditions: 新增三表与六字段;不删除、回填或重置业务数据
|
||||
CREATE TABLE ll_fleet_capacity_offer (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
offer_no VARCHAR(64) NOT NULL COMMENT '拼车运力发布业务编号',
|
||||
trip_id BIGINT NOT NULL COMMENT '唯一所属车次',
|
||||
trip_no VARCHAR(64) NOT NULL COMMENT '车次业务编号',
|
||||
status VARCHAR(16) NOT NULL COMMENT '发布状态:草稿、开放、暂停、关闭',
|
||||
cutoff_at DATETIME(3) NOT NULL COMMENT '最晚交货及新询价截止UTC时间',
|
||||
contact_name VARCHAR(128) NULL COMMENT '对内部销售公开的调度联系人',
|
||||
contact_phone VARCHAR(128) NULL COMMENT '对内部销售公开的调度联系电话',
|
||||
remark VARCHAR(1000) NULL COMMENT '公开承运说明',
|
||||
published_fingerprint 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_capacity_offer_no(offer_no),
|
||||
UNIQUE KEY uk_fleet_capacity_offer_trip(trip_id),
|
||||
KEY idx_fleet_capacity_offer_status(status,cutoff_at,id),
|
||||
CONSTRAINT fk_fleet_capacity_offer_trip FOREIGN KEY(trip_id) REFERENCES ll_fleet_trip(id),
|
||||
CONSTRAINT chk_fleet_capacity_offer_status CHECK(status IN ('DRAFT','OPEN','PAUSED','CLOSED'))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='内部拼车车次余位发布;容量实时计算不在此另存';
|
||||
|
||||
CREATE TABLE ll_fleet_capacity_offer_command (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
trip_id BIGINT NOT NULL COMMENT '所属车次锁作用域',
|
||||
operator_id VARCHAR(64) NOT NULL COMMENT '原请求操作者',
|
||||
action VARCHAR(32) NOT NULL COMMENT '业务命令类型',
|
||||
scope_no VARCHAR(64) NOT NULL COMMENT '发布或预订业务编号作用域',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '原请求幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '原请求业务内容摘要',
|
||||
result_json JSON NOT NULL COMMENT '成功命令原始结果用于精确重放',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '命令完成UTC时间',
|
||||
PRIMARY KEY(id),
|
||||
UNIQUE KEY uk_fleet_capacity_offer_command(trip_id,operator_id,action,scope_no,idempotency_key),
|
||||
CONSTRAINT fk_fleet_capacity_command_trip FOREIGN KEY(trip_id) REFERENCES ll_fleet_trip(id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='拼车发布及销售意向持久幂等结果';
|
||||
|
||||
ALTER TABLE ll_fleet_external_booking
|
||||
ADD COLUMN offer_id BIGINT NULL COMMENT '来源运力发布,普通车次预订为空',
|
||||
ADD COLUMN sales_owner_user_id VARCHAR(64) NULL COMMENT '登录身份冻结的销售负责人',
|
||||
ADD COLUMN business_type VARCHAR(32) NULL COMMENT '本土商业类型LOCAL_LOOSEBOARD或US_TRUCK',
|
||||
ADD COLUMN delivery_mode VARCHAR(32) NULL COMMENT '客户送仓或人工安排提货回仓',
|
||||
ADD COLUMN estimated_arrival_at DATETIME(3) NULL COMMENT '预计实际到我仓UTC时间',
|
||||
ADD COLUMN expected_pallet_count INT NULL COMMENT '预计实托数,与托位分开且未知为空',
|
||||
ADD KEY idx_fleet_booking_offer(offer_id,status,id),
|
||||
ADD KEY idx_fleet_booking_sales(sales_owner_user_id,offer_id,id),
|
||||
ADD CONSTRAINT fk_fleet_booking_offer FOREIGN KEY(offer_id) REFERENCES ll_fleet_capacity_offer(id),
|
||||
ADD CONSTRAINT chk_fleet_booking_expected_pallet CHECK(expected_pallet_count IS NULL OR expected_pallet_count > 0);
|
||||
|
||||
CREATE TABLE ll_fleet_pool_order_link (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
booking_id BIGINT NOT NULL COMMENT '唯一外接预订',
|
||||
booking_no VARCHAR(64) NOT NULL COMMENT '预订业务编号',
|
||||
customer_id VARCHAR(128) NOT NULL COMMENT '商业客户隔离范围',
|
||||
business_type VARCHAR(32) NOT NULL COMMENT '本土散板或本土卡车商业类型',
|
||||
business_order_id BIGINT NOT NULL COMMENT '对应商业订单内部关联',
|
||||
business_order_no VARCHAR(64) NOT NULL COMMENT '本土商业订单业务编号',
|
||||
warehouse_id VARCHAR(128) NOT NULL COMMENT '真实我仓上车仓库',
|
||||
destination_key VARCHAR(160) NOT NULL COMMENT '冻结卸货站匹配键',
|
||||
delivery_mode VARCHAR(32) NOT NULL COMMENT '客户送仓或人工提货回仓',
|
||||
delivery_instructions VARCHAR(1000) NULL COMMENT '实际到仓交货说明',
|
||||
incoming_no VARCHAR(64) NULL COMMENT '真实来货业务编号,未登记为空',
|
||||
lastleg_order_id BIGINT NULL COMMENT '唯一真实尾程来源,未发生为空',
|
||||
dispatch_no VARCHAR(64) NULL COMMENT '已关联客户排车编号',
|
||||
fulfillment_stage VARCHAR(32) NOT NULL COMMENT '实际履约阶段,不能手工冒充完成',
|
||||
stage_occurred_at DATETIME(3) NOT NULL COMMENT '实际阶段发生UTC时间',
|
||||
actual_pallet_count INT NULL COMMENT '实际去重托盘数,未知为空',
|
||||
actual_package_count INT NULL COMMENT '实际箱数,未知为空',
|
||||
actual_pallet_spaces INT NULL COMMENT '实际核准占用托位,未知为空',
|
||||
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '桥记录版本',
|
||||
creation_request_hash CHAR(64) NOT NULL COMMENT '商业单创建身份和预报事实摘要',
|
||||
created_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_fleet_pool_order_booking(booking_id),
|
||||
UNIQUE KEY uk_fleet_pool_order_booking_no(booking_no),
|
||||
UNIQUE KEY uk_fleet_pool_order_business(business_type,business_order_id),
|
||||
UNIQUE KEY uk_fleet_pool_order_incoming(incoming_no),
|
||||
UNIQUE KEY uk_fleet_pool_order_lastleg(lastleg_order_id),
|
||||
KEY idx_fleet_pool_order_customer(customer_id,business_type,business_order_no),
|
||||
KEY idx_fleet_pool_order_dispatch(customer_id,dispatch_no),
|
||||
CONSTRAINT fk_fleet_pool_order_booking FOREIGN KEY(booking_id) REFERENCES ll_fleet_external_booking(id),
|
||||
CONSTRAINT chk_fleet_pool_order_type CHECK(business_type IN ('LOCAL_LOOSEBOARD','US_TRUCK')),
|
||||
CONSTRAINT chk_fleet_pool_order_actual CHECK((actual_pallet_count IS NULL OR actual_pallet_count >= 0) AND (actual_package_count IS NULL OR actual_package_count >= 0) AND (actual_pallet_spaces IS NULL OR actual_pallet_spaces >= 0))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='拼车预订与本土商业单唯一真实履约关联,不重复记运费';
|
||||
|
||||
@@ -6773,6 +6773,17 @@ INSERT INTO iam_permission (id, tenant_id, app_code, permission_type, parent_id,
|
||||
INSERT INTO iam_permission (id, tenant_id, app_code, permission_type, parent_id, permission_code, permission_name, route_path, http_method, sort_no, status, built_in, created_at, updated_at, deleted) VALUES (5107303,0,'PLATFORM','BUTTON',5107300,'platform:overseas-master-data:driver:status','启停司机',NULL,'PATCH',933,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_permission (id, tenant_id, app_code, permission_type, parent_id, permission_code, permission_name, route_path, http_method, sort_no, status, built_in, created_at, updated_at, deleted) VALUES (5107304,0,'PLATFORM','BUTTON',5107300,'platform:overseas-master-data:driver:review','审核司机证照',NULL,'POST',934,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_permission (id, tenant_id, app_code, permission_type, parent_id, permission_code, permission_name, route_path, http_method, sort_no, status, built_in, created_at, updated_at, deleted) VALUES (5107305,0,'PLATFORM','BUTTON',5107300,'platform:overseas-master-data:driver:upload','上传司机证照',NULL,'POST',935,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107410,0,'PLATFORM','MENU',0,'platform:fleet:capacity-offer:list','拼车需求池','/overseas-master-data/capacity-offers','GET',1040,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107410,0,CURRENT_TIMESTAMP(3));
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107411,0,'PLATFORM','BUTTON',5107410,'platform:fleet:capacity-offer:manage','管理拼车发布和确认承运',NULL,'POST',1041,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107411,0,CURRENT_TIMESTAMP(3));
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107412,0,'PLATFORM','BUTTON',5107410,'platform:fleet:capacity-offer:inquiry-create','登记拼车意向',NULL,'POST',1042,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107412,0,CURRENT_TIMESTAMP(3));
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107413,0,'PLATFORM','BUTTON',5107410,'platform:fleet:capacity-offer:inquiry-edit','修改本人拼车意向',NULL,'PUT',1043,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107413,0,CURRENT_TIMESTAMP(3));
|
||||
INSERT INTO iam_permission (id,tenant_id,app_code,permission_type,parent_id,permission_code,permission_name,route_path,http_method,sort_no,status,built_in,created_at,updated_at,deleted) VALUES (5107414,0,'PLATFORM','BUTTON',5107410,'platform:fleet:capacity-offer:inquiry-cancel','取消本人拼车意向',NULL,'POST',1044,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_role_permission (role_id,permission_id,tenant_id,created_at) VALUES (4000001,5107414,0,CURRENT_TIMESTAMP(3));
|
||||
|
||||
INSERT INTO iam_permission (id, tenant_id, app_code, permission_type, parent_id, permission_code, permission_name, route_path, http_method, sort_no, status, built_in, created_at, updated_at, deleted) VALUES (5107310,0,'PLATFORM','MENU',0,'platform:fleet:trip:list','车次管理','/overseas-master-data/trips','GET',940,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_permission (id, tenant_id, app_code, permission_type, parent_id, permission_code, permission_name, route_path, http_method, sort_no, status, built_in, created_at, updated_at, deleted) VALUES (5107311,0,'PLATFORM','BUTTON',5107310,'platform:fleet:trip:create','创建车次',NULL,'POST',941,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
INSERT INTO iam_permission (id, tenant_id, app_code, permission_type, parent_id, permission_code, permission_name, route_path, http_method, sort_no, status, built_in, created_at, updated_at, deleted) VALUES (5107312,0,'PLATFORM','BUTTON',5107310,'platform:fleet:trip:edit','修改车次计划',NULL,'PUT',942,'ACTIVE',1,CURRENT_TIMESTAMP(3),CURRENT_TIMESTAMP(3),0);
|
||||
|
||||
@@ -2766,6 +2766,45 @@ CREATE TABLE ll_fleet_trip (
|
||||
CONSTRAINT chk_fleet_trip_time CHECK (expected_driver_end_at > planned_departure_at)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台运输车次';
|
||||
|
||||
CREATE TABLE ll_fleet_capacity_offer (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
offer_no VARCHAR(64) NOT NULL COMMENT '拼车运力发布业务编号',
|
||||
trip_id BIGINT NOT NULL COMMENT '唯一所属车次',
|
||||
trip_no VARCHAR(64) NOT NULL COMMENT '车次业务编号',
|
||||
status VARCHAR(16) NOT NULL COMMENT '发布状态:草稿、开放、暂停、关闭',
|
||||
cutoff_at DATETIME(3) NOT NULL COMMENT '最晚交货及新询价截止UTC时间',
|
||||
contact_name VARCHAR(128) NULL COMMENT '对内部销售公开的调度联系人',
|
||||
contact_phone VARCHAR(128) NULL COMMENT '对内部销售公开的调度联系电话',
|
||||
remark VARCHAR(1000) NULL COMMENT '公开承运说明',
|
||||
published_fingerprint 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_capacity_offer_no(offer_no),
|
||||
UNIQUE KEY uk_fleet_capacity_offer_trip(trip_id),
|
||||
KEY idx_fleet_capacity_offer_status(status,cutoff_at,id),
|
||||
CONSTRAINT fk_fleet_capacity_offer_trip FOREIGN KEY(trip_id) REFERENCES ll_fleet_trip(id),
|
||||
CONSTRAINT chk_fleet_capacity_offer_status CHECK(status IN ('DRAFT','OPEN','PAUSED','CLOSED'))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='内部拼车车次余位发布;容量实时计算不在此另存';
|
||||
|
||||
CREATE TABLE ll_fleet_capacity_offer_command (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
trip_id BIGINT NOT NULL COMMENT '所属车次锁作用域',
|
||||
operator_id VARCHAR(64) NOT NULL COMMENT '原请求操作者',
|
||||
action VARCHAR(32) NOT NULL COMMENT '业务命令类型',
|
||||
scope_no VARCHAR(64) NOT NULL COMMENT '发布或预订业务编号作用域',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '原请求幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '原请求业务内容摘要',
|
||||
result_json JSON NOT NULL COMMENT '成功命令原始结果用于精确重放',
|
||||
created_at DATETIME(3) NOT NULL COMMENT '命令完成UTC时间',
|
||||
PRIMARY KEY(id),
|
||||
UNIQUE KEY uk_fleet_capacity_offer_command(trip_id,operator_id,action,scope_no,idempotency_key),
|
||||
CONSTRAINT fk_fleet_capacity_command_trip FOREIGN KEY(trip_id) REFERENCES ll_fleet_trip(id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='拼车发布及销售意向持久幂等结果';
|
||||
|
||||
CREATE TABLE ll_fleet_external_booking (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
booking_no VARCHAR(32) NOT NULL COMMENT '外接预订业务编号',
|
||||
@@ -2795,11 +2834,21 @@ CREATE TABLE ll_fleet_external_booking (
|
||||
receipt_hash CHAR(64) NULL COMMENT '实收确认摘要',
|
||||
binding_key VARCHAR(128) NULL COMMENT '关联发运请求键',
|
||||
binding_hash CHAR(64) NULL COMMENT '关联发运摘要',
|
||||
offer_id BIGINT NULL COMMENT '来源运力发布,普通车次预订为空',
|
||||
sales_owner_user_id VARCHAR(64) NULL COMMENT '登录身份冻结的销售负责人',
|
||||
business_type VARCHAR(32) NULL COMMENT '本土商业类型LOCAL_LOOSEBOARD或US_TRUCK',
|
||||
delivery_mode VARCHAR(32) NULL COMMENT '客户送仓或人工安排提货回仓',
|
||||
estimated_arrival_at DATETIME(3) NULL COMMENT '预计实际到我仓UTC时间',
|
||||
expected_pallet_count INT 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时间',
|
||||
KEY idx_fleet_booking_offer(offer_id,status,id),
|
||||
KEY idx_fleet_booking_sales(sales_owner_user_id,offer_id,id),
|
||||
CONSTRAINT fk_fleet_booking_offer FOREIGN KEY(offer_id) REFERENCES ll_fleet_capacity_offer(id),
|
||||
CONSTRAINT chk_fleet_booking_expected_pallet CHECK(expected_pallet_count IS NULL OR expected_pallet_count > 0),
|
||||
PRIMARY KEY(id),
|
||||
UNIQUE KEY uk_fleet_booking_no(booking_no),
|
||||
UNIQUE KEY uk_fleet_booking_create(trip_id,created_by,idempotency_key),
|
||||
@@ -2810,6 +2859,44 @@ CREATE TABLE ll_fleet_external_booking (
|
||||
CONSTRAINT chk_fleet_booking_status CHECK(status IN ('DRAFT','CONFIRMED','RECEIVED','BOUND','CANCELLED'))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='外接询价及确认承运占位;货物收发和费用入账分别引用正式事实';
|
||||
|
||||
CREATE TABLE ll_fleet_pool_order_link (
|
||||
id BIGINT NOT NULL COMMENT '内部主键',
|
||||
booking_id BIGINT NOT NULL COMMENT '唯一外接预订',
|
||||
booking_no VARCHAR(64) NOT NULL COMMENT '预订业务编号',
|
||||
customer_id VARCHAR(128) NOT NULL COMMENT '商业客户隔离范围',
|
||||
business_type VARCHAR(32) NOT NULL COMMENT '本土散板或本土卡车商业类型',
|
||||
business_order_id BIGINT NOT NULL COMMENT '对应商业订单内部关联',
|
||||
business_order_no VARCHAR(64) NOT NULL COMMENT '本土商业订单业务编号',
|
||||
warehouse_id VARCHAR(128) NOT NULL COMMENT '真实我仓上车仓库',
|
||||
destination_key VARCHAR(160) NOT NULL COMMENT '冻结卸货站匹配键',
|
||||
delivery_mode VARCHAR(32) NOT NULL COMMENT '客户送仓或人工提货回仓',
|
||||
delivery_instructions VARCHAR(1000) NULL COMMENT '实际到仓交货说明',
|
||||
incoming_no VARCHAR(64) NULL COMMENT '真实来货业务编号,未登记为空',
|
||||
lastleg_order_id BIGINT NULL COMMENT '唯一真实尾程来源,未发生为空',
|
||||
dispatch_no VARCHAR(64) NULL COMMENT '已关联客户排车编号',
|
||||
fulfillment_stage VARCHAR(32) NOT NULL COMMENT '实际履约阶段,不能手工冒充完成',
|
||||
stage_occurred_at DATETIME(3) NOT NULL COMMENT '实际阶段发生UTC时间',
|
||||
actual_pallet_count INT NULL COMMENT '实际去重托盘数,未知为空',
|
||||
actual_package_count INT NULL COMMENT '实际箱数,未知为空',
|
||||
actual_pallet_spaces INT NULL COMMENT '实际核准占用托位,未知为空',
|
||||
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '桥记录版本',
|
||||
creation_request_hash CHAR(64) NOT NULL COMMENT '商业单创建身份和预报事实摘要',
|
||||
created_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_fleet_pool_order_booking(booking_id),
|
||||
UNIQUE KEY uk_fleet_pool_order_booking_no(booking_no),
|
||||
UNIQUE KEY uk_fleet_pool_order_business(business_type,business_order_id),
|
||||
UNIQUE KEY uk_fleet_pool_order_incoming(incoming_no),
|
||||
UNIQUE KEY uk_fleet_pool_order_lastleg(lastleg_order_id),
|
||||
KEY idx_fleet_pool_order_customer(customer_id,business_type,business_order_no),
|
||||
KEY idx_fleet_pool_order_dispatch(customer_id,dispatch_no),
|
||||
CONSTRAINT fk_fleet_pool_order_booking FOREIGN KEY(booking_id) REFERENCES ll_fleet_external_booking(id),
|
||||
CONSTRAINT chk_fleet_pool_order_type CHECK(business_type IN ('LOCAL_LOOSEBOARD','US_TRUCK')),
|
||||
CONSTRAINT chk_fleet_pool_order_actual CHECK((actual_pallet_count IS NULL OR actual_pallet_count >= 0) AND (actual_package_count IS NULL OR actual_package_count >= 0) AND (actual_pallet_spaces IS NULL OR actual_pallet_spaces >= 0))
|
||||
) 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 '对应车辆或司机档案引用',
|
||||
@@ -3453,4 +3540,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, 154 AS initialized_tables;
|
||||
SELECT 'PASS' AS initialization_status, 'OVERSEAS' AS region, 157 AS initialized_tables;
|
||||
|
||||
Reference in New Issue
Block a user