Files
hzdyjs/docs/开发文档/党籍保留附件上传功能测试指南.md
T
2025-10-14 16:48:17 +08:00

9.7 KiB
Raw Blame History

党籍保留附件上传功能测试指南

📋 功能说明

功能名称:党籍保留附件上传
实现日期:2025-10-10
适用模块:出国申请管理

业务场景

  • 当申请人是中共党员且出国天数超过30天时,需要上传党籍保留附件
  • 附件需要经过党组织审批并盖章后才能上传
  • 支持PDF、JPG、PNG格式,文件大小限制10MB

🔧 部署前准备

1. 数据库更新

执行SQL脚本:

路径:docs/设计文档/database/【立即执行】添加党籍保留附件字段.sql

操作步骤:

  1. 连接到 hzdyjs_xg 数据库
  2. 执行整个SQL脚本
  3. 检查执行结果,确认4个字段添加成功:
    • party_retention_file_path - 党籍保留附件文件路径
    • party_retention_file_name - 党籍保留附件文件名
    • party_retention_upload_time - 党籍保留附件上传时间
    • party_retention_upload_status - 党籍保留附件上传状态

2. 后端代码部署

修改文件清单:

  1. ✅ RsOverseasApplicationController.java - 新增 uploadPartyRetentionFile 接口
  2. ✅ IRsOverseasApplicationService.java - 新增接口方法声明
  3. ✅ RsOverseasApplicationServiceImpl.java - 新增接口方法实现
  4. ✅ RsOverseasApplication.java - 新增4个实体字段

部署步骤:

# 1. 切换到后端目录
cd /Users/weizzzz/Documents/Cursor/0828CURSOR/all-project/backend

# 2. 编译打包
mvn clean package -DskipTests

# 3. 重启后端服务
# 根据实际部署方式重启服务

3. 前端无需修改

前端代码已经包含党籍保留附件上传功能,无需修改。


🧪 功能测试步骤

测试场景1:符合上传条件的申请

前置条件

  • 申请人的政治面貌为:中共党员
  • 出国天数设置为:31天或以上

测试步骤

  1. 登录系统

    • 使用测试账号登录前端系统
    • 导航到:人事管理 → 出国申请
  2. 创建新申请

    • 点击"新增申请"按钮
    • 填写基本信息:
      • 申请人姓名:测试用户
      • 所属部门:技术部
      • 政治面貌:中共党员
      • 出国类型:因公出国
      • 目的地:美国
      • 出国天数:35天(超过30天)
  3. 验证上传区域显示

    • ✅ 应该自动显示"党籍保留附件上传"区域
    • ✅ 显示红色必填提示
    • ✅ 显示上传按钮和说明文字
  4. 上传附件

    • 点击"上传党籍保留附件"按钮
    • 选择一个PDF或图片文件(小于10MB)
    • 观察上传过程
  5. 验证上传结果

    • ✅ 上传成功后显示绿色成功提示:"党籍保留附件上传成功!"
    • ✅ 文件列表中显示已上传的文件
    • ✅ 可以预览和删除文件
    • ✅ 按钮文字变为"重新上传"
  6. 提交申请

    • 填写其他必填项
    • 点击"提交"按钮
    • ✅ 申请提交成功

测试场景2:不符合上传条件的申请

测试用例2.1:政治面貌为群众

  • 政治面貌选择:群众
  • 出国天数:35天
  • ✅ 不应该显示党籍保留附件上传区域

测试用例2.2:出国天数≤30天

  • 政治面貌选择:中共党员
  • 出国天数:28天
  • ✅ 不应该显示党籍保留附件上传区域

测试场景3:文件格式验证

测试用例3.1:支持的格式

  • 上传 .pdf 文件 → ✅ 应该成功
  • 上传 .jpg 文件 → ✅ 应该成功
  • 上传 .png 文件 → ✅ 应该成功

测试用例3.2:不支持的格式

  • 上传 .doc 文件 → ❌ 提示"只支持PDF、JPG、PNG格式的文件!"
  • 上传 .xlsx 文件 → ❌ 提示"只支持PDF、JPG、PNG格式的文件!"

测试场景4:文件大小验证

  • 上传 5MB 文件 → ✅ 应该成功
  • 上传 9.9MB 文件 → ✅ 应该成功
  • 上传 11MB 文件 → ❌ 提示"文件大小不能超过 10MB"

测试场景5:API接口测试

使用Postman或curl测试

请求示例:

POST /rs/overseas/application/uploadPartyRetentionFile

Headers:
  Authorization: Bearer {token}
  Content-Type: multipart/form-data

Body (form-data):
  file: [选择文件]
  applicationId: 1234567890

成功响应:

{
  "code": 200,
  "msg": "党籍保留附件上传成功",
  "data": {
    "filePath": "https://oss.example.com/overseas/party-retention/party_retention_1234567890_1696935234567.pdf",
    "fileName": "党籍保留附件.pdf",
    "uploadTime": "2025-10-10 15:30:45"
  }
}

失败响应示例:

{
  "code": 500,
  "msg": "不支持的文件格式,请上传PDF、JPG或PNG文件"
}

🔍 数据验证

1. 数据库验证

查询上传记录:

SELECT 
    application_id,
    applicant_name,
    party_retention_file_path,
    party_retention_file_name,
    party_retention_upload_time,
    party_retention_upload_status,
    political_status,
    duration
FROM rs_overseas_application
WHERE party_retention_upload_status = '1'
ORDER BY party_retention_upload_time DESC
LIMIT 10;

验证点:

  • ✅ party_retention_file_path 应该有完整的OSS路径
  • ✅ party_retention_file_name 应该是原始文件名
  • ✅ party_retention_upload_time 应该是当前时间
  • ✅ party_retention_upload_status 应该是 '1'

2. OSS存储验证

文件存储路径:

overseas/party-retention/party_retention_{applicationId}_{timestamp}.{ext}

验证方式:

  • 登录OSS管理控制台
  • 导航到 overseas/party-retention/ 目录
  • 确认文件已正确上传
  • 验证文件可以正常下载和预览

🚨 常见问题排查

问题1:点击上传按钮后提示"Request method 'POST' is not supported"

原因:后端接口未部署或URL路径不正确

排查步骤:

  1. 检查后端服务是否已重启
  2. 检查接口路径:/rs/overseas/application/uploadPartyRetentionFile
  3. 确认Controller中的 @PostMapping 注解配置正确
  4. 查看后端日志,确认请求是否到达Controller

问题2:上传成功但数据库没有记录

原因:数据库字段未添加或Service层更新失败

排查步骤:

  1. 执行SQL验证字段是否存在:
    SHOW COLUMNS FROM rs_overseas_application 
    WHERE Field LIKE 'party_retention%';
    
  2. 检查后端日志中的异常信息
  3. 确认Service层的 updatePartyRetentionFileInfo 方法被正确调用

问题3:文件上传失败,提示"系统异常"

原因:OSS配置问题或网络问题

排查步骤:

  1. 检查OSS配置是否正确(application.yml)
  2. 确认OSS AccessKey和SecretKey有效
  3. 检查服务器到OSS的网络连接
  4. 查看后端详细错误日志

问题4:上传区域不显示

原因:条件判断逻辑问题

排查步骤:

  1. 确认政治面貌是否选择了"中共党员"
  2. 确认出国天数是否>30天
  3. 打开浏览器开发者工具,检查 showPartyRetentionUpload 的值
  4. 检查前端计算逻辑是否正确

✅ 测试检查清单

功能性测试

  • 符合条件时显示上传区域
  • 不符合条件时不显示上传区域
  • 文件格式验证正确(PDF、JPG、PNG)
  • 文件大小验证正确(≤10MB)
  • 上传成功后显示文件信息
  • 可以重新上传替换文件
  • 可以删除已上传文件
  • 提交申请时数据正确保存

接口测试

  • POST /uploadPartyRetentionFile 返回200
  • 响应数据格式正确
  • 错误处理正确(格式错误、大小超限等)

数据完整性

  • 数据库字段值正确
  • OSS文件存储成功
  • 文件路径可访问
  • 文件可以正常预览和下载

用户体验

  • 上传过程有加载提示
  • 成功/失败消息清晰友好
  • 上传按钮状态正确切换
  • 文件列表显示完整

📝 测试报告模板

## 党籍保留附件上传功能测试报告

**测试日期**:2025-10-10  
**测试人员**:[测试人员姓名]  
**测试环境**:开发环境 / 测试环境 / 生产环境

### 测试结果汇总
- 测试用例总数:15
- 通过用例数:__
- 失败用例数:__
- 阻塞用例数:__

### 详细测试结果

#### 1. 上传条件判断
- [✅/❌] 中共党员 + 出国>30天:显示上传区域
- [✅/❌] 群众:不显示上传区域
- [✅/❌] 出国≤30天:不显示上传区域

#### 2. 文件上传功能
- [✅/❌] PDF文件上传成功
- [✅/❌] JPG文件上传成功
- [✅/❌] PNG文件上传成功
- [✅/❌] 不支持格式被拦截
- [✅/❌] 超大文件被拦截

#### 3. 数据存储
- [✅/❌] 数据库记录正确
- [✅/❌] OSS文件存储成功
- [✅/❌] 文件路径可访问

#### 4. 异常情况
- [✅/❌] 网络异常处理
- [✅/❌] 重复上传处理
- [✅/❌] 删除文件处理

### 发现的问题
1. [问题描述]
   - 严重程度:高/中/低
   - 复现步骤:...
   - 期望结果:...
   - 实际结果:...

### 测试结论
[ ] 通过,可以发布  
[ ] 通过,但有建议改进项  
[ ] 不通过,需要修复问题

### 备注
[其他说明]

🎯 验收标准

功能通过以下所有标准即可验收:

  1. ✅ 当申请人是中共党员且出国天数>30天时,必须显示党籍保留附件上传区域
  2. ✅ 不符合条件时,不显示上传区域,不影响正常申请流程
  3. ✅ 文件上传成功后,数据库正确保存4个字段的值
  4. ✅ 上传的文件正确存储在OSS的 overseas/party-retention/ 目录下
  5. ✅ 文件格式和大小验证正确,错误提示友好
  6. ✅ 可以重新上传替换文件,旧文件被覆盖
  7. ✅ 所有操作有明确的成功/失败提示
  8. ✅ 不影响现有出国申请的其他功能

文档维护人:Cursor AI
最后更新:2025-10-10
版本:v1.0