送洗记录金额修复执行说明.md
5.06 KB
送洗记录金额修复执行说明
📋 修复概述
问题描述:部分送出记录(F_FlowType = 0)存在总价为0的异常情况,但单价和数量都不为0。
修复范围:
- 需要修复的记录数量:45条
- 应修复的总金额:2,442.40元
- 修复条件:F_FlowType = 0 AND F_IsEffective = 1 AND F_TotalPrice = 0 AND F_Quantity > 0 AND F_LaundryPrice > 0
修复逻辑:重新计算总价 = 数量 × 单价
⚠️ 执行前准备
1. 数据库备份
必须执行:在执行修复SQL前,请先备份数据库。
# 备份命令示例(根据实际情况调整)
mysqldump -u用户名 -p密码 数据库名 > backup_送洗记录修复_$(date +%Y%m%d_%H%M%S).sql
2. 确认修复范围
执行检查SQL,确认会修复的记录:
-- 查看需要修复的记录详情
SELECT
F_Id as 记录ID,
F_BatchNumber as 批次号,
F_StoreId as 门店ID,
F_ProductType as 产品类型,
F_Quantity as 数量,
F_LaundryPrice as 单价,
F_TotalPrice as 当前总价,
(F_Quantity * F_LaundryPrice) as 应修复为总价,
F_CreateTime as 创建时间
FROM lq_laundry_flow
WHERE F_FlowType = 0
AND F_IsEffective = 1
AND F_TotalPrice = 0
AND F_Quantity > 0
AND F_LaundryPrice > 0
ORDER BY F_CreateTime;
3. 统计修复信息
SELECT
COUNT(*) as 需要修复的记录数量,
SUM(F_Quantity * F_LaundryPrice) as 应修复的总金额
FROM lq_laundry_flow
WHERE F_FlowType = 0
AND F_IsEffective = 1
AND F_TotalPrice = 0
AND F_Quantity > 0
AND F_LaundryPrice > 0;
🔧 执行修复
修复SQL
UPDATE lq_laundry_flow
SET F_TotalPrice = F_Quantity * F_LaundryPrice
WHERE F_FlowType = 0
AND F_IsEffective = 1
AND F_TotalPrice = 0
AND F_Quantity > 0
AND F_LaundryPrice > 0;
执行说明:
- 此SQL会更新所有符合条件的记录
- 更新字段:
F_TotalPrice - 更新逻辑:
F_TotalPrice = F_Quantity * F_LaundryPrice
✅ 执行后验证
1. 检查是否还有异常记录
SELECT
COUNT(*) as 剩余异常记录数量
FROM lq_laundry_flow
WHERE F_FlowType = 0
AND F_IsEffective = 1
AND F_TotalPrice = 0
AND F_Quantity > 0
AND F_LaundryPrice > 0;
预期结果:剩余异常记录数量应该为 0
2. 验证修复后的记录
SELECT
F_Id as 记录ID,
F_BatchNumber as 批次号,
F_ProductType as 产品类型,
F_Quantity as 数量,
F_LaundryPrice as 单价,
F_TotalPrice as 修复后总价,
(F_Quantity * F_LaundryPrice) as 验证计算值,
CASE
WHEN F_TotalPrice = (F_Quantity * F_LaundryPrice) THEN '正确'
ELSE '异常'
END as 验证结果
FROM lq_laundry_flow
WHERE F_FlowType = 0
AND F_IsEffective = 1
AND F_TotalPrice > 0
AND F_CreateTime >= '2025-12-01'
AND F_CreateTime < '2026-01-01'
ORDER BY F_CreateTime DESC
LIMIT 20;
预期结果:所有记录的"验证结果"应该都是"正确"
3. 统计修复后的总金额
SELECT
COUNT(*) as 修复后的记录数量,
SUM(F_TotalPrice) as 修复后的总金额
FROM lq_laundry_flow
WHERE F_FlowType = 0
AND F_IsEffective = 1
AND F_TotalPrice > 0
AND F_CreateTime >= '2025-12-01'
AND F_CreateTime < '2026-01-01';
📊 修复影响分析
1. 对工资计算的影响
影响范围:
- 店长工资计算
- 主任工资计算
- 事业部总经理工资计算
影响说明:
- 这些工资计算都使用送出记录的总价(
F_FlowType = 0)来计算洗毛巾费用 - 修复后,这些记录的总价会从0变为正确的金额
- 需要重新计算:2025年12月相关的工资数据
2. 对股份计算的影响
影响范围:
- 门店股份统计(主营成本-毛巾)
影响说明:
- 股份计算使用送出记录的总价来计算毛巾成本
- 修复后,毛巾成本会增加2,442.40元
- 需要重新计算:2025年12月相关的股份数据
3. 数据一致性
修复前后对比:
- 修复前:送出记录总价0.00,送回记录总价正确(数据不一致)
- 修复后:送出记录总价正确,送回记录总价正确(数据一致)
📋 执行步骤总结
- ✅ 备份数据库(必须)
- ✅ 执行检查SQL,确认修复范围
- ✅ 执行修复SQL,修复异常记录
- ✅ 执行验证SQL,确认修复结果
- ⏭️ 重新计算工资数据(2025年12月)
- ⏭️ 重新计算股份数据(2025年12月)
⚠️ 注意事项
- 数据备份:执行前必须备份数据库
- 修复范围:只修复送出记录(F_FlowType = 0),不影响送回记录
- 修复条件:只修复单价>0且数量>0但总价为0的记录
- 后续工作:修复后需要重新计算相关的工资和股份数据
- 验证检查:修复后必须执行验证SQL,确认修复结果
📝 修复记录
- 修复时间:待执行
- 修复记录数:45条
- 修复总金额:2,442.40元
- 执行人:待填写
- 验证结果:待验证