test_tech_gm_cell_amount_final.sh 2.75 KB
#!/bin/bash

echo "=== 科技部总经理Cell金额计算完整测试 ==="
echo ""

# 1. 获取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; data = json.load(sys.stdin); print(data.get('data', {}).get('token', ''))")

if [ -z "$TOKEN" ]; then
  echo "❌ 获取Token失败"
  exit 1
fi
echo "✅ Token获取成功: ${TOKEN:0:50}..."
echo ""

# 2. 查询计算前的数据
echo "2. 查询计算前的数据..."
BEFORE_CELL=$(mysql -h127.0.0.1 -uroot -p123456 lqerp_dev -sN -e \
  "SELECT F_CellAmount FROM lq_tech_general_manager_salary_statistics WHERE F_EmployeeName LIKE '%夏萍%' AND F_StatisticsMonth = '202512'")
BEFORE_UPDATE_TIME=$(mysql -h127.0.0.1 -uroot -p123456 lqerp_dev -sN -e \
  "SELECT F_UpdateTime FROM lq_tech_general_manager_salary_statistics WHERE F_EmployeeName LIKE '%夏萍%' AND F_StatisticsMonth = '202512'")
echo "计算前 Cell金额: $BEFORE_CELL"
echo "计算前 UpdateTime: $BEFORE_UPDATE_TIME"
echo ""

# 3. 调用计算接口
echo "3. 调用计算接口..."
RESPONSE=$(curl -s -w "\nHTTP_CODE:%{http_code}" -X POST \
  "http://localhost:2011/api/Extend/lqtechgeneralmanagersalary/calculate/tech-general-manager?year=2025&month=12" \
  -H "Authorization: $TOKEN")
HTTP_CODE=$(echo "$RESPONSE" | grep "HTTP_CODE" | cut -d: -f2)
BODY=$(echo "$RESPONSE" | sed '/HTTP_CODE/d')

echo "HTTP状态码: $HTTP_CODE"
if [ "$HTTP_CODE" = "200" ]; then
  echo "响应: $BODY" | python3 -m json.tool 2>/dev/null || echo "响应: $BODY"
else
  echo "❌ 接口调用失败"
  echo "响应: $BODY"
fi
echo ""

# 4. 等待3秒
echo "4. 等待3秒..."
sleep 3
echo ""

# 5. 查询计算后的数据
echo "5. 查询计算后的数据..."
AFTER_CELL=$(mysql -h127.0.0.1 -uroot -p123456 lqerp_dev -sN -e \
  "SELECT F_CellAmount FROM lq_tech_general_manager_salary_statistics WHERE F_EmployeeName LIKE '%夏萍%' AND F_StatisticsMonth = '202512'")
AFTER_UPDATE_TIME=$(mysql -h127.0.0.1 -uroot -p123456 lqerp_dev -sN -e \
  "SELECT F_UpdateTime FROM lq_tech_general_manager_salary_statistics WHERE F_EmployeeName LIKE '%夏萍%' AND F_StatisticsMonth = '202512'")
echo "计算后 Cell金额: $AFTER_CELL"
echo "计算后 UpdateTime: $AFTER_UPDATE_TIME"
echo ""

# 6. 验证结果
echo "6. 验证结果..."
EXPECTED_CELL="69838.00"
if [ "$AFTER_CELL" = "$EXPECTED_CELL" ]; then
  echo "✅ Cell金额正确: $AFTER_CELL (预期: $EXPECTED_CELL)"
else
  echo "❌ Cell金额不正确: $AFTER_CELL (预期: $EXPECTED_CELL)"
fi

if [ "$AFTER_UPDATE_TIME" != "$BEFORE_UPDATE_TIME" ]; then
  echo "✅ UpdateTime已更新"
else
  echo "⚠️  UpdateTime未更新"
fi
echo ""

echo "=== 测试完成 ==="