清洗流水表添加送出送回时间字段.sql 2.62 KB
-- ============================================
-- 为清洗流水表(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;