管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-11-22 7d49019d2cca2c58fe0412e40afb64755d33cfa6
src/main/java/com/lf/server/service/data/DataLoaderService.java
@@ -9,6 +9,7 @@
import com.lf.server.mapper.all.GeomBaseMapper;
import com.lf.server.service.all.BaseQueryService;
import com.lf.server.service.all.BaseUploadService;
import org.apache.commons.text.StringEscapeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -73,7 +74,7 @@
        for (File f : files) {
            String fileName = FileHelper.getFileName(f.getPath());
            if (fileName.contains(XLS)) {
                list.add(new TabMapperEntity(fileName, "xls", fileName));
                list.add(new TabMapperEntity(fileName, "xls", null, fileName));
                continue;
            }
            if (fileName.contains(MDB)) {
@@ -110,7 +111,7 @@
        List<String> files = new ArrayList<>();
        getShpFiles(subPath, files);
        String root = subPath.substring(0, subPath.lastIndexOf(File.separator) + 1);
        String root = pathHelper.getConfig().getTempPath() + File.separator;
        for (String file : files) {
            String name = FileHelper.getFileName(file);
            String path = file.replace(root, "");
@@ -148,7 +149,7 @@
        List<String> files = new ArrayList<>();
        getGdbFiles(subPath, files);
        String root = subPath.substring(0, subPath.lastIndexOf(File.separator) + 1);
        String root = pathHelper.getConfig().getTempPath() + File.separator;
        for (String file : files) {
            String path = file.replace(root, "");
            List<String> tabs = GdbHelper.getTabNames(file);
@@ -233,13 +234,10 @@
                        insertXls(root, mfe, tabs);
                        break;
                    case "shp":
                        insertShp(temp + "_zip", mfe, tabs);
                        break;
                    case "gdb":
                        insertGdb(temp + "_zip", mfe, tabs);
                        break;
                    case "mdb":
                        insertMdb(temp + "_zip", mfe, tabs);
                        String zipPath = FileHelper.getPath(temp + File.separator + mf.getPath()) + "_zip";
                        insertDb(me.getType(), zipPath, mfe, tabs);
                        break;
                    default:
                        break;
@@ -340,7 +338,7 @@
     */
    private void insertXls(String root, MetaFileEntity mfe, List<TabMapperEntity> tabs) {
        TabMapperEntity tab = getTabEntity(mfe, tabs);
        if (null == tab|| StringHelper.isEmpty(tab.getEntity())) {
        if (null == tab || StringHelper.isEmpty(tab.getEntity())) {
            return;
        }
@@ -356,7 +354,7 @@
        }
        List<?> list = ExcelHelper.readExcel(clazz, root + File.separator + mfe.getPath());
        if (null == list || list.isEmpty()) {
        if (list.isEmpty()) {
            return;
        }
        setCreateInfo(list, mfe);
@@ -366,8 +364,7 @@
            rows += basicMapper.insert(list.get(i));
        }
        if (basicMapper instanceof GeomBaseMapper) {
            GeomBaseMapper geomBaseMapper = (GeomBaseMapper) basicMapper;
            updateXlsGeom(geomBaseMapper, list);
            updateXlsGeom((GeomBaseMapper) basicMapper, list);
        }
        tab.setRows(rows);
@@ -432,9 +429,9 @@
    }
    /**
     * 插入SHP
     * 插入DB
     */
    private void insertShp(String root, MetaFileEntity mfe, List<TabMapperEntity> tabs) {
    private void insertDb(String type, String root, MetaFileEntity mfe, List<TabMapperEntity> tabs) {
        for (TabMapperEntity tab : tabs) {
            if (!tab.getFileName().equals(mfe.getName()) || StringHelper.isEmpty(tab.getEntity())) {
                continue;
@@ -451,17 +448,27 @@
                continue;
            }
            List<?> list = ShpHelper.readData(clazz, root + File.separator + tab.getSubPath());
            String filePath = StringEscapeUtils.escapeJava(root + File.separator + tab.getSubPath());
            List<?> list = null;
            switch (type) {
                case "shp":
                    list = ShpHelper.readData(clazz, filePath);
                    break;
                case "gdb":
                    list = GdbHelper.readData(clazz, filePath, tab.getTab());
                    break;
                case "mdb":
                    list = MdbHelper.readData(clazz, filePath, tab.getTab());
                    break;
                default:
                    break;
            }
            if (null == list || list.isEmpty()) {
                continue;
            }
            setCreateInfo(list, mfe);
            Integer rows = basicMapper.insertBatch(list);
            if (basicMapper instanceof GeomBaseMapper) {
                GeomBaseMapper geomBaseMapper = (GeomBaseMapper) basicMapper;
                updateXlsGeom(geomBaseMapper, list);
            }
            tab.setRows(rows);
        }
@@ -488,21 +495,5 @@
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
        }
    }
    /**
     * 插入GDB
     */
    private Integer insertGdb(String root, MetaFileEntity mfe, List<TabMapperEntity> tabs) {
        return 0;
    }
    /**
     * 插入MDB
     */
    private Integer insertMdb(String root, MetaFileEntity mfe, List<TabMapperEntity> tabs) {
        return 0;
    }
}