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