From ed8c7a5effd0d423ce1118b680ecdca6fe732609 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 02 七月 2025 16:43:13 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.11.205:9000/r/P2022036_Service --- src/main/java/com/lf/server/service/data/MetaService.java | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 101 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/lf/server/service/data/MetaService.java b/src/main/java/com/lf/server/service/data/MetaService.java index 79e98d8..3b81ffc 100644 --- a/src/main/java/com/lf/server/service/data/MetaService.java +++ b/src/main/java/com/lf/server/service/data/MetaService.java @@ -66,6 +66,11 @@ } @Override + public List<MetaEntity> selectGdbByGuid(String guid) { + return metaMapper.selectGdbByGuid(guid); + } + + @Override public Integer selectMetasForCount(String depcode, String dirs, String name) { depcode = StringHelper.getRightLike(depcode); name = StringHelper.getLikeUpperStr(name); @@ -115,13 +120,18 @@ } @Override - public MetaEntity selectByGuid(String guid, String tab) { - return metaMapper.selectByGuid(guid, tab); + public MetaEntity selectByGuid(String guid, String dircode, String tab) { + return metaMapper.selectByGuid(guid, dircode, tab); } @Override public List<MetaEntity> selectByIdsForTab(String ids) { return metaMapper.selectByIdsForTab(ids); + } + + @Override + public List<MetaEntity> selectByIds(String ids) { + return metaMapper.selectByIds(ids); } @Override @@ -146,6 +156,11 @@ depcode = StringHelper.getRightLike(depcode); return metaMapper.selectMetaOverflowDep(ids, depcode); + } + + @Override + public Integer selectCountByPath(String path) { + return metaMapper.selectCountByPath(path); } @Override @@ -178,14 +193,18 @@ */ public Integer deletes(List<Integer> list) { String ids = StringHelper.join(list, ","); + List<MetaEntity> metas = selectByIds(ids); String sql = null; - List<MetaEntity> metas = selectByIdsForTab(ids); - if (null != metas && metas.size() > 0) { - sql = getDelTabsSql(metas); + List<MetaEntity> tabMetas = selectByIdsForTab(ids); + if (null != tabMetas && tabMetas.size() > 0) { + sql = getDelTabsSql(tabMetas); } - return deletes(sql, ids); + int rows = deletes(sql, ids); + deleteMetaFiles(metas); + + return rows; } /** @@ -239,6 +258,9 @@ if (str.contains("bs.s_explorationpoint ")) { list.add(str.replace("bs.s_explorationpoint ", "bs.s_surveyworksite ")); } + if (str.contains("bs.m_surface_deformation_data ")) { + list.add(str.replace("bs.m_surface_deformation_data ", "bs.m_surface_deformation_data_date ")); + } i++; } @@ -261,6 +283,75 @@ } /** + * 鍒犻櫎鍏冩暟鎹枃浠� + */ + private void deleteMetaFiles(List<MetaEntity> metas) { + String uploadPath = pathHelper.getConfig().getUploadPath(); + for (MetaEntity meta : metas) { + if (StringHelper.isEmpty(meta.getPath())) { + continue; + } + Integer rows = selectCountByPath(meta.getPath()); + if (rows > 0) { + continue; + } + + try { + String file = uploadPath + File.separator + meta.getPath(); + switch ("." + meta.getType()) { + case StaticData.MPT: + deleteFiles(file, meta.getType(), StaticData.MPT_EXT); + break; + case StaticData.JPG: + deleteFiles(file, meta.getType(), StaticData.JPG_EXT); + break; + case StaticData.IMG: + deleteFiles(file, meta.getType(), StaticData.IMG_EXT); + break; + case StaticData.TIF: + deleteFiles(file, meta.getType(), StaticData.TIF_EXT); + break; + case StaticData.TIFF: + deleteFiles(file, meta.getType(), StaticData.TIFF_EXT); + break; + case StaticData.SHP: + deleteFiles(file, meta.getType(), StaticData.SHP_EXT); + break; + case StaticData.GDB: + case StaticData.OSGB: + FileHelper.deleteDir(file); + break; + default: + deleteFiles(file, meta.getType(), null); + break; + } + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } + } + + /** + * 鍒犻櫎澶氫釜鏂囦欢 + */ + private void deleteFiles(String file, String type, List<String> extList) { + File f = new File(file); + if (f.exists() && !f.isDirectory()) { + f.delete(); + } + if (null == extList || extList.isEmpty()) { + return; + } + + for (String ext : extList) { + f = new File(file.replace("." + type, ext)); + if (f.exists() && !f.isDirectory()) { + f.delete(); + } + } + } + + /** * 鏌ョ湅鏂囦欢 */ public void downloadForView(String guid, boolean inline, HttpServletResponse res) { @@ -270,7 +361,7 @@ return; } - MetaEntity me = selectByGuid(guid, null); + MetaEntity me = selectByGuid(guid, null, null); if (me == null) { WebHelper.writeStr2Page(res, StaticData.NO_FILE); return; @@ -511,6 +602,7 @@ break; case StaticData.JPG: addMultiFile(uploadPath, mf, zip, params, StaticData.JPG_EXT); + break; case StaticData.IMG: addMultiFile(uploadPath, mf, zip, params, StaticData.IMG_EXT); break; @@ -524,6 +616,8 @@ addMultiFile(uploadPath, mf, zip, params, StaticData.SHP_EXT); break; case StaticData.GDB: + continue; + case StaticData.OSGB: addFolderFile(uploadPath, mf, zip, params); break; default: -- Gitblit v1.9.3