83a6fd1f
“wangming”
feat: 添加员工确认状态及相关...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
# 送洗记录金额修复执行说明
## 📋 修复概述
**问题描述**:部分送出记录(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前,请先备份数据库。
```bash
# 备份命令示例(根据实际情况调整)
mysqldump -u用户名 -p密码 数据库名 > backup_送洗记录修复_$(date +%Y%m%d_%H%M%S).sql
```
### 2. 确认修复范围
执行检查SQL,确认会修复的记录:
```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. 统计修复信息
```sql
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
```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. 检查是否还有异常记录
```sql
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. 验证修复后的记录
```sql
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. 统计修复后的总金额
```sql
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,送回记录总价正确(数据不一致)
- **修复后**:送出记录总价正确,送回记录总价正确(数据一致)
## 📋 执行步骤总结
1. ✅ **备份数据库**(必须)
2. ✅ **执行检查SQL**,确认修复范围
3. ✅ **执行修复SQL**,修复异常记录
4. ✅ **执行验证SQL**,确认修复结果
5. ⏭️ **重新计算工资数据**(2025年12月)
6. ⏭️ **重新计算股份数据**(2025年12月)
## ⚠️ 注意事项
1. **数据备份**:执行前必须备份数据库
2. **修复范围**:只修复送出记录(F_FlowType = 0),不影响送回记录
3. **修复条件**:只修复单价>0且数量>0但总价为0的记录
4. **后续工作**:修复后需要重新计算相关的工资和股份数据
5. **验证检查**:修复后必须执行验证SQL,确认修复结果
## 📝 修复记录
- **修复时间**:待执行
- **修复记录数**:45条
- **修复总金额**:2,442.40元
- **执行人**:待填写
- **验证结果**:待验证
|