diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java index 1eb0381..3630b50 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/client/LsfxAnalysisClient.java @@ -15,8 +15,8 @@ import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; +import java.io.File; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -109,8 +109,8 @@ public class LsfxAnalysisClient { /** * 上传文件 */ - public UploadFileResponse uploadFile(Integer groupId, MultipartFile file) { - log.info("【流水分析】上传文件请求: groupId={}, fileName={}", groupId, file.getOriginalFilename()); + public UploadFileResponse uploadFile(Integer groupId, File file) { + log.info("【流水分析】上传文件请求: groupId={}, fileName={}", groupId, file.getName()); long startTime = System.currentTimeMillis(); try { diff --git a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java index 37346aa..3b79f1f 100644 --- a/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java +++ b/ccdi-lsfx/src/main/java/com/ruoyi/lsfx/controller/LsfxTestController.java @@ -18,6 +18,12 @@ import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; + /** * 流水分析平台接口测试控制器 */ @@ -76,8 +82,28 @@ public class LsfxTestController { return AjaxResult.error("文件大小超过限制:最大10MB"); } - UploadFileResponse response = lsfxAnalysisClient.uploadFile(groupId, file); - return AjaxResult.success(response); + // 将 MultipartFile 转换为 File + Path tempFile = null; + try { + // 创建临时文件 + tempFile = Files.createTempFile("upload_", "_" + file.getOriginalFilename()); + Files.copy(file.getInputStream(), tempFile, StandardCopyOption.REPLACE_EXISTING); + + File convertedFile = tempFile.toFile(); + UploadFileResponse response = lsfxAnalysisClient.uploadFile(groupId, convertedFile); + return AjaxResult.success(response); + } catch (IOException e) { + return AjaxResult.error("文件转换失败:" + e.getMessage()); + } finally { + // 删除临时文件 + if (tempFile != null) { + try { + Files.deleteIfExists(tempFile); + } catch (IOException e) { + // 忽略删除失败 + } + } + } } @Operation(summary = "拉取行内流水", description = "从数仓拉取行内流水数据")