wuweihao 5 lat temu
rodzic
commit
5326893720

+ 8 - 0
pom.xml

@@ -86,6 +86,14 @@
         </dependency>
 
 
+        <!-- sqlite3驱动包 -->
+        <!--<dependency>-->
+            <!--<groupId>org.xerial</groupId>-->
+            <!--<artifactId>sqlite-jdbc</artifactId>-->
+            <!--<version>3.27.2.1</version>-->
+        <!--</dependency>-->
+
+
     </dependencies>
 
     <build>

+ 12 - 6
src/main/java/com/fd/constant/Command.java

@@ -21,7 +21,8 @@ public class Command {
      * 输出文件:/root/gis/cesium/input/transform/@fileName/@fileName.shp
      * 坐标参数:EPSG:4326
      */
-    public static String VECTOR_TRANSFORM_GENERAL  = "docker run --rm -v /root/gis/cesium/input:/root/gis/cesium/input osgeo/gdal  ogr2ogr -t_srs EPSG:4326  @outputFile  @inputFile";
+//    public static String VECTOR_TRANSFORM_GENERAL  = "docker run --rm -v /root/gis/cesium/input:/root/gis/cesium/input osgeo/gdal  ogr2ogr -t_srs EPSG:4326  @outputFile  @inputFile";
+    public static String VECTOR_TRANSFORM_GENERAL  = "docker run --rm -v /root/gis/cesium:/root/gis/cesium osgeo/gdal  ogr2ogr -t_srs EPSG:4326  @outputFile  @inputFile";
 
 
     /**
@@ -31,7 +32,8 @@ public class Command {
      * 输入文件:
      * 输出文件:
      */
-    public static String VECTOR_TRANSFORM_STRICT_WGS80  = "docker run --rm -v /root/gis/cesium/input:/root/gis/cesium/input osgeo/gdal ogr2ogr -overwrite  -s_srs \"+proj=longlat +ellps=GRS80 +no_defs +towgs84=@coord\" -t_srs EPSG:4326 @outputFile @inputFile";
+//    public static String VECTOR_TRANSFORM_STRICT_WGS80  = "docker run --rm -v /root/gis/cesium/input:/root/gis/cesium/input osgeo/gdal ogr2ogr -overwrite  -s_srs \"+proj=longlat +ellps=GRS80 +no_defs +towgs84=@coord\" -t_srs EPSG:4326 @outputFile @inputFile";
+    public static String VECTOR_TRANSFORM_STRICT_WGS80  = "docker run --rm -v /root/gis/cesium:/root/gis/cesium osgeo/gdal ogr2ogr -overwrite  -s_srs \"+proj=longlat +ellps=GRS80 +no_defs +towgs84=@coord\" -t_srs EPSG:4326 @outputFile @inputFile";
 
     /**
      * 矢量数据 严格坐标转换
@@ -40,7 +42,8 @@ public class Command {
      * 输入文件:
      * 输出文件:
      */
-    public static String VECTOR_TRANSFORM_STRICT_WGS84  = "docker run --rm -v /root/gis/cesium/input:/root/gis/cesium/input osgeo/gdal ogr2ogr -overwrite  -s_srs \"+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=IAU76 +units=m +no_defs +towgs84=@coord\" -t_srs EPSG:4326 @outputFile @inputFile";
+//    public static String VECTOR_TRANSFORM_STRICT_WGS84  = "docker run --rm -v /root/gis/cesium/input:/root/gis/cesium/input osgeo/gdal ogr2ogr -overwrite  -s_srs \"+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=IAU76 +units=m +no_defs +towgs84=@coord\" -t_srs EPSG:4326 @outputFile @inputFile";
+    public static String VECTOR_TRANSFORM_STRICT_WGS84  = "docker run --rm -v /root/gis/cesium:/root/gis/cesium osgeo/gdal ogr2ogr -overwrite  -s_srs \"+proj=tmerc +lat_0=0 +lon_0=114 +k=1 +x_0=38500000 +y_0=0 +ellps=IAU76 +units=m +no_defs +towgs84=@coord\" -t_srs EPSG:4326 @outputFile @inputFile";
 
     /**
      * 矢量数据切片 step1
@@ -70,7 +73,7 @@ public class Command {
      * 矢量数据判断坐标
      * 输入文件:@inputFile
      */
-    public static String VECTOR_JUDGE_COORD = "docker run --rm -v /root/gis/cesium/input:/root/gis/cesium/input osgeo/gdal " +
+    public static String VECTOR_JUDGE_COORD = "docker run --rm -v /root/gis/cesium:/root/gis/cesium osgeo/gdal " +
             "ogrinfo -ro -al -so @inputFile";
 
     /**
@@ -108,8 +111,11 @@ public class Command {
      * 输入文件: /root/gis/cesium/input/@fileName.tif
      * 输出文件: /root/gis/cesium/input/transform/@fileName.tif
      */
-    public static String RASTER_TRANSFORM_GDALWARP  = "docker run --rm -v /root/gis/cesium/input:/root/gis/cesium/input " +
-            "osgeo/gdal  gdalwarp -t_srs EPSG:4326  /root/gis/cesium/input/@fileName.tif  /root/gis/cesium/input/transform/@fileName.tif";
+//    public static String RASTER_TRANSFORM_GDALWARP  = "docker run --rm -v /root/gis/cesium/input:/root/gis/cesium/input " +
+//            "osgeo/gdal  gdalwarp -t_srs EPSG:4326  /root/gis/cesium/input/@fileName.tif  /root/gis/cesium/input/transform/@fileName.tif";
+
+    public static String RASTER_TRANSFORM_GDALWARP  = "docker run --rm -v /root/gis/cesium:/root/gis/cesium " +
+            "osgeo/gdal  gdalwarp -t_srs EPSG:4326  /root/gis/cesium/input/@fileName.tif  /root/gis/cesium/output/transform/@fileName.tif";
 
 
     // 严格坐标转换,step:1

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

@@ -16,7 +16,6 @@ public class MsgCode {
     public static final String E50004 = "文件不存在";
 
 
-
     public static final String E50005 = "命令执行失败";
 
     public static final String E51001 = "文件解压失败";
@@ -25,6 +24,10 @@ public class MsgCode {
 
     public static final String E51004 = "文件复制失败";
 
+    public static final String E51005 = "文件名不能包含中文";
+
+    public static final String E51006 = "文件名重复";
+
     public static final String E50007 = "只支持.zip 文件";
 
     public static final String E50008 = "只支持.tip 文件";

+ 16 - 1
src/main/java/com/fd/controller/FdModelController.java

@@ -13,6 +13,7 @@ import com.fd.server.FileServer;
 import com.fd.server.ModelServer;
 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;
@@ -126,11 +127,25 @@ public class FdModelController {
 
         // 文件名全名
         String fileName = file.getOriginalFilename();
-        String s = StringUtils.substringAfterLast(fileName, ".");
 
+        // 文件是否包含中文字符
+        if (RegexUtils.regexChinese(fileName)) {
+            return new R(51005, MsgCode.E51005);
+        }
+
+        String s = StringUtils.substringAfterLast(fileName, ".");
         if (!"zip".equals(s)) {
             return new R(50007, MsgCode.E50007);
         }
+
+        FileEntity entity = modelServer.findByFileName(fileName);
+        if (entity != null) {
+            return new R(51006, MsgCode.E51006);
+        }
+
+
+
+
         return modelServer.uploadBigFile(file);
     }
 

+ 12 - 0
src/main/java/com/fd/controller/RasterController.java

@@ -13,6 +13,7 @@ import com.fd.server.FileServer;
 import com.fd.server.RasterServer;
 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;
@@ -84,11 +85,22 @@ public class RasterController {
 
         // 文件名全名
         String fileName = file.getOriginalFilename();
+
+        // 文件是否包含中文字符
+        if (RegexUtils.regexChinese(fileName)) {
+            return new R(51005, MsgCode.E51005);
+        }
+
         String s = StringUtils.substringAfterLast(fileName, ".");
         if (!"tif".equals(s)) {
             return new R(50008,MsgCode.E50008);
         }
 
+        FileEntity entity = rasterServer.findByFileName(fileName);
+        if (entity != null) {
+            return new R(51006, MsgCode.E51006);
+        }
+
         return rasterServer.uploadBigFile(file);
 
     }

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

@@ -13,6 +13,7 @@ import com.fd.server.FileServer;
 import com.fd.server.VectorServer;
 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;
@@ -20,9 +21,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
 import javax.annotation.PostConstruct;
+import javax.servlet.http.HttpServletRequest;
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
@@ -106,10 +110,35 @@ public class VectorController {
                            @RequestParam(value = "coord",required = false) String coord){
         log.info("run uploadVector");
         log.info("coord: {}", coord);
+
+        // 文件是否包含中文字符
+        if (RegexUtils.regexChinese(file.getOriginalFilename())) {
+            return new R(51005, MsgCode.E51005);
+        }
+
+//        FileEntity en = vectorServer.findByDirectory(directoryName);
+//        if (en != null){
+//            return new R(51006, MsgCode.E51006);
+//        }
+
         return vectorServer.uploadDirectoryFile(file, directoryName, coord);
     }
 
 
+//    @ApiOperation("上传矢量数据, coord:坐标(可以为空), 坐标格式:0,0,0,0,0,0,0")
+//    @PostMapping(value = "upload/{directoryName}", consumes = { "multipart/form-data" })
+//    private R upload(@RequestParam("file") MultipartFile[] file,
+//                     @PathVariable("directoryName") String directoryName,
+//                     @RequestParam(value = "coord",required = false) String coord){
+//        log.info("run uploadVector");
+//        log.info("coord: {}", coord);
+//
+//
+//
+//        return vectorServer.uploadDirectoryFileMul(file, directoryName, coord);
+//    }
+
+
 
 //    @ApiOperation("解压zip文件")
 //    @GetMapping("unzip/{fileId}/")
@@ -377,7 +406,7 @@ public class VectorController {
     }
 
     @ApiOperation("移动数据到服务器上")
-    @GetMapping("move/{fileId}/")
+    @PostMapping("move/{fileId}/")
     private R moveFile(@PathVariable("fileId") Long fileId, @RequestBody ConfigJsonDto param) {
         log.info("run moveFile: {}", fileId);
         return vectorServer.moveFileToServer(fileId, param);
@@ -415,7 +444,8 @@ public class VectorController {
     // 创建目录
     private String createDirectory(OutputFileEntity entity){
         String fileName = StringUtils.substringBeforeLast(entity.getFileName(), ".");
-        String directory = INPUT_FILE_PATH + "transform" + File.separator + fileName;
+//        String directory = INPUT_FILE_PATH + "transform" + File.separator + fileName;
+        String directory = OUTPUT_FILE_PATH + "transform" + File.separator + fileName;
         FileUtils.createDir(directory);
         return directory;
     }

+ 1 - 1
src/main/java/com/fd/dto/ConfigJsonDto.java

@@ -21,7 +21,7 @@ public class ConfigJsonDto {
 
 //    private boolean show;
 
-    private String url;
+//    private String url;
 
 
 

+ 3 - 0
src/main/java/com/fd/entity/FileEntity.java

@@ -37,6 +37,9 @@ public class FileEntity extends BaseEntity implements Serializable {
     @Column
     private String type; // 文件类型
 
+    @Column
+    private String directory; // 目录名称
+
 
     /**
      * 状态

+ 6 - 0
src/main/java/com/fd/repository/FileRepository.java

@@ -7,6 +7,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
 
+import java.util.List;
+
 /**
  * Created by Owen on 2019/10/28 0028 11:36
  *
@@ -19,4 +21,8 @@ public interface FileRepository extends JpaRepository<FileEntity, Long>, JpaSpec
 
     @Query(value = "select r from FileEntity r where r.type=?1 or r.type =?2")
     Page<FileEntity> findByType(String type, String type1, Pageable pageable);
+
+    FileEntity findByFileName(String fileName);
+
+    List<FileEntity> findByDirectory(String directory);
 }

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

@@ -1,6 +1,7 @@
 package com.fd.server;
 
 import com.fd.dto.PageDto;
+import com.fd.entity.FileEntity;
 import com.fd.entity.OutputFileEntity;
 import com.fd.util.R;
 import org.springframework.web.multipart.MultipartFile;
@@ -24,4 +25,6 @@ public interface ModelServer {
     R moveFileToServer(Long fileId);
 
     R deleteById(Long fileId);
+
+    FileEntity findByFileName(String fileName);
 }

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

@@ -3,6 +3,7 @@ package com.fd.server;
 
 import com.fd.dto.ConfigJsonDto;
 import com.fd.dto.PageDto;
+import com.fd.entity.FileEntity;
 import com.fd.entity.OutputFileEntity;
 import com.fd.util.R;
 import org.springframework.web.multipart.MultipartFile;
@@ -24,4 +25,6 @@ public interface RasterServer {
     OutputFileEntity save(OutputFileEntity fileSchedule);
 
     R deleteById(Long fileId);
+
+    FileEntity findByFileName(String fileName);
 }

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

@@ -2,10 +2,13 @@ package com.fd.server;
 
 import com.fd.dto.ConfigJsonDto;
 import com.fd.dto.PageDto;
+import com.fd.entity.FileEntity;
 import com.fd.entity.OutputFileEntity;
 import com.fd.util.R;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.List;
+
 /**
  * Created by Owen on 2019/11/21 0021 15:29
  */
@@ -15,6 +18,8 @@ public interface VectorServer {
 
     R uploadDirectoryFile(MultipartFile file, String directoryName, String coord);
 
+    R uploadDirectoryFileMul(MultipartFile [] file, String directoryName, String coord);
+
     R findByType(String fileTypeVector, PageDto param);
 
     OutputFileEntity findById(Long fileId);
@@ -24,4 +29,8 @@ public interface VectorServer {
     R moveFileToServer(Long fileId, ConfigJsonDto param);
 
     R deleteById(Long fileId);
+
+    FileEntity findByFileName(String fileName);
+
+    List<FileEntity> findByDirectory(String directory);
 }

+ 4 - 1
src/main/java/com/fd/server/impl/ModelServerImpl.java

@@ -99,8 +99,11 @@ public class ModelServerImpl implements ModelServer {
         return new R(200, MsgCode.SUCCESS);
     }
 
+    @Override
+    public FileEntity findByFileName(String fileName) {
 
-
+        return fileRepository.findByFileName(fileName);
+    }
 
 
     @Override

+ 14 - 10
src/main/java/com/fd/server/impl/RasterServerImpl.java

@@ -15,6 +15,7 @@ import com.fd.server.RasterServer;
 import com.fd.util.FileUtils;
 import com.fd.util.R;
 import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.domain.Page;
@@ -68,14 +69,8 @@ public class RasterServerImpl implements RasterServer {
             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());
-        }
+
 
         // 删除数据库记录
         outputFileRepository.deleteById(fileId);
@@ -104,7 +99,9 @@ public class RasterServerImpl implements RasterServer {
         }
 
         // 修改前端的config.json 文件
-        writeJsonFile(param);
+        String lastName = StringUtils.substringAfterLast(entity.getSlicePath(), "/");
+        log.info("lastName: {}", lastName);
+        writeJsonFile(param, lastName);
 
 
         // 成功,更新状态
@@ -184,12 +181,19 @@ public class RasterServerImpl implements RasterServer {
         return null;
     }
 
+
+    @Override
+    public FileEntity findByFileName(String fileName) {
+
+        return fileRepository.findByFileName(fileName);
+    }
+
     @Override
     public OutputFileEntity save(OutputFileEntity fileSchedule) {
         return outputFileRepository.save(fileSchedule);
     }
 
-    private void writeJsonFile(ConfigJsonDto param) {
+    private void writeJsonFile(ConfigJsonDto param, String lastName) {
         String s = FileUtils.readFile(CONFIG_JSON_PATH);
 
         JSONObject original = JSON.parseObject(s);
@@ -205,7 +209,7 @@ public class RasterServerImpl implements RasterServer {
         subJson.put("type", "imagery"); // raster 就用这个类型
         subJson.put("checked", false);
         subJson.put("show", true);
-        subJson.put("url", param.getUrl());
+        subJson.put("url", "../data/" + lastName);
 
         layers.add(subJson);
 

+ 105 - 13
src/main/java/com/fd/server/impl/VectorServerImpl.java

@@ -14,6 +14,7 @@ import com.fd.repository.OutputFileRepository;
 import com.fd.server.VectorServer;
 import com.fd.util.FileUtils;
 import com.fd.util.R;
+import com.fd.util.RegexUtils;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,9 +27,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.Base64;
-import java.util.Date;
-import java.util.Optional;
+import java.util.*;
 
 
 /**
@@ -81,7 +80,9 @@ public class VectorServerImpl implements VectorServer {
         }
 
         // 修改前端的config.json 文件
-        writeJsonFile(param);
+        String lastName = StringUtils.substringAfterLast(entity.getSlicePath(), "/");
+        log.info("lastName: {}", lastName);
+        writeJsonFile(param, lastName);
 
 
         entity.setStatus(8);
@@ -97,14 +98,8 @@ public class VectorServerImpl implements VectorServer {
             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());
-        }
+
 
         // 删除数据库记录
         outputFileRepository.deleteById(fileId);
@@ -188,6 +183,7 @@ public class VectorServerImpl implements VectorServer {
         // 保存信息到db
         FileEntity entity = new FileEntity();
         entity.setFileName(fullFileName);
+        entity.setDirectory(directoryName);
         entity.setFileUrl(filePath);
         entity.setCreateTime(new Date());
         entity.setUpdateTime(new Date());
@@ -220,11 +216,107 @@ public class VectorServerImpl implements VectorServer {
     }
 
     @Override
+    public R uploadDirectoryFileMul(MultipartFile[] files, String directoryName, String coord) {
+
+        log.warn("run uploadDirectoryFileMul");
+//        if (file.isEmpty() || file.getSize() <= 0) {
+//            log.info("文件为空");
+//            return new R(50001, MsgCode.E50001);
+//        }
+
+        // 判断目录重名
+        List<FileEntity> en = fileRepository.findByDirectory(directoryName);
+        if (en.size() > 0){
+            return new R(51006, MsgCode.E51006);
+        }
+
+        // 创建目录路径
+        String filePath = INPUT_FILE_PATH + directoryName + File.separator;
+        FileUtils.createDir(filePath);
+
+        FileEntity entity = new FileEntity();
+
+        StringBuilder sb = new StringBuilder();
+
+        String shpName = "";
+
+        if (files != null && files.length > 0) {
+            for (MultipartFile f: files) {
+                String filename = f.getOriginalFilename();
+
+                // 文件是否包含中文字符
+        if (RegexUtils.regexChinese(filename)) {
+            return new R(51005, MsgCode.E51005);
+        }
+
+
+
+
+                log.info("fileName : {}", filename);
+                String s = StringUtils.substringAfterLast(filename, ".");
+                if ("shp".equals(s)){
+                    shpName = filename;
+//                    entity.setFileName(filename);
+                    entity.setDirectory(directoryName);
+                    entity.setFileUrl(filePath + filename);
+                    entity.setCreateTime(new Date());
+                    entity.setUpdateTime(new Date());
+                    entity.setType(TypeCode.FILE_TYPE_VECTOR);
+                    entity.setCoord(coord);
+//                    entity.setStatus(2);
+                    entity = fileRepository.save(entity);
+
+
+                }
+                try {
+            FileUtils.bigFileWrite(f.getInputStream(), filePath + filename);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+                sb.append(filename).append(",");
+            }
+        }
+
+        entity.setFileName(sb.toString());
+        entity.setUpdateTime(new Date());
+        entity = fileRepository.save(entity);
+
+        OutputFileEntity outputFile = new OutputFileEntity();
+
+        outputFile = new OutputFileEntity();
+        outputFile.setUploadId(entity.getId());
+        outputFile.setUploadPath(entity.getFileUrl());
+        outputFile.setFileName(shpName);
+        outputFile.setStatus(2);
+        outputFile.setType(TypeCode.FILE_TYPE_VECTOR);
+        outputFile.setCoord(entity.getCoord());
+        outputFile.setCreateTime(new Date());
+        outputFile.setUpdateTime(new Date());
+
+        outputFile = outputFileRepository.save(outputFile);
+
+        return new R(200, outputFile);
+    }
+
+    @Override
     public R findByType(String type, PageDto pageDto) {
         Page<OutputFileEntity> page = outputFileRepository.findByType(type, PageRequest.of(pageDto.getPageNum(), pageDto.getPageSize(), Sort.by("createTime").descending()));
         return new R(200, page);
     }
 
+
+    @Override
+    public FileEntity findByFileName(String fileName) {
+
+        return fileRepository.findByFileName(fileName);
+    }
+
+    @Override
+    public List<FileEntity> findByDirectory(String directory) {
+
+        return fileRepository.findByDirectory(directory);
+    }
+
     @Override
     public OutputFileEntity findById(Long fileId) {
         Optional<OutputFileEntity> o = outputFileRepository.findById(fileId);
@@ -243,7 +335,7 @@ public class VectorServerImpl implements VectorServer {
     /**
      * 修改config.json
      */
-    private void writeJsonFile(ConfigJsonDto param) {
+    private void writeJsonFile(ConfigJsonDto param, String lastName) {
         String s = FileUtils.readFile(CONFIG_JSON_PATH);
 
         JSONObject original = JSON.parseObject(s);
@@ -259,7 +351,7 @@ public class VectorServerImpl implements VectorServer {
         subJson.put("type", "geodata"); // vector 就用这个类型geodata
         subJson.put("checked", false);
         subJson.put("show", true);
-        subJson.put("url", param.getUrl());
+        subJson.put("url", "../data/" + lastName);
 
         layers.add(subJson);
 

+ 36 - 0
src/main/java/com/fd/util/RegexUtils.java

@@ -0,0 +1,36 @@
+package com.fd.util;
+
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * Created by Owen on 2019/11/25 0025 14:30
+ *
+ * 正则表达式
+ */
+public class RegexUtils {
+
+    // 非中文
+    public static final String CHINESE_NAME = "^[\\u4E00-\\u9FFF\\W]+$";
+
+
+    /**  匹配中文 */
+    public static boolean regexChinese(String param){
+        if(StringUtils.isEmpty(param)){
+            return Boolean.FALSE ;
+        }
+        return param.matches(CHINESE_NAME) ;
+    }
+
+    public static void main(String[] args) {
+        String a = "我是中国人";
+        String a1 = "i m aaa";
+        String a2 = "1245454--";
+        String a3 = "1245454--中国人";
+
+        System.out.println(regexChinese(a));
+        System.out.println(regexChinese(a1));
+        System.out.println(regexChinese(a2));
+        System.out.println(regexChinese(a));
+
+    }
+}

+ 3 - 3
src/main/resources/application-pro.properties

@@ -11,9 +11,9 @@ output.file.path=/root/gis/cesium/output/
 
 
 #·¢²¼·þÎñµØÖ·
-copy.file.path.model=/root/gis/cesium/output/copy/
-copy.file.path.raster=/root/gis/cesium/output/copy/
-copy.file.path.vector=/root/gis/cesium/output/copy/
+copy.file.path.model=/var/www/html/data/
+copy.file.path.raster=/var/www/html/data/
+copy.file.path.vector=/var/www/html/data/
 
 #config.json λÖÃ
 config.path=/var/www/html/3dmap/config.json

+ 3 - 3
src/main/resources/application-uat.properties

@@ -11,9 +11,9 @@ output.file.path=/root/gis/cesium/output/
 
 
 #·¢²¼·þÎñµØÖ·
-copy.file.path.model=/root/gis/cesium/output/copy/
-copy.file.path.raster=/root/gis/cesium/output/copy/
-copy.file.path.vector=/root/gis/cesium/output/copy/
+copy.file.path.model=/var/www/html/data/
+copy.file.path.raster=/var/www/html/data/
+copy.file.path.vector=/var/www/html/data/
 
 #config.json λÖÃ
 config.path=/var/www/html/3dmap/config.json

+ 8 - 1
src/main/resources/application.properties

@@ -1,7 +1,7 @@
 server.port=8082
 
 # file multipart
-spring.profiles.active=pro
+spring.profiles.active=uat
 spring.servlet.multipart.enabled=true
 spring.servlet.multipart.max-file-size=51200MB
 spring.servlet.multipart.max-request-size=51200MB
@@ -9,4 +9,11 @@ spring.servlet.multipart.max-request-size=51200MB
 #jpa
 spring.jpa.hibernate.ddl-auto=update
 spring.jpa.hibernate.naming.implicit-strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
+spring.jpa.open-in-view=false
+
+## sqlite db
+#spring.datasource.driver-class-name=org.sqlite.JDBC
+#spring.datasource.url=jdbc:sqlite::resource:static/sqlite/manage.db
+#spring.datasource.username=
+#spring.datasource.password=