wuweihao пре 5 година
родитељ
комит
c7aa0812ff

+ 8 - 0
pom.xml

@@ -78,6 +78,14 @@
             <version>1.2.47</version>
         </dependency>
 
+        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.6</version>
+        </dependency>
+
+
     </dependencies>
 
     <build>

+ 4 - 0
src/main/java/com/fd/constant/MsgCode.java

@@ -15,12 +15,16 @@ public class MsgCode {
 
     public static final String E50004 = "文件不存在";
 
+
+
     public static final String E50005 = "命令执行失败";
 
     public static final String E51001 = "文件解压失败";
 
     public static final String E51002 = "文件解压失败,文件名跟目录名称不一致";
 
+    public static final String E51004 = "文件复制失败";
+
     public static final String E50007 = "只支持.zip 文件";
 
     public static final String E50008 = "只支持.tip 文件";

+ 3 - 2
src/main/java/com/fd/controller/VectorController.java

@@ -3,6 +3,7 @@ package com.fd.controller;
 import com.fd.constant.Command;
 import com.fd.constant.MsgCode;
 import com.fd.constant.TypeCode;
+import com.fd.dto.ConfigJsonDto;
 import com.fd.dto.MyQueue;
 import com.fd.dto.PageDto;
 import com.fd.entity.FileEntity;
@@ -377,9 +378,9 @@ public class VectorController {
 
     @ApiOperation("移动数据到服务器上")
     @GetMapping("move/{fileId}/")
-    private R moveFile(@PathVariable("fileId") Long fileId) {
+    private R moveFile(@PathVariable("fileId") Long fileId, @RequestBody ConfigJsonDto param) {
         log.info("run moveFile: {}", fileId);
-        return vectorServer.moveFileToServer(fileId);
+        return vectorServer.moveFileToServer(fileId, param);
     }
 
 

+ 2 - 1
src/main/java/com/fd/server/VectorServer.java

@@ -1,5 +1,6 @@
 package com.fd.server;
 
+import com.fd.dto.ConfigJsonDto;
 import com.fd.dto.PageDto;
 import com.fd.entity.OutputFileEntity;
 import com.fd.util.R;
@@ -20,7 +21,7 @@ public interface VectorServer {
 
     OutputFileEntity save(OutputFileEntity entity);
 
-    R moveFileToServer(Long fileId);
+    R moveFileToServer(Long fileId, ConfigJsonDto param);
 
     R deleteById(Long fileId);
 }

+ 47 - 7
src/main/java/com/fd/server/impl/ModelServerImpl.java

@@ -22,6 +22,7 @@ import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.Date;
 import java.util.Optional;
@@ -65,17 +66,35 @@ public class ModelServerImpl implements ModelServer {
             return new R(50002, MsgCode.E50002);
         }
         OutputFileEntity fileEntity = e.get();
-        String fileName = fileEntity.getFileName();
         // 文件
-        if (fileName.contains(".")) {
-//            File file = new File(fileEntity.getGeojsonPath());
-//            file.delete();
-        } else { // 目录
-//            FileUtils.delAllFile(fileEntity.getSlicePath());
+        if (fileEntity.getUploadPath() != null) {
+            FileUtils.delFolder(fileEntity.getUploadPath());
         }
 
+        if (fileEntity.getCoordGeneralPath() != null) {
+            FileUtils.delFolder(fileEntity.getCoordStrictPath());
+        }
+
+        if (fileEntity.getUnZipPath() != null) {
+            FileUtils.delFolder(fileEntity.getUnZipPath());
+        }
+
+        if (fileEntity.getGeojsonPath() != null) {
+            FileUtils.delFolder(fileEntity.getGeojsonPath());
+        }
+
+        if (fileEntity.getCoordStrictPath() != null) {
+            FileUtils.delFolder(fileEntity.getCoordStrictPath());
+        }
+
+        if (fileEntity.getSlicePath() != null) {
+            FileUtils.delFolder(fileEntity.getSlicePath());
+        }
+
+
         // 删除数据库记录
         outputFileRepository.deleteById(fileId);
+        fileRepository.deleteById(fileEntity.getUploadId());
 
         return new R(200, MsgCode.SUCCESS);
     }
@@ -94,7 +113,13 @@ public class ModelServerImpl implements ModelServer {
         OutputFileEntity entity = o.get();
         // 移动文件
         FileUtils.createDir(MOVE_FILE_TO_SERVER);
-        FileUtils.base64ToFileWriter(entity.getSlicePath(), MOVE_FILE_TO_SERVER);
+
+        try {
+            org.apache.commons.io.FileUtils.copyDirectoryToDirectory(new File(entity.getSlicePath()), new File(MOVE_FILE_TO_SERVER));
+        } catch (IOException e) {
+            e.printStackTrace();
+            return new R(51004, MsgCode.E51004, e);
+        }
 
 
         // 修改前端的config.json 文件
@@ -215,4 +240,19 @@ public class ModelServerImpl implements ModelServer {
     }
 
 
+    public void deleteFile(OutputFileEntity entity){
+
+
+
+    }
+
+
+    public static void main(String[] args) throws IOException {
+        String path1 = "F:\\test\\a1";
+        String path2 = "F:\\test\\vts.log";
+//        org.apache.commons.io.FileUtils.deleteDirectory(new File(path2));
+        FileUtils.delFolder(path1);
+    }
+
+
 }

+ 8 - 1
src/main/java/com/fd/server/impl/RasterServerImpl.java

@@ -23,6 +23,7 @@ import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.Date;
 import java.util.Optional;
@@ -94,7 +95,13 @@ public class RasterServerImpl implements RasterServer {
         // 把数据移动到指定服务位置
         OutputFileEntity entity = o.get();
         FileUtils.createDir(MOVE_FILE_TO_SERVER);
-        FileUtils.base64ToFileWriter(entity.getSlicePath(), MOVE_FILE_TO_SERVER);
+
+        try {
+            org.apache.commons.io.FileUtils.copyDirectoryToDirectory(new File(entity.getSlicePath()), new File(MOVE_FILE_TO_SERVER));
+        } catch (IOException e) {
+            e.printStackTrace();
+            return new R(51004, MsgCode.E51004, e);
+        }
 
         // 修改前端的config.json 文件
         writeJsonFile(param);

+ 68 - 5
src/main/java/com/fd/server/impl/VectorServerImpl.java

@@ -1,7 +1,11 @@
 package com.fd.server.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.fd.constant.MsgCode;
 import com.fd.constant.TypeCode;
+import com.fd.dto.ConfigJsonDto;
 import com.fd.dto.PageDto;
 import com.fd.entity.FileEntity;
 import com.fd.entity.OutputFileEntity;
@@ -43,6 +47,14 @@ public class VectorServerImpl implements VectorServer {
     @Value("${copy.file.path.vector}")
     private String MOVE_FILE_TO_SERVER;
 
+    // config.json 地址
+    @Value("${config.path}")
+    private String CONFIG_JSON_PATH;
+
+    // config.json  teileset 的相对路径
+    @Value("${config.tileset}")
+    private String CONFIG_TILESET;
+
     @Autowired
     private FileRepository fileRepository;
 
@@ -51,7 +63,7 @@ public class VectorServerImpl implements VectorServer {
 
 
     @Override
-    public R moveFileToServer(Long fileId) {
+    public R moveFileToServer(Long fileId, ConfigJsonDto param) {
         Optional<OutputFileEntity> o = outputFileRepository.findById(fileId);
         if (!o.isPresent()) {
             log.info("id:{} 不存在", fileId);
@@ -59,7 +71,19 @@ public class VectorServerImpl implements VectorServer {
         }
         OutputFileEntity entity = o.get();
         FileUtils.createDir(MOVE_FILE_TO_SERVER);
-        FileUtils.base64ToFileWriter(entity.getSlicePath(), MOVE_FILE_TO_SERVER);
+//        FileUtils.base64ToFileWriter(entity.getSlicePath(), MOVE_FILE_TO_SERVER);
+
+        try {
+            org.apache.commons.io.FileUtils.copyFileToDirectory(new File(entity.getSlicePath()), new File(MOVE_FILE_TO_SERVER));
+        } catch (IOException e) {
+            e.printStackTrace();
+            return new R(200, MsgCode.E51004, e);
+        }
+
+        // 修改前端的config.json 文件
+        writeJsonFile(param);
+
+
         entity.setStatus(8);
         outputFileRepository.save(entity);
         return new R(200, MsgCode.SUCCESS);
@@ -216,8 +240,47 @@ public class VectorServerImpl implements VectorServer {
     }
 
 
-    public static void main(String[] args) {
-        String a  = "11111.shp";
-        System.out.println(StringUtils.substringAfterLast(a, "."));
+    /**
+     * 修改config.json
+     */
+    private void writeJsonFile(ConfigJsonDto param) {
+        String s = FileUtils.readFile(CONFIG_JSON_PATH);
+
+        JSONObject original = JSON.parseObject(s);
+
+        log.info("original: {}", s);
+
+        JSONArray layers = JSON.parseArray(original.getString("layers"));
+
+        JSONObject subJson = new JSONObject();
+        long cu = System.currentTimeMillis();
+        subJson.put("name", "vector_" + cu); // 需要唯一
+        subJson.put("text", param.getText());
+        subJson.put("type", "geodata"); // vector 就用这个类型geodata
+        subJson.put("checked", false);
+        subJson.put("show", true);
+        subJson.put("url", param.getUrl());
+
+        layers.add(subJson);
+
+        original.put("layers", layers);
+
+        log.info("original update: {}", original.toJSONString());
+        try {
+            FileUtils.fileWriter(JSON.toJSONString(original), CONFIG_JSON_PATH);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    public static void main(String[] args) throws IOException {
+
+        String inPath = "F:\\test\\clip";
+        String outPath = "F:\\test\\copy";
+
+//        FileUtils.base64ToFileWriter(inPath, outPath);
+        org.apache.commons.io.FileUtils.copyFileToDirectory(new File(inPath), new File(outPath));
+//        org.apache.commons.io.FileUtils.
     }
 }