feat(fleet): add internal capacity pool and warehouse fulfillment bridge
This commit is contained in:
@@ -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='拼车预订与本土商业单唯一真实履约关联,不重复记运费';
|
||||
|
||||
Reference in New Issue
Block a user