工资锁定解锁接口测试报告.md 5.17 KB

工资锁定/解锁接口测试报告

测试时间

2025-01-XX

测试环境

测试状态

⚠️ 当前状态

服务需要重启才能加载新的锁定/解锁接口代码

代码检查结果

  • ✅ 所有9个工资服务的锁定/解锁接口代码已添加
  • ✅ 代码编译通过(0 Error)
  • ✅ 代码结构正确(#region/#endregion匹配)
  • ⚠️ 服务未重启,新接口返回404

接口清单

服务名称 实体表 接口路径 代码状态 运行状态
LqSalaryService (健康师) lq_salary_statistics POST /api/Extend/lqsalary/lock ✅ 已添加 ⚠️ 需重启
LqTechTeacherSalaryService (科技部老师) lq_tech_teacher_salary_statistics POST /api/Extend/lqtechteachersalary/lock ✅ 已添加 ⚠️ 需重启
LqAssistantSalaryService (店助) lq_assistant_salary_statistics POST /api/Extend/lqassistantsalary/lock ✅ 已添加 ⚠️ 需重启
LqStoreManagerSalaryService (店长) lq_store_manager_salary_statistics POST /api/Extend/lqstoremanagersalary/lock ✅ 已添加 ⚠️ 需重启
LqDirectorSalaryService (主任) lq_director_salary_statistics POST /api/Extend/lqdirectorsalary/lock ✅ 已添加 ⚠️ 需重启
LqMajorProjectTeacherSalaryService (大项目老师) lq_major_project_teacher_salary_statistics POST /api/Extend/lqmajorprojectteachersalary/lock ✅ 已添加 ⚠️ 需重启
LqMajorProjectDirectorSalaryService (大项目主管) lq_major_project_director_salary_statistics POST /api/Extend/lqmajorprojectdirectorsalary/lock ✅ 已添加 ⚠️ 需重启
LqTechGeneralManagerSalaryService (科技部总经理) lq_tech_general_manager_salary_statistics POST /api/Extend/lqtechgeneralmanagersalary/lock ✅ 已添加 ⚠️ 需重启
LqBusinessUnitManagerSalaryService (事业部总经理) lq_business_unit_manager_salary_statistics POST /api/Extend/lqbusinessunitmanagersalary/lock ✅ 已添加 ⚠️ 需重启

接口说明

接口路径

POST /api/Extend/{service}/lock

请求参数

{
  "ids": ["工资记录ID1", "工资记录ID2"],
  "isLocked": true
}

参数说明

  • ids: 工资记录ID列表(必填)
  • isLocked: 是否锁定(true=锁定,false=解锁)

返回结果(预期)

{
  "code": 200,
  "msg": "锁定成功:2条",
  "data": "锁定成功:2条"
}

业务逻辑

  1. 验证参数:工资记录ID列表不能为空
  2. 查询记录:根据ID列表查询工资记录
  3. 保护逻辑:
    • 如果记录已确认(EmployeeConfirmStatus=1),不能解锁
    • 如果记录未确认,可以锁定或解锁
  4. 批量更新:更新IsLocked字段和UpdateTime字段
  5. 返回结果:返回锁定/解锁成功的条数和跳过的条数

测试计划

测试步骤

  1. 重启后端服务:确保新的锁定/解锁接口代码已加载
  2. 测试锁定功能
    • 测试单个记录锁定
    • 测试批量记录锁定
    • 验证IsLocked字段更新
  3. 测试解锁功能
    • 测试单个记录解锁
    • 测试批量记录解锁
    • 验证IsLocked字段更新
  4. 测试保护逻辑
    • 测试已确认记录不能解锁
    • 测试未确认记录可以解锁
  5. 测试参数验证
    • 测试空ID列表
    • 测试不存在的ID
    • 测试null参数

测试用例

测试1: 锁定单个记录

  • 请求: POST /api/Extend/lqsalary/lock
  • 参数: {"ids":["工资记录ID"],"isLocked":true}
  • 预期: 返回"锁定成功:1条"

测试2: 解锁单个记录

  • 请求: POST /api/Extend/lqsalary/lock
  • 参数: {"ids":["工资记录ID"],"isLocked":false}
  • 预期: 返回"解锁成功:1条"

测试3: 批量锁定记录

  • 请求: POST /api/Extend/lqsalary/lock
  • 参数: {"ids":["ID1","ID2","ID3"],"isLocked":true}
  • 预期: 返回"锁定成功:3条"

测试4: 已确认记录不能解锁

  • 步骤:
    1. 锁定一个记录
    2. 确认该记录
    3. 尝试解锁该记录
  • 预期: 返回"解锁成功:0条,跳过1条(已确认的记录不能解锁)"

测试5: 参数验证(空ID列表)

  • 请求: POST /api/Extend/lqsalary/lock
  • 参数: {"ids":[],"isLocked":true}
  • 预期: 返回错误"工资记录ID列表不能为空"

测试6: 参数验证(不存在的ID)

  • 请求: POST /api/Extend/lqsalary/lock
  • 参数: {"ids":["999999999999999999"],"isLocked":true}
  • 预期: 返回错误"未找到指定的工资记录"

代码质量

  • ✅ 所有代码编译通过(0 Error)
  • ✅ 所有服务代码结构统一
  • ✅ 错误处理完善
  • ✅ 业务逻辑清晰

下一步

  1. ⚠️ 重启后端服务:确保新的锁定/解锁接口代码已加载
  2. ⏭️ 执行测试用例:按照测试计划执行所有测试用例
  3. ⏭️ 验证功能:确认锁定/解锁功能正常工作
  4. ⏭️ 前端对接:前端页面开发和对接

备注

重要:服务重启后才能测试接口。当前接口代码已完整实现,编译通过,待服务重启后即可进行功能测试。