装柜回归测试
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
-- PDA 已拣满库位/托盘精确释放的持久化幂等契约;可在二期库位表建表后重复执行。
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS wh_pallet_location_release_operation (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '精确释放幂等操作ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '仓储公共资源作用域,固定为0',
|
||||
source_service VARCHAR(40) NOT NULL COMMENT '来源服务',
|
||||
business_id BIGINT UNSIGNED NOT NULL COMMENT '入库单ID',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '调用方幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '规范化请求SHA-256摘要',
|
||||
operation_status VARCHAR(20) NOT NULL DEFAULT 'PROCESSING' COMMENT 'PROCESSING处理中,COMPLETED已完成',
|
||||
response_snapshot JSON NULL COMMENT '完成后的精确释放结果快照,用于重复请求重放',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
completed_at DATETIME(3) NULL COMMENT '完成时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_pallet_location_release_idempotency
|
||||
(tenant_id, source_service, business_id, idempotency_key),
|
||||
KEY idx_pallet_location_release_business (tenant_id, source_service, business_id, operation_status)
|
||||
) ENGINE=InnoDB COMMENT='PDA已拣满托盘库位精确释放的持久化幂等操作记录';
|
||||
@@ -0,0 +1,27 @@
|
||||
-- PDA 拣货资源原子结算幂等契约;同一数据库事务内完成精确释放和剩余资源转移。
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS wh_pallet_location_settlement_operation (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT 'PDA资源结算幂等操作ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '仓储公共资源作用域,固定为0',
|
||||
source_service VARCHAR(40) NOT NULL COMMENT '来源服务',
|
||||
source_business_id BIGINT UNSIGNED NOT NULL COMMENT '主入库单ID',
|
||||
target_business_id BIGINT UNSIGNED NOT NULL COMMENT '二级子入库单ID;全拣完成时为0,仅作审计快照',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT 'PDA结算幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '规范化请求SHA-256摘要',
|
||||
operation_status VARCHAR(20) NOT NULL DEFAULT 'PROCESSING' COMMENT 'PROCESSING处理中,COMPLETED已完成',
|
||||
response_snapshot JSON NULL COMMENT '完成后的释放和转移组合结果快照,用于重复请求重放',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
completed_at DATETIME(3) NULL COMMENT '完成时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_pallet_location_settlement_idempotency
|
||||
(tenant_id, source_service, source_business_id, idempotency_key),
|
||||
KEY idx_pallet_location_settlement_source
|
||||
(tenant_id, source_service, source_business_id, operation_status)
|
||||
) ENGINE=InnoDB COMMENT='PDA拣货资源原子结算的持久化幂等操作记录';
|
||||
|
||||
-- 兼容已执行过旧脚本的测试库:目标子单不属于幂等键,同一来源单据和幂等键只能对应一条请求。
|
||||
ALTER TABLE wh_pallet_location_settlement_operation
|
||||
DROP INDEX uk_pallet_location_settlement_idempotency,
|
||||
ADD UNIQUE KEY uk_pallet_location_settlement_idempotency
|
||||
(tenant_id, source_service, source_business_id, idempotency_key);
|
||||
@@ -0,0 +1,20 @@
|
||||
-- 托盘库位转移的持久化幂等契约;可在二期托盘库位表建表后重复执行。
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS wh_pallet_location_transfer_operation (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '调拨幂等操作ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '仓储公共资源域,固定为0',
|
||||
source_service VARCHAR(40) NOT NULL COMMENT '来源服务',
|
||||
source_business_id BIGINT UNSIGNED NOT NULL COMMENT '来源入仓单ID',
|
||||
target_business_id BIGINT UNSIGNED NOT NULL COMMENT '目标子入仓单ID',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '调用方幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '规范化请求SHA-256摘要',
|
||||
operation_status VARCHAR(20) NOT NULL DEFAULT 'PROCESSING' COMMENT 'PROCESSING处理中、COMPLETED已完成',
|
||||
response_snapshot JSON NULL COMMENT '完成后的调拨结果快照,用于重复请求重放',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
completed_at DATETIME(3) NULL COMMENT '完成时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_pallet_location_transfer_idempotency
|
||||
(tenant_id, source_service, source_business_id, target_business_id, idempotency_key),
|
||||
KEY idx_pallet_location_transfer_source (tenant_id, source_service, source_business_id, operation_status)
|
||||
) ENGINE=InnoDB COMMENT='托盘库位归属转移的持久化幂等操作记录';
|
||||
Reference in New Issue
Block a user