管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-11-21 2e2063d36f232f6b3e24947ea33787999586b109
1
已添加2个文件
已修改2个文件
103 ■■■■■ 文件已修改
src/main/java/com/lf/server/helper/GdalHelper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/GdbHelper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/MdbHelper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/DataLoaderService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/GdalHelper.java
@@ -238,7 +238,7 @@
                } while (true);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
            log.error(ex.getMessage(), ex);
        }
    }
src/main/java/com/lf/server/helper/GdbHelper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.lf.server.helper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.gdal.ogr.DataSource;
import org.gdal.ogr.Layer;
import org.gdal.ogr.ogr;
import java.util.ArrayList;
import java.util.List;
/**
 * GDB帮助类
 * @author WWW
 */
public class GdbHelper {
    private final static Log log = LogFactory.getLog(GdbHelper.class);
    /**
     * èŽ·å–è¡¨å
     */
    public static List<String> getTabNames(String filePath) {
        List<String> list = new ArrayList<>();
        try {
            org.gdal.ogr.Driver driver = ogr.GetDriverByName("OpenFileGDB");
            if (driver == null) {
                return list;
            }
            DataSource dataSource = driver.Open(filePath, 0);
            for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) {
                Layer layer = dataSource.GetLayer(i);
                list.add(layer.GetName());
            }
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
        }
        return list;
    }
}
src/main/java/com/lf/server/helper/MdbHelper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
package com.lf.server.helper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.gdal.ogr.DataSource;
import org.gdal.ogr.Layer;
import org.gdal.ogr.ogr;
import java.util.ArrayList;
import java.util.List;
/**
 * MDB帮助类
 * @author WWW
 */
public class MdbHelper {
    private final static Log log = LogFactory.getLog(MdbHelper.class);
    /**
     * èŽ·å–è¡¨å
     */
    public static List<String> getTabNames(String filePath) {
        List<String> list = new ArrayList<>();
        try {
            org.gdal.ogr.Driver driver = ogr.GetDriverByName("PGeo");
            if (driver == null) {
                return list;
            }
            DataSource dataSource = driver.Open(filePath, 0);
            for (int i = 0, count = dataSource.GetLayerCount(); i < count; i++) {
                Layer layer = dataSource.GetLayer(i);
                list.add(layer.GetName());
            }
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
        }
        return list;
    }
}
src/main/java/com/lf/server/service/data/DataLoaderService.java
@@ -5,10 +5,7 @@
import com.lf.server.entity.ctrl.TabMapperEntity;
import com.lf.server.entity.data.MetaEntity;
import com.lf.server.entity.data.MetaFileEntity;
import com.lf.server.helper.ClassHelper;
import com.lf.server.helper.ExcelHelper;
import com.lf.server.helper.FileHelper;
import com.lf.server.helper.ZipHelper;
import com.lf.server.helper.*;
import com.lf.server.mapper.all.GeomBaseMapper;
import com.lf.server.service.all.BaseQueryService;
import com.lf.server.service.all.BaseUploadService;
@@ -80,7 +77,11 @@
                continue;
            }
            if (fileName.contains(MDB)) {
                list.add(new TabMapperEntity(fileName, "mdb", fileName));
                //list.add(new TabMapperEntity(fileName, "mdb", fileName));
                List<String> tabs = GdbHelper.getTabNames(f.getPath());
                for (String tab : tabs) {
                    list.add(new TabMapperEntity(fileName, "mdb", tab, fileName));
                }
                continue;
            }
            if (fileName.contains(SHP_ZIP)) {
@@ -150,9 +151,11 @@
        String root = subPath.substring(0, subPath.lastIndexOf(File.separator) + 1);
        for (String file : files) {
            String name = FileHelper.getFileName(file);
            String path = file.replace(root, "");
            list.add(new TabMapperEntity(sourceName, "shp", name, path));
            List<String> tabs = GdbHelper.getTabNames(file);
            for (String tab : tabs) {
                list.add(new TabMapperEntity(sourceName, "gdb", tab, path));
            }
        }
    }