-- 创建检验项目配置表 CREATE TABLE IF NOT EXISTS inspection_config ( id INTEGER PRIMARY KEY AUTOINCREMENT, position INTEGER NOT NULL, -- 位置序号 (1-6) name VARCHAR(50) NOT NULL, -- 检验项目名称 display_name VARCHAR(50) NOT NULL, -- 显示名称 enabled BOOLEAN DEFAULT TRUE, -- 是否启用 required BOOLEAN DEFAULT FALSE, -- 是否必填 data_type VARCHAR(20) DEFAULT 'text', -- 数据类型: text, number, enum min_value FLOAT, -- 最小值 (用于number类型) max_value FLOAT, -- 最大值 (用于number类型) enum_values TEXT, -- 枚举值 (用于enum类型, JSON格式存储) unit VARCHAR(20), -- 单位 sort_order INTEGER NOT NULL, -- 排序顺序 create_time TIMESTAMP NOT NULL, create_by VARCHAR(50) NOT NULL, update_time TIMESTAMP, update_by VARCHAR(50), is_deleted BOOLEAN DEFAULT FALSE, UNIQUE(position, is_deleted) -- 确保同一位置只有一个激活的配置 ); -- 创建检验数据记录表 CREATE TABLE IF NOT EXISTS inspection_data ( id INTEGER PRIMARY KEY AUTOINCREMENT, order_id VARCHAR(50) NOT NULL, -- 关联的工程号 position INTEGER NOT NULL, -- 位置序号 config_id INTEGER NOT NULL, -- 关联的配置ID value TEXT NOT NULL, -- 检验值 (所有类型都用TEXT存储) status VARCHAR(20) DEFAULT 'pass', -- 状态: pass, fail, warning remark TEXT, -- 备注 create_time TIMESTAMP NOT NULL, create_by VARCHAR(50) NOT NULL, update_time TIMESTAMP, update_by VARCHAR(50), is_deleted BOOLEAN DEFAULT FALSE, FOREIGN KEY(config_id) REFERENCES inspection_config(id) ); -- 创建默认检验项目数据 INSERT OR IGNORE INTO inspection_config ( position, name, display_name, enabled, required, data_type, min_value, max_value, unit, sort_order, create_time, create_by ) VALUES (1, 'appearance', '外观', TRUE, TRUE, 'enum', NULL, NULL, '', 1, CURRENT_TIMESTAMP, 'system'), (2, 'diameter', '线径', TRUE, TRUE, 'number', 0, 100, 'mm', 2, CURRENT_TIMESTAMP, 'system'), (3, 'resistance', '电阻', TRUE, FALSE, 'number', 0, 1000, 'Ω', 3, CURRENT_TIMESTAMP, 'system'), (4, 'hardness', '硬度', FALSE, FALSE, 'number', 0, 100, 'HRC', 4, CURRENT_TIMESTAMP, 'system'), (5, 'strength', '强度', FALSE, FALSE, 'number', 0, 1000, 'MPa', 5, CURRENT_TIMESTAMP, 'system'), (6, 'custom', '自定义', FALSE, FALSE, 'text', NULL, NULL, '', 6, CURRENT_TIMESTAMP, 'system'); -- 为外观检验项设置枚举值 UPDATE inspection_config SET enum_values = '["合格", "不合格", "需要重检"]' WHERE name = 'appearance';