75 lines
5.3 KiB
SQL
75 lines
5.3 KiB
SQL
SET NAMES utf8mb4;
|
|
USE baiyue_firstleg;
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_loading_cabinet_evidence (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '柜次证据记录ID',
|
|
container_booking_id BIGINT UNSIGNED NOT NULL COMMENT '证据唯一归属柜次ID',
|
|
source_task_id BIGINT UNSIGNED NOT NULL COMMENT '上传来源PDA任务ID,仅用于审计',
|
|
evidence_type VARCHAR(32) NOT NULL COMMENT '四步照片或带锁码照类型',
|
|
file_id BIGINT UNSIGNED NOT NULL COMMENT 'File服务文件ID',
|
|
file_name VARCHAR(255) NOT NULL COMMENT '文件名称快照',
|
|
seal_no VARCHAR(64) NULL COMMENT '带锁码照对应锁码',
|
|
remark VARCHAR(1000) NULL COMMENT '证据备注',
|
|
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '证据状态:ACTIVE有效、VOID作废',
|
|
active_flag TINYINT UNSIGNED NULL DEFAULT 1 COMMENT '有效唯一标识;作废后置NULL',
|
|
operation_key VARCHAR(128) NOT NULL COMMENT '任务范围内幂等操作键',
|
|
request_hash CHAR(64) NOT NULL COMMENT '规范化请求SHA-256摘要',
|
|
void_reason VARCHAR(500) NULL COMMENT '作废原因',
|
|
voided_by BIGINT UNSIGNED NULL COMMENT '作废操作人ID',
|
|
voided_by_name VARCHAR(128) NULL COMMENT '作废操作人名称快照',
|
|
voided_at DATETIME(3) NULL COMMENT '作废时间',
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本',
|
|
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建操作人ID',
|
|
created_by_name VARCHAR(128) NULL COMMENT '创建操作人名称快照',
|
|
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改操作人ID',
|
|
updated_by_name VARCHAR(128) 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_cabinet_evidence_active (container_booking_id,evidence_type,active_flag),
|
|
UNIQUE KEY uk_cabinet_evidence_operation (source_task_id,operation_key),
|
|
KEY idx_cabinet_evidence_container (container_booking_id,status),
|
|
KEY idx_cabinet_evidence_seal (seal_no,active_flag),
|
|
CONSTRAINT fk_cabinet_evidence_booking FOREIGN KEY (container_booking_id) REFERENCES fl_container_booking(id),
|
|
CONSTRAINT fk_cabinet_evidence_task FOREIGN KEY (source_task_id) REFERENCES fl_loading_pick_task(id),
|
|
CONSTRAINT chk_cabinet_evidence_type CHECK (evidence_type IN ('PHOTO_STEP_1','PHOTO_STEP_2','PHOTO_STEP_3','PHOTO_STEP_4','SEAL')),
|
|
CONSTRAINT chk_cabinet_evidence_status CHECK (status IN ('ACTIVE','VOID'))
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='柜次物理装柜证据;task仅记录来源审计';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_loading_operation (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '装柜写操作记录ID',
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '操作目标入库单逻辑ID',
|
|
operator_id BIGINT UNSIGNED NOT NULL COMMENT '执行写操作的平台用户ID',
|
|
operation VARCHAR(48) NOT NULL COMMENT '装柜或证据写操作类型',
|
|
idempotency_key VARCHAR(128) NOT NULL COMMENT '客户端幂等键,同一操作重试复用',
|
|
request_hash CHAR(64) NOT NULL COMMENT '规范化请求内容SHA-256摘要',
|
|
status VARCHAR(16) NOT NULL DEFAULT 'PROCESSING' COMMENT '幂等处理状态:PROCESSING处理中、SUCCESS成功、FAILED失败',
|
|
result_json JSON NULL COMMENT '成功结果或失败信息JSON快照,用于幂等重放',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作声明创建时间',
|
|
completed_at DATETIME(3) NULL COMMENT '操作完成时间',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_loading_operation (tenant_id, inbound_id, operator_id, operation, idempotency_key),
|
|
KEY idx_loading_operation_time (tenant_id, inbound_id, created_at),
|
|
CONSTRAINT fk_loading_operation_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
) ENGINE=InnoDB COMMENT='装柜与派送写操作幂等记录';
|
|
|
|
CREATE TABLE IF NOT EXISTS fl_inbound_loading_pick_task (
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '入库单级PDA拣货任务ID',
|
|
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
|
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '关联入库单逻辑ID',
|
|
status VARCHAR(24) NOT NULL DEFAULT 'PENDING' COMMENT '任务状态:PENDING待拣货、IN_PROGRESS拣货中、COMPLETED已完成',
|
|
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号,每次更新递增',
|
|
expected_count INT UNSIGNED NULL COMMENT '计划应拣箱数',
|
|
picked_count INT UNSIGNED NULL COMMENT '实际已拣箱数',
|
|
remark VARCHAR(1000) NULL COMMENT '拣货结果或异常补充说明',
|
|
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后操作人ID',
|
|
updated_by_name VARCHAR(64) NULL COMMENT '最后操作人姓名快照',
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'PDA拣货任务创建时间',
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'PDA拣货任务最后更新时间',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_loading_pick_tenant_inbound (tenant_id, inbound_id),
|
|
KEY idx_loading_pick_status (tenant_id, status, updated_at),
|
|
CONSTRAINT fk_loading_pick_inbound FOREIGN KEY (inbound_id) REFERENCES fl_inbound_order (id)
|
|
) ENGINE=InnoDB COMMENT='PDA拣货任务及结果';
|