From 49197586a4d4129bf4ebd221b57284f892c73d71 Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Wed, 25 Oct 2023 14:17:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=BC=E5=85=A5=E5=8E=8B?= =?UTF-8?q?=E7=BC=A9=E5=8C=85=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CaseApplicationController.java | 2 +- .../impl/CaseApplicationServiceImpl.java | 82 ++++++++++--------- 2 files changed, 45 insertions(+), 39 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java index e71e446..8512cfa 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java @@ -168,7 +168,7 @@ public class CaseApplicationController extends BaseController { * @param id 案件申请id * @return */ - @PostMapping("/upload") + @PostMapping("/uploadZipFile") public AjaxResult uploadZipFile(@RequestParam("file") MultipartFile file, Long id) { String username = this.getUsername(); Long userId = this.getUserId(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java index 8610118..8b2fd9b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java @@ -272,9 +272,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { if (file.isEmpty()) { return AjaxResult.error("请选择要上传的文件"); } -// String targetPath = "/home/ruoyi/uploadPath/upload/unzipFile"; -// String targetPath = "F:\\testZip\\unzipFile"; - String targetPath = "F:\\testZip\\unzipFile"; + String targetPath = "/home/ruoyi/uploadPath/upload/unzipFile"; +// String targetPath = "F:\\testZip\\uploadPath\\upload\\upload1\\unzipFile"; File zipFile = null; InputStream ins = null; try { @@ -289,8 +288,10 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { //得到解压缩的所有文件 String zipName = file.getOriginalFilename(); - String zipPath = "F:\\testZip\\unzipFile\\"+zipName; -// String zipPath = "/home/ruoyi/uploadPath/upload/unzipFile"+zipName; + String subzipName = zipName.substring(0,zipName.indexOf(".zip")); +// String zipPath = "F:\\testZip\\uploadPath\\upload\\upload1\\unzipFile\\"+subzipName; + String zipPath = "/home/ruoyi/uploadPath/upload/unzipFile/"+subzipName; + File dirUnzipPath = new File(zipPath); List allFiles = new ArrayList<>(); List allFilestr = new ArrayList<>(); @@ -306,25 +307,27 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { if(allFilestr!=null&&allFilestr.size()>0){ for (String filestr : allFilestr) { List allindex = new ArrayList<>(); - int indexKey = filestr.indexOf("\\"); +// int indexKey = filestr.indexOf("\\"); + int indexKey = filestr.indexOf("/"); +// System.out.println("filestr:------------"+filestr); allindex.add(indexKey); while (indexKey != -1) { - indexKey = filestr.indexOf("\\", indexKey + 1); +// indexKey = filestr.indexOf("\\", indexKey + 1); + indexKey = filestr.indexOf("/", indexKey + 1); allindex.add(indexKey); } + if(allindex!=null&&allindex.size()>0){ - String substrOne = filestr.substring(allindex.get(2)+1,allindex.get(3)); + String substrOne = filestr.substring(allindex.get(6)+1,allindex.get(7)); Integer series = null; - for (int i = 0; i < allindex.size()-2; i++) { - String substr = filestr.substring(allindex.get(i+2)+1,allindex.get(i+3)); + for (int i = 0; i < allindex.size()-7; i++) { + String substr = filestr.substring(allindex.get(i+5)+1,allindex.get(i+6)); series = i + 1; - if(series==1){ - //查询这个级数的目录是否存在,若不存在,则新建这个目录 CaseEvidenceDirectory caseEvidenceDirectoryselect = new CaseEvidenceDirectory(); caseEvidenceDirectoryselect.setCaseId(id); - caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(i+2)+1,allindex.get(i+3))); + caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(i+5)+1,allindex.get(i+6))); caseEvidenceDirectoryselect.setSeries(series); List caseEvidenceDirectorys = caseEvidenceDirectoryMapper.selectList(caseEvidenceDirectoryselect); if(caseEvidenceDirectorys!=null&&caseEvidenceDirectorys.size()>0){ @@ -333,19 +336,16 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { CaseEvidenceDirectory caseEvidenceDirectory = new CaseEvidenceDirectory(); caseEvidenceDirectory.setEvidenceName(substr); caseEvidenceDirectory.setSeries(series); - caseEvidenceDirectory.setCaseId(id); caseEvidenceDirectory.setCreateBy(username); caseEvidenceDirectory.setCreateTime(new Date()); - caseEvidenceDirectoryMapper.save(caseEvidenceDirectory); - } }else { //查询这个级数的目录是否存在,若不存在,则新建这个目录 CaseEvidenceDirectory directoryselect = new CaseEvidenceDirectory(); directoryselect.setCaseId(id); - directoryselect.setEvidenceName(filestr.substring(allindex.get(i+2)+1,allindex.get(i+3))); + directoryselect.setEvidenceName(filestr.substring(allindex.get(i+5)+1,allindex.get(i+6))); directoryselect.setSeries(series); List evidenceDirectorys = caseEvidenceDirectoryMapper.selectList(directoryselect); if(evidenceDirectorys!=null&&evidenceDirectorys.size()>0){ @@ -354,7 +354,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { Long parentId = null; CaseEvidenceDirectory caseEvidenceDirectoryselect = new CaseEvidenceDirectory(); caseEvidenceDirectoryselect.setCaseId(id); - caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(i+1)+1,allindex.get(i+2))); + caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(i+4)+1,allindex.get(i+5))); caseEvidenceDirectoryselect.setSeries(series-1); List caseEvidenceDirectorys = caseEvidenceDirectoryMapper.selectList(caseEvidenceDirectoryselect); if(caseEvidenceDirectorys!=null&&caseEvidenceDirectorys.size()>0){ @@ -367,47 +367,54 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseEvidenceDirectory.setCreateBy(username); caseEvidenceDirectory.setCreateTime(new Date()); caseEvidenceDirectory.setCaseId(id); - caseEvidenceDirectory.setParentId(parentId); - caseEvidenceDirectoryMapper.save(caseEvidenceDirectory); - } } } //得到最后1级的目录,即文件 - int lastIndex = allindex.size()-2; + int lastIndex = allindex.get(7); String substrfile = filestr.substring(lastIndex+1); - //保存到附件表 LocalDate now = LocalDate.now(); String year = Integer.toString(now.getYear()); String month = String.format("%02d", now.getMonthValue()); String day = String.format("%02d", now.getDayOfMonth()); -// String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day; - String saveFolderPath = "D:/data/" + year + "/" + month + "/" + day; + String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day; +// String saveFolderPath = "D:/data/" + year + "/" + month + "/" + day; String fileName = UUID.randomUUID().toString().replace("-", "")+ "_" + substrfile; String resultFilePath = saveFolderPath + "/" + fileName; - try { - FileInputStream fis = new FileInputStream(new File(filestr)); - FileOutputStream fos = new FileOutputStream(new File(resultFilePath)); - byte b[] = new byte[1024]; - int len=0; - while((len=fis.read(b))!=-1){ - fos.write(b); + File resultFilePathFile = new File(resultFilePath); + File parentFilePathFile = resultFilePathFile.getParentFile(); + if (!parentFilePathFile.exists()) { + parentFilePathFile.mkdirs(); } + if (!resultFilePathFile.exists()) { + resultFilePathFile.createNewFile(); + } + + FileInputStream fis = new FileInputStream(new File(filestr)); + FileOutputStream fos = new FileOutputStream(resultFilePathFile); + byte[] btyeBuf = new byte[1024]; + int len=0; + while((len=fis.read(btyeBuf))!=-1){ + fos.write(btyeBuf,0,len); + } + fis.close(); + fos.close(); } catch (IOException e) { AjaxResult.error("文件解压异常",e); } + String substrTwo = filestr.substring(allindex.get(6)+1,allindex.get(7)); Integer annexType = null; - if("申请书".equals(substrOne)){ + if("申请书".equals(substrTwo)){ annexType = 1; - }else if("证据材料".equals(substrOne)){ + }else if("证据材料".equals(substrTwo)){ annexType = 2; } String savePath = "/home/ruoyi/uploadPath/upload"; @@ -420,15 +427,14 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { .annexType(annexType) .build(); int i = caseAttachMapper.save(caseAttach); - Integer annexId = caseAttach.getAnnexId(); //保存到目录表 Long parentId = null; CaseEvidenceDirectory caseEvidenceDirectoryselect = new CaseEvidenceDirectory(); caseEvidenceDirectoryselect.setCaseId(id); - caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(lastIndex)+1,allindex.get(lastIndex+1))); - caseEvidenceDirectoryselect.setSeries(series-1); + caseEvidenceDirectoryselect.setEvidenceName(filestr.substring(allindex.get(6)+1,allindex.get(7))); + caseEvidenceDirectoryselect.setSeries(series); List caseEvidenceDirectorys = caseEvidenceDirectoryMapper.selectList(caseEvidenceDirectoryselect); if(caseEvidenceDirectorys!=null&&caseEvidenceDirectorys.size()>0){ parentId = caseEvidenceDirectorys.get(0).getId(); @@ -436,7 +442,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { CaseEvidenceDirectory caseEvidenceDirectory = new CaseEvidenceDirectory(); caseEvidenceDirectory.setEvidenceName(substrfile); - caseEvidenceDirectory.setSeries(series); + caseEvidenceDirectory.setSeries(series+1); caseEvidenceDirectory.setCreateBy(username); caseEvidenceDirectory.setCreateTime(new Date()); caseEvidenceDirectory.setAnnexId(annexId);