83 lines
6.0 KiB
SQL
83 lines
6.0 KiB
SQL
-- 历史库存基线;执行前必须取得指定环境的建表授权。
|
|
CREATE TABLE IF NOT EXISTS ll_selfop_inventory_flow (
|
|
id BIGINT NOT NULL COMMENT '应用生成的流水记录标识',
|
|
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号',
|
|
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库编码',
|
|
customer_code VARCHAR(64) NOT NULL COMMENT '来源货主编码',
|
|
sku_code VARCHAR(128) NOT NULL COMMENT '来源商品编码',
|
|
source_flow_id VARCHAR(64) NOT NULL COMMENT '来源流水字符串标识',
|
|
product_quality INT NOT NULL COMMENT '来源品质,零正品一次品,其他未知',
|
|
cell_no VARCHAR(128) NULL COMMENT '来源库位编码',
|
|
inner_batch_no VARCHAR(128) NULL COMMENT '来源内部批次号',
|
|
bill_no VARCHAR(128) NULL COMMENT '来源业务单号',
|
|
source_no VARCHAR(128) NULL COMMENT '来源关联单号',
|
|
bill_type VARCHAR(32) NULL COMMENT '来源业务类型,未验证类型不得参与正式还原',
|
|
book_qty DECIMAL(20,6) NULL COMMENT '来源记账增减量,未知为空',
|
|
book_change_qty_raw VARCHAR(64) NULL COMMENT '来源带符号变动量原文',
|
|
delta_quantity DECIMAL(20,6) NULL COMMENT '解析后的有符号实物变动量',
|
|
close_quantity DECIMAL(20,6) NULL COMMENT '对应库位批次品质链的结存',
|
|
source_create_time VARCHAR(64) NULL COMMENT '来源北京时间原文',
|
|
event_at_utc DATETIME(3) NULL COMMENT '流水发生UTC时刻,无法解析时为空',
|
|
business_date DATE NULL COMMENT '北京时间业务日期',
|
|
quantity_unit VARCHAR(16) NULL COMMENT '已确认数量单位,未知为空',
|
|
content_hash CHAR(64) NOT NULL COMMENT '当前事实内容摘要',
|
|
revision_no BIGINT NOT NULL COMMENT '同来源流水单调增加的修订号',
|
|
stage_id BIGINT NOT NULL COMMENT '当前事实对应不可变暂存证据',
|
|
first_run_id BIGINT NOT NULL COMMENT '首次观察执行尝试',
|
|
last_run_id BIGINT NOT NULL COMMENT '最近确认执行尝试',
|
|
last_observed_at DATETIME(3) NOT NULL COMMENT '最近观察UTC时刻',
|
|
validation_status VARCHAR(16) NOT NULL COMMENT '字段资格,有效或未知',
|
|
validation_reason VARCHAR(64) NULL COMMENT '数量或身份待核验原因',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_selfop_flow_source (source_account,warehouse_code,source_flow_id),
|
|
KEY idx_selfop_flow_sku (source_account,warehouse_code,customer_code,sku_code,event_at_utc),
|
|
KEY idx_selfop_flow_day (source_account,warehouse_code,business_date),
|
|
CONSTRAINT chk_selfop_flow_revision CHECK (revision_no > 0)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='自营历史库存流水最新事实,旧版本保留于暂存证据';
|
|
|
|
CREATE TABLE IF NOT EXISTS ll_selfop_inventory_day_version (
|
|
id BIGINT NOT NULL COMMENT '不可变历史日版本标识',
|
|
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号',
|
|
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库编码',
|
|
business_date DATE NOT NULL COMMENT '北京时间日末所属日期',
|
|
scope_hash CHAR(64) NOT NULL COMMENT '业务范围摘要',
|
|
rule_version VARCHAR(32) NOT NULL COMMENT '日末库存还原规则版本',
|
|
build_run_id BIGINT NOT NULL COMMENT '历史重建执行尝试',
|
|
publication_group_id BIGINT NOT NULL COMMENT '必须一起切换的发布组标识',
|
|
sales_run_id BIGINT NULL COMMENT '构建时固定的销量证据版本',
|
|
anchor_run_id BIGINT NOT NULL COMMENT '固定的独立库存锚点版本',
|
|
input_hash CHAR(64) NOT NULL COMMENT '冻结流水修订与覆盖及锚点输入摘要',
|
|
evidence_json JSON NOT NULL COMMENT '固定输入清单及不可变证据引用',
|
|
status VARCHAR(16) NOT NULL COMMENT '构建中、就绪、已发布、已替代或失败',
|
|
head_slot TINYINT NULL COMMENT '当前日头为一,非当前版本为空',
|
|
valid_sku_count BIGINT NOT NULL DEFAULT 0 COMMENT '合格商品数',
|
|
unknown_sku_count BIGINT NOT NULL DEFAULT 0 COMMENT '待核验商品数',
|
|
created_at DATETIME(3) NOT NULL COMMENT '版本创建UTC时刻',
|
|
published_at DATETIME(3) NULL COMMENT '发布组提交UTC时刻',
|
|
superseded_at DATETIME(3) NULL COMMENT '被新组替代的UTC时刻',
|
|
invalidated_at DATETIME(3) NULL COMMENT '已确认输入失效的UTC时刻',
|
|
invalidation_reason VARCHAR(64) NULL COMMENT '旧版本失效原因',
|
|
rebuild_run_id BIGINT NULL COMMENT '处理失效版本的重建尝试',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_selfop_history_head (source_account,warehouse_code,business_date,head_slot),
|
|
UNIQUE KEY uk_selfop_history_build_day (build_run_id,business_date),
|
|
KEY idx_selfop_history_group (publication_group_id,status),
|
|
CONSTRAINT chk_selfop_history_head CHECK (head_slot IS NULL OR (head_slot=1 AND status='PUBLISHED'))
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='历史日库存不可变版本及原子发布日头';
|
|
|
|
CREATE TABLE IF NOT EXISTS ll_selfop_inventory_daily (
|
|
day_version_id BIGINT NOT NULL COMMENT '所属历史日版本',
|
|
customer_code VARCHAR(64) NOT NULL COMMENT '来源货主编码',
|
|
sku_code VARCHAR(128) NOT NULL COMMENT '来源商品编码',
|
|
product_quality INT NOT NULL COMMENT '来源库存品质',
|
|
physical_quantity DECIMAL(20,6) NULL COMMENT '日末实物库存,未知为空,已确认零为零',
|
|
quality_status VARCHAR(16) NOT NULL COMMENT '日末资格,有效或未知',
|
|
quality_reason VARCHAR(64) NULL COMMENT '缺覆盖或锚点等未知原因',
|
|
anchor_reference BIGINT NULL COMMENT '独立库存锚点版本',
|
|
evidence_hash CHAR(64) NOT NULL COMMENT '该日计算证据摘要',
|
|
source VARCHAR(32) NOT NULL COMMENT '库存来源标记,流水还原',
|
|
PRIMARY KEY (day_version_id,customer_code,sku_code,product_quality),
|
|
KEY idx_selfop_daily_identity (customer_code,sku_code,day_version_id),
|
|
CONSTRAINT chk_selfop_daily_quantity CHECK ((quality_status='VALID' AND physical_quantity IS NOT NULL AND physical_quantity>=0) OR (quality_status='UNKNOWN' AND physical_quantity IS NULL))
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='历史日末分货主商品品质实物库存';
|