Blame view

项目文档相关/scripts/sh/test_update_overtime_coefficient.sh 6.7 KB
d8035736   “wangming”   Refactor project ...
1
2
3
4
5
6
7
8
9
10
11
  #!/bin/bash
  
  # 测试修改消耗单加班系数接口
  # 接口地址: PUT /api/Extend/LqXhHyhk/{id}/overtime-coefficient
  
  echo "=========================================="
  echo "测试修改消耗单加班系数接口"
  echo "=========================================="
  
  # 获取token
  echo "1. 获取登录token..."
8daf47d0   “wangming”   修改访问地址
12
  TOKEN=$(curl -s -X POST "http://localhost:2015/api/oauth/Login" \
d8035736   “wangming”   Refactor project ...
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    -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..."
8daf47d0   “wangming”   修改访问地址
27
  CONSUME_ID=$(curl -s -X GET "http://localhost:2015/api/Extend/LqXhHyhk?currentPage=1&pageSize=1" \
d8035736   “wangming”   Refactor project ...
28
29
30
31
32
33
34
35
36
37
38
39
40
    -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. 查询当前消耗单信息..."
8daf47d0   “wangming”   修改访问地址
41
  CURRENT_INFO=$(curl -s -X GET "http://localhost:2015/api/Extend/LqXhHyhk/$CONSUME_ID" \
d8035736   “wangming”   Refactor project ...
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    -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..."
8daf47d0   “wangming”   修改访问地址
60
  RESPONSE1=$(curl -s -X PUT "http://localhost:2015/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \
d8035736   “wangming”   Refactor project ...
61
62
63
64
65
66
67
68
69
70
71
    -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. 验证修改结果..."
8daf47d0   “wangming”   修改访问地址
72
  UPDATED_INFO=$(curl -s -X GET "http://localhost:2015/api/Extend/LqXhHyhk/$CONSUME_ID" \
d8035736   “wangming”   Refactor project ...
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
    -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..."
8daf47d0   “wangming”   修改访问地址
103
  RESPONSE2=$(curl -s -X PUT "http://localhost:2015/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \
d8035736   “wangming”   Refactor project ...
104
105
106
107
108
109
110
111
112
113
114
    -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(非加班单)..."
8daf47d0   “wangming”   修改访问地址
115
  RESPONSE3=$(curl -s -X PUT "http://localhost:2015/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \
d8035736   “wangming”   Refactor project ...
116
117
118
119
120
121
122
123
124
125
126
    -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后的结果..."
8daf47d0   “wangming”   修改访问地址
127
  FINAL_INFO=$(curl -s -X GET "http://localhost:2015/api/Extend/LqXhHyhk/$CONSUME_ID" \
d8035736   “wangming”   Refactor project ...
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
    -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..."
8daf47d0   “wangming”   修改访问地址
147
  RESPONSE4=$(curl -s -X PUT "http://localhost:2015/api/Extend/LqXhHyhk/999999999999999999/overtime-coefficient" \
d8035736   “wangming”   Refactor project ...
148
149
150
151
152
153
154
155
156
157
158
    -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: 测试无效参数(负数)..."
8daf47d0   “wangming”   修改访问地址
159
  RESPONSE5=$(curl -s -X PUT "http://localhost:2015/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \
d8035736   “wangming”   Refactor project ...
160
161
162
163
164
165
166
167
168
169
170
171
    -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 "=========================================="