Blame view

scripts/test/test_assistant_salary_import.sh 3.9 KB
08d94686   “wangming”   优化工资相关服务类和DTO类,增强...
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
  #!/bin/bash
  
  # 店助工资导入接口测试脚本
  # 测试接口:/api/Extend/LqAssistantSalary/import
  # 使用文件:店助工资_20260113143944.xlsx
  
  BASE_URL="http://localhost:2011"
  LOGIN_URL="${BASE_URL}/api/oauth/Login"
  IMPORT_URL="${BASE_URL}/api/Extend/LqAssistantSalary/import"
  EXCEL_FILE="ExportFiles/店助工资_20260113143944.xlsx"
  
  echo "========================================="
  echo "店助工资导入接口测试"
  echo "========================================="
  echo ""
  
  # 1. 检查Excel文件是否存在
  if [ ! -f "$EXCEL_FILE" ]; then
    echo "❌ Excel文件不存在: $EXCEL_FILE"
    exit 1
  fi
  
  echo "✓ Excel文件存在: $EXCEL_FILE"
  FILE_SIZE=$(ls -lh "$EXCEL_FILE" | awk '{print $5}')
  echo "  文件大小: $FILE_SIZE"
  echo ""
  
  # 2. 登录获取token
  echo "步骤1: 登录获取token..."
  LOGIN_RESPONSE=$(curl -s -X POST "${LOGIN_URL}" \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -d "account=admin&password=e10adc3949ba59abbe56e057f20f883e")
  
  TOKEN=$(echo $LOGIN_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('token', ''))" 2>/dev/null)
  
  if [ -z "$TOKEN" ]; then
    echo "❌ 登录失败,无法获取token"
    echo "响应: $LOGIN_RESPONSE"
    exit 1
  fi
  
  echo "✓ 登录成功,token获取成功"
  echo ""
  
  # 3. 测试导入接口
  echo "步骤2: 测试导入接口..."
  echo "接口地址: ${IMPORT_URL}"
  echo "上传文件: ${EXCEL_FILE}"
  echo ""
  
  IMPORT_RESPONSE=$(curl -s -X POST "${IMPORT_URL}" \
    -H "Authorization: ${TOKEN}" \
    -F "file=@${EXCEL_FILE}")
  
  # 检查响应
  echo "响应结果:"
  echo "$IMPORT_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$IMPORT_RESPONSE"
  echo ""
  
  # 解析响应结果
  RESULT_CODE=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('code', ''))" 2>/dev/null)
  SUCCESS=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('success', False))" 2>/dev/null)
  SUCCESS_COUNT=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('successCount', 0))" 2>/dev/null)
  FAIL_COUNT=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('failCount', 0))" 2>/dev/null)
  SKIPPED_COUNT=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('skippedCount', 0))" 2>/dev/null)
  MESSAGE=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('message', ''))" 2>/dev/null)
  
  if [ "$RESULT_CODE" = "200" ] && [ "$SUCCESS" = "True" ]; then
    echo "✓ 接口调用成功"
    echo ""
    echo "导入结果统计:"
    echo "  成功: ${SUCCESS_COUNT} 条"
    echo "  失败: ${FAIL_COUNT} 条"
    echo "  跳过: ${SKIPPED_COUNT} 条(已锁定或已确认)"
    if [ ! -z "$MESSAGE" ]; then
      echo "  消息: $MESSAGE"
    fi
    
    # 如果有错误信息,显示前10个
    ERRORS=$(echo $IMPORT_RESPONSE | python3 -c "
  import sys, json
  try:
      data = json.load(sys.stdin)
      errors = data.get('data', {}).get('errors', [])
      if errors:
          print('错误信息(前10条):')
          for i, err in enumerate(errors[:10], 1):
              print(f'  {i}. {err}')
          if len(errors) > 10:
              print(f'  ... 还有 {len(errors) - 10} 条错误信息')
  except:
      pass
  " 2>/dev/null)
    
    if [ ! -z "$ERRORS" ]; then
      echo ""
      echo "$ERRORS"
    fi
  else
    echo "❌ 接口调用失败"
    echo "状态码: $RESULT_CODE"
    echo "成功标志: $SUCCESS"
    
    ERROR_MSG=$(echo $IMPORT_RESPONSE | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('msg', ''))" 2>/dev/null)
    if [ ! -z "$ERROR_MSG" ]; then
      echo "错误信息: $ERROR_MSG"
    fi
  fi
  
  echo ""
  echo "========================================="
  echo "测试完成"
  echo "========================================="