160 lines
8.6 KiB
SQL
160 lines
8.6 KiB
SQL
-- 测试数据批次隔离:MySQL 增量补丁
|
||
-- 本补丁仅增加可空归属字段,不回填既有数据。
|
||
|
||
CREATE TABLE biz_test_batch (
|
||
batch_id BIGINT NOT NULL AUTO_INCREMENT COMMENT '测试数据批次ID',
|
||
batch_code VARCHAR(64) NOT NULL COMMENT '批次编码',
|
||
batch_name VARCHAR(100) NOT NULL COMMENT '批次名称',
|
||
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '批次状态',
|
||
create_by VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||
update_by VARCHAR(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||
closed_by BIGINT NULL COMMENT '关闭人ID',
|
||
closed_at DATETIME NULL COMMENT '关闭时间',
|
||
purged_by BIGINT NULL COMMENT '清理人ID',
|
||
purged_at DATETIME NULL COMMENT '清理时间',
|
||
purge_summary TEXT NULL COMMENT '清理摘要JSON',
|
||
preview_action VARCHAR(16) NULL COMMENT '预览动作',
|
||
preview_token_hash CHAR(64) NULL COMMENT '预览令牌摘要',
|
||
preview_scope_hash CHAR(64) NULL COMMENT '预览范围摘要',
|
||
preview_expires_at DATETIME NULL COMMENT '预览过期时间',
|
||
remark VARCHAR(500) NULL COMMENT '备注',
|
||
PRIMARY KEY (batch_id),
|
||
CONSTRAINT uq_biz_test_batch_code UNIQUE (batch_code),
|
||
CONSTRAINT ck_biz_test_batch_status CHECK (status IN ('ACTIVE', 'CLOSED', 'PURGED')),
|
||
CONSTRAINT ck_biz_test_batch_preview_action CHECK (
|
||
preview_action IS NULL OR preview_action IN ('ADOPT', 'PURGE')
|
||
),
|
||
CONSTRAINT fk_biz_test_batch_closed_by FOREIGN KEY (closed_by) REFERENCES sys_user (user_id),
|
||
CONSTRAINT fk_biz_test_batch_purged_by FOREIGN KEY (purged_by) REFERENCES sys_user (user_id)
|
||
) ENGINE=InnoDB COMMENT='测试数据批次';
|
||
|
||
CREATE TABLE biz_test_batch_user (
|
||
batch_id BIGINT NOT NULL COMMENT '测试数据批次ID',
|
||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||
create_by VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||
PRIMARY KEY (batch_id, user_id),
|
||
CONSTRAINT fk_biz_test_batch_user_batch FOREIGN KEY (batch_id) REFERENCES biz_test_batch (batch_id),
|
||
CONSTRAINT fk_biz_test_batch_user_user FOREIGN KEY (user_id) REFERENCES sys_user (user_id)
|
||
) ENGINE=InnoDB COMMENT='测试数据批次与用户关联';
|
||
|
||
ALTER TABLE biz_strain
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_strain_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_strain_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_customer
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_customer_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_customer_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_customer_site
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_customer_site_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_customer_site_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_production_line
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_production_line_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_production_line_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_warehouse
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_warehouse_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_warehouse_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_pallet
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_pallet_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_pallet_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_inbound_order
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_inbound_order_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_inbound_order_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_inbound_item
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_inbound_item_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_inbound_item_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_filling_record
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_filling_record_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_filling_record_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_shipment_order
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_shipment_order_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_shipment_order_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_shipment_item
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_shipment_item_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_shipment_item_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_usage_record
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_usage_record_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_usage_record_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_return_order
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_return_order_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_return_order_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_return_item
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_return_item_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_return_item_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_pallet_inventory
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_pallet_inventory_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_pallet_inventory_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
ALTER TABLE biz_pallet_event
|
||
ADD COLUMN test_batch_id BIGINT NULL COMMENT '测试数据批次ID;NULL表示正式数据',
|
||
ADD INDEX idx_biz_pallet_event_test_batch_id (test_batch_id),
|
||
ADD CONSTRAINT fk_biz_pallet_event_test_batch_id
|
||
FOREIGN KEY (test_batch_id) REFERENCES biz_test_batch (batch_id);
|
||
|
||
-- 菜单迁移:移除旧物理删除权限,加入测试数据批次管理菜单。
|
||
-- 新菜单不自动授予普通角色;超级管理员由现有 admin 权限访问。
|
||
START TRANSACTION;
|
||
|
||
DELETE FROM sys_role_menu
|
||
WHERE menu_id IN (1068, 1072, 1076, 1081, 1085, 1090, 1095, 1102);
|
||
|
||
DELETE FROM sys_menu
|
||
WHERE menu_id IN (1068, 1072, 1076, 1081, 1085, 1090, 1095, 1102);
|
||
|
||
INSERT INTO sys_menu VALUES
|
||
(519, '测试数据批次', 1, '7', 'testBatch', 'system/testBatch/index', '', '', 1, 0, 'C', '0', '0', 'system:testbatch:list', '#', 'admin', SYSDATE(), '', NULL, '测试数据批次菜单'),
|
||
(1109, '批次查询', 519, '1', '', '', '', '', 1, 0, 'F', '0', '0', 'system:testbatch:query', '#', 'admin', SYSDATE(), '', NULL, ''),
|
||
(1110, '批次新增', 519, '2', '', '', '', '', 1, 0, 'F', '0', '0', 'system:testbatch:add', '#', 'admin', SYSDATE(), '', NULL, ''),
|
||
(1111, '批次修改', 519, '3', '', '', '', '', 1, 0, 'F', '0', '0', 'system:testbatch:edit', '#', 'admin', SYSDATE(), '', NULL, ''),
|
||
(1112, '批次授权', 519, '4', '', '', '', '', 1, 0, 'F', '0', '0', 'system:testbatch:assign', '#', 'admin', SYSDATE(), '', NULL, ''),
|
||
(1113, '批次关闭', 519, '5', '', '', '', '', 1, 0, 'F', '0', '0', 'system:testbatch:close', '#', 'admin', SYSDATE(), '', NULL, ''),
|
||
(1114, '数据纳入', 519, '6', '', '', '', '', 1, 0, 'F', '0', '0', 'system:testbatch:adopt', '#', 'admin', SYSDATE(), '', NULL, ''),
|
||
(1115, '批次清理', 519, '7', '', '', '', '', 1, 0, 'F', '0', '0', 'system:testbatch:purge', '#', 'admin', SYSDATE(), '', NULL, '');
|
||
|
||
COMMIT;
|