docs: 添加CSV和PDF文件上传支持实施计划

This commit is contained in:
wkc
2026-03-09 14:32:07 +08:00
parent ebc4e61f53
commit 1b9256533c

View File

@@ -0,0 +1,157 @@
# 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文件上传功能保持不变