Files
ccdi/docs/plans/2026-03-09-csv-pdf-upload-support.md

158 lines
3.9 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.
# CSV和PDF文件上传支持实施计划
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
**目标:** 扩展流水导入功能支持CSV和PDF格式文件上传
**架构:** 修改后端文件类型校验逻辑,添加 `.csv``.pdf` 支持,使前后端校验规则一致
**技术栈:** Spring Boot 3.5.8, Java 21, MyBatis Plus
---
## 任务1: 修改后端文件类型校验
**文件:**
- 修改: `ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiFileUploadController.java:65-67`
**步骤1: 修改文件类型校验逻辑**
定位到 `CcdiFileUploadController.java` 第65-67行修改校验逻辑
**修改前:**
```java
if (!fileName.endsWith(".xlsx") && !fileName.endsWith(".xls")) {
return AjaxResult.error("文件 " + fileName + " 格式不支持仅支持Excel文件");
}
```
**修改后:**
```java
String lowerFileName = fileName.toLowerCase();
if (!lowerFileName.endsWith(".xlsx") && !lowerFileName.endsWith(".xls")
&& !lowerFileName.endsWith(".csv") && !lowerFileName.endsWith(".pdf")) {
return AjaxResult.error("文件 " + fileName + " 格式不支持,仅支持 PDF、CSV、Excel 文件");
}
```
**步骤2: 验证修改**
- 确认代码语法正确
- 确认导入语句无缺失(无需新增导入)
---
## 任务2: 通过Swagger测试接口
**前置条件:** 后端服务已启动端口8080
**步骤1: 访问Swagger UI**
浏览器打开: http://localhost:8080/swagger-ui/index.html
**步骤2: 测试CSV文件上传**
1. 找到 `POST /upload/batch/{projectId}` 接口
2. 点击 "Try it out"
3. 选择 projectId1
4. 上传一个 `.csv` 测试文件
5. 点击 "Execute"
6. **预期结果**: 返回成功响应,包含 batchId
**步骤3: 测试PDF文件上传**
1. 使用同一接口
2. 上传一个 `.pdf` 测试文件
3. **预期结果**: 返回成功响应,包含 batchId
**步骤4: 测试大小写不敏感**
1. 上传文件名为 `.CSV`(大写)的文件
2. **预期结果**: 返回成功响应
**步骤5: 测试不支持格式**
1. 上传 `.txt` 文件
2. **预期结果**: 返回错误 "格式不支持,仅支持 PDF、CSV、Excel 文件"
---
## 任务3: 前端功能验证
**前置条件:** 前端服务已启动端口80
**步骤1: 访问前端页面**
浏览器打开: http://localhost
登录账号: admin / admin123
**步骤2: 进入项目详情页面**
导航到: 项目管理 → 选择项目 → 详情 → 数据上传
**步骤3: 测试CSV文件上传**
1. 点击 "批量上传" 按钮
2. 拖拽或选择 `.csv` 文件
3. 点击 "开始上传"
4. **预期结果**: 文件成功上传,无格式错误提示
**步骤4: 测试PDF文件上传**
1. 选择 `.pdf` 文件
2. 点击 "开始上传"
3. **预期结果**: 文件成功上传,无格式错误提示
---
## 任务4: 提交代码
**步骤1: 查看修改状态**
运行:
```bash
cd D:/ccdi/ccdi
git status
```
预期输出:
```
modified: ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiFileUploadController.java
```
**步骤2: 提交代码**
```bash
git add ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiFileUploadController.java
git commit -m "feat(ccdi-project): 流水导入支持CSV和PDF文件格式"
```
**步骤3: 推送到远程仓库(可选)**
```bash
git push origin dev
```
---
## 实施检查清单
- [ ] 后端文件类型校验已修改
- [ ] CSV文件上传测试通过Swagger
- [ ] PDF文件上传测试通过Swagger
- [ ] 大小写不敏感测试通过
- [ ] 不支持格式被正确拒绝
- [ ] 前端CSV上传功能正常
- [ ] 前端PDF上传功能正常
- [ ] 代码已提交到git
---
## 注意事项
1. **测试文件准备**: 准备好 `.csv``.pdf``.xlsx``.txt` 格式的测试文件
2. **文件大小**: 测试文件不超过50MB
3. **流水分析平台**: 确认平台支持CSV和PDF格式已确认支持
4. **不影响现有功能**: Excel文件上传功能保持不变