data/db_cx.sql | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/controller/data/MetaController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/controller/show/DataLibController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/data/DownloadService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/data/MetaService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/show/ApplyService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/show/DataLibService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
data/db_cx.sql
@@ -37,6 +37,9 @@ ---------------------------------------------------------------------------------------------- SY1.煤层54表 -- drop table public.coal54; create table if not exists public.coal54 ( src/main/java/com/lf/server/controller/data/MetaController.java
@@ -436,13 +436,8 @@ return fail("密码不符合要求"); } List<MetaEntity> list = metaService.selectMetaFiles(dr.getIds()); if (null == list || list.isEmpty()) { return fail("没有找到元数据"); } UserEntity ue = tokenService.getCurrentUser(req); String guid = downloadService.zipFiles(ue, list, dr.getPwd()); String guid = metaService.downloadMeteReq(ue, dr); return success(guid); } catch (Exception ex) { src/main/java/com/lf/server/controller/show/DataLibController.java
@@ -165,28 +165,23 @@ }) @ResponseBody @PostMapping(value = "/downloadReq") public ResponseMsg<Object> downloadReq(@RequestBody DownloadReqEntity reqEntity, HttpServletRequest req, HttpServletResponse res) { public ResponseMsg<Object> downloadReq(@RequestBody DownloadReqEntity dr, HttpServletRequest req, HttpServletResponse res) { try { if (null == reqEntity || StringHelper.isEmpty(reqEntity.getPwd())) { if (null == dr || StringHelper.isEmpty(dr.getPwd())) { return fail("密码不能为空"); } if (null == reqEntity.getIds() || reqEntity.getIds().isEmpty()) { if (null == dr.getIds() || dr.getIds().isEmpty()) { return fail("请选择要下载的文件"); } if (!DownloadService.decryptPwd(reqEntity)) { if (!DownloadService.decryptPwd(dr)) { return fail("密码解密失败", null); } if (StringHelper.isPwdInvalid(reqEntity.getPwd())) { if (StringHelper.isPwdInvalid(dr.getPwd())) { return fail("密码不符合要求"); } List<MetaEntity> list = metaService.selectMetaFiles(reqEntity.getIds()); if (null == list || list.isEmpty()) { return fail("没有找到元数据"); } UserEntity ue = tokenService.getCurrentUser(req); String guid = downloadService.zipFiles(ue, list, reqEntity.getPwd()); String guid = metaService.downloadMeteReq(ue, dr); return success(guid); } catch (Exception ex) { src/main/java/com/lf/server/service/data/DownloadService.java
@@ -1,29 +1,16 @@ package com.lf.server.service.data; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.lf.server.entity.all.StaticData; import com.lf.server.entity.ctrl.DownloadReqEntity; import com.lf.server.entity.data.DownloadEntity; import com.lf.server.entity.data.MetaEntity; import com.lf.server.entity.show.PipelineEntity; import com.lf.server.entity.sys.AttachEntity; import com.lf.server.entity.sys.MetaDownEntity; import com.lf.server.entity.sys.UserEntity; import com.lf.server.helper.*; import com.lf.server.mapper.all.BasicMapper; import com.lf.server.mapper.data.DownloadMapper; import com.lf.server.service.all.BaseQueryService; import com.lf.server.service.sys.MetaDownService; import net.lingala.zip4j.ZipFile; import net.lingala.zip4j.model.FileHeader; import net.lingala.zip4j.model.ZipParameters; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.File; import java.io.FileInputStream; import java.util.*; /** @@ -37,9 +24,6 @@ @Autowired DownloadMapper downloadMapper; @Autowired MetaDownService metaDownService; private final static Log log = LogFactory.getLog(DownloadService.class); @@ -183,326 +167,5 @@ log.error(ex.getMessage(), ex); return null; } } /** * 打包文件 * * @param ue 用户实体 * @param list 元数据文件集合 * @param pwd 密码 * @return 下载文件GUID */ public String zipFiles(UserEntity ue, List<MetaEntity> list, String pwd) throws Exception { Map<String, List<String>> tabs = getTabs(list); rmRepeatMetas(list); Map<String, List<?>> dataMap = new HashMap<>(2); Map<String, List<AttachEntity>> annexMap = new HashMap<>(2); queryData(tabs, dataMap, annexMap); String tempName = StringHelper.YMDHMS2_FORMAT.format(new Date()); String tempPath = pathHelper.getTempPath(tempName); String gdbPath = tempPath + File.separator + "tabs.gdb"; File gdbFile = new File(gdbPath); if (gdbFile.exists() && gdbFile.isDirectory()) { FileHelper.deleteDir(gdbPath); } if (dataMap.size() > 0) { GdbHelper.createGdb(gdbPath, dataMap); } String zipFile = pathHelper.getDownloadFullPath() + File.separator + tempName + ".zip"; ZipFile zip = Zip4jHelper.createZipFile(zipFile, pwd); ZipParameters params = Zip4jHelper.getZipParams(true); addMetaFiles(zip, params, list); if (dataMap.size() > 0) { zip.addFolder(new File(gdbPath), params); addAnnex(zip, params, annexMap); } String dbPwd = Md5Helper.reverse(Md5Helper.generate(pwd)); DownloadEntity de = getDownloadEntity(ue, zipFile, dbPwd); int rows = downloadMapper.insert(de); if (de.getId() > 0) { insertMetaDown(ue, list, de); } return rows > 0 ? de.getGuid() : null; } /** * 获取数据表 */ private Map<String, List<String>> getTabs(List<MetaEntity> list) { Map<String, List<String>> tabs = new HashMap<>(2); for (MetaEntity meta : list) { if (StringHelper.isEmpty(meta.getTab()) || meta.getRows() == 0 || StringHelper.isEmpty(meta.getEventid())) { continue; } if (!tabs.containsKey(meta.getTab())) { tabs.put(meta.getTab(), new ArrayList<>()); } List<String> ids = tabs.get(meta.getTab()); if (!ids.contains(meta.getEventid())) { ids.add(meta.getEventid()); } } return tabs; } /** * 移除重复的元数据文件 */ private void rmRepeatMetas(List<MetaEntity> list) { List<String> guidList = new ArrayList<>(); int i = 0; while (i < list.size()) { MetaEntity entity = list.get(i); if (guidList.contains(entity.getGuid())) { list.remove(i); continue; } guidList.add(entity.getGuid()); i++; } } /** * 查询数据 */ private void queryData(Map<String, List<String>> tabs, Map<String, List<?>> dataMap, Map<String, List<AttachEntity>> annexMap) { for (String tab : tabs.keySet()) { try { String entity = tab.toLowerCase().replace("_", "").split("\\.")[1]; BasicMapper baseMapper = ClassHelper.getBasicMapper(entity); if (null == baseMapper) { continue; } QueryWrapper wrapper = createQueryWrapper(baseMapper, tabs.get(tab)); addData(entity, baseMapper, wrapper, dataMap, annexMap); } catch (Exception ex) { log.error(ex.getMessage(), ex); } } } /** * 添加数据 */ public void addData(String entity, BasicMapper baseMapper, QueryWrapper wrapper, Map<String, List<?>> dataMap, Map<String, List<AttachEntity>> annexMap) { List list = baseMapper.selectList(wrapper); if (null == list || list.size() == 0) { return; } if (!dataMap.containsKey(entity)) { dataMap.put(entity, list); } else { dataMap.get(entity).addAll(list); } if (wrapper.isEmptyOfWhere()) { wrapper.apply("1 = 1"); } if (StaticData.BBOREHOLE.equals(entity)) { wrapper.last("limit 100"); } String tab = BaseQueryService.getTabName(baseMapper); List<AttachEntity> annex = baseMapper.selectAnnex(tab, wrapper); if (null == annex || annex.isEmpty()) { return; } if (!annexMap.containsKey(entity)) { annexMap.put(tab.replace(StaticData.POINT, "_"), annex); } else { annexMap.get(tab.replace(StaticData.POINT, "_")).addAll(annex); } } /** * 创建查询包装器 */ private <T> QueryWrapper<T> createQueryWrapper(BasicMapper baseMapper, List<String> ids) { for (int i = 0, c = ids.size(); i < c; i++) { ids.set(i, "'" + ids.get(i) + "'"); } String filter = String.format("parentid in (%s)", StringHelper.join(ids, ",")); QueryWrapper<T> wrapper = new QueryWrapper<T>(); wrapper.apply(filter); return wrapper; } /** * 添加附件 */ public void addAnnex(ZipFile zip, ZipParameters params, Map<String, List<AttachEntity>> annexMap) { List<String> files = new ArrayList<>(); String uploadPath = pathHelper.getConfig().getUploadPath(); for (String key : annexMap.keySet()) { for (AttachEntity ae : annexMap.get(key)) { try { File srcFile = new File(uploadPath + File.separator + ae.getPath()); if (!srcFile.exists() || srcFile.isDirectory()) { continue; } if (files.contains(srcFile.getPath())) { continue; } files.add(srcFile.getPath()); params.setFileNameInZip("annex" + File.separator + key + File.separator + ae.getName()); zip.addStream(new FileInputStream(srcFile), params); } catch (Exception ex) { log.error(ex.getMessage(), ex); } } } } /** * 添加元数据文件至Zip包 */ private void addMetaFiles(ZipFile zip, ZipParameters params, List<MetaEntity> list) { List<String> names = new ArrayList<>(); String uploadPath = pathHelper.getConfig().getUploadPath(); for (MetaEntity mf : list) { if (names.contains(mf.getName())) { mf.setName(mf.getId() + "_" + mf.getName()); } else { names.add(mf.getName()); } try { switch ("." + mf.getType()) { case StaticData.MPT: addMultiFile(uploadPath, mf, zip, params, StaticData.MPT_EXT); break; case StaticData.IMG: addMultiFile(uploadPath, mf, zip, params, StaticData.IMG_EXT); break; case StaticData.TIF: addMultiFile(uploadPath, mf, zip, params, StaticData.TIF_EXT); break; case StaticData.TIFF: addMultiFile(uploadPath, mf, zip, params, StaticData.TIFF_EXT); break; case StaticData.SHP: addMultiFile(uploadPath, mf, zip, params, StaticData.SHP_EXT); break; case StaticData.GDB: addFolderFile(uploadPath, mf, zip, params); break; default: addSingleFile(uploadPath, mf, zip, params); break; } } catch (Exception ex) { log.error(ex.getMessage(), ex); } } } /** * 添加目录文件 */ private void addFolderFile(String uploadPath, MetaEntity mf, ZipFile zip, ZipParameters params) throws Exception { File file = new File(uploadPath + File.separator + mf.getPath()); if (!file.exists() || !file.isDirectory()) { return; } zip.addFolder(file, params); String fileName = FileHelper.getFileName(file.getPath()); FileHeader header = zip.getFileHeader(fileName); if (null != header) { zip.renameFile(header, mf.getName()); } } /** * 添加多文件 */ private void addMultiFile(String uploadPath, MetaEntity mf, ZipFile zip, ZipParameters params, List<String> extList) throws Exception { addSingleFile(uploadPath, mf, zip, params); for (String ext : extList) { File file = new File(uploadPath + File.separator + mf.getPath().replace("." + mf.getType(), ext)); if (!file.exists() || file.isDirectory()) { continue; } zip.addFile(file, params); String fileName = FileHelper.getFileName(file.getPath()); FileHeader header = zip.getFileHeader(fileName); if (null != header) { zip.renameFile(header, mf.getName().replace("." + mf.getType(), ext)); } } } /** * 添加单文件 */ private void addSingleFile(String uploadPath, MetaEntity mf, ZipFile zip, ZipParameters params) throws Exception { File file = new File(uploadPath + File.separator + mf.getPath()); if (!file.exists() || file.isDirectory()) { return; } zip.addFile(file, params); String fileName = FileHelper.getFileName(file.getPath()); FileHeader header = zip.getFileHeader(fileName); if (null != header) { zip.renameFile(header, mf.getName()); } } /** * 获取下载实体类 */ private DownloadEntity getDownloadEntity(UserEntity ue, String file, String pwd) { DownloadEntity de = new DownloadEntity(); de.setName(FileHelper.getFileName(file)); // 1-Shp文件,2-专题图,3-元数据,4-业务数据,5-管道分析,6-统计报告 de.setType(3); de.setSizes(FileHelper.sizeToMb(new File(file).length())); de.setDepid(ue.getDepid()); de.setDcount(0); de.setPwd(pwd); de.setUrl(FileHelper.getRelativePath(file)); de.setDescr("元数据文件"); de.setGuid(FileHelper.getFileMd5(file)); de.setCreateUser(ue.getId()); // de.setGeom(null) return de; } /** * 插入元数据-下载表 */ private void insertMetaDown(UserEntity ue, List<MetaEntity> metas, DownloadEntity de) { List<MetaDownEntity> list = new ArrayList<>(); for (MetaEntity me : metas) { MetaDownEntity md = new MetaDownEntity(); md.setMetaid(me.getId()); md.setDownid(de.getId()); md.setCreateUser(ue.getId()); list.add(md); } metaDownService.inserts(list); } } src/main/java/com/lf/server/service/data/MetaService.java
@@ -1,13 +1,21 @@ package com.lf.server.service.data; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.lf.server.entity.all.StaticData; import com.lf.server.entity.ctrl.DownloadReqEntity; import com.lf.server.entity.data.DownloadEntity; import com.lf.server.entity.data.MetaEntity; import com.lf.server.entity.sys.AttachEntity; import com.lf.server.entity.sys.MetaDownEntity; import com.lf.server.entity.sys.UserEntity; import com.lf.server.helper.PathHelper; import com.lf.server.helper.StringHelper; import com.lf.server.helper.WebHelper; import com.lf.server.helper.*; import com.lf.server.mapper.all.BasicMapper; import com.lf.server.mapper.data.MetaMapper; import com.lf.server.service.all.BaseQueryService; import com.lf.server.service.sys.MetaDownService; import net.lingala.zip4j.ZipFile; import net.lingala.zip4j.model.FileHeader; import net.lingala.zip4j.model.ZipParameters; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,9 +23,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.io.FileInputStream; import java.util.*; /** * 元数据 @@ -30,6 +37,12 @@ @Autowired MetaMapper metaMapper; @Autowired MetaDownService metaDownService; @Autowired DownloadService downloadService; private final static Log log = LogFactory.getLog(MetaService.class); @@ -132,15 +145,6 @@ depcode = StringHelper.getRightLike(depcode); return metaMapper.selectMetaOverflowDep(ids, depcode); } /** * 查询元数据中溢出的单位ID */ public List<String> selectMetaOverflowDep(UserEntity ue, DownloadReqEntity dr) { String ids = StringHelper.join(dr.getIds(), ","); return selectMetaOverflowDep(ids, ue.getDepcode()); } @Override @@ -283,4 +287,346 @@ log.error(ex.getMessage(), ex); } } /** * 查询元数据中溢出的单位ID */ public List<String> selectMetaOverflowDep(UserEntity ue, DownloadReqEntity dr) { String ids = StringHelper.join(dr.getIds(), ","); return selectMetaOverflowDep(ids, ue.getDepcode()); } /** * 请求元数据下载 */ public String downloadMeteReq(UserEntity ue, DownloadReqEntity dr) throws Exception { List<MetaEntity> list = selectMetaFiles(dr.getIds()); if (null == list || list.isEmpty()) { return null; } return zipFiles(ue, list, dr.getPwd()); } /** * 打包文件 * * @param ue 用户实体 * @param list 元数据文件集合 * @param pwd 密码 * @return 下载文件GUID */ public String zipFiles(UserEntity ue, List<MetaEntity> list, String pwd) throws Exception { Map<String, List<String>> tabs = getTabs(list); rmRepeatMetas(list); Map<String, List<?>> dataMap = new HashMap<>(2); Map<String, List<AttachEntity>> annexMap = new HashMap<>(2); queryData(tabs, dataMap, annexMap); String tempName = StringHelper.YMDHMS2_FORMAT.format(new Date()); String tempPath = pathHelper.getTempPath(tempName); String gdbPath = tempPath + File.separator + "tabs.gdb"; File gdbFile = new File(gdbPath); if (gdbFile.exists() && gdbFile.isDirectory()) { FileHelper.deleteDir(gdbPath); } if (dataMap.size() > 0) { GdbHelper.createGdb(gdbPath, dataMap); } String zipFile = pathHelper.getDownloadFullPath() + File.separator + tempName + ".zip"; ZipFile zip = Zip4jHelper.createZipFile(zipFile, pwd); ZipParameters params = Zip4jHelper.getZipParams(true); addMetaFiles(zip, params, list); if (dataMap.size() > 0) { zip.addFolder(new File(gdbPath), params); addAnnex(zip, params, annexMap); } String dbPwd = Md5Helper.reverse(Md5Helper.generate(pwd)); DownloadEntity de = getDownloadEntity(ue, zipFile, dbPwd); int rows = downloadService.insert(de); if (de.getId() > 0) { insertMetaDown(ue, list, de); } return rows > 0 ? de.getGuid() : null; } /** * 获取数据表 */ private Map<String, List<String>> getTabs(List<MetaEntity> list) { Map<String, List<String>> tabs = new HashMap<>(2); for (MetaEntity meta : list) { if (StringHelper.isEmpty(meta.getTab()) || meta.getRows() == 0 || StringHelper.isEmpty(meta.getEventid())) { continue; } if (!tabs.containsKey(meta.getTab())) { tabs.put(meta.getTab(), new ArrayList<>()); } List<String> ids = tabs.get(meta.getTab()); if (!ids.contains(meta.getEventid())) { ids.add(meta.getEventid()); } } return tabs; } /** * 移除重复的元数据文件 */ private void rmRepeatMetas(List<MetaEntity> list) { List<String> guidList = new ArrayList<>(); int i = 0; while (i < list.size()) { MetaEntity entity = list.get(i); if (guidList.contains(entity.getGuid())) { list.remove(i); continue; } guidList.add(entity.getGuid()); i++; } } /** * 查询数据 */ private void queryData(Map<String, List<String>> tabs, Map<String, List<?>> dataMap, Map<String, List<AttachEntity>> annexMap) { for (String tab : tabs.keySet()) { try { String entity = tab.toLowerCase().replace("_", "").split("\\.")[1]; BasicMapper baseMapper = ClassHelper.getBasicMapper(entity); if (null == baseMapper) { continue; } QueryWrapper wrapper = createQueryWrapper(baseMapper, tabs.get(tab)); addData(entity, baseMapper, wrapper, dataMap, annexMap); } catch (Exception ex) { log.error(ex.getMessage(), ex); } } } /** * 添加数据 */ public void addData(String entity, BasicMapper baseMapper, QueryWrapper wrapper, Map<String, List<?>> dataMap, Map<String, List<AttachEntity>> annexMap) { List list = baseMapper.selectList(wrapper); if (null == list || list.size() == 0) { return; } if (!dataMap.containsKey(entity)) { dataMap.put(entity, list); } else { dataMap.get(entity).addAll(list); } if (wrapper.isEmptyOfWhere()) { wrapper.apply("1 = 1"); } if (StaticData.BBOREHOLE.equals(entity)) { wrapper.last("limit 100"); } String tab = BaseQueryService.getTabName(baseMapper); List<AttachEntity> annex = baseMapper.selectAnnex(tab, wrapper); if (null == annex || annex.isEmpty()) { return; } if (!annexMap.containsKey(entity)) { annexMap.put(tab.replace(StaticData.POINT, "_"), annex); } else { annexMap.get(tab.replace(StaticData.POINT, "_")).addAll(annex); } } /** * 创建查询包装器 */ private <T> QueryWrapper<T> createQueryWrapper(BasicMapper baseMapper, List<String> ids) { for (int i = 0, c = ids.size(); i < c; i++) { ids.set(i, "'" + ids.get(i) + "'"); } String filter = String.format("parentid in (%s)", StringHelper.join(ids, ",")); QueryWrapper<T> wrapper = new QueryWrapper<T>(); wrapper.apply(filter); return wrapper; } /** * 添加附件 */ public void addAnnex(ZipFile zip, ZipParameters params, Map<String, List<AttachEntity>> annexMap) { List<String> files = new ArrayList<>(); String uploadPath = pathHelper.getConfig().getUploadPath(); for (String key : annexMap.keySet()) { for (AttachEntity ae : annexMap.get(key)) { try { File srcFile = new File(uploadPath + File.separator + ae.getPath()); if (!srcFile.exists() || srcFile.isDirectory()) { continue; } if (files.contains(srcFile.getPath())) { continue; } files.add(srcFile.getPath()); params.setFileNameInZip("annex" + File.separator + key + File.separator + ae.getName()); zip.addStream(new FileInputStream(srcFile), params); } catch (Exception ex) { log.error(ex.getMessage(), ex); } } } } /** * 添加元数据文件至Zip包 */ private void addMetaFiles(ZipFile zip, ZipParameters params, List<MetaEntity> list) { List<String> names = new ArrayList<>(); String uploadPath = pathHelper.getConfig().getUploadPath(); for (MetaEntity mf : list) { if (names.contains(mf.getName())) { mf.setName(mf.getId() + "_" + mf.getName()); } else { names.add(mf.getName()); } try { switch ("." + mf.getType()) { case StaticData.MPT: addMultiFile(uploadPath, mf, zip, params, StaticData.MPT_EXT); break; case StaticData.IMG: addMultiFile(uploadPath, mf, zip, params, StaticData.IMG_EXT); break; case StaticData.TIF: addMultiFile(uploadPath, mf, zip, params, StaticData.TIF_EXT); break; case StaticData.TIFF: addMultiFile(uploadPath, mf, zip, params, StaticData.TIFF_EXT); break; case StaticData.SHP: addMultiFile(uploadPath, mf, zip, params, StaticData.SHP_EXT); break; case StaticData.GDB: addFolderFile(uploadPath, mf, zip, params); break; default: addSingleFile(uploadPath, mf, zip, params); break; } } catch (Exception ex) { log.error(ex.getMessage(), ex); } } } /** * 添加目录文件 */ private void addFolderFile(String uploadPath, MetaEntity mf, ZipFile zip, ZipParameters params) throws Exception { File file = new File(uploadPath + File.separator + mf.getPath()); if (!file.exists() || !file.isDirectory()) { return; } zip.addFolder(file, params); String fileName = FileHelper.getFileName(file.getPath()); FileHeader header = zip.getFileHeader(fileName); if (null != header) { zip.renameFile(header, mf.getName()); } } /** * 添加多文件 */ private void addMultiFile(String uploadPath, MetaEntity mf, ZipFile zip, ZipParameters params, List<String> extList) throws Exception { addSingleFile(uploadPath, mf, zip, params); for (String ext : extList) { File file = new File(uploadPath + File.separator + mf.getPath().replace("." + mf.getType(), ext)); if (!file.exists() || file.isDirectory()) { continue; } zip.addFile(file, params); String fileName = FileHelper.getFileName(file.getPath()); FileHeader header = zip.getFileHeader(fileName); if (null != header) { zip.renameFile(header, mf.getName().replace("." + mf.getType(), ext)); } } } /** * 添加单文件 */ private void addSingleFile(String uploadPath, MetaEntity mf, ZipFile zip, ZipParameters params) throws Exception { File file = new File(uploadPath + File.separator + mf.getPath()); if (!file.exists() || file.isDirectory()) { return; } zip.addFile(file, params); String fileName = FileHelper.getFileName(file.getPath()); FileHeader header = zip.getFileHeader(fileName); if (null != header) { zip.renameFile(header, mf.getName()); } } /** * 获取下载实体类 */ private DownloadEntity getDownloadEntity(UserEntity ue, String file, String pwd) { DownloadEntity de = new DownloadEntity(); de.setName(FileHelper.getFileName(file)); // 1-Shp文件,2-专题图,3-元数据,4-业务数据,5-管道分析,6-统计报告 de.setType(3); de.setSizes(FileHelper.sizeToMb(new File(file).length())); de.setDepid(ue.getDepid()); de.setDcount(0); de.setPwd(pwd); de.setUrl(FileHelper.getRelativePath(file)); de.setDescr("元数据文件"); de.setGuid(FileHelper.getFileMd5(file)); de.setCreateUser(ue.getId()); // de.setGeom(null) return de; } /** * 插入元数据-下载表 */ private void insertMetaDown(UserEntity ue, List<MetaEntity> metas, DownloadEntity de) { List<MetaDownEntity> list = new ArrayList<>(); for (MetaEntity me : metas) { MetaDownEntity md = new MetaDownEntity(); md.setMetaid(me.getId()); md.setDownid(de.getId()); md.setCreateUser(ue.getId()); list.add(md); } metaDownService.inserts(list); } } src/main/java/com/lf/server/service/show/ApplyService.java
@@ -8,6 +8,7 @@ import com.lf.server.helper.AesHelper; import com.lf.server.helper.StringHelper; import com.lf.server.mapper.show.ApplyMapper; import com.lf.server.service.data.DownloadService; import com.lf.server.service.sys.UserService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -36,6 +37,9 @@ @Autowired DataLibService dataLibService; @Autowired DownloadService downloadService; private final static Log log = LogFactory.getLog(ApplyService.class); @@ -216,8 +220,8 @@ dr.setIds(getIds(entity)); dr.setFilter(entity.getFilters()); String guid = dataLibService.downloadDbReq(ue, dr); if (!StringHelper.isEmpty(guid)){ String guid = "sysmeta".equals(entity.getEntities()) ? "" : dataLibService.downloadDbReq(ue, dr); if (!StringHelper.isEmpty(guid)) { entity.setGuid(guid); update(entity); } src/main/java/com/lf/server/service/show/DataLibService.java
@@ -11,6 +11,7 @@ import com.lf.server.mapper.data.DownloadMapper; import com.lf.server.service.all.BaseQueryService; import com.lf.server.service.data.DownloadService; import com.lf.server.service.data.MetaService; import net.lingala.zip4j.ZipFile; import net.lingala.zip4j.model.ZipParameters; import org.apache.commons.logging.Log; @@ -31,10 +32,10 @@ PathHelper pathHelper; @Autowired DownloadMapper downloadMapper; MetaService metaService; @Autowired DownloadService downloadService; DownloadMapper downloadMapper; @Autowired BaseQueryService baseQueryService; @@ -164,7 +165,7 @@ ZipParameters params = Zip4jHelper.getZipParams(true); zip.addFolder(new File(gdbPath), params); // zip.addFolder(new File(annexPath), params) downloadService.addAnnex(zip, params, annexMap); metaService.addAnnex(zip, params, annexMap); String dbPwd = Md5Helper.reverse(Md5Helper.generate(dr.getPwd())); DownloadEntity de = getDownloadEntity(ue, zipFile, dbPwd); @@ -185,7 +186,7 @@ } QueryWrapper wrapper = createQueryWrapper(baseMapper, dr); downloadService.addData(entity, baseMapper, wrapper, dataMap, annexMap); metaService.addData(entity, baseMapper, wrapper, dataMap, annexMap); } catch (Exception ex) { log.error(ex.getMessage(), ex); }