管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-01-10 a5de74e84d74eef4543e56b1181a5b4b269212e1
src/main/java/com/lf/server/service/all/BaseUploadService.java
@@ -6,6 +6,7 @@
import com.lf.server.entity.data.VerEntity;
import com.lf.server.entity.sys.UserEntity;
import com.lf.server.helper.*;
import com.lf.server.service.data.DirService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +28,10 @@
@Service
public class BaseUploadService {
    @Autowired
    public PathHelper pathHelper;
    private DirService dirService;
    @Autowired
    private PathHelper pathHelper;
    public final Log log = LogFactory.getLog(getClass());
@@ -199,14 +203,13 @@
            meta.setEpsgCode(epsgCode);
            if (StaticData.ZIP.equals(meta.getExtName())) {
                List<MetaFileEntity> subs = getMapperFiles(path, meta);
                List<MetaFileEntity> subs = getMapperFiles(path, dir, meta);
                if (null != subs && subs.size() > 0) {
                    list.addAll(subs);
                    continue;
                }
            }
            meta.setEventid(StringHelper.getGuid());
            list.add(meta);
        }
@@ -216,7 +219,7 @@
    /**
     * 获取映射文件
     */
    private List<MetaFileEntity> getMapperFiles(String path, MetaFileEntity meta) {
    private List<MetaFileEntity> getMapperFiles(String path, DirEntity dir, MetaFileEntity meta) {
        String zipFile = pathHelper.getConfig().getTempPath() + File.separator + meta.getPath();
        File file = new File(zipFile);
        if (!file.exists() || file.isDirectory()) {
@@ -237,13 +240,13 @@
            return null;
        }
        return getMapperFiles(files, meta, subPath);
        return getMapperFiles(files, dir, meta, subPath);
    }
    /**
     * 获取映射文件
     */
    private List<MetaFileEntity> getMapperFiles(File[] files, MetaFileEntity meta,String subPath) {
    private List<MetaFileEntity> getMapperFiles(File[] files, DirEntity dir, MetaFileEntity meta, String subPath) {
        List<MetaFileEntity> list = new ArrayList<>();
        for (File f : files) {
            boolean isGdb = isGdbFile(f);
@@ -257,9 +260,10 @@
                continue;
            }
            int dirid = getDirByPath(f.getPath(), dir);
            boolean isShp = StaticData.SHP.equals(extName);
            if (isGdb) {
                List<MetaFileEntity> rs = getGdbMappers(f, meta, subPath);
                List<MetaFileEntity> rs = getGdbMappers(f, meta, dirid, subPath);
                if (null != rs && rs.size() > 0) {
                    list.addAll(rs);
                }
@@ -267,6 +271,7 @@
            }
            MetaFileEntity mf = createMetaFileEntity(meta);
            mf.setDirid(dirid);
            mf.setEventid(StringHelper.getGuid());
            mf.setName(fileName);
            mf.setExtName(extName);
@@ -299,6 +304,31 @@
        mf.setEpsgCode(meta.getEpsgCode());
        return mf;
    }
    /**
     * 根据文件路径获取目录ID
     */
    private int getDirByPath(String filePath, DirEntity dir) {
        if (0 != dir.getPid()) {
            return dir.getId();
        }
        List<DirEntity> list = dirService.selectDirRecursive(dir.getName());
        if (null == list || list.isEmpty()) {
            return dir.getId();
        }
        if ("/".equals(File.separator)) {
            filePath = filePath.replace("/", "\\");
        }
        for (DirEntity entity : list) {
            if (filePath.contains(entity.getFullName())) {
                return entity.getId();
            }
        }
        return dir.getId();
    }
    /**
@@ -375,7 +405,7 @@
    /**
     * 获取GDB文件映射
     */
    private List<MetaFileEntity> getGdbMappers(File f, MetaFileEntity meta, String subPath) {
    private List<MetaFileEntity> getGdbMappers(File f, MetaFileEntity meta, int dirid, String subPath) {
        List<String> tabs = GdbHelper.getTabNames(f.getPath());
        if (null == tabs || tabs.size() == 0) {
            return null;
@@ -391,6 +421,7 @@
        List<MetaFileEntity> list = new ArrayList<>();
        for (String tab : tabs) {
            MetaFileEntity mf = createMetaFileEntity(meta);
            mf.setDirid(dirid);
            mf.setEventid(StringHelper.getGuid());
            mf.setName(fileName);
            mf.setExtName(extName);