test_update_overtime_coefficient.sh
6.7 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
#!/bin/bash
# 测试修改消耗单加班系数接口
# 接口地址: PUT /api/Extend/LqXhHyhk/{id}/overtime-coefficient
echo "=========================================="
echo "测试修改消耗单加班系数接口"
echo "=========================================="
# 获取token
echo "1. 获取登录token..."
TOKEN=$(curl -s -X POST "http://localhost:2011/api/oauth/Login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "account=admin&password=e10adc3949ba59abbe56e057f20f883e" | \
python3 -c "import sys, json; print(json.load(sys.stdin)['data']['token'])" 2>/dev/null)
if [ -z "$TOKEN" ]; then
echo "❌ 获取token失败"
exit 1
fi
echo "✅ Token获取成功"
echo ""
# 获取一个有效的消耗单记录ID
echo "2. 获取消耗单记录ID..."
CONSUME_ID=$(curl -s -X GET "http://localhost:2011/api/Extend/LqXhHyhk?currentPage=1&pageSize=1" \
-H "Authorization: $TOKEN" | \
python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('list', [{}])[0].get('id', ''))" 2>/dev/null)
if [ -z "$CONSUME_ID" ]; then
echo "❌ 获取消耗单记录ID失败"
exit 1
fi
echo "✅ 消耗单记录ID: $CONSUME_ID"
echo ""
# 先查询当前记录信息
echo "3. 查询当前消耗单信息..."
CURRENT_INFO=$(curl -s -X GET "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID" \
-H "Authorization: $TOKEN")
echo "当前消耗单信息:"
echo "$CURRENT_INFO" | python3 -m json.tool 2>/dev/null || echo "$CURRENT_INFO"
echo ""
# 提取当前加班系数
CURRENT_COEFFICIENT=$(echo "$CURRENT_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeCoefficient', 0))" 2>/dev/null)
CURRENT_ORIGINAL_SGFY=$(echo "$CURRENT_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('originalSgfy', 0))" 2>/dev/null)
CURRENT_SGFY=$(echo "$CURRENT_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('sgfy', 0))" 2>/dev/null)
echo "当前加班系数: $CURRENT_COEFFICIENT"
echo "当前原始手工费: $CURRENT_ORIGINAL_SGFY"
echo "当前最终手工费: $CURRENT_SGFY"
echo ""
# 测试1: 修改加班系数为0.5
echo "4. 测试1: 修改加班系数为0.5..."
RESPONSE1=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \
-H "Authorization: $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"overtimeCoefficient\": 0.5
}")
echo "$RESPONSE1" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE1"
echo ""
# 验证修改结果
echo "5. 验证修改结果..."
UPDATED_INFO=$(curl -s -X GET "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID" \
-H "Authorization: $TOKEN")
NEW_COEFFICIENT=$(echo "$UPDATED_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeCoefficient', 0))" 2>/dev/null)
NEW_ORIGINAL_SGFY=$(echo "$UPDATED_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('originalSgfy', 0))" 2>/dev/null)
NEW_OVERTIME_SGFY=$(echo "$UPDATED_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeSgfy', 0))" 2>/dev/null)
NEW_SGFY=$(echo "$UPDATED_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('sgfy', 0))" 2>/dev/null)
echo "修改后加班系数: $NEW_COEFFICIENT"
echo "修改后原始手工费: $NEW_ORIGINAL_SGFY"
echo "修改后加班手工费: $NEW_OVERTIME_SGFY"
echo "修改后最终手工费: $NEW_SGFY"
echo ""
# 验证计算是否正确
if [ "$NEW_COEFFICIENT" = "0.5" ]; then
echo "✅ 加班系数修改成功"
else
echo "❌ 加班系数修改失败,期望: 0.5, 实际: $NEW_COEFFICIENT"
fi
# 计算期望的加班手工费
EXPECTED_OVERTIME_SGFY=$(python3 -c "print($NEW_ORIGINAL_SGFY * 0.5)" 2>/dev/null)
EXPECTED_SGFY=$(python3 -c "print($NEW_ORIGINAL_SGFY + $EXPECTED_OVERTIME_SGFY)" 2>/dev/null)
echo "期望的加班手工费: $EXPECTED_OVERTIME_SGFY"
echo "期望的最终手工费: $EXPECTED_SGFY"
echo ""
# 测试2: 修改加班系数为1.0
echo "6. 测试2: 修改加班系数为1.0..."
RESPONSE2=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \
-H "Authorization: $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"overtimeCoefficient\": 1.0
}")
echo "$RESPONSE2" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE2"
echo ""
# 测试3: 修改加班系数为0(非加班单)
echo "7. 测试3: 修改加班系数为0(非加班单)..."
RESPONSE3=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \
-H "Authorization: $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"overtimeCoefficient\": 0
}")
echo "$RESPONSE3" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE3"
echo ""
# 验证修改为0后的结果
echo "8. 验证修改为0后的结果..."
FINAL_INFO=$(curl -s -X GET "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID" \
-H "Authorization: $TOKEN")
FINAL_COEFFICIENT=$(echo "$FINAL_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeCoefficient', 0))" 2>/dev/null)
FINAL_OVERTIME_SGFY=$(echo "$FINAL_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeSgfy', 0))" 2>/dev/null)
FINAL_SGFY=$(echo "$FINAL_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('sgfy', 0))" 2>/dev/null)
echo "最终加班系数: $FINAL_COEFFICIENT"
echo "最终加班手工费: $FINAL_OVERTIME_SGFY"
echo "最终最终手工费: $FINAL_SGFY"
echo ""
if [ "$FINAL_COEFFICIENT" = "0" ] && [ "$FINAL_OVERTIME_SGFY" = "0" ]; then
echo "✅ 修改为0(非加班单)成功"
else
echo "❌ 修改为0(非加班单)失败"
fi
# 测试4: 测试不存在的ID
echo "9. 测试4: 测试不存在的ID..."
RESPONSE4=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/999999999999999999/overtime-coefficient" \
-H "Authorization: $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"overtimeCoefficient\": 0.5
}")
echo "$RESPONSE4" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE4"
echo ""
# 测试5: 测试无效参数(负数)
echo "10. 测试5: 测试无效参数(负数)..."
RESPONSE5=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \
-H "Authorization: $TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"overtimeCoefficient\": -0.5
}")
echo "$RESPONSE5" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE5"
echo ""
echo "=========================================="
echo "测试完成"
echo "=========================================="