-- ============================================
-- 为清洗流水表（lq_laundry_flow）添加送出/送回时间字段
-- ============================================
-- 说明：此脚本为清洗流水表添加送出时间和送回时间字段，用于记录实际的送出/送回时间
-- 
-- 字段说明：
-- F_SendTime：送出时间，用于记录实际的送出时间（流水类型为0时使用）
-- F_ReturnTime：送回时间，用于记录实际的送回时间（流水类型为1时使用）
-- 
-- 业务含义：
-- - 送出时间：记录实际送出清洗的时间，便于后续统计
-- - 送回时间：记录实际送回清洗的时间，便于后续统计
-- - F_CreateTime：保持为记录创建时间（系统时间），用于记录数据录入时间
-- 
-- 注意事项：
-- - 字段类型为DATETIME，允许为NULL（历史数据可能没有这些时间）
-- - 字段位置：放在 F_CreateTime 字段之后
-- - 创建后需要更新历史数据，将 F_CreateTime 的值复制到对应的时间字段

-- ============================================
-- 1. 添加送出时间字段
-- ============================================
ALTER TABLE `lq_laundry_flow` 
ADD COLUMN `F_SendTime` DATETIME NULL COMMENT '送出时间（流水类型为0时使用）' AFTER `F_CreateTime`;

-- ============================================
-- 2. 添加送回时间字段
-- ============================================
ALTER TABLE `lq_laundry_flow` 
ADD COLUMN `F_ReturnTime` DATETIME NULL COMMENT '送回时间（流水类型为1时使用）' AFTER `F_SendTime`;

-- ============================================
-- 3. 更新历史数据：将创建时间复制到对应的时间字段
-- ============================================
-- 更新送出记录：将创建时间复制到送出时间
UPDATE `lq_laundry_flow`
SET `F_SendTime` = `F_CreateTime`
WHERE `F_FlowType` = 0 
  AND `F_SendTime` IS NULL 
  AND `F_CreateTime` IS NOT NULL;

-- 更新送回记录：将创建时间复制到送回时间
UPDATE `lq_laundry_flow`
SET `F_ReturnTime` = `F_CreateTime`
WHERE `F_FlowType` = 1 
  AND `F_ReturnTime` IS NULL 
  AND `F_CreateTime` IS NOT NULL;

-- ============================================
-- 4. 验证更新结果
-- ============================================
-- 查看更新后的统计信息
SELECT 
    F_FlowType,
    CASE WHEN F_FlowType = 0 THEN '送出' ELSE '送回' END as FlowTypeName,
    COUNT(*) as TotalCount,
    COUNT(CASE WHEN F_FlowType = 0 THEN F_SendTime END) as HasSendTimeCount,
    COUNT(CASE WHEN F_FlowType = 1 THEN F_ReturnTime END) as HasReturnTimeCount
FROM lq_laundry_flow
WHERE F_IsEffective = 1
GROUP BY F_FlowType;


