From 13e97232b9f06e1b18955c1c9b84daffe4f21d71 Mon Sep 17 00:00:00 2001
From: xingjinshuang <xingjs@qq.com>
Date: 星期二, 24 十二月 2024 17:02:19 +0800
Subject: [PATCH] @xingjs@20241224@添加解析CSV文件相关实体类、方法;添加文件上传配置;添加开发文件上传相关工具类

---
 src/main/java/com/se/simu/controller/SimuController.java |  114 ++++++++++++++++++--------------------------------------
 1 files changed, 37 insertions(+), 77 deletions(-)

diff --git a/src/main/java/com/se/simu/controller/SimuController.java b/src/main/java/com/se/simu/controller/SimuController.java
index 00c08ac..0f3d346 100644
--- a/src/main/java/com/se/simu/controller/SimuController.java
+++ b/src/main/java/com/se/simu/controller/SimuController.java
@@ -6,29 +6,22 @@
 import com.se.simu.domain.dto.GeLayer;
 import com.se.simu.domain.po.DataPo;
 import com.se.simu.domain.po.SimuPo;
+import com.se.simu.domain.vo.CreateFilesSimuVo;
 import com.se.simu.domain.vo.CreateSimuVo;
 import com.se.simu.domain.vo.R;
 import com.se.simu.domain.vo.SimuVo;
 import com.se.simu.service.*;
 import io.swagger.annotations.*;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
-import java.util.stream.Collectors;
 
 @Api(tags = "浠跨湡绠$悊")
 @Slf4j
@@ -50,6 +43,10 @@
 
     @Resource
     PropertiesConfig config;
+
+    @Value("${simu-app.filePath}")
+    private String uploadedFolder;
+
 
     @Resource
     ResultService resultService;
@@ -179,78 +176,47 @@
         }
     }
 
-    @ApiOperation("test-涓婁紶澶氫釜鏂囦欢")
-    @ApiImplicitParam(name = "schemeName", value = "鏂规鍚嶇О", required = true, dataType = "String", paramType = "query", example = "edf243d3-3bec-4c51-9930-1ba862d9b5a3", dataTypeClass = String.class)
-    @PostMapping("/uploadMultipleFiles")
-    public ResponseEntity<String> uploadMultipleFiles(List<MultipartFile> files, @RequestParam("schemeName") String schemeName) throws IOException {
-        // 涓婁紶鏂囦欢璺緞
-        String targetDir = Paths.get(config.getOutPath(), schemeName).toString();
-        log.info("鐩爣鐩綍: {}", targetDir);
-        createDirectoriesIfNotExists(targetDir);
-        List<CompletableFuture<Void>> uploadTasks = files.stream()
-                .map(file -> CompletableFuture.runAsync(() -> {
-                    try {
-                        file.transferTo(Paths.get(targetDir, file.getOriginalFilename()));
-                    } catch (IOException e) {
-                        log.error("鏂囦欢涓婁紶澶辫触", e);
-                        throw new RuntimeException("鏂囦欢涓婁紶澶辫触");
-                    }
-                }))
-                .collect(Collectors.toList());
-
-        CompletableFuture<Void> allUploadTasks = CompletableFuture.allOf(uploadTasks.toArray(new CompletableFuture[0]));
-
-        try {
-            allUploadTasks.get();
-            return ResponseEntity.ok("鎵�鏈夋枃浠朵笂浼犳垚鍔�");
-        } catch (InterruptedException | ExecutionException e) {
-            log.error("鏂囦欢涓婁紶澶辫触", e);
-            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("鏂囦欢涓婁紶澶辫触");
-        }
-    }
-
-
-    /**
-     * @param targetDir 鐩爣鐩綍
-     * @throws IOException
-     */
-    private void createDirectoriesIfNotExists(String targetDir) throws IOException {
-        Path path = Paths.get(targetDir);
-        if (!Files.exists(path)) {
-            Files.createDirectories(path);
-        }
-    }
-
     /**
      * 鏂囦欢鍒涘缓妯℃嫙
+     * <p>
+     * "鐘舵�侊細
+     * 0-鍒涘缓浠跨湡浠诲姟锛�
+     * 1-杩炴帴GEDB搴擄紝
+     * 2-涓嬭浇绌洪棿鏁版嵁锛�
+     * 3-涓嬭浇楂樼▼鏁版嵁锛�
+     * 4-鐢熸垚闄嶉洦鏂囦欢锛�
+     * 5-鐢熸垚閰嶇疆鏂囦欢锛�
+     * 6-妯℃嫙鍐呮稘浠跨湡锛�
+     * 7-澶勭悊姘翠綅鏂囦欢锛�
+     * 8-澶勭悊鎺掓按鏂囦欢锛�
+     * 9-澶勭悊浠跨湡缁撴灉锛�
+     * 10-瀹屾垚锛�-10-鍑洪敊
      *
      * @param vo VO
      * @return {@link R}<{@link Object}>
      */
     @ApiOperation(value = "鏂囦欢鍒涘缓")
     @PostMapping(value = "/file_create", produces = "application/json; charset=UTF-8")
-    public R<Object> fileCreate(List<MultipartFile> files,@RequestBody @ApiParam("鍒涘缓浠跨湡瑙嗗浘绫�") CreateSimuVo vo) throws IOException {
-        // 涓婁紶鏂囦欢璺緞
-        String targetDir = Paths.get(config.getOutPath(), "files").toString();
-        log.info("鐩爣鐩綍: {}", targetDir);
-        createDirectoriesIfNotExists(targetDir);
-        List<CompletableFuture<Void>> uploadTasks = files.stream()
-                .map(file -> CompletableFuture.runAsync(() -> {
-                    try {
-                        file.transferTo(Paths.get(targetDir, file.getOriginalFilename()));
-                    } catch (IOException e) {
-                        log.error("鏂囦欢涓婁紶澶辫触", e);
-                        throw new RuntimeException("鏂囦欢涓婁紶澶辫触");
-                    }
-                }))
-                .collect(Collectors.toList());
-        CompletableFuture<Void> allUploadTasks = CompletableFuture.allOf(uploadTasks.toArray(new CompletableFuture[0]));
+    public R<Object> fileCreate(@RequestBody @ApiParam("鍒涘缓浠跨湡瑙嗗浘绫�") CreateFilesSimuVo vo) throws IOException {
+        // 鑾峰彇涓婁紶鏂囦欢璺緞
+        String targetDir = uploadedFolder;
+        log.info("涓婁紶鏂囦欢璺緞锛歿}", targetDir);
+        // 鑾峰彇鍚勪釜鏂囦欢鐨勫湴鍧�
+        String floodFile = vo.getFloodFile();
+        log.info("鑼冨洿鏂囦欢鍦板潃锛歿}", floodFile);
         try {
-            allUploadTasks.get();
-            log.info("鏂囦欢涓婁紶鎴愬姛");
-        } catch (InterruptedException | ExecutionException e) {
-            log.error("鏂囦欢涓婁紶澶辫触", e);
+            // todo: 瑙f瀽鑼冨洿鏂囦欢 鏍规嵁涓嶅悓鐨勭殑鏍煎紡鏂囦欢杩涜涓嶅悓鐨勮В鏋愶紝鑾峰彇闇�瑕佽绠楃殑鑼冨洿鍊�
+            //  涓婁紶鏍煎紡锛�.shp/.tiff/.img/.geojson
+            //  閲嶆柊缁檝o璧嬪��
+        } catch (Exception e) {
+            log.error("瑙f瀽鑼冨洿鏂囦欢澶辫触");
         }
+
+        String stationFile = vo.getStationFile();
+        log.info("绔欑偣鏂囦欢shp鍦板潃锛歿}", floodFile);
+        String stationRainFile = vo.getStationRainFile();
+        log.info("绔欑偣闆ㄩ噺CSV鏂囦欢鍦板潃锛歿}", floodFile);
+        // TODO: 2024/12/24 鏍规嵁杩欎簺鏂囦欢鐨勫湴鍧�锛岃幏鍙栨枃浠跺唴瀹癸紝鍒涘缓浠跨湡瑙嗗浘
 
         try {
             if (null == vo.getTotal() || vo.getTotal() < 1 || vo.getTotal() > 1000) {
@@ -301,12 +267,6 @@
             return fail(ex, null);
         }
     }
-
-
-
-
-
-
 
 
 }

--
Gitblit v1.9.3