Explorar o código

add convert model finish

wuweihao %!s(int64=5) %!d(string=hai) anos
pai
achega
03add425e3

+ 9 - 1
README.md

@@ -31,4 +31,12 @@ http://map.4dage.com/3dmap/
 1. nginx 指向发布服务的静态资源(3dmap)
 2. tomcat server.xml 指向发布服务的静态资源
 3. 执行命令需要修改
-4. 配置application.properties 文件保存路径需要修改
+4. 配置application.properties 文件保存路径需要修改
+
+
+
+##系统流程
+ 地形数据流程
+  1.上传文件 -> 数据切片 -> 发布服务
+  2.多文件上传
+  

+ 1 - 11
pom.xml

@@ -104,12 +104,6 @@
             <version>1.4.0</version>
         </dependency>
 
-        <!--&lt;!&ndash; shiro+redis缓存插件 &ndash;&gt;-->
-        <!--<dependency>-->
-            <!--<groupId>org.crazycake</groupId>-->
-            <!--<artifactId>shiro-redis</artifactId>-->
-            <!--<version>2.4.2.1-RELEASE</version>-->
-        <!--</dependency>-->
 
         <!-- jwt -->
         <dependency>
@@ -124,11 +118,7 @@
             <artifactId>spring-boot-starter-data-redis</artifactId>
             <!--<version>${redis.version}</version>-->
         </dependency>
-        <!--<dependency>-->
-            <!--<groupId>redis.clients</groupId>-->
-            <!--<artifactId>jedis</artifactId>-->
-            <!--<version>${jedis.version}</version>-->
-        <!--</dependency>-->
+
 
         <!-- 工具类 -->
         <dependency>

+ 16 - 0
src/main/java/com/fd/constant/Command.java

@@ -124,4 +124,20 @@ public class Command {
     public static String DEM_SLICE = DOCKER_CTB + "ctb-tile -f Mesh -C -N -o @outputFile @inputFile && " + DOCKER_CTB + "ctb-tile -f Mesh -C -N -l -o @outputFile @inputFile";
 
 
+    /**
+     * WGS84 转 CGCS2000坐标系
+     * 矢量数据 step1 step2
+     */
+    public static String convert_TRANSFORM_coord_vector_step1 = DOCKER_GDAL + "ogr2ogr -s_srs epsg:4326 -t_srs \"+proj=longlat +ellps=GRS80 +towgs84=@coord +no_defs\" @outputFile @inputFile";
+
+    public static String convert_TRANSFORM_coord_vector_step2 = DOCKER_GDAL + "ogr2ogr -a_srs epsg:4490 @outputFile @inputFile";
+
+    /**
+     * WGS84 转 CGCS2000坐标系
+     * 栅格数据转换 step1 step2
+     */
+    public static String convert_TRANSFORM_coord_raster_step1 = DOCKER_GDAL + "gdalwarp -s_srs epsg:4326 -t_srs \"+proj=longlat +ellps=GRS80 +towgs84=@coord +no_defs\" @inputFile @outputFile ";
+
+    public static String convert_TRANSFORM_coord_raster_step2 = DOCKER_GDAL + "gdal_translate -a_srs epsg:4490 @inputFile @outputFile";
+
 }

+ 5 - 0
src/main/java/com/fd/constant/TypeCode.java

