3.9 KiB
3.9 KiB
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行,修改校验逻辑:
修改前:
if (!fileName.endsWith(".xlsx") && !fileName.endsWith(".xls")) {
return AjaxResult.error("文件 " + fileName + " 格式不支持,仅支持Excel文件");
}
修改后:
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文件上传
- 找到
POST /upload/batch/{projectId}接口 - 点击 "Try it out"
- 选择 projectId(如:1)
- 上传一个
.csv测试文件 - 点击 "Execute"
- 预期结果: 返回成功响应,包含 batchId
步骤3: 测试PDF文件上传
- 使用同一接口
- 上传一个
.pdf测试文件 - 预期结果: 返回成功响应,包含 batchId
步骤4: 测试大小写不敏感
- 上传文件名为
.CSV(大写)的文件 - 预期结果: 返回成功响应
步骤5: 测试不支持格式
- 上传
.txt文件 - 预期结果: 返回错误 "格式不支持,仅支持 PDF、CSV、Excel 文件"
任务3: 前端功能验证
前置条件: 前端服务已启动(端口80)
步骤1: 访问前端页面
浏览器打开: http://localhost
登录账号: admin / admin123
步骤2: 进入项目详情页面
导航到: 项目管理 → 选择项目 → 详情 → 数据上传
步骤3: 测试CSV文件上传
- 点击 "批量上传" 按钮
- 拖拽或选择
.csv文件 - 点击 "开始上传"
- 预期结果: 文件成功上传,无格式错误提示
步骤4: 测试PDF文件上传
- 选择
.pdf文件 - 点击 "开始上传"
- 预期结果: 文件成功上传,无格式错误提示
任务4: 提交代码
步骤1: 查看修改状态
运行:
cd D:/ccdi/ccdi
git status
预期输出:
modified: ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiFileUploadController.java
步骤2: 提交代码
git add ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiFileUploadController.java
git commit -m "feat(ccdi-project): 流水导入支持CSV和PDF文件格式"
步骤3: 推送到远程仓库(可选)
git push origin dev
实施检查清单
- 后端文件类型校验已修改
- CSV文件上传测试通过(Swagger)
- PDF文件上传测试通过(Swagger)
- 大小写不敏感测试通过
- 不支持格式被正确拒绝
- 前端CSV上传功能正常
- 前端PDF上传功能正常
- 代码已提交到git
注意事项
- 测试文件准备: 准备好
.csv、.pdf、.xlsx、.txt格式的测试文件 - 文件大小: 测试文件不超过50MB
- 流水分析平台: 确认平台支持CSV和PDF格式(已确认支持)
- 不影响现有功能: Excel文件上传功能保持不变