From b3935f3e69b442b959e7a2d146696840bbe90685 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Tue, 8 Mar 2022 15:12:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=BA=93-=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BussDocumentLibraryEOServiceImpl.java | 51 +++++++++++++++++-- .../jero/modules/split/common/FileUnZip.java | 36 +++++++++++-- 2 files changed, 79 insertions(+), 8 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 8731bb640..b047caca6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -2283,6 +2283,31 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl 2){ + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + return "压缩包中必须有且仅有一个文件夹,请重新上传"; + } + File fileNew = new File(zipEntryName); + List fileList = new ArrayList<>(); + for (File file1 : fileNew.listFiles()) { + if(file1.getName().contains(".xls") || file1.getName().contains(".xlsx")){ + fileList.add(file1); + } + } + if(fileList.size() ==0 ){ + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + return "压缩包根目录下没有excel作为导入数据,请重新上传"; + }else if(fileList.size() > 1){ + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); + return "压缩包根目录下仅能存在一个excel为导入数据,请重新上传"; + } + // 数据相关处理, // 1.获取其中的Excel, List excelfilelist = FileUnZip.readImpExcelFile(zipEntryName); @@ -2367,6 +2392,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl> addForm = getAddForm(ModuleEnum.DOCUMENT_LIBRARY.getValue(), "cn", "add"); result = exportDatas(dataList, addForm, categoryList, dictItemList, zipEntryName); + //删除原上传文件 + FileUnZip.deleteDir(saveDirectory); return result; } @@ -2382,8 +2409,9 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl itemNameList = dictItemList.stream().map(SysDictItem::getItemText).collect(Collectors.toList()); int i = 2; List msgList = new ArrayList<>(); - Map mapResult = new HashMap<>(); + List> mapList = new ArrayList<>(); for (Map stringStringMap : dataList) { + Map mapResult = new HashMap<>(); i++; for (Map.Entry entry : stringStringMap.entrySet()) { int countError = 0; //记录失败数据数量 @@ -2450,7 +2478,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl collect = dictItemList.stream().filter(e -> e.getItemText().equals(valueTemp)).collect(Collectors.toList()); - valueId += collect.get(0).getItemValue(); + valueId += collect.get(0).getItemValue() + ","; } } - value = valueId; + value = valueId.substring(0,valueId.length()-1); } @@ -2542,6 +2570,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl nowFileList = FileUnZip.readFileByFilename(zipEntryName, fileName); if (nowFileList.size() == 0) { @@ -2554,11 +2583,18 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl 0) { //返回报错信息 @@ -2604,7 +2641,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl map : mapList) { + this.addInfo(map); + } + } } return "数据导入成功"; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/common/FileUnZip.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/common/FileUnZip.java index bf01fb74b..b74ecdecf 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/common/FileUnZip.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/common/FileUnZip.java @@ -113,21 +113,51 @@ public class FileUnZip { * @param filename */ public static List readFileByFilename(String path,String filename) { + if(filename.contains("/")){ + filename = filename.split("/")[1]; + } List resultlist = new ArrayList<>(); if (StringUtil.isNotEmpty(path)){ File file = new File(path); if (file.isDirectory()) { File[] files = file.listFiles(); for (File fi : files) { - // 对文件进行过滤 - if (fi.getName().equals(filename)) { - resultlist.add(fi); + if(fi.isDirectory()){ + File[] filesTemp = fi.listFiles(); + for (File fileTemp : filesTemp) { + // 对文件进行过滤 + if (fileTemp.getName().equals(filename)) { + resultlist.add(fileTemp); + } + } + }else{ + // 对文件进行过滤 + if (fi.getName().equals(filename)) { + resultlist.add(fi); + } } + } } } return resultlist; } +// public static List readFileByFilename(String path,String filename) { +// List resultlist = new ArrayList<>(); +// if (StringUtil.isNotEmpty(path)){ +// File file = new File(path); +// if (file.isDirectory()) { +// File[] files = file.listFiles(); +// for (File fi : files) { +// // 对文件进行过滤 +// if (fi.getName().equals(filename)) { +// resultlist.add(fi); +// } +// } +// } +// } +// return resultlist; +// } /** *@Description: 删除某个文件