From a5de74e84d74eef4543e56b1181a5b4b269212e1 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 10 一月 2023 16:34:08 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/service/all/BaseUploadService.java | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/lf/server/service/all/BaseUploadService.java b/src/main/java/com/lf/server/service/all/BaseUploadService.java index e4ce665..a875bfd 100644 --- a/src/main/java/com/lf/server/service/all/BaseUploadService.java +++ b/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); -- Gitblit v1.9.3