test_salary_calculation_detailed.sh
3.65 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
#!/bin/bash
# 详细测试工资计算逻辑
# 验证删除和更新操作是否正确执行
BASE_URL="http://localhost:2011"
YEAR=2025
MONTH=12
MONTH_STR="${YEAR}${MONTH:0:1}${MONTH:1:1}"
echo "=========================================="
echo "工资计算逻辑详细测试"
echo "测试年份: ${YEAR}, 测试月份: ${MONTH} (${MONTH_STR})"
echo "=========================================="
echo ""
# 获取Token
TOKEN=$(curl -s -X POST "${BASE_URL}/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 ""
# 测试店长工资计算(作为示例)
echo "=========================================="
echo "测试店长工资计算逻辑"
echo "=========================================="
echo ""
echo "1. 调用店长工资计算接口..."
response=$(curl -s -X POST "${BASE_URL}/api/Extend/LqStoreManagerSalary/calculate/store-manager?year=${YEAR}&month=${MONTH}" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json")
if echo "$response" | python3 -c "import sys, json; data=json.load(sys.stdin); exit(0 if data.get('code') == 200 else 1)" 2>/dev/null; then
echo "✅ 计算接口调用成功"
echo " 响应: $(echo $response | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('msg', '成功'))" 2>/dev/null)"
else
echo "❌ 计算接口调用失败"
echo " 响应: $response"
exit 1
fi
echo ""
echo "2. 查询计算后的工资记录..."
salary_list=$(curl -s -X GET "${BASE_URL}/api/Extend/LqStoreManagerSalary/store-manager?Year=${YEAR}&Month=${MONTH}¤tPage=1&pageSize=5" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json")
total_count=$(echo "$salary_list" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('data', {}).get('pagination', {}).get('total', 0))" 2>/dev/null)
if [ ! -z "$total_count" ] && [ "$total_count" != "0" ]; then
echo "✅ 查询到 ${total_count} 条店长工资记录"
# 检查记录的状态
echo ""
echo "3. 检查记录状态(前5条)..."
echo "$salary_list" | python3 -c "
import sys, json
data = json.load(sys.stdin)
records = data.get('data', {}).get('list', [])[:5]
for i, record in enumerate(records, 1):
name = record.get('employeeName', 'N/A')
locked = record.get('isLocked', 0)
confirmed = record.get('employeeConfirmStatus', 0)
status = '未锁定未确认'
if locked == 1:
status = '已锁定'
if confirmed == 1:
status = '已确认'
if locked == 1 and confirmed == 0:
status = '已锁定未确认'
print(f\" 记录{i}: {name} - {status} (IsLocked={locked}, ConfirmStatus={confirmed})\")
" 2>/dev/null
else
echo "⚠️ 未查询到工资记录(可能该月份没有店长数据)"
fi
echo ""
echo "=========================================="
echo "测试说明:"
echo "=========================================="
echo "1. 计算接口会先删除未锁定且未确认的记录(IsLocked=0 && EmployeeConfirmStatus=0)"
echo "2. 对于已锁定或已确认的记录(IsLocked=1 || EmployeeConfirmStatus=1),会进行更新"
echo "3. 对于不存在的记录,会进行插入"
echo ""
echo "请检查服务日志,确认以下信息:"
echo "- 删除记录的日志:'计算工资前删除了 X 条未锁定且未确认的记录'"
echo "- 插入记录的日志:'插入了 X 条新的工资记录'"
echo "- 更新记录的日志:'更新了 X 条已锁定或已确认的工资记录'"
echo ""