# 出国申请附件功能-快速部署指南 ## 🚀 快速部署(3步完成) ### 第1步:执行数据库脚本(1分钟) ```bash # 使用MySQL客户端执行 mysql -h 主机地址 -u 用户名 -p 数据库名 < docs/设计文档/database/rs_overseas_application_attachment.sql ``` 或者在数据库管理工具中执行该SQL文件。 **验证**:检查是否创建了表 `rs_overseas_application_attachment` --- ### 第2步:重启后端服务(2-3分钟) ```bash cd backend mvn clean install -DskipTests ./start-all.sh ``` **验证**:访问 http://localhost:8080 确认服务启动成功 --- ### 第3步:重新构建前端(2-3分钟) ```bash cd web npm run build:prod ``` **验证**:检查 `web/dist` 目录是否生成新的文件 --- ## ✅ 功能测试(5分钟) ### 测试1:新增申请并上传附件 1. 登录系统 2. 进入【出国管理】-【出国申请】 3. 点击"新增申请" 4. 阅读文件通知(30秒) 5. 填写申请表单 6. 滚动到底部,点击"添加附件" 7. 填写附件标题(如:"护照复印件") 8. 填写附件说明(选填,如:"护照信息页") 9. 选择文件上传 10. 点击"确认上传" 11. 验证附件列表显示新上传的文件 12. 点击"提交"保存申请 ### 测试2:查看详情中显示附件 1. 在申请列表中找到刚才的申请 2. 点击"查看详情" 3. 滚动到底部查看"申请附件"区域 4. 验证显示附件标题、内容、文件名等信息 5. 点击"下载"按钮测试下载功能 --- ## 📁 关键文件清单 ### 数据库 - `docs/设计文档/database/rs_overseas_application_attachment.sql` - 附件表SQL脚本 ### 后端(7个文件) - `backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/RsOverseasApplicationAttachment.java` - Entity - `backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/vo/RsOverseasApplicationAttachmentVo.java` - VO - `backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/domain/bo/RsOverseasApplicationAttachmentBo.java` - BO - `backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/mapper/RsOverseasApplicationAttachmentMapper.java` - Mapper - `backend/ruoyi-modules/ruoyi-rs/src/main/resources/mapper/rs/RsOverseasApplicationAttachmentMapper.xml` - Mapper XML - `backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/IRsOverseasApplicationAttachmentService.java` - Service接口 - `backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/service/impl/RsOverseasApplicationAttachmentServiceImpl.java` - Service实现 - `backend/ruoyi-modules/ruoyi-rs/src/main/java/org/dromara/rs/controller/RsOverseasApplicationAttachmentController.java` - Controller ### 前端(2个文件) - `web/src/api/rs/overseas.ts` - API接口定义 - `web/src/views/rs/overseas/index.vue` - 页面组件 --- ## 🐛 常见问题排查 ### 问题1:上传附件时提示"请先保存申请表单" **原因**:申请还没有保存到数据库,没有applicationId **解决**:需要先填写必填项并点击"提交"保存申请,再上传附件 ### 问题2:上传失败,提示"文件上传失败" **原因**:OSS配置不正确或网络问题 **解决**: 1. 检查OSS配置是否正确 2. 检查网络连接是否正常 3. 查看后端日志确认具体错误 ### 问题3:查看详情时不显示附件 **原因**:前端没有正确调用附件列表API **解决**: 1. 打开浏览器开发者工具 2. 查看Network标签,确认是否调用了 `/rs/overseas/attachment/list/{applicationId}` 接口 3. 检查接口返回数据是否正常 ### 问题4:下载附件时无响应 **原因**:OSS URL不可访问或权限问题 **解决**: 1. 复制附件URL在浏览器中直接访问 2. 确认OSS bucket配置允许外部访问 3. 检查文件是否真实存在 --- ## 📊 API接口列表 | 接口路径 | 方法 | 说明 | |---------|------|------| | `/rs/overseas/attachment/list/{applicationId}` | GET | 查询附件列表 | | `/rs/overseas/attachment/{attachmentId}` | GET | 查询附件详情 | | `/rs/overseas/attachment/upload` | POST | 上传附件 | | `/rs/overseas/attachment` | PUT | 更新附件 | | `/rs/overseas/attachment/{attachmentId}` | DELETE | 删除附件 | | `/rs/overseas/attachment/batch` | DELETE | 批量删除 | --- ## 💡 使用技巧 1. **快速上传**:可以拖拽文件到上传区域 2. **批量管理**:在编辑页面可以一次性上传多个附件 3. **文件命名**:建议使用有意义的附件标题,方便查找 4. **内容说明**:详细的内容说明有助于审批人员快速了解附件内容 5. **格式选择**:推荐使用PDF格式,兼容性最好 --- **部署时间**:约5-10分钟 **测试时间**:约5分钟 **总计**:15分钟完成部署和测试 如有问题,请参考详细的《出国申请附件管理功能实现报告.md》文档。