-- 防伪防窜货管理:窜货预警 + 数据完整性校验 建表脚本(不使用 tenant_id)
|
-- 执行前请确认目标数据库为项目实际业务库,并逐条执行。
|
|
-- 1. 防窜货规则配置表(key-value 风格,预置判定粒度配置)
|
CREATE TABLE IF NOT EXISTS mes_trace_anti_config (
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
config_key VARCHAR(64) NOT NULL COMMENT '配置项Key',
|
config_value VARCHAR(255) NOT NULL COMMENT '配置值',
|
remark VARCHAR(255) DEFAULT NULL COMMENT '配置说明',
|
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
creator VARCHAR(64) DEFAULT NULL COMMENT '创建者',
|
updater VARCHAR(64) DEFAULT NULL COMMENT '更新者',
|
deleted BIT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
PRIMARY KEY (id),
|
KEY idx_anti_config_key (config_key)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='防窜货规则配置';
|
|
-- 预置判定粒度:PROVINCE 跨省 / CITY 跨市
|
INSERT INTO mes_trace_anti_config (config_key, config_value, remark)
|
SELECT 'warning_level', 'PROVINCE', '窜货判定粒度:PROVINCE 跨省 / CITY 跨市'
|
WHERE NOT EXISTS (SELECT 1 FROM mes_trace_anti_config WHERE config_key = 'warning_level' AND deleted = b'0');
|
|
-- 2. 窜货预警记录表
|
CREATE TABLE IF NOT EXISTS mes_trace_cross_region_warning (
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
warning_no VARCHAR(64) DEFAULT NULL COMMENT '预警编号',
|
bag_code_id BIGINT DEFAULT NULL COMMENT '袋码编号',
|
bag_code VARCHAR(64) DEFAULT NULL COMMENT '袋码',
|
pallet_code_id BIGINT DEFAULT NULL COMMENT '托盘码编号',
|
pallet_code VARCHAR(64) DEFAULT NULL COMMENT '托盘码',
|
batch_id BIGINT DEFAULT NULL COMMENT '生产批次编号',
|
batch_code VARCHAR(64) DEFAULT NULL COMMENT '批次号',
|
item_id BIGINT DEFAULT NULL COMMENT '物料编号',
|
item_code VARCHAR(64) DEFAULT NULL COMMENT '物料编码',
|
item_name VARCHAR(128) DEFAULT NULL COMMENT '物料名称',
|
sales_id BIGINT DEFAULT NULL COMMENT '销售出库单编号',
|
sales_code VARCHAR(64) DEFAULT NULL COMMENT '出库单号',
|
client_id BIGINT DEFAULT NULL COMMENT '经销商编号',
|
client_name VARCHAR(128) DEFAULT NULL COMMENT '经销商名称',
|
dealer_province VARCHAR(64) DEFAULT NULL COMMENT '经销商省份',
|
dealer_city VARCHAR(64) DEFAULT NULL COMMENT '经销商城市',
|
scan_province VARCHAR(64) DEFAULT NULL COMMENT '扫码省份',
|
scan_city VARCHAR(64) DEFAULT NULL COMMENT '扫码城市',
|
warning_type VARCHAR(32) DEFAULT NULL COMMENT '预警类型:CROSS_PROVINCE / CROSS_CITY',
|
scan_event_id BIGINT DEFAULT NULL COMMENT '关联消费者扫码事件编号',
|
status TINYINT NOT NULL DEFAULT 10 COMMENT '状态:10 待处理 / 20 已处理 / 30 误报',
|
handle_user_id BIGINT DEFAULT NULL COMMENT '处理人编号',
|
handle_time DATETIME DEFAULT NULL COMMENT '处理时间',
|
handle_remark VARCHAR(255) DEFAULT NULL COMMENT '处理备注',
|
event_time DATETIME NOT NULL COMMENT '预警产生时间',
|
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
creator VARCHAR(64) DEFAULT NULL COMMENT '创建者',
|
updater VARCHAR(64) DEFAULT NULL COMMENT '更新者',
|
deleted BIT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
PRIMARY KEY (id),
|
KEY idx_cross_region_status (status),
|
KEY idx_cross_region_batch (batch_id),
|
KEY idx_cross_region_bag (bag_code_id),
|
KEY idx_cross_region_sales (sales_id),
|
KEY idx_cross_region_event_time (event_time),
|
KEY idx_cross_region_scan_province (scan_province)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='窜货预警记录';
|
|
-- 3. 数据完整性校验记录表
|
CREATE TABLE IF NOT EXISTS mes_trace_integrity_record (
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
|
biz_type VARCHAR(32) NOT NULL COMMENT '业务类型:BATCH 批次 / SALES 销售出库 / SCAN 消费者扫码',
|
biz_id BIGINT NOT NULL COMMENT '业务记录编号',
|
biz_code VARCHAR(64) DEFAULT NULL COMMENT '业务编码(批次号/出库单号/追溯码)',
|
content_hash CHAR(64) NOT NULL COMMENT '内容摘要 SHA-256',
|
event_time DATETIME NOT NULL COMMENT '摘要生成时间',
|
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
creator VARCHAR(64) DEFAULT NULL COMMENT '创建者',
|
updater VARCHAR(64) DEFAULT NULL COMMENT '更新者',
|
deleted BIT(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
|
PRIMARY KEY (id),
|
UNIQUE KEY uk_integrity_biz (biz_type, biz_id),
|
KEY idx_integrity_event_time (event_time)
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据完整性校验记录';
|