Blame view

项目文档相关/docs/test-reports/工资锁定解锁接口测试报告.md 5.17 KB
83a6fd1f   “wangming”   feat: 添加员工确认状态及相关...
1
2
3
4
5
6
  # 工资锁定/解锁接口测试报告
  
  ## 测试时间
  2025-01-XX
  
  ## 测试环境
8daf47d0   “wangming”   修改访问地址
7
  - 服务地址: http://localhost:2015
83a6fd1f   “wangming”   feat: 添加员工确认状态及相关...
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
  - 测试账号: admin
  
  ## 测试状态
  
  ### ⚠️ 当前状态
  **服务需要重启才能加载新的锁定/解锁接口代码**
  
  ### 代码检查结果
  - ✅ 所有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`
  
  ### 请求参数
  ```json
  {
    "ids": ["工资记录ID1", "工资记录ID2"],
    "isLocked": true
  }
  ```
  
  **参数说明**
  - `ids`: 工资记录ID列表(必填)
  - `isLocked`: 是否锁定(true=锁定,false=解锁)
  
  ### 返回结果(预期)
  ```json
  {
    "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. ⏭️ **前端对接**:前端页面开发和对接
  
  ## 备注
  
  **重要**:服务重启后才能测试接口。当前接口代码已完整实现,编译通过,待服务重启后即可进行功能测试。