Files
hzdyjs/出国党籍保留审批功能-测试脚本.md
T
2025-10-14 16:41:19 +08:00

453 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 出国党籍保留审批功能 - 测试脚本
## 📋 测试目标
验证审批通过后,数据能够正确显示在"保留历史"选项卡中。
---
## 🔧 测试环境准备
### 1. 启动后端服务
```bash
cd /Users/weizzzz/Documents/Cursor/0828CURSOR/all-project/backend
# 启动后端服务(端口8080)
```
### 2. 启动前端服务
```bash
cd /Users/weizzzz/Documents/Cursor/0828CURSOR/all-project/web
npm run dev
# 前端服务(端口80)
```
---
## 📝 测试步骤
### 步骤1:创建测试数据(SQL)
在数据库中执行以下SQL,创建一条待审批的测试数据:
```sql
-- 插入一条待审批的测试数据
INSERT INTO rs_party_membership_retention (
name,
id_card,
position,
spouse,
travel_start_date,
travel_end_date,
stay_days,
destination,
purpose,
travel_reason,
self_funded,
request_approval,
party_branch,
application_date,
status,
application_time,
create_time,
update_time,
create_by,
update_by,
deleted,
tenant_id
) VALUES (
'测试党员张三', -- name
'330101199001011234', -- id_card
'副教授', -- position
'李四', -- spouse
'2025-02-01', -- travel_start_date
'2025-02-28', -- travel_end_date
28, -- stay_days
'美国', -- destination
'参加国际学术会议,进行学术交流', -- purpose
'学术交流', -- travel_reason
'1', -- self_funded (1-是)
'请求审批通过', -- request_approval
'计算机学院第一党支部', -- party_branch
CURDATE(), -- application_date
'1', -- status (1-待审批)
NOW(), -- application_time
NOW(), -- create_time
NOW(), -- update_time
1, -- create_by
1, -- update_by
0, -- deleted
'000000' -- tenant_id
);
-- 查询刚插入的数据
SELECT
retention_id,
name,
destination,
status,
application_time
FROM rs_party_membership_retention
WHERE name = '测试党员张三'
ORDER BY create_time DESC
LIMIT 1;
```
**预期结果**:
- 插入成功
- `status` = '1'(待审批)
- 记录 `retention_id`,后续步骤会用到
---
### 步骤2:测试审批页面 - 待审批列表
1. **登录系统**
- 使用有审批权限的账号登录
- 权限标识:`rs:partyretention:approve`
2. **进入审批页面**
- 导航路径:人事管理 → 党籍保留审批
- 或直接访问:`http://localhost/#/rs/party-membership-retention/approval`
3. **验证待审批列表**
- ✅ 应该能看到"测试党员张三"的记录
- ✅ 状态显示为"待审批"
- ✅ 显示申请时间、目的地等信息
4. **查看详情**
- 点击"查看详情"按钮
- ✅ 弹窗显示完整的申请信息
- ✅ 包含姓名、身份证号、出国时间、目的地、目的等
---
### 步骤3:测试审批操作 - 审批通过
1. **点击"审批通过"按钮**
- 在待审批列表中,找到"测试党员张三"的记录
- 点击"审批通过"按钮
2. **填写审批意见(可选)**
- 弹出审批意见输入框
- 输入:`同意该同志出国申请,保留党籍`
- 点击"确定"
3. **验证审批成功**
- ✅ 提示"审批成功"
- ✅ 该记录从待审批列表中消失
4. **验证数据库状态**
```sql
-- 查询审批后的数据状态
SELECT
retention_id,
name,
status,
final_approval,
update_time
FROM rs_party_membership_retention
WHERE name = '测试党员张三';
```
**预期结果**:
- ✅ `status` = '2'(已通过)
- ✅ `final_approval` = '同意该同志出国申请,保留党籍'
- ✅ `update_time` 已更新
---
### 步骤4:测试审批记录选项卡
1. **切换到"审批记录"选项卡**
- 在审批页面,点击"审批记录"选项卡
2. **验证审批记录显示**
- ✅ 应该能看到"测试党员张三"的记录
- ✅ 状态显示为"已通过"(绿色标签)
- ✅ 显示审批时间
3. **查看审批记录详情**
- 点击"查看详情"按钮
- ✅ 显示完整的申请信息
- ✅ 显示审批意见
---
### 步骤5:测试保留历史选项卡(关键验证)
1. **进入党籍保留管理页面**
- 导航路径:人事管理 → 党籍保留管理
- 或直接访问:`http://localhost/#/rs/party-membership-retention`
2. **切换到"保留历史"选项卡**
- 点击"保留历史"选项卡
3. **验证保留历史显示(核心验证)**
- ✅ **应该能看到"测试党员张三"的记录**
- ✅ 显示申请人员、出国原因、目的地
- ✅ 显示保留时间(2025-02-01 至 2025-02-28)
- ✅ 完成状态显示(默认为"进行中")
4. **查看保留历史详情**
- 双击记录或点击"查看详情"按钮
- ✅ 显示完整的保留信息
5. **测试保留历史编辑**
- 点击"编辑记录"按钮
- 可以修改备注、完成状态等信息
- ✅ 保存成功
---
### 步骤6:测试保留历史导出
1. **在保留历史选项卡中**
- 点击"导出"按钮
2. **验证导出功能**
- ✅ 下载Excel文件成功
- ✅ 文件名:`党籍保留历史_YYYY-MM-DD.xlsx`
- ✅ 文件包含"测试党员张三"的记录
- ✅ 只包含已通过的记录(status=2)
---
## 🔄 完整数据流转验证
### 数据流转路径
```
1. 创建测试数据
↓
rs_party_membership_retention 表
status = '1' (待审批)
↓
2. 审批页面 - 待审批列表
↓
GET /rs/party/retention/list?status=1
✅ 显示测试数据
↓
3. 审批通过
↓
PUT /rs/party/retention/approve/{retentionId}
参数: approved=true, approvalOpinion='...'
↓
数据库更新: status = '2' (已通过)
↓
4. 审批记录列表
↓
GET /rs/party/retention/list?status=2,3
✅ 显示审批通过的记录
↓
5. 保留历史列表(关键验证)
↓
GET /rs/party/retention/history/list
(后端强制 status=2)
✅ 显示审批通过的记录
```
---
## 🧪 接口测试(可选)
### 使用Postman或curl测试
#### 1. 测试保留历史列表接口
```bash
# 获取Token(先登录)
TOKEN="your_token_here"
# 测试保留历史列表
curl -X GET "http://localhost:8080/rs/party/retention/history/list?pageNum=1&pageSize=10" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json"
```
**预期响应**:
```json
{
"code": 200,
"msg": "查询成功",
"rows": [
{
"retentionId": 1,
"name": "测试党员张三",
"destination": "美国",
"status": "2",
"statusText": "已通过",
"travelStartDate": "2025-02-01",
"travelEndDate": "2025-02-28",
"stayDays": 28
}
],
"total": 1
}
```
#### 2. 测试保留历史详情接口
```bash
# 替换 {retentionId} 为实际的ID
curl -X GET "http://localhost:8080/rs/party/retention/history/1" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json"
```
**预期响应**:
```json
{
"code": 200,
"msg": "操作成功",
"data": {
"retentionId": 1,
"name": "测试党员张三",
"status": "2",
"finalApproval": "同意该同志出国申请,保留党籍"
}
}
```
---
## ✅ 测试检查清单
### 后端接口测试
- [ ] `GET /rs/party/retention/history/list` - 查询历史列表
- [ ] `GET /rs/party/retention/history/{retentionId}` - 查询历史详情
- [ ] `PUT /rs/party/retention/history` - 更新历史记录
- [ ] `POST /rs/party/retention/history/export` - 导出历史数据
### 前端功能测试
- [ ] 审批页面 - 待审批列表显示正常
- [ ] 审批页面 - 审批通过功能正常
- [ ] 审批页面 - 审批记录显示正常
- [ ] 保留历史 - 列表显示审批通过的数据
- [ ] 保留历史 - 详情查看功能正常
- [ ] 保留历史 - 编辑功能正常
- [ ] 保留历史 - 导出功能正常
### 数据流转测试
- [ ] 待审批数据创建成功(status=1)
- [ ] 审批通过后状态变更(status=2)
- [ ] 审批通过的数据从待审批列表消失
- [ ] 审批通过的数据出现在审批记录
- [ ] **审批通过的数据出现在保留历史(核心验证)**
### 权限测试
- [ ] 无审批权限的用户无法访问审批页面
- [ ] 无查询权限的用户无法查看保留历史
- [ ] 无编辑权限的用户无法编辑保留历史
---
## 🐛 常见问题排查
### 问题1:保留历史列表为空
**可能原因**:
1. 没有审批通过的数据(status=2)
2. 后端接口未正确实现
3. 前端接口调用错误
**排查步骤**:
```sql
-- 1. 检查数据库中是否有已通过的数据
SELECT * FROM rs_party_membership_retention WHERE status = '2';
-- 2. 检查后端日志
-- 查看是否有接口调用日志
-- 3. 检查前端Network
-- 打开浏览器开发者工具,查看Network请求
-- 确认调用的是 /rs/party/retention/history/list
```
### 问题2:审批后状态未更新
**可能原因**:
1. 审批接口调用失败
2. 数据库更新失败
3. 事务回滚
**排查步骤**:
```sql
-- 检查数据状态
SELECT
retention_id,
name,
status,
final_approval,
update_time
FROM rs_party_membership_retention
WHERE name = '测试党员张三';
-- 如果status仍为'1',说明审批未成功
```
### 问题3:权限不足
**错误提示**:`403 Forbidden` 或 `权限不足`
**解决方案**:
1. 确认用户有 `rs:partyretention:approve` 权限
2. 确认用户有 `rs:partyretention:list` 权限
3. 在系统管理 → 角色管理中分配权限
---
## 📊 测试报告模板
### 测试结果记录
| 测试项 | 预期结果 | 实际结果 | 状态 | 备注 |
|--------|---------|---------|------|------|
| 创建测试数据 | 插入成功,status=1 | | ⏳ | |
| 待审批列表显示 | 显示测试数据 | | ⏳ | |
| 审批通过操作 | 审批成功,status=2 | | ⏳ | |
| 审批记录显示 | 显示已通过记录 | | ⏳ | |
| **保留历史显示** | **显示已通过记录** | | ⏳ | **核心验证** |
| 保留历史详情 | 显示完整信息 | | ⏳ | |
| 保留历史编辑 | 编辑成功 | | ⏳ | |
| 保留历史导出 | 导出成功 | | ⏳ | |
### 测试结论
- [ ] ✅ 所有测试通过
- [ ] ⚠️ 部分测试失败(需要修复)
- [ ] ❌ 测试失败(需要重新开发)
### 问题记录
| 问题描述 | 严重程度 | 状态 | 解决方案 |
|---------|---------|------|---------|
| | | | |
---
## 🚀 下一步行动
### 测试通过后
1. ✅ 清理测试数据
2. ✅ 更新API文档
3. ✅ 编写用户手册
4. ✅ 培训审批人员
### 测试失败后
1. ❌ 记录问题详情
2. ❌ 分析失败原因
3. ❌ 修复代码
4. ❌ 重新测试
---
**测试脚本创建时间**:2025-01-09
**测试人员**:_________
**测试日期**:_________
**测试环境**:开发环境