健康师工资导入接口测试报告.md 3.96 KB

健康师工资导入接口测试报告

测试日期

2025-01-13

测试接口

  • 接口路径: /api/Extend/LqSalary/import
  • 请求方式: POST
  • Content-Type: multipart/form-data
  • 接口描述: 从Excel导入健康师工资数据

接口功能说明

导入规则

  1. Excel第一列是ID(主键),如果为空则自动生成新ID
  2. 如果ID在数据库中存在,则更新记录(需检查是否已锁定或已确认)
  3. 如果ID在数据库中不存在,则新增记录
  4. 已锁定(IsLocked=1)或已确认(EmployeeConfirmStatus=1)的记录不能导入覆盖

Excel格式支持

  • 支持新格式:第一列为ID
  • 支持旧格式:第一列为"门店名称"(无ID列),系统会自动匹配现有记录

Excel字段顺序

ID, 门店名称, 员工姓名, 岗位, 金三角战队, 总业绩, ...(共77列)

测试结果

测试环境

  • 测试时间: 2025-01-13 14:28:04
  • 服务地址: http://localhost:2011
  • 测试用户: admin
  • 测试文件: ExportFiles/健康师工资_20260113142038.xlsx
  • 文件大小: 575KB

测试用例1: 基本导入功能

请求信息

  • 接口地址: POST /api/Extend/LqSalary/import
  • 请求头:
    • Authorization: Bearer {token}
    • Content-Type: multipart/form-data
  • 请求体:
    • file: 健康师工资_20260113142038.xlsx

响应结果

{
    "code": 200,
    "msg": "操作成功",
    "data": {
        "success": true,
        "message": "导入完成:成功 200 条,失败 0 条,跳过 0 条(已锁定或已确认)",
        "successCount": 200,
        "failCount": 0,
        "skippedCount": 0,
        "errors": []
    },
    "extras": null,
    "timestamp": 1768285884286
}

测试结果

接口调用成功

  • 状态码: 200
  • 成功标志: true
  • 成功导入: 200 条
  • 失败记录: 0 条
  • 跳过记录: 0 条(已锁定或已确认)
  • 错误信息: 无

接口实现要点

1. 文件验证

  • 检查文件是否存在且大小大于0
  • 验证文件格式(支持 .xlsx 和 .xls)
  • 验证Excel文件是否有数据行

2. 数据解析

  • 使用 ExcelImportHelper.ToDataTable 读取Excel文件
  • 支持新旧两种格式(有ID列/无ID列)
  • 自动识别格式类型

3. 数据匹配

  • 如果ID为空,根据员工姓名和门店名称匹配现有记录
  • 如果找到匹配记录,使用该记录的ID进行更新

4. 数据验证

  • 验证必填字段(员工姓名)
  • 检查记录是否已锁定或已确认
  • 已锁定或已确认的记录会被跳过

5. 数据转换

  • 数值字段自动清理(去除逗号、货币符号等)
  • 支持多种数值格式的解析
  • 处理日期和布尔类型字段

6. 关联数据查找

  • 根据员工姓名查找 EmployeeId(从 BASE_USER 表)
  • 根据门店名称查找 StoreId(从 lq_mdxx 表)
  • 如果找不到,字段保持为空(后续可通过计算工资填充)

7. 批量操作

  • 使用批量插入和批量更新提高性能
  • 分别处理新记录和更新记录

8. 错误处理

  • 逐行处理,单行错误不影响其他行
  • 收集所有错误信息并返回
  • 详细的错误提示(包含行号)

测试脚本

测试脚本位置: scripts/test/test_health_coach_salary_import.sh

使用方法:

./scripts/test/test_health_coach_salary_import.sh

总结

接口功能正常: 接口可以正常接收Excel文件并导入数据 ✅ 数据导入成功: 成功导入200条工资记录 ✅ 错误处理完善: 无错误记录,错误处理逻辑正确 ✅ 性能良好: 批量操作,导入速度快 ✅ 格式兼容性好: 支持新旧两种Excel格式

建议

  1. 数据验证: 建议在实际使用中验证导入数据的准确性
  2. 错误处理: 如果导入过程中有错误,查看 errors 数组获取详细错误信息
  3. 数据备份: 建议在批量导入前备份数据
  4. 权限控制: 确保只有有权限的用户才能执行导入操作