更新补录数据领取时间-完整方案.sql
6.01 KB
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
-- ============================================
-- 更新补录数据的领取时间为2025-11-16
-- 适用场景:2026-01-16补录的数据,需要将领取时间改为2025-11-16
-- ============================================
-- ============================================
-- 第一步:查询今天补录的数据(请先执行此查询确认数据)
-- ============================================
-- 查询今天创建的所有申请记录
SELECT
F_Id,
F_UsageBatchId,
F_ApplicationStoreId,
F_ApplicationTime,
F_ReceiveTime as CurrentReceiveTime,
F_IsReceived,
F_ApprovalStatus,
F_UpdateTime
FROM lq_inventory_usage_application
WHERE DATE(F_ApplicationTime) = '2026-01-16'
AND F_IsEffective = 1
ORDER BY F_ApplicationTime DESC;
-- 查询今天标记为已领取的记录
SELECT
F_Id,
F_UsageBatchId,
F_ApplicationStoreId,
F_ApplicationTime,
F_ReceiveTime as CurrentReceiveTime,
F_IsReceived,
F_ApprovalStatus,
F_UpdateTime
FROM lq_inventory_usage_application
WHERE DATE(F_ReceiveTime) = '2026-01-16'
AND F_IsEffective = 1
AND F_IsReceived = 1
ORDER BY F_ReceiveTime DESC;
-- 查询今天更新的所有记录
SELECT
F_Id,
F_UsageBatchId,
F_ApplicationStoreId,
F_ApplicationTime,
F_ReceiveTime as CurrentReceiveTime,
F_IsReceived,
F_ApprovalStatus,
F_UpdateTime
FROM lq_inventory_usage_application
WHERE DATE(F_UpdateTime) = '2026-01-16'
AND F_IsEffective = 1
ORDER BY F_UpdateTime DESC;
-- ============================================
-- 第二步:执行更新(请根据第一步的查询结果选择对应的方案)
-- ============================================
-- 方案1:更新今天创建的申请记录的领取时间(如果已领取)
-- 适用场景:今天创建的申请,今天标记为已领取,需要将领取时间改为2025-11-16
UPDATE lq_inventory_usage_application
SET F_ReceiveTime = '2025-11-16 00:00:00',
F_UpdateTime = NOW(),
F_UpdateUser = 'admin'
WHERE DATE(F_ApplicationTime) = '2026-01-16'
AND F_IsEffective = 1
AND F_IsReceived = 1
AND F_ReceiveTime IS NOT NULL;
-- 方案2:更新今天标记为已领取的记录的领取时间
-- 适用场景:今天标记为已领取的记录(可能是之前创建的申请)
UPDATE lq_inventory_usage_application
SET F_ReceiveTime = '2025-11-16 00:00:00',
F_UpdateTime = NOW(),
F_UpdateUser = 'admin'
WHERE DATE(F_ReceiveTime) = '2026-01-16'
AND F_IsEffective = 1
AND F_IsReceived = 1;
-- 方案3:更新今天更新的记录的领取时间(如果已领取)
-- 适用场景:今天更新的记录(可能是补录或修改的数据)
UPDATE lq_inventory_usage_application
SET F_ReceiveTime = '2025-11-16 00:00:00',
F_UpdateTime = NOW(),
F_UpdateUser = 'admin'
WHERE DATE(F_UpdateTime) = '2026-01-16'
AND F_IsEffective = 1
AND F_IsReceived = 1
AND F_ReceiveTime IS NOT NULL;
-- 方案4:根据批次ID更新(如果知道具体的批次ID)
-- 适用场景:知道具体的批次ID,需要更新特定批次的领取时间
-- UPDATE lq_inventory_usage_application
-- SET F_ReceiveTime = '2025-11-16 00:00:00',
-- F_UpdateTime = NOW(),
-- F_UpdateUser = 'admin'
-- WHERE F_UsageBatchId IN ('批次ID1', '批次ID2', '批次ID3')
-- AND F_IsEffective = 1
-- AND F_IsReceived = 1;
-- ============================================
-- 第三步:验证更新结果
-- ============================================
-- 验证:查询更新后的数据
SELECT
F_Id,
F_UsageBatchId,
F_ApplicationStoreId,
F_ApplicationTime,
F_ReceiveTime,
F_IsReceived,
F_ApprovalStatus,
F_UpdateTime
FROM lq_inventory_usage_application
WHERE (DATE(F_ApplicationTime) = '2026-01-16'
OR DATE(F_ReceiveTime) = '2026-01-16'
OR DATE(F_UpdateTime) = '2026-01-16')
AND F_IsEffective = 1
AND F_IsReceived = 1
AND DATE(F_ReceiveTime) = '2025-11-16'
ORDER BY F_UpdateTime DESC;
-- 统计更新后的数据
SELECT
DATE(F_ReceiveTime) as ReceiveDate,
COUNT(*) as Count,
COUNT(DISTINCT F_UsageBatchId) as BatchCount
FROM lq_inventory_usage_application
WHERE (DATE(F_ApplicationTime) = '2026-01-16'
OR DATE(F_UpdateTime) = '2026-01-16')
AND F_IsEffective = 1
AND F_IsReceived = 1
AND F_ReceiveTime IS NOT NULL
GROUP BY DATE(F_ReceiveTime)
ORDER BY ReceiveDate DESC;
-- ============================================
-- 第四步:更新后需要重新计算的数据
-- ============================================
-- 注意:更新领取时间为2025-11-16后,需要重新计算以下数据:
-- 1. 2025年11月的工资(因为领取时间改为11月,会影响11月的产品物料计算)
-- 店长工资:
-- POST /api/Extend/lqstoremanagersalary/calculate/store-manager?year=2025&month=11
--
-- 主任工资:
-- POST /api/Extend/lqdirectorsalary/calculate/director?year=2025&month=11
--
-- 事业部总经理/经理工资:
-- POST /api/Extend/lqbusinessunitmanagersalary/calculate/business-unit-manager?year=2025&month=11
-- 2. 2025年12月的工资(因为计算12月工资时使用11月数据)
-- 店长工资:
-- POST /api/Extend/lqstoremanagersalary/calculate/store-manager?year=2025&month=12
--
-- 主任工资:
-- POST /api/Extend/lqdirectorsalary/calculate/director?year=2025&month=12
--
-- 事业部总经理/经理工资:
-- POST /api/Extend/lqbusinessunitmanagersalary/calculate/business-unit-manager?year=2025&month=12
-- 3. 2025年11月的股份统计(因为产品成本基于领取时间)
-- POST /api/Extend/lqsharestatisticsstore/generate
-- Body: {"statisticsMonth":"202511"}
-- ============================================
-- 执行说明:
-- 1. 先执行第一步的查询语句,确认要更新的数据
-- 2. 根据查询结果,选择对应的更新方案(方案1/2/3/4)
-- 3. 执行更新语句
-- 4. 执行第三步的验证查询,确认更新成功
-- 5. 根据实际情况,重新计算相关的工资和股份统计数据
-- ============================================