From 19f5c982ea9ad8d7aad65b2c9a776b829992d2ca Mon Sep 17 00:00:00 2001 From: fei <791364011@qq.com> Date: 星期二, 09 九月 2025 17:39:01 +0800 Subject: [PATCH] 新增了代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java | 184 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 177 insertions(+), 7 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java index 7936234..3978688 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java @@ -12,11 +12,9 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtilManySheet; import com.ruoyi.common.utils.poi.ExcelUtilManySheetSecond; +import com.ruoyi.domain.ArchiveRecords; import com.ruoyi.domain.DocumentMaterials; -import com.ruoyi.domain.vo.ArchiveInfoVo; -import com.ruoyi.domain.vo.DocumentMaterialsVo; -import com.ruoyi.domain.vo.DocumentMaterialsVoLarge; -import com.ruoyi.domain.vo.DocumentMaterialsVoSmall; +import com.ruoyi.domain.vo.*; import com.ruoyi.framework.web.domain.server.Sys; import com.ruoyi.service.IArchiveRecordsService; import com.ruoyi.service.IDocumentMaterialsService; @@ -30,6 +28,7 @@ import org.apache.poi.xssf.usermodel.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -43,6 +42,8 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.List; import java.util.stream.Collectors; @@ -121,7 +122,173 @@ + @PostMapping("/exportChooseArchive/{ids}") + public void exportChooseArchive(HttpServletResponse response, @PathVariable Long[] ids)throws Exception + { + System.out.println("092939932"); + String zipFileName ="test" +".zip"; + //鐢熸垚鍘嬬缉鍖呭瓨鍌ㄥ湴鍧�锛堟渶鍚庝細鍒犳帀锛� + String fileZip = RuoYiConfig.getProfile() + "/download/" + zipFileName; + OutputStream os=null; + ZipOutputStream zos = null ; + System.out.println("==============_______________"); + System.out.println(ids.length); + File file = new File(fileZip); + try { + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + os = new FileOutputStream(file); + //鍘嬬缉鏂囦欢 + zos = new ZipOutputStream(os); + //鎷垮埌褰撳墠鐨勬椂闂� + LocalDate date = LocalDate.now(); + System.out.println("褰撳墠鏃ユ湡: " + date); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + String formattedDate = date.format(formatter); + System.out.println(formattedDate); + String fna = "GH"+20250908+"/"; + zos.putNextEntry(new ZipEntry(fna)); + + + //娣诲姞ids鐨勫叏閮ㄦ暟鎹埌excel + ArchiveRecords archiveRecords = new ArchiveRecords(); + archiveRecords.setIds(ids); + List<ArchiveRecords> lis = iArchiveRecordsService.selectArchiveRecordsList(archiveRecords); + //妗堝嵎鐩綍瀵煎嚭 + ZipEntry entry = new ZipEntry("妗堝嵎鐩綍" + ".xls"); + ExcelUtil<ArchiveRecords> util = new ExcelUtil<ArchiveRecords>(ArchiveRecords.class); + + zos.putNextEntry(entry); + ByteOutputStream bos = new ByteOutputStream(); + util.byteOutputStreamExcel(bos, lis,"妗堝嵎鐩綍", ""); + bos.writeTo(zos); + + //绉讳氦娓呭崟 + List<ArchiveRecordSmall> lrs = iArchiveRecordsService.findByIds(archiveRecords); + System.out.println(lrs); + ZipEntry entry1 = new ZipEntry("绉讳氦娓呭崟" + ".xls"); + ExcelUtil<ArchiveRecordSmall> util1 = new ExcelUtil<ArchiveRecordSmall>(ArchiveRecordSmall.class); + + zos.putNextEntry(entry1); + ByteOutputStream bos1 = new ByteOutputStream(); + util1.byteOutputStreamExcel(bos1, lrs,"绉讳氦娓呭崟", ""); + bos1.writeTo(zos); + for(int i = 0; i < ids.length; i++) { + + // 鑾峰彇鏂囦欢鐨勪繚瀛樹綅缃�,璇诲彇鏁版嵁搴�, + DocumentMaterials documentMaterials = new DocumentMaterials(); + documentMaterials.setRecordId(ids[i]); + List<DocumentMaterialsVoLarge> docs = documentMaterialsService.selectDocumentMaterialsAllByRecordId(ids[i]); + System.out.println(docs.size()+"----009"); + + + //.selectDocumentMaterialsList(documentMaterials); + List<DocumentMaterialsVo> dsvs = documentMaterialsService.findArchMInfo(ids[i].toString()); + ArchiveInfoVo aIV = iArchiveRecordsService.selectByRecordId(ids[i]); + + String adir = aIV.getInquiryNumber() + " " + aIV.getRecordId(); + System.out.println(fna+adir); + zos.putNextEntry(new ZipEntry(fna + adir + "/")); + + //鍦ㄩ噷闈㈡坊鍔犳枃浠� + boolean res = true; + if(res) { + zos.putNextEntry(new ZipEntry(fna + adir + "/01-鐢宠鏉愭枡/")); + zos.putNextEntry(new ZipEntry(fna + adir + "/02-鍔炴杩囩▼鏉愭枡/")); + zos.putNextEntry(new ZipEntry(fna + adir + "/03-缁撹鎬ф枃浠�/")); + zos.putNextEntry(new ZipEntry(fna + adir + "/04-鍏朵粬鏉愭枡/")); + zos.putNextEntry(new ZipEntry(fna + adir + "/05-妗f鍙樻洿鏉愭枡/")); + zos.putNextEntry(new ZipEntry(fna + adir + "/06-涓氬姟鏁版嵁/")); + res = false; + } + //娣诲姞07 鐨刾df + //pdf鐩綍灏侀潰 + String pdfPathF = "07-鍗烽潰灏侀潰.pdf"; + pdfGenerateService.generatePdf(pdfPathF, ids[i]); + // 2. 鍘嬬缉PDF鍒癦IP鏂囦欢 + // 娣诲姞PDF鏂囦欢鍒癦IP + ZipEntry zipEntry2 = new ZipEntry(fna + adir +"/"+pdfPathF); + zos.putNextEntry(zipEntry2); + + // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP + try (FileInputStream fis = new FileInputStream(pdfPathF)) { + byte[] buffer = new byte[1024]; + int len; + while ((len = fis.read(buffer)) > 0) { + zos.write(buffer, 0, len); + } + } + byte[] buf = new byte[1024]; + for (DocumentMaterialsVoLarge dc : docs) { + String filePath = dc.getUrl(); + if(filePath==null) + continue; + filePath = filePath.replace("/profile/", RuoYiConfig.getProfile() + "/"); + + System.out.println(filePath); + File tempFile = new File(filePath); + + //鍦ㄥ帇缂╁寘涓坊鍔犳枃浠跺す + + //寰楀埌鏂囦欢鍚峟rontCompWithZore(4, dc.get)+ + String fname = frontCompWithZore(4, dc.getFileNumber().intValue())+"-"+dc.getTitle()+"-"+frontCompWithZore(4,dc.getPageNumber().intValue())+"." + +dc.getUrl().split("\\.")[1]; + if(dc.getStage().equals("01-鐢宠鏉愭枡")) + zos.putNextEntry(new ZipEntry(fna + adir + "/01-鐢宠鏉愭枡/"+fname)); + else if(dc.getStage().equals("02-鍔炴杩囩▼鏉愭枡")) + zos.putNextEntry(new ZipEntry(fna + adir + "/02-鍔炴杩囩▼鏉愭枡/"+fname)); + else if(dc.getStage().equals("03-缁撹鎬ф枃浠�")) + zos.putNextEntry(new ZipEntry(fna + adir + "/03-缁撹鎬ф枃浠�/"+fname)); + else if(dc.getStage().equals("04-鍏朵粬鏉愭枡")) { + zos.putNextEntry(new ZipEntry(fna + adir + "/04-鍏朵粬鏉愭枡/" + fname)); + } + else if(dc.getStage().equals("05-妗f鍙樻洿鏉愭枡")) + zos.putNextEntry(new ZipEntry(fna + adir + "/05-妗f鍙樻洿鏉愭枡/"+fname)); + else if(dc.getStage().equals("06-涓氬姟鏁版嵁")) + zos.putNextEntry(new ZipEntry(fna + adir + "/06-涓氬姟鏁版嵁/"+fname)); + else + zos.putNextEntry(new ZipEntry(fna + adir + "/"+fname)); + + + + int len; + FileInputStream in = new FileInputStream(tempFile); + while ((len = in.read(buf)) != -1){ + zos.write(buf, 0, len); + } + // zos.putNextEntry(new ZipEntry("04-鍏朵粬鏉愭枡")); + zos.closeEntry(); + in.close(); + } + } + System.out.println(file.getName()); + writeFileToRes(response, file.getName(), file); + + } catch (Exception e) { + throw new RuntimeException(e); + }finally { + //鍏抽棴娴� + if(zos != null){ + try { + zos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + //鍏抽棴娴� + if(os!= null){ + try { + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + } @@ -133,9 +300,9 @@ * @param response * @param */ - @PostMapping("/export") + @PostMapping("/export/{id}") - public void packDownload(HttpServletResponse response, Long id) throws Exception { + public void packDownload(HttpServletResponse response, @PathVariable Long id) throws Exception { // 鑾峰彇鏂囦欢鐨勪繚瀛樹綅缃�,璇诲彇鏁版嵁搴�, DocumentMaterials documentMaterials = new DocumentMaterials(); documentMaterials.setRecordId(id); @@ -170,6 +337,7 @@ System.out.println(file.getName()); String fileName =aIV.getRecordId()+".zip"; + //杈撳嚭鏂囦欢娴� writeFileToRes(response, file.getName(), file); //鍒犻櫎鍘嬬缉鍖� @@ -253,7 +421,7 @@ //pdf鐩綍灏侀潰 String pdfPathF = "07-鍗烽潰灏侀潰.pdf"; - pdfGenerateService.generatePdf(pdfPathF); + pdfGenerateService.generatePdf(pdfPathF, 55L); // 2. 鍘嬬缉PDF鍒癦IP鏂囦欢 // 娣诲姞PDF鏂囦欢鍒癦IP ZipEntry zipEntry = new ZipEntry(pdfPathF); @@ -374,6 +542,8 @@ byte[] buf = new byte[1024]; for (DocumentMaterialsVoLarge dc : docs) { String filePath = dc.getUrl(); + if(filePath==null) + continue; filePath = filePath.replace("/profile/", RuoYiConfig.getProfile() + "/"); System.out.println(filePath); -- Gitblit v1.9.1