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

3.1 KiB
Raw Blame History

流水导入CSV和PDF文件格式支持设计

概述

扩展流水导入功能支持CSV和PDF格式的文件上传与前端已有的文件类型配置保持一致。

背景

当前问题

层级 当前支持格式 问题
前端提示 PDF、CSV、Excel -
前端校验 .pdf, .csv, .xlsx, .xls -
后端校验 .xlsx, .xls 与前端不一致

根本原因:后端 CcdiFileUploadController.java 第65行只校验Excel格式导致上传CSV或PDF文件时被拒绝。

设计方案

修改范围

模块 文件 修改类型
ccdi-project CcdiFileUploadController.java 扩展文件类型校验

具体修改

文件路径ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/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 文件");
}

改进点

  1. 添加格式支持:支持 .csv.pdf 文件
  2. 大小写不敏感:使用 toLowerCase() 处理文件名,支持 .CSV.Pdf 等扩展名变体
  3. 错误提示优化:与前端提示保持一致,用户体验更统一

技术要点

文件格式与流水分析平台兼容性

  • 流水分析平台API已支持CSV文件上传根据前期探索确认
  • PDF格式同样被平台接受
  • 后端只负责文件类型校验,实际解析由流水分析平台处理

后续无需修改的部分

  • 前端代码已正确配置,无需修改
  • 文件上传服务(CcdiFileUploadServiceImpl)无需修改
  • 数据库表结构无需修改

测试要点

功能测试

  1. 上传 .csv 文件 → 成功
  2. 上传 .pdf 文件 → 成功
  3. 上传 .xlsx 文件 → 成功(原有功能)
  4. 上传 .xls 文件 → 成功(原有功能)
  5. 上传 .txt 文件 → 失败,提示格式不支持

边界测试

  1. 上传 .CSV(大写)→ 成功
  2. 上传 .Csv(混合大小写)→ 成功
  3. 上传其他格式文件 → 失败

风险评估

风险 级别 应对措施
流水分析平台不支持某些CSV/PDF变体 平台已确认支持,后端不做内容校验
文件大小超限 已有50MB限制无需额外处理

实施步骤

  1. 修改 CcdiFileUploadController.java 第65-67行代码
  2. 启动后端服务
  3. 通过Swagger或前端页面测试各种格式文件上传
  4. 验证错误提示正确显示

预计影响

  • 代码改动量1个文件约3行代码
  • 测试工作量约10分钟
  • 部署风险:极低(仅扩展支持范围,不影响现有功能)