-- 创建检验项目配置表 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, 'mdz', '米电阻', 1, 1, 'number', 10.0, 50.0, 'Ω/m', 1, datetime('now'), 'system'), (2, 'xj', '线径', 1, 1, 'number', 0.1, 10.0, 'mm', 2, datetime('now'), 'system'), (3, 'sxl', '收线量', 1, 0, 'number', 0.0, 1000.0, 'm', 3, datetime('now'), 'system'), (4, 'xpg', '线盘高', 1, 0, 'number', 0.0, 1000.0, 'mm', 4, datetime('now'), 'system'), (5, 'fzd', '放置点', 1, 0, 'enum', NULL, NULL, NULL, 5, datetime('now'), 'system'), (6, 'bz', '备注', 0, 0, 'text', NULL, NULL, NULL, 6, datetime('now'), 'system'); -- 为放置点检验项设置枚举值 UPDATE inspection_config SET enum_values = '["A区", "B区", "C区", "D区"]' WHERE name = 'fzd' AND is_deleted = FALSE; -- 包装记录表 drop table if exists inspection_pack_data; create table if not exists inspection_pack_data ( --订单号 order_id VARCHAR(50), --材质 material VARCHAR(50), --规格 spec VARCHAR(50), --包装号 tray_id VARCHAR(50), --轴包装号 axis_package_id VARCHAR(50), create_time TIMESTAMP NOT NULL, create_by VARCHAR(50) NOT NULL, update_time TIMESTAMP, update_by VARCHAR(50), is_deleted BOOLEAN ); -- 创建托盘类型配置表 CREATE TABLE IF NOT EXISTS pallet_types ( id INTEGER PRIMARY KEY AUTOINCREMENT, type_name VARCHAR(50) NOT NULL, -- 托盘类型名称 operation_type VARCHAR(20) NOT NULL, -- 操作类型: input(上料), output(下料) description TEXT, -- 描述 enabled BOOLEAN DEFAULT TRUE, -- 是否启用 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 ); -- 插入默认托盘类型数据 INSERT OR IGNORE INTO pallet_types ( type_name, operation_type, description, enabled, sort_order, create_time, create_by ) VALUES ('标准托盘', 'input', '标准上料托盘', TRUE, 1, CURRENT_TIMESTAMP, 'system'), ('小型托盘', 'input', '小型上料托盘', TRUE, 2, CURRENT_TIMESTAMP, 'system'), ('大型托盘', 'input', '大型上料托盘', TRUE, 3, CURRENT_TIMESTAMP, 'system'), ('标准托盘', 'output', '标准下料托盘', TRUE, 4, CURRENT_TIMESTAMP, 'system'), ('小型托盘', 'output', '小型下料托盘', TRUE, 5, CURRENT_TIMESTAMP, 'system'), ('大型托盘', 'output', '大型下料托盘', TRUE, 6, CURRENT_TIMESTAMP, 'system'); -- 创建托盘档案 create table if not exists pallet_archives ( id INTEGER PRIMARY KEY AUTOINCREMENT, pallet_id VARCHAR(50) , type_id VARCHAR(50), create_time TIMESTAMP , create_by VARCHAR(50) , update_time TIMESTAMP, update_by VARCHAR(50) ) -- 创建托盘类型表 CREATE TABLE IF NOT EXISTS pallet_type ( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(50) NOT NULL, -- 托盘类型名称 code VARCHAR(20) NOT NULL, -- 托盘类型编码 description TEXT, -- 托盘类型描述 create_time TIMESTAMP NOT NULL, create_by VARCHAR(50) NOT NULL, update_time TIMESTAMP, update_by VARCHAR(50), is_deleted BOOLEAN DEFAULT FALSE, UNIQUE(code, is_deleted) -- 确保编码唯一 ); -- 创建默认托盘类型 INSERT OR IGNORE INTO pallet_type ( name, code, description, create_time, create_by ) VALUES ('A型托盘', 'A', 'A型标准托盘', datetime('now'), 'system'), ('B型托盘', 'B', 'B型标准托盘', datetime('now'), 'system'), ('C型托盘', 'C', 'C型标准托盘', datetime('now'), 'system'); -- 创建订单托盘关联表 CREATE TABLE IF NOT EXISTS order_tray ( id INTEGER PRIMARY KEY AUTOINCREMENT, order_id VARCHAR(50) NOT NULL, -- 订单号 tray_id VARCHAR(50) NOT NULL, -- 托盘号 status VARCHAR(20) DEFAULT 'active', -- 状态: active, completed, deleted create_time TIMESTAMP NOT NULL, create_by VARCHAR(50) NOT NULL, update_time TIMESTAMP, update_by VARCHAR(50), UNIQUE(order_id, tray_id) -- 确保订单与托盘关联唯一 ); -- 创建包装记录表 CREATE TABLE IF NOT EXISTS packaging_record ( id INTEGER PRIMARY KEY AUTOINCREMENT, order_id VARCHAR(50) NOT NULL, -- 关联的工程号 tray_id VARCHAR(50) NOT NULL, -- 关联的托盘号 product_name VARCHAR(100), -- 产品名称 spec VARCHAR(100), -- 规格 package_no VARCHAR(50), -- 轴包装号 weight FLOAT, -- 重量 remark TEXT, -- 备注 status VARCHAR(20) DEFAULT 'active', -- 状态: active, completed, deleted create_time TIMESTAMP NOT NULL, create_by VARCHAR(50) NOT NULL, update_time TIMESTAMP, update_by VARCHAR(50) );