@@ -31,6 +31,11 @@ public class TypeCode {
     public static final String FILE_TYPE_DEM = "dem";
 
     /**
+     * WGS84到CGCS2000坐标系转换
+     */
+    public static final String FILE_TYPE_CONVERT = "convert";
+
+    /**
      * 不需要转坐标,显示WGS84
      */
     public static final String COORD_WGS84 = "WGS84";

+ 25 - 35
src/main/java/com/fd/controller/DemController.java

@@ -1,36 +1,20 @@
 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.PageDto;
-import com.fd.entity.FileEntity;
 import com.fd.entity.OutputFileEntity;
 import com.fd.server.DemServer;
-import com.fd.server.ModelServer;
-import com.fd.thread.AsyncTask;
-import com.fd.util.FileUtils;
 import com.fd.util.R;
-import com.fd.util.RegexUtils;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresRoles;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.domain.Page;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
-import java.io.File;
-import java.util.Date;
-import java.util.List;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * Created by Owen on 2020/1/3 0012 9:40
@@ -46,13 +30,16 @@ public class DemController {
     private DemServer demServer;
 
 
+    /**
+     * 不需要校验文件名,会创建唯一目录
+     * @param file
+     * @param req
+     * @return
+     */
     @ApiOperation("上传文件")
     @PostMapping(value = "upload", consumes = {"multipart/form-data"})
     public R upload(@RequestParam("file") MultipartFile[] file, HttpServletRequest req) {
-        log.warn("run upload");
-        OutputFileEntity entity = demServer.uploads(file, req);
-        log.warn("end upload");
-        return new R(200, entity);
+        return demServer.uploads(file, req);
     }
 
     /**
@@ -73,21 +60,23 @@ public class DemController {
     public R list(@RequestBody PageDto param, HttpServletRequest req) {
         String token = req.getHeader("Authorization");
 
-        Page<OutputFileEntity> page = demServer.findByList(TypeCode.FILE_TYPE_DEM, param, token);
-        return new R(200, page);
+//        Page<OutputFileEntity> page = demServer.findByList(TypeCode.FILE_TYPE_DEM, param, token);
+//        return new R(200, page);
+
+        return demServer.findByType(TypeCode.FILE_TYPE_DEM, param);
     }
 
 
-    @ApiOperation("进度查询")
-    @GetMapping("progress/{fileId}/")
-    public R getProgress(@PathVariable("fileId") Long fileId) {
-        OutputFileEntity entity = demServer.findById(fileId);
-        return new R(200, entity);
-    }
+//    @ApiOperation("进度查询")
+//    @GetMapping("progress/{fileId}/")
+//    public R getProgress(@PathVariable("fileId") Long fileId) {
+//        OutputFileEntity entity = demServer.findById(fileId);
+//        return new R(200, entity);
+//    }
 
     @GetMapping("test")
     public R test(){
-        demServer.test();
+//        demServer.test();
         return new R(200,"1111");
     }
 
@@ -101,12 +90,13 @@ public class DemController {
 
 
 //    @RequiresRoles("admin")
-//    @ApiOperation("移动数据到服务器上")
-//    @PostMapping("move/{fileId}/")
-//    public R moveFile(@PathVariable("fileId") Long fileId, @RequestBody ConfigJsonDto param) {
-//        log.info("run moveFile: {}", fileId);
-//        return modelServer.moveFileToServer(fileId, param);
-//    }
+    @ApiOperation("移动数据到服务器上")
+    @PostMapping("move/{fileId}/")
+    public R moveFile(@PathVariable("fileId") Long fileId, @RequestBody ConfigJsonDto param) {
+        log.info("run moveFile: {}", fileId);
+
+        return demServer.moveFileToServer(fileId, param);
+    }
 
 
 }

+ 15 - 1
src/main/java/com/fd/entity/OutputFileEntity.java

@@ -45,8 +45,11 @@ public class OutputFileEntity extends BaseEntity implements Serializable {
     @Column
     private Integer progress; // 进度
 
+    /**
+     * 模块类型
+     */
     @Column
-    private String type; // 文件类型
+    private String type;
 
     /**
      * 坐标参数
@@ -73,6 +76,7 @@ public class OutputFileEntity extends BaseEntity implements Serializable {
      * 10:发布失败
      * 11: 修改样式完成
      * 12:样式修改失败
+     * 13: 完成
      */
     @Column
     private Integer status;
@@ -130,4 +134,14 @@ public class OutputFileEntity extends BaseEntity implements Serializable {
     @Column
     private String buildPath;
 
+
+    /**
+     * 上传文件的类型
+     *
+     * vector
+     * raster
+     */
+    @Column
+    private String fileType;
+
 }

+ 3 - 8
src/main/java/com/fd/server/DemServer.java

@@ -1,17 +1,10 @@
 package com.fd.server;
 
 import com.fd.dto.ConfigJsonDto;
-import com.fd.dto.PageDto;
-import com.fd.dto.StyleDto;
-import com.fd.entity.FileEntity;
-import com.fd.entity.OutputFileEntity;
-import com.fd.entity.StyleEntity;
 import com.fd.util.R;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.List;
-import java.util.Map;
 
 /**
  * Created by Owen on 2019/11/21 0021 15:29
@@ -19,9 +12,11 @@ import java.util.Map;
 public interface DemServer extends BaseServer {
 
 
-    OutputFileEntity uploads(MultipartFile[] file, HttpServletRequest req);
+    R uploads(MultipartFile[] file, HttpServletRequest req);
 
     void test();
 
     R cmdSlice(Long fileId);
+
+    R moveFileToServer(Long fileId, ConfigJsonDto param);
 }

+ 114 - 377
src/main/java/com/fd/server/impl/DemServerImpl.java

@@ -21,9 +21,7 @@ import com.fd.server.DemServer;
 import com.fd.server.ModelServer;
 import com.fd.shiro.JWTUtil;
 import com.fd.thread.AsyncTask;
-import com.fd.util.CmdUtil;
-import com.fd.util.FileUtils;
-import com.fd.util.R;
+import com.fd.util.*;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -56,19 +54,13 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
 
     private String OUTPUT_PATH;
 
-    @Value("${copy.file.path.model}")
-    private String MOVE_FILE_TO_SERVER;
+    @Value("${base.path}")
+    private String BASE_PATH;
 
     // config.json 地址
     @Value("${config.path}")
     private String CONFIG_JSON_PATH;
 
-    @Value("${base.path}")
-    private String BASE_PATH;
-
-    // config.json  teileset 的相对路径
-    @Value("${config.tileset}")
-    private String CONFIG_TILESET;
 
     @Autowired
     private AsyncTask asyncTask;
@@ -87,11 +79,10 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
     private OutputFileRepository outputFileRepository;
 
     @Autowired
-    private StyleRepository styleRepository;
-
+    private UserRepository userRepository;
 
     @Autowired
-    private UserRepository userRepository;
+    private StyleRepository styleRepository;
 
     /**
      * 队列
@@ -105,12 +96,10 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
 
 
     @Override
-    public OutputFileEntity uploads(MultipartFile[] files, HttpServletRequest req) {
+    public R uploads(MultipartFile[] files, HttpServletRequest req) {
         log.warn("run uploads");
         if (files != null && files.length > 0) {
 
-
-
             // 创建目录
             String time = DateUtil.format(new DateTime(), "yyyyMMdd_HHmmss");
             String filePath = INPUT_PATH + time;
@@ -122,6 +111,12 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
 
             for (MultipartFile f : files) {
                 String filename = f.getOriginalFilename();
+
+                // 文件是否包含中文字符
+                if (RegexUtils.regexChinese(filename)) {
+                    return new R(51005, MsgCode.E51005);
+                }
+
                 sb.append(filename).append(",");
 
                 try {
@@ -134,7 +129,6 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
 
 
             // 数据打包
-//            String outPath = OUTPUT_PATH + "bulid/" + time + "/";
             String outPath = OUTPUT_PATH + "bulid/";
             FileUtils.createDir(outPath);
             outPath = outPath + time + ".vrt";
@@ -156,18 +150,16 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
                 entity.setCreateTime(new Date());
                 entity.setUpdateTime(new Date());
                 entity.setType(TypeCode.FILE_TYPE_DEM);
-//                entity.setCoord(coord);
                 entity.setResStatus(0);
                 entity = fileRepository.save(entity);
 
                 outputFile.setUploadId(entity.getId());
                 outputFile.setUploadPath(entity.getFileUrl());
                 outputFile.setDirectory(entity.getDirectory());
-//                outputFile.setFileName(shpName);
-                // 等下在修改
-                outputFile.setStatus(2);
+                outputFile.setFileName(entity.getFileName());
+                // 4:未切片
+                outputFile.setStatus(4);
                 outputFile.setType(TypeCode.FILE_TYPE_DEM);
-//                outputFile.setCoord(entity.getCoord());
                 outputFile.setCreateTime(new Date());
                 outputFile.setUpdateTime(new Date());
                 outputFile.setResStatus(0);
@@ -175,7 +167,7 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
 
                 outputFile = outputFileRepository.save(outputFile);
                 log.warn("end uploads");
-                return outputFile;
+                return new R(200, outputFile);
 
 
         }
@@ -210,7 +202,6 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
         String cmd = Command.DEM_SLICE;
         cmd = cmd.replace("@inputFile", entity.getBuildPath());
         cmd = cmd.replace("@outputFile", outputPath);
-//        log.info("cmd: {}", cmd);
 
         // 把数据放入队列中
         boolean offer = false;
@@ -229,7 +220,7 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
             entity.setStatus(6);
             entity.setUpdateTime(new Date());
             // 是目录
-            entity.setServicePath(outputPath);
+            entity.setSlicePath(outputPath);
 
             entity = outputFileRepository.save(entity);
             asyncTask.demSlice(queue, outputFileRepository, entity, cmd);
@@ -249,6 +240,28 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
     }
 
 
+    @Override
+    public R moveFileToServer(Long fileId, ConfigJsonDto param) {
+        log.warn("run moveFileToServer");
+        OutputFileEntity entity = getOutputFileEntity(fileId);
+        if (entity == null) {
+            return new R(50002, MsgCode.E50002);
+        }
+
+        writeJsonFile(param, entity);
+
+        entity.setStatus(8);
+        entity.setUpdateTime(new Date());
+
+        // 添加图层角色
+        entity.setLayerRole(param.getRole());
+        outputFileRepository.save(entity);
+
+        log.warn("end moveFileToServer");
+        return new R(200, MsgCode.SUCCESS);
+    }
+
+
     /**
      * 重写 deleteById
      * @param id
@@ -262,6 +275,14 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
         OutputFileEntity entity = null;
         FileEntity fileEntity = null;
 
+        // 删除配置文件config.json制定行
+        StyleEntity styleEntity = styleRepository.findByOutputFileIdTop(id);
+        if (styleEntity != null) {
+            ConfigJsonUtils.deleteRowConfigJson(styleEntity, CONFIG_JSON_PATH);
+            styleRepository.deleteByOutputFileId(id);
+        }
+
+
         boolean flag = false;
         if (o.isPresent()) {
             entity = o.get();
@@ -289,361 +310,77 @@ public class DemServerImpl extends BaseServerImpl implements DemServer {
         return new R(200, MsgCode.SUCCESS);
     }
 
-    public static void main(String[] args) {
-//        FileUtils.createDir("F:\\test\\test123");
-//        FileUtils.createDir("F:\\test\\test1234\\1.txt");
-//        FileUtils.delFolder("F:\\test\\test1234\\1.txt");
-        FileUtils.delFolder("F:\\test\\test1234");
+    private OutputFileEntity getOutputFileEntity(Long id) {
+        Optional<OutputFileEntity> o = outputFileRepository.findById(id);
+        if (o.isPresent()) {
+            return o.get();
+        }
+        return null;
     }
 
+    /**
+     * 修改config.json
+     * @param param
+     * @param entity
+     */
+    private void writeJsonFile(ConfigJsonDto param,  OutputFileEntity entity) {
+        String s = FileUtils.readFile(CONFIG_JSON_PATH);
+
+        StyleEntity styleEntity = styleRepository.findByOutputFileIdTop(entity.getId());
+        if (styleEntity == null) {
+            styleEntity = new StyleEntity();
+            styleEntity.setOutputFileId(entity.getId());
+            styleEntity.setCreateTime(new Date());
+            styleEntity.setResStatus(0);
+        }
+
+
+        JSONObject original = JSON.parseObject(s);
+
+        log.info("original: {}", s);
+
+        JSONArray layers = JSON.parseArray(original.getString("layers"));
+
+        JSONObject subJson = new JSONObject();
+        long cu = System.currentTimeMillis();
+        // 需要唯一
+        String name = "dem_" + cu;
+        subJson.put("name", name);
+        subJson.put("text", param.getText());
+        // raster 就用这个类型
+        subJson.put("type", "dem");
+        subJson.put("checked", false);
+        subJson.put("show", true);
 
-    //        log.info("run deleteFile: {}", fileId);
-//        OutputFileEntity entity = modelServer.findById(fileId);
-//        entity.setResStatus(1);
-//        modelServer.save(entity);
-//
-//        FileEntity fileEntity = modelServer.findByInputFileId(entity.getUploadId());
-//        fileEntity.setResStatus(1);
-//        modelServer.saveInputFile(fileEntity);
-//
-//        asyncTask.modelDelete(fileId, modelServer);
-
-//    @Override
-//    public R deleteById(Long fileId) {
-//        // 删除服务器文件
-//        Optional<OutputFileEntity> e = outputFileRepository.findById(fileId);
-//        if (!e.isPresent()) {
-//            return new R(50002, MsgCode.E50002);
-//        }
-//        OutputFileEntity fileEntity = e.get();
-//
-//        // 删除配置文件config.json制定行
-//        StyleEntity styleEntity = styleRepository.findByOutputFileIdTop(fileId);
-//        if (styleEntity != null) {
-//            deleteRowConfigJson(styleEntity);
-//        }
-//
-//        // 删除数据库记录
-//        outputFileRepository.deleteById(fileId);
-//        fileRepository.deleteById(fileEntity.getUploadId());
-//        styleRepository.deleteByOutputFileId(fileId);
-//
-//        // 文件
-//        if (fileEntity.getUploadPath() != null) {
-//            FileUtils.delFolder(fileEntity.getUploadPath());
-//        }
-//
-//        if (fileEntity.getCoordGeneralPath() != null) {
-//            FileUtils.delFolder(fileEntity.getCoordGeneralPath());
-//        }
-//
-//        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());
-//        }
-//
-//
-//
-//
-//        return new R(200, MsgCode.SUCCESS);
-//    }
-//
-//
-//    /**
-//     * 删除指定行的config.json 数据
-//     */
-//    private void deleteRowConfigJson(StyleEntity entity) {
-//        String s = FileUtils.readFile(CONFIG_JSON_PATH);
-//        JSONObject original = JSON.parseObject(s);
-//        log.info("original: {}", s);
-//
-//        JSONArray layers = JSON.parseArray(original.getString("layers"));
-//
-//        for (int i = 0; i < layers.size(); i++) {
-//            JSONObject o = (JSONObject) layers.get(i);
-//            if (o.getString("name").equals(entity.getName())) {
-//                // 删除对象
-//                layers.remove(i);
-//            }
-//        }
-//
-//        // 更新json
-//        original.put("layers", layers);
-//        log.info("original update: {}", original.toJSONString());
-//
-//        // 更新config.json
-//        try {
-//            FileUtils.fileWriter(JSON.toJSONString(original), CONFIG_JSON_PATH);
-//        } catch (IOException e) {
-//            e.printStackTrace();
-//        }
-//
-//    }
-//
-//    @Override
-//    public List<FileEntity> findByFileName(String fileName) {
-//
-////        return fileRepository.findByFileNameAndType(fileName, TypeCode.FILE_TYPE_MODEL);
-//        return fileRepository.findByFileNameAndTypeAndResStatus(fileName, TypeCode.FILE_TYPE_MODEL, 0);
-//    }
-//
-//    @Override
-//    public Integer cmdSlice(String commandStr) {
-//
-//            // 命令运行结果 1:失败, 0:成功
-//            Integer isCmd = null;
-//            try {
-//                String[] cmd = new String[]{"/bin/sh", "-c", commandStr};
-//                Process ps = Runtime.getRuntime().exec(cmd);
-//
-//                BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
-//                BufferedReader errorBuf = new BufferedReader(new InputStreamReader(ps.getErrorStream()));
-//
-//                StringBuffer sb = new StringBuffer();
-//                StringBuffer errorStr = new StringBuffer();
-//
-//                // error : 坑, 控制台信息是从errorBuf这里出来的
-//                String errorLine;
-//                while ((errorLine = errorBuf.readLine()) != null) {
-//                    errorStr.append(errorLine).append("\n");
-//                    log.info("line data: {}", errorLine);
-//                }
-//                if (StringUtils.isNotEmpty(errorStr)){
-//                    log.info("error result: {}", errorStr.toString());
-//                }
-//
-//                // success ,没有获取到信息
-//                String line;
-//                while ((line = br.readLine()) != null) {
-//                    //执行结果加上回车
-//                    sb.append(line).append("\n");
-//                    log.info("data: {}", line);
-//                }
-//                log.info("result: {}", sb.toString());
-//
-//                // 结束命令行
-//                isCmd = ps.waitFor();
-//
-//                // 关闭流
-//                br.close();
-//                errorBuf.close();
-//
-//            } catch (Exception e) {
-//                e.printStackTrace();
-//            }
-//
-//            if (isCmd == 0) {
-//                log.info("end exeCmd : {}", isCmd);
-//            } else {
-//                log.info("wsitFore cmd run error : {}", isCmd);
-//            }
-//            return isCmd;
-//        }
-//
-//
-//
-//
-//
-//
-//
-//
-//    @Override
-//    public R moveFileToServer(Long fileId, ConfigJsonDto param) {
-//        Optional<OutputFileEntity> o = outputFileRepository.findById(fileId);
-//        if (!o.isPresent()) {
-//            log.info("id:{} 不存在", fileId);
-//            return new R(50002, MsgCode.E50002);
-//        }
-//        OutputFileEntity entity = o.get();
-//        // 移动文件
-////        FileUtils.createDir(MOVE_FILE_TO_SERVER);
-//
-//        try {
-////            org.apache.commons.io.FileUtils.copyDirectoryToDirectory(new File(entity.getSlicePath()), new File(MOVE_FILE_TO_SERVER));
-//            // 修改前端的config.json 文件
-//            writeJsonFile(param, entity);
-//
-//            // 成功,状态
-//            entity.setStatus(8);
-//            entity.setUpdateTime(new Date());
-//
-//            // 添加图层角色
-//            entity.setLayerRole(param.getRole());
-//            outputFileRepository.save(entity);
-//
-//            return new R(200, MsgCode.SUCCESS);
-//        } catch (Exception e) {
-//
-//            // 发布失败
-//            entity.setStatus(10);
-//            entity.setUpdateTime(new Date());
-//            outputFileRepository.save(entity);
-//            e.printStackTrace();
-//            return new R(51004, MsgCode.E51004, e);
-//        }
-//
-//    }
-//
-//
-//    @Override
-//    public R uploadBigFile(MultipartFile file, String token) {
-//        log.warn("run uploadBigFile");
-//        long start = System.currentTimeMillis();
-//        if (file.isEmpty() || file.getSize() <= 0) {
-//            log.info("文件为空");
-//            return new R(50001, MsgCode.E50001);
-//        }
-//
-//        // 文件名全名
-//        String fullFileName = file.getOriginalFilename();
-//
-//        // 创建目录路径
-//        FileUtils.createDir(INPUT_FILE_PATH);
-//
-//        // 拼接唯一文件名
-//        long timeMillis = System.currentTimeMillis();
-////        String fileName = timeMillis + "_" + fullFileName;
-//        String fileName = fullFileName;
-//
-//        // 文件保存路径
-//        String filePath = INPUT_FILE_PATH + fileName;
-//
-//        // 写文件到本地
-//        try {
-//            FileUtils.bigFileWrite(file.getInputStream(), filePath);
-//        } catch (IOException e) {
-//            e.printStackTrace();
-//        }
-//        log.info("filePath: {}", filePath);
-//
-//
-//        String username = JWTUtil.getUsername(token);
-//
-//        // 根据用户名查找用户
-//        User user = userRepository.findByUsername(username);
-//
-//        // 保存信息到db
-//        FileEntity entity = new FileEntity();
-//        entity.setFileName(fileName);
-//        entity.setFileUrl(filePath);
-//        entity.setCreateTime(new Date());
-//        entity.setUpdateTime(new Date());
-//        entity.setType(TypeCode.FILE_TYPE_MODEL);
-////        entity.setStatus(1);
-//        entity.setResStatus(0);
-//        entity = fileRepository.save(entity);
-//
-//
-//
-//        OutputFileEntity outputFile = new OutputFileEntity();
-//        outputFile.setUploadId(entity.getId());
-//        outputFile.setUploadPath(entity.getFileUrl());
-//        outputFile.setFileName(entity.getFileName());
-//        outputFile.setStatus(1);
-//        outputFile.setResStatus(0);
-//        outputFile.setType(TypeCode.FILE_TYPE_MODEL);
-//        outputFile.setCreateTime(new Date());
-//        outputFile.setUpdateTime(new Date());
-//
-//        // 添加分组
-//        outputFile.setUserId(user.getId());
-//        outputFile.setUserGroup(user.getUserGroup());
-//
-//        outputFile = outputFileRepository.save(outputFile);
-//
-//
-//        long end = System.currentTimeMillis();
-//        log.info("end uploadBigFile, total time: {} s", (end - start)/1000);
-//        return new R(200, outputFile);
-//    }
-//
-//    @Override
-//    public OutputFileEntity findByUploadId(Long uploadId) {
-//        return outputFileRepository.findByUploadId(uploadId);
-//    }
-//
-//    @Override
-//    public OutputFileEntity save(OutputFileEntity fileSchedule) {
-//        return outputFileRepository.save(fileSchedule);
-//    }
-//
-//
-//
-//
-//
-//
-//    private void writeJsonFile(ConfigJsonDto param,  OutputFileEntity entity) {
-//        String s = FileUtils.readFile(CONFIG_JSON_PATH);
-//
-//        StyleEntity styleEntity = styleRepository.findByOutputFileIdTop(entity.getId());
-//        if (styleEntity == null) {
-//            styleEntity = new StyleEntity();
-//            styleEntity.setOutputFileId(entity.getId());
-//            styleEntity.setCreateTime(new Date());
-//            styleEntity.setResStatus(0);
-//        }
-//
-//
-//        JSONObject original = JSON.parseObject(s);
-//
-//        log.info("original: {}", s);
-//
-//        JSONArray layers = JSON.parseArray(original.getString("layers"));
-//
-//        JSONObject subJson = new JSONObject();
-//        long cu = System.currentTimeMillis();
-//        // 需要唯一
-//        String name = "model_" + cu;
-//        subJson.put("name", name);
-//        subJson.put("text", param.getText());
-//        // raster 就用这个类型
-//        subJson.put("type", "tileset");
-//        subJson.put("checked", false);
-//        subJson.put("show", true);
-//
-//        String slicePath = entity.getSlicePath();
-////        slicePath = slicePath.replace("/root/gis/data", "");
-//        slicePath = slicePath.replace(BASE_PATH, "");
-//
-//        subJson.put("url", slicePath);
-//
-//        layers.add(subJson);
-//
-//        original.put("layers", layers);
-//
-//        log.info("original update: {}", original.toJSONString());
-//        try {
-//            FileUtils.fileWriter(JSON.toJSONString(original), CONFIG_JSON_PATH);
-//
-//            // 将图层信息保存到db
-//            // 前端需要layer信息
-//            styleEntity.setLayer(subJson.toJSONString());
-//            styleEntity.setUpdateTime(new Date());
-//            styleEntity.setName(name);
-//            styleRepository.save(styleEntity);
-//        } catch (IOException e) {
-//            e.printStackTrace();
-//        }
-//    }
-//
-//    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);
-//    }
+        String slicePath = entity.getSlicePath();
+        slicePath = slicePath.replace(BASE_PATH, "");
 
+        subJson.put("url", slicePath);
+
+        layers.add(subJson);
+
+        original.put("layers", layers);
+
+        log.info("original update: {}", original.toJSONString());
+        try {
+            FileUtils.fileWriter(JSON.toJSONString(original), CONFIG_JSON_PATH);
+
+            // 将图层信息保存到db
+            // 前端需要layer信息
+            styleEntity.setLayer(subJson.toJSONString());
+            styleEntity.setUpdateTime(new Date());
+            styleEntity.setName(name);
+            styleRepository.save(styleEntity);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+
+
+    public static void main(String[] args) {
+        FileUtils.delFolder("F:\\test\\test1234");
+    }
 
 
 }

+ 0 - 3
src/main/java/com/fd/server/impl/ModelServerImpl.java

@@ -231,11 +231,8 @@ public class ModelServerImpl extends BaseServerImpl implements ModelServer  {
             return new R(50002, MsgCode.E50002);
         }
         OutputFileEntity entity = o.get();
-        // 移动文件
-//        FileUtils.createDir(MOVE_FILE_TO_SERVER);
 
         try {
-//            org.apache.commons.io.FileUtils.copyDirectoryToDirectory(new File(entity.getSlicePath()), new File(MOVE_FILE_TO_SERVER));
             // 修改前端的config.json 文件
             writeJsonFile(param, entity);
 

+ 0 - 9
src/main/java/com/fd/server/impl/RasterServerImpl.java

@@ -177,22 +177,13 @@ public class RasterServerImpl extends BaseServerImpl implements RasterServer {
 
         // 把数据移动到指定服务位置
         OutputFileEntity entity = o.get();
-//        FileUtils.createDir(MOVE_FILE_TO_SERVER);
 
         try {
-//            org.apache.commons.io.FileUtils.copyDirectoryToDirectory(new File(entity.getSlicePath()), new File(MOVE_FILE_TO_SERVER));
             // 修改前端的config.json 文件
             String lastName = StringUtils.substringAfterLast(entity.getSlicePath(), "/");
             log.info("lastName: {}", lastName);
             writeJsonFile(param, lastName, entity);
 
-            //修改linux 文件权限
-//            String cmd = Command.CMD_CHOMD_755;
-//            String slice = MOVE_FILE_TO_SERVER + lastName;
-//            cmd = cmd.replace("@path", slice);
-//            log.info("cmd: {}", cmd);
-//            cmdServer.exeCmdInt(cmd);
-
             // 成功,更新状态
             entity.setStatus(8);
             entity.setUpdateTime(new Date());

+ 0 - 9
src/main/java/com/fd/server/impl/VectorServerImpl.java

@@ -177,14 +177,6 @@ public class VectorServerImpl extends BaseServerImpl implements VectorServer {
                 FileUtils.delFolder(entity.getSlicePath());
         }
 
-        // 目录类型
-//        if (entity.getServicePath() != null) {
-//                FileUtils.delFolder(entity.getServicePath());
-//        }
-
-
-
-
 
         return new R(200, MsgCode.SUCCESS);
     }
@@ -329,7 +321,6 @@ public class VectorServerImpl extends BaseServerImpl implements VectorServer {
     @Override
     public List<FileEntity> findByDirectory(String directory) {
 
-//        return fileRepository.findByDirectory(directory);
         return fileRepository.findByDirectoryAndResStatus(directory, 0);
     }
 

+ 6 - 1
src/main/java/com/fd/shiro/ShiroConfig.java

@@ -84,7 +84,12 @@ public class ShiroConfig {
         filterRuleMap.put("/logout", "anon");
         filterRuleMap.put("/test/**", "anon");
         filterRuleMap.put("/manage/**", "anon");
+
         filterRuleMap.put("/api/dem/**", "anon");
+        filterRuleMap.put("/test/convert/**", "anon");
+        filterRuleMap.put("/api/convert/**", "anon");
+        filterRuleMap.put("/n/t/**", "anon");
+
 
         // swagger 不拦截
         filterRuleMap.put("/swagger-resources/**", "anon");
@@ -136,7 +141,7 @@ public class ShiroConfig {
      */
     @Bean
     public HttpMessageConverters customConverters() {
-        log.warn("run customConverters");
+//        log.warn("run customConverters");
 
 
         FastJsonHttpMessageConverter fastJson = new FastJsonHttpMessageConverter();

+ 3 - 3
src/main/java/com/fd/util/FileUtils.java

@@ -100,7 +100,7 @@ public class FileUtils {
      */
 
     public static void bigFileWrite(InputStream in, String path) throws IOException {
-        long start = System.currentTimeMillis();
+//        long start = System.currentTimeMillis();
         // 输入缓冲流
         BufferedInputStream inputBuff = new BufferedInputStream(in);
 
@@ -115,9 +115,9 @@ public class FileUtils {
         stream.close();
         inputBuff.close();
 
-        long end = System.currentTimeMillis();
+//        long end = System.currentTimeMillis();
 
-        System.out.println("total: "+ (end-start)/1000);
+//        System.out.println("total: "+ (end-start)/1000);
     }