-- =====================================================
-- 数据库升级脚本：normaltemperature表添加联络单号和件号字段
-- 创建时间：2026-02-04
-- 说明：将barcode字段拆分为ContactNumber和ItemNumber两个独立字段
-- =====================================================

USE fullautowaterpressure;

-- 1. 添加新字段
ALTER TABLE `normaltemperature` 
ADD COLUMN `ContactNumber` VARCHAR(100) NULL COMMENT '联络单号' AFTER `barcode`,
ADD COLUMN `ItemNumber` VARCHAR(100) NULL COMMENT '件号' AFTER `ContactNumber`;

-- 2. 迁移现有数据（假设barcode格式为"联络单号-件号"）
-- 如果barcode包含"-"，则拆分
UPDATE `normaltemperature` 
SET 
    `ContactNumber` = SUBSTRING_INDEX(`barcode`, '-', 1),
    `ItemNumber` = SUBSTRING_INDEX(`barcode`, '-', -1)
WHERE `barcode` IS NOT NULL AND `barcode` LIKE '%-%';

-- 如果barcode不包含"-"，则全部作为联络单号
UPDATE `normaltemperature` 
SET 
    `ContactNumber` = `barcode`,
    `ItemNumber` = ''
WHERE `barcode` IS NOT NULL AND `barcode` NOT LIKE '%-%';

-- 3. 创建索引以提高查询性能
CREATE INDEX `idx_contact_number` ON `normaltemperature`(`ContactNumber`);
CREATE INDEX `idx_item_number` ON `normaltemperature`(`ItemNumber`);

-- 4. 验证数据迁移
SELECT 
    COUNT(*) as total_records,
    COUNT(ContactNumber) as has_contact_number,
    COUNT(ItemNumber) as has_item_number,
    COUNT(CASE WHEN ContactNumber IS NOT NULL AND ItemNumber IS NOT NULL THEN 1 END) as both_fields
FROM normaltemperature;

-- 5. 显示示例数据
SELECT 
    Id, barcode, ContactNumber, ItemNumber, CreateTime
FROM normaltemperature
ORDER BY Id DESC
LIMIT 10;

-- =====================================================
-- 升级完成
-- =====================================================
