From d8f6b1ad0c2b7897b68da08a74c5705041a4c07c Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 22 十一月 2022 19:50:00 +0800 Subject: [PATCH] 重新入库逻辑 --- src/main/java/com/lf/server/service/data/DataLoaderService.java | 243 +++++++++++++++++++++++------------------------- 1 files changed, 118 insertions(+), 125 deletions(-) diff --git a/src/main/java/com/lf/server/service/data/DataLoaderService.java b/src/main/java/com/lf/server/service/data/DataLoaderService.java index 3461435..c0af34d 100644 --- a/src/main/java/com/lf/server/service/data/DataLoaderService.java +++ b/src/main/java/com/lf/server/service/data/DataLoaderService.java @@ -208,42 +208,72 @@ /** * 鎻掑叆鏂囦欢 */ - public void insertFiles(MetaEntity entity, List<MetaFileEntity> list, List<TabMapperEntity> tabs) { + public void insertFiles(MetaEntity entity, List<MetaFileEntity> list, List<TabMapperEntity> tabList) { try { String temp = pathHelper.getConfig().getTempPath(); String full = pathHelper.getUploadFullPath(); String root = pathHelper.getConfig().getUploadPath(); for (MetaFileEntity mf : list) { - String filePath = getFilePath(temp, full, mf); - if (null == filePath) { + File file = new File(temp + File.separator + mf.getPath()); + File newFile = new File(root + File.separator + mf.getGuid()); + + String type = getType(mf.getName().toLowerCase()); + if (null == type) { + file.delete(); continue; } - // 鍏冩暟鎹� - MetaEntity me = createMetaEntity(entity, mf); - if (metaService.insert(me) < 1) { + // 鑾峰彇琛ㄦ槧灏� + List<TabMapperEntity> tabs = getTabs(mf, tabList); + if (tabs.isEmpty()) { + file.delete(); continue; } - // 鍏冩暟鎹枃浠� - MetaFileEntity mfe = createMetaFileEntity(me, mf, filePath); - if (metaFileService.insert(mfe) < 1) { - continue; + MetaFileEntity old = metaFileService.selectByGuid(mf.getGuid()); + String filePath = null == old ? newFile.getPath() : old.getPath(); + + int count = 0; + for (TabMapperEntity tab : tabs) { + if (null == tab || StringHelper.isEmpty(tab.getEntity())) { + return; + } + switch (type) { + case "shp": + case "gdb": + case "mdb": + insertDb(type, temp, mf, tab); + break; + // case "xls": + default: + insertXls(temp, mf, tab); + break; + } + int rows = tab.getRows(); + if (rows == 0) { + continue; + } + + MetaEntity me = createMetaEntity(entity, mf); + // me.setTab,me.setRow + if (metaService.insert(me) == 0) { + continue; + } + + MetaFileEntity mfe = createMetaFileEntity(me, mf, filePath); + if (metaFileService.insert(mfe) == 0) { + metaService.delete(me.getId()); + continue; + } + + count += rows; } - // 鍏ュ簱 - switch (me.getType()) { - case "xls": - insertXls(root, mfe, tabs); - break; - case "shp": - case "gdb": - case "mdb": - insertDb(me.getType(), temp, mfe, tabs); - break; - default: - break; + if (count == 0 || null != old) { + file.delete(); + } else { + file.renameTo(newFile); } } } catch (Exception ex) { @@ -252,32 +282,39 @@ } /** - * 鑾峰彇鏂囦欢璺緞 + * 鑾峰彇 Tabs */ - private String getFilePath(String temp, String root, MetaFileEntity mf) { - // 绉诲姩鏂囦欢 - File file = new File(temp + File.separator + mf.getPath()); - File newFile = new File(root + File.separator + mf.getGuid()); + private List<TabMapperEntity> getTabs(MetaFileEntity mfe, List<TabMapperEntity> tabs) { + List<TabMapperEntity> list = new ArrayList<>(); + for (TabMapperEntity tab : tabs) { + if (!tab.getFileName().equals(mfe.getName()) || StringHelper.isEmpty(tab.getEntity())) { + continue; + } - // 鏂囦欢绫诲瀷 - String metaType = getType(mf.getName().toLowerCase()); - if (null == metaType) { - file.delete(); - return null; + list.add(tab); } - MetaFileEntity old = metaFileService.selectByGuid(mf.getGuid()); + return list; + } - String filePath = null; - if (null == old) { - filePath = newFile.getPath(); - file.renameTo(newFile); - } else { - filePath = old.getPath(); - file.delete(); + /** + * 鑾峰彇鏂囦欢绫诲瀷 + */ + private String getType(String name) { + if (name.contains(XLS)) { + return "xls"; + } + if (name.contains(MDB)) { + return "mdb"; + } + if (name.contains(SHP_ZIP)) { + return "shp"; + } + if (name.contains(GDB_ZIP)) { + return "gdb"; } - return filePath; + return null; } /** @@ -317,34 +354,9 @@ } /** - * 鑾峰彇鏂囦欢绫诲瀷 - */ - private String getType(String name) { - if (name.contains(XLS)) { - return "xls"; - } - if (name.contains(MDB)) { - return "mdb"; - } - if (name.contains(SHP_ZIP)) { - return "shp"; - } - if (name.contains(GDB_ZIP)) { - return "gdb"; - } - - return null; - } - - /** * 鎻掑叆Excel */ - private void insertXls(String root, MetaFileEntity mfe, List<TabMapperEntity> tabs) { - TabMapperEntity tab = getTabEntity(mfe, tabs); - if (null == tab || StringHelper.isEmpty(tab.getEntity())) { - return; - } - + private void insertXls(String root, MetaFileEntity mf, TabMapperEntity tab) { BasicMapper basicMapper = ClassHelper.getBasicMapper(tab.getEntity()); if (null == basicMapper) { return; @@ -356,11 +368,11 @@ return; } - List<?> list = ExcelHelper.readExcel(clazz, root + File.separator + mfe.getPath()); + List<?> list = ExcelHelper.readExcel(clazz, root + File.separator + mf.getPath()); if (list.isEmpty()) { return; } - setCreateInfo(list, mfe); + setCreateInfo(list, mf); int rows = 0; for (int i = 0, c = list.size(); i < c; i++) { @@ -374,31 +386,18 @@ } /** - * 鑾峰彇琛ㄦ槧灏勫疄浣撶被 - */ - private TabMapperEntity getTabEntity(MetaFileEntity mfe, List<TabMapperEntity> tabs) { - for (TabMapperEntity tab : tabs) { - if (tab.getFileName().equals(mfe.getName())) { - return tab; - } - } - - return null; - } - - /** * 璁剧疆鍒涘缓淇℃伅 */ - private <T> void setCreateInfo(List<T> list, MetaFileEntity mfe) { + private <T> void setCreateInfo(List<T> list, MetaFileEntity mf) { try { for (T t : list) { Field cuField = t.getClass().getDeclaredField("createuser"); cuField.setAccessible(true); - cuField.set(t, mfe.getCreateUser()); + cuField.set(t, mf.getCreateUser()); Field ctField = t.getClass().getDeclaredField("createtime"); ctField.setAccessible(true); - ctField.set(t, mfe.getCreateTime()); + ctField.set(t, mf.getCreateTime()); } } catch (Exception ex) { log.error(ex.getMessage(), ex); @@ -434,47 +433,41 @@ /** * 鎻掑叆DB */ - 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; - } - - BasicMapper basicMapper = ClassHelper.getBasicMapper(tab.getEntity()); - if (null == basicMapper) { - continue; - } - - String className = ClassHelper.getClassName(basicMapper); - Class clazz = ClassHelper.getEntityClass(className); - if (null == clazz) { - continue; - } - - 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); - - tab.setRows(rows); + private void insertDb(String type, String root, MetaFileEntity mf, TabMapperEntity tab) { + BasicMapper basicMapper = ClassHelper.getBasicMapper(tab.getEntity()); + if (null == basicMapper) { + return; } + + String className = ClassHelper.getClassName(basicMapper); + Class clazz = ClassHelper.getEntityClass(className); + if (null == clazz) { + return; + } + + 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()) { + return; + } + + setCreateInfo(list, mf); + int rows = basicMapper.insertBatch(list); + + tab.setRows(rows); } /** -- Gitblit v1.9.3