From 07a2f9c762efb3be3a29e2e8cc7004d4164cc9d8 Mon Sep 17 00:00:00 2001
From: fei <791364011@qq.com>
Date: 星期一, 22 十二月 2025 20:15:58 +0800
Subject: [PATCH] 修改了对应代码

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java | 1074 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 903 insertions(+), 171 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 7b7f477..ecf6382 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
@@ -1,32 +1,24 @@
 package com.ruoyi.web.controller.archive;
 
+import com.aspose.cells.PdfCompliance;
+import com.aspose.words.License;
+import com.deepoove.poi.XWPFTemplate;
 import com.itextpdf.text.*;
-import com.itextpdf.text.Font;
-import com.itextpdf.text.pdf.BaseFont;
 import com.itextpdf.text.pdf.PdfPCell;
-import com.itextpdf.text.pdf.PdfPTable;
-import com.itextpdf.text.pdf.PdfWriter;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.utils.file.FileUtils;
-import com.ruoyi.common.utils.poi.ExcelExp;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.utils.poi.ExcelUtilManySheet;
-import com.ruoyi.common.utils.poi.ExcelUtilManySheetSecond;
+import com.ruoyi.common.utils.poi.*;
 import com.ruoyi.domain.ArchiveRecords;
 import com.ruoyi.domain.DocumentMaterials;
 import com.ruoyi.domain.vo.*;
-import com.ruoyi.framework.web.domain.server.Sys;
 import com.ruoyi.service.IArchiveRecordsService;
 import com.ruoyi.service.IDocumentMaterialsService;
 import com.ruoyi.service.impl.BarcodeService;
 import com.ruoyi.service.impl.pdfGenerateService;
 import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;
-import org.apache.poi.hssf.usermodel.HSSFCell;
-import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.ss.util.CellUtil;
-import org.apache.poi.xssf.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.core.io.support.ResourcePatternResolver;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -36,27 +28,24 @@
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
-import java.lang.reflect.Field;
-import java.net.URLEncoder;
-import java.nio.file.Files;
-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.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
-import static org.apache.poi.hssf.usermodel.HSSFCell.*;
+// 瀵煎叆ByteArrayOutputStream鐢ㄤ簬涓存椂瀛樺偍PDF鏁版嵁
+import java.io.ByteArrayOutputStream;
 
 @RestController
 @RequestMapping("/system/archiveAllExport")
 public class archiveAllExportController {
+    // 瀛樺偍褰撳ぉ瀵煎嚭搴忓彿鐨凪ap锛岄敭涓烘棩鏈�(yyyyMMdd)锛屽�间负褰撳墠搴忓彿
+    private static Map<String, Integer> dailySequenceMap = new ConcurrentHashMap<>();
 
     @Autowired
     private pdfGenerateService pdfGenerateService;
@@ -68,13 +57,271 @@
     @Autowired
     private IArchiveRecordsService iArchiveRecordsService;
 
+    // 鐢ㄤ簬鐢熸垚褰撳ぉ瀵煎嚭搴忓彿鐨勬柟娉�
+    private String generateDailySequence(String date) {
+        // 浣跨敤synchronized纭繚绾跨▼瀹夊叏
+        synchronized (dailySequenceMap) {
+            // 鑾峰彇褰撳墠鏃ユ湡鐨勫簭鍙凤紝濡傛灉涓嶅瓨鍦ㄥ垯鍒濆鍖栦负0
+            int sequence = dailySequenceMap.getOrDefault(date, 0);
+            // 搴忓彿閫掑
+            sequence++;
+            // 鏇存柊Map涓殑搴忓彿
+            dailySequenceMap.put(date, sequence);
+            // 鏍煎紡鍖栦负涓変綅瀛楃涓诧紝涓嶈冻涓変綅琛ュ墠瀵奸浂
+            return String.format("%03d", sequence);
+        }
+    }
+
+    public  boolean getLicense() {
+        boolean result = false;
+        try {
+            InputStream is = null;
+
+            ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
+            org.springframework.core.io.Resource[] resources = resolver.getResources("classpath:words.xml");
+            is = resources[0].getInputStream();
+            // 锟斤拷目锟斤拷lincense.xml锟斤拷路锟斤拷
+            License aposeLic = new License();
+            aposeLic.setLicense(is);
+            result = true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    public  boolean getLicenseExcel() {
+        boolean result = false;
+        InputStream is = null;
+        try {
+            ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
+            org.springframework.core.io.Resource[] resources = resolver.getResources("classpath:license.xml");
+            is = resources[0].getInputStream();
+            com.aspose.cells.License aposeLic = new com.aspose.cells.License();
+            aposeLic.setLicense(is);
+            result = true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (is != null) {
+                try {
+                    is.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return result;
+    }
 
 
 
 
+    /**
+     * 灏咵xcel鎸囧畾瀛恠heet杞崲涓篜DF骞朵笅杞�
+     * @param response 鍝嶅簲瀵硅薄
+     * @param excelPath Excel鏂囦欢璺緞
+     * @param sheetName 瀛恠heet鍚嶇О
+     * @throws Exception 寮傚父淇℃伅
+     */
+    @PostMapping("/exportSheetToPdf")
+    public void exportSheetToPdf(HttpServletResponse response, String excelPath, String sheetName) throws Exception {
+        // 璁剧疆鍝嶅簲澶�
+        response.setContentType(MediaType.APPLICATION_PDF_VALUE);
+        response.setHeader("Content-Disposition", "attachment; filename=sheet.pdf");
+
+        try {
+            // 浣跨敤Aspose.Cells璇诲彇Excel鏂囦欢
+            com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(excelPath);
+
+            // 鑾峰彇鎸囧畾鍚嶇О鐨勫瓙sheet
+            com.aspose.cells.Worksheet sheet = wb.getWorksheets().get(sheetName);
+
+            // 濡傛灉闇�瑕佽幏鍙栫储寮曟柟寮忕殑瀛恠heet锛屽彲浠ヤ娇鐢ㄤ互涓嬩唬鐮�
+            // com.aspose.cells.Worksheet sheet = wb.getWorksheets().get(0); // 鑾峰彇绗竴涓猻heet
+
+            // 鍒涘缓涓�涓柊鐨刉orkbook锛屽彧鍖呭惈鎸囧畾鐨剆heet
+            com.aspose.cells.Workbook newWorkbook = new com.aspose.cells.Workbook();
+            newWorkbook.getWorksheets().clear();
+            newWorkbook.getWorksheets().addCopy(sheet.getName());
+
+            // 灏咵xcel杞崲涓篜DF瀛楄妭鏁扮粍
+            java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
+            newWorkbook.save(baos, com.aspose.cells.SaveFormat.PDF);
+            byte[] pdfBytes = baos.toByteArray();
+
+            // 灏哖DF杈撳嚭鍒板搷搴旀祦
+            try (ServletOutputStream os = response.getOutputStream()) {
+                os.write(pdfBytes);
+                os.flush();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw e;
+        }
+    }
+
+    /**
+     * 灏咵xcel鎵�鏈夊瓙sheet杞崲涓篜DF骞舵墦鍖呬笅杞�
+     * @param response 鍝嶅簲瀵硅薄
+     * @param excelPath Excel鏂囦欢璺緞
+     * @throws Exception 寮傚父淇℃伅
+     */
+    @PostMapping("/exportAllSheetsToPdf")
+    public void exportAllSheetsToPdf(HttpServletResponse response, String excelPath) throws Exception {
+        // 璁剧疆鍝嶅簲澶�
+        response.setContentType("application/zip");
+        response.setHeader("Content-Disposition", "attachment; filename=all_sheets.zip");
+
+        try (ServletOutputStream os = response.getOutputStream();
+             ZipOutputStream zos = new ZipOutputStream(os)) {
+
+            // 浣跨敤Aspose.Cells璇诲彇Excel鏂囦欢
+            com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(excelPath);
+
+            // 鑾峰彇鎵�鏈塻heet
+            com.aspose.cells.WorksheetCollection sheets = wb.getWorksheets();
+
+            // 閬嶅巻鎵�鏈塻heet
+            for (int i = 0; i < sheets.getCount(); i++) {
+                com.aspose.cells.Worksheet sheet = sheets.get(i);
+                String sheetName = sheet.getName();
+
+                // 鍒涘缓涓�涓柊鐨刉orkbook锛屽彧鍖呭惈褰撳墠sheet
+                com.aspose.cells.Workbook newWorkbook = new com.aspose.cells.Workbook();
+                newWorkbook.getWorksheets().clear();
+                newWorkbook.getWorksheets().addCopy(sheet.getName());
+
+                // 鍒涘缓涓存椂瀛楄妭杈撳嚭娴�
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+                // 灏嗘柊鐨刉orkbook淇濆瓨涓篜DF鍒颁复鏃舵祦
+                newWorkbook.save(baos, com.aspose.cells.SaveFormat.PDF);
+                byte[] pdfBytes = baos.toByteArray();
+
+                // 鑾峰彇PDF鎬婚〉鏁�
+
+                // 灏哖DF娣诲姞鍒癦IP鏂囦欢
+                ZipEntry entry = new ZipEntry(sheetName + ".pdf");
+                zos.putNextEntry(entry);
+                zos.write(pdfBytes);
+                zos.closeEntry();
+
+                System.out.println("Excel瀛恠heet \"" + sheetName + "\" 杞崲涓篜DF鎴愬姛");
+            }
+
+            System.out.println("Excel鎵�鏈夊瓙sheet杞崲涓篜DF骞舵墦鍖呮垚鍔�");
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw e;
+        }
+    }
     @PostMapping("/importTemplate")
     public void importTemplate(HttpServletResponse response) throws IOException
     {
+
+
+        if (!getLicense()) {
+            return;
+        }
+
+        try {
+
+            // 鑾峰彇 Word 妯℃澘鎵�鍦ㄨ矾寰�
+            String filepath = "09-澶囪�冭〃.docx";
+            // 閫氳繃 XWPFTemplate 缂栬瘧鏂囦欢骞舵覆鏌撴暟鎹埌妯℃澘涓�
+            XWPFTemplate template = XWPFTemplate.compile(filepath).render(
+                    new HashMap<String, Object>(){{
+                        put("pages", 67);
+
+                    }});
+
+            String renderedDocPath = "rendered_output.docx";
+            File renderedFile = new File(renderedDocPath);
+
+
+
+            try {
+                // 灏嗗畬鎴愭暟鎹覆鏌撶殑鏂囨。鍐欏嚭
+                template.writeAndClose(new FileOutputStream(renderedFile));
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+
+
+            File file = new File("test1.pdf");
+            FileOutputStream os = new FileOutputStream(file);
+            com.aspose.words.Document doc = new com.aspose.words.Document("rendered_output.docx");
+
+            doc.save(os, com.aspose.words.SaveFormat.PDF);//全锟斤拷支锟斤拷DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 锟洁互转锟斤拷
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+
+        if (!getLicenseExcel()) {
+            System.out.println("鎺堟潈澶辫触");
+            return ;
+        }
+        String inpath= "妗堝嵎灏侀潰.xls";
+        long old = System.currentTimeMillis();
+
+        // 璁剧疆鍝嶅簲澶�
+        response.setContentType("application/pdf");
+        response.setHeader("Content-Disposition", "attachment; filename=import_template.pdf");
+
+        try {
+            // 璇诲彇Excel鏂囦欢
+            com.aspose.cells.Workbook wb = new com.aspose.cells.Workbook(inpath);
+
+            // 鑾峰彇闇�瑕佸鍑虹殑sheet锛堢储寮曚粠0寮�濮嬶級
+            int targetSheetIndex = 1;
+            com.aspose.cells.Worksheet targetSheet = wb.getWorksheets().get(targetSheetIndex);
+            targetSheet.autoFitRows(true);
+            System.out.println("褰撳墠sheet鍚嶇О锛�" + targetSheet.getName());
+            System.out.println("褰撳墠sheet绱㈠紩锛�" + targetSheet.getIndex());
+
+            // 闅愯棌鎵�鏈夊叾浠栧伐浣滆〃
+            for (int i = 0; i < wb.getWorksheets().getCount(); i++) {
+                if (i != targetSheetIndex) {
+                    wb.getWorksheets().get(i).setVisible(false);
+                }
+            }
+
+            // 璁剧疆娲诲姩宸ヤ綔琛ㄤ负鐩爣宸ヤ綔琛�
+            wb.getWorksheets().setActiveSheetIndex(targetSheetIndex);
+
+            // 鍒涘缓PDF淇濆瓨閫夐」
+            com.aspose.cells.PdfSaveOptions pdfSaveOptions = new com.aspose.cells.PdfSaveOptions();
+
+            // 璁剧疆椤甸潰绫诲瀷涓篈4
+
+
+            // 纭繚鎵�鏈夊垪鍦ㄤ竴椤典笂
+            pdfSaveOptions.setAllColumnsInOnePagePerSheet(true);
+
+            // 璁剧疆鎵撳嵃椤甸潰绫诲瀷涓洪粯璁�
+            pdfSaveOptions.setCompliance(PdfCompliance.PDF_A_1_B); // 璁剧疆 PDF 鍏煎鎬ф爣鍑�
+
+            // 鐩存帴灏嗗師濮嬪伐浣滅翱淇濆瓨涓篜DF锛堝彧鍖呭惈鍙鐨勫伐浣滆〃锛�
+            wb.save(response.getOutputStream(), pdfSaveOptions);
+
+            long now = System.currentTimeMillis();
+            System.out.println("pdf杞崲鎴愬姛锛屽叡鑰楁椂锛�" + ((now - old) / 1000.0) + "绉�");
+        } catch (Exception e) {
+            e.printStackTrace();
+            // 鎵撳嵃璇︾粏閿欒淇℃伅
+            System.err.println("杞崲澶辫触锛�" + e.getMessage());
+            e.printStackTrace(System.err);
+
+            // 杩斿洖閿欒淇℃伅
+            response.reset();
+            response.setContentType("text/plain;charset=utf-8");
+            response.getWriter().write("瀵煎嚭澶辫触锛�" + e.getMessage());
+            response.getWriter().flush();
+        }
+
         //瀵煎嚭鍗烽潰灏侀潰浠g爜
 
         ArchiveInfoVo aIV = iArchiveRecordsService.selectByRecordId(55L);
@@ -125,6 +372,26 @@
     @PostMapping("/exportChooseArchive/{ids}")
     public void exportChooseArchive(HttpServletResponse response,  @PathVariable Long[] ids)throws Exception
     {
+        //璁$畻鏂囦欢鐨勫ぇ灏�
+        Double siz = 0.0;
+        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");
+            for (DocumentMaterialsVoLarge dc : docs) {
+                if(dc!=null)
+                    siz += dc.getFileSize()!=null?dc.getFileSize():0;
+            }
+        }
+        System.out.println(siz/1000);
+        //鍒ゆ柇鏄惁澶т簬4G锛屾槸鐨勮瘽锛岀洿鎺ユ姏鍑哄紓甯�
+        long maxSize = 4L * 1024 * 1024 * 1024; // 4GB in bytes
+        if (siz > maxSize) {
+            throw new RuntimeException("鏂囦欢鎬诲ぇ灏忚秴杩�4GB锛屾棤娉曞鍑�");
+        }
         System.out.println("092939932");
         String zipFileName ="test" +".zip";
         //鐢熸垚鍘嬬缉鍖呭瓨鍌ㄥ湴鍧�锛堟渶鍚庝細鍒犳帀锛�
@@ -149,7 +416,10 @@
             DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
             String formattedDate = date.format(formatter);
             System.out.println(formattedDate);
-            String fna = "GH"+20250908+"/";
+
+            // 鐢熸垚褰撳ぉ瀵煎嚭搴忓彿
+            String sequence = generateDailySequence(formattedDate);
+            String fna = "GH" + formattedDate + sequence + "/";
             zos.putNextEntry(new ZipEntry(fna));
 
 
@@ -158,7 +428,7 @@
             archiveRecords.setIds(ids);
             List<ArchiveRecords> lis = iArchiveRecordsService.selectArchiveRecordsList(archiveRecords);
             //妗堝嵎鐩綍瀵煎嚭
-            ZipEntry entry = new ZipEntry("妗堝嵎鐩綍" + ".xls");
+            ZipEntry entry = new ZipEntry(fna + "妗堝嵎鐩綍" + ".xls");
             ExcelUtil<ArchiveRecords> util = new ExcelUtil<ArchiveRecords>(ArchiveRecords.class);
 
             zos.putNextEntry(entry);
@@ -169,27 +439,51 @@
             //绉讳氦娓呭崟
             List<ArchiveRecordSmall> lrs = iArchiveRecordsService.findByIds(archiveRecords);
             System.out.println(lrs);
-            ZipEntry entry1 = new ZipEntry("绉讳氦娓呭崟" + ".xls");
+            System.out.println("99999999990000");
+            ZipEntry entry1 = new ZipEntry(fna + "绉讳氦娓呭崟" + ".xls");
             ExcelUtil<ArchiveRecordSmall> util1 = new ExcelUtil<ArchiveRecordSmall>(ArchiveRecordSmall.class);
 
+
+
+            ExcelExp e6 = new ExcelExp("绉讳氦娓呭崟","GH" + formattedDate + sequence,  lrs, ArchiveRecordSmall.class);
+          //  ExcelExp e4 = new ExcelExp("妗堝嵎灏侀潰",  arsi, recordId1, imgr1,sedcode, ArchiveInfoVo.class);
+            List<ExcelExp> mysheet6 = new ArrayList<ExcelExp>();
+            mysheet6.add(e6);
+         //   mysheet1.add(e4);
+            ByteOutputStream bos6 = new ByteOutputStream();
+            ExcelUtilManySheetThird<List<ExcelExp>> util6 = new ExcelUtilManySheetThird<List<ExcelExp>>(mysheet6);
+
+            util6.exportExcelManySheet(bos6, mysheet6);
+
+            //  System.out.println(bos2);
             zos.putNextEntry(entry1);
-            ByteOutputStream bos1 = new ByteOutputStream();
-            util1.byteOutputStreamExcel(bos1, lrs,"绉讳氦娓呭崟", "");
-            bos1.writeTo(zos);
+          //  ByteOutputStream bos1 = new ByteOutputStream();
+           // util6.byteOutputStreamExcel(bos1, lrs,"绉讳氦娓呭崟", "");
+            bos6.writeTo(zos);
+
+
+
+
+            System.out.println(ids.length);
+            System.out.println("------------------");
+
             for(int i = 0; i < ids.length; i++) {
+                System.out.println(ids[i]);
 
                 // 鑾峰彇鏂囦欢鐨勪繚瀛樹綅缃�,璇诲彇鏁版嵁搴�,
                 DocumentMaterials documentMaterials = new DocumentMaterials();
                 documentMaterials.setRecordId(ids[i]);
                 List<DocumentMaterialsVoLarge> docs = documentMaterialsService.selectDocumentMaterialsAllByRecordId(ids[i]);
-                System.out.println(docs.size()+"----009");
+                System.out.println(docs.size()+"----7777");
 
 
                 //.selectDocumentMaterialsList(documentMaterials);
                 List<DocumentMaterialsVo> dsvs = documentMaterialsService.findArchMInfo(ids[i].toString());
                 ArchiveInfoVo aIV = iArchiveRecordsService.selectByRecordId(ids[i]);
-
+                System.out.println(aIV.getInquiryNumber());
+                System.out.println(aIV.getRecordId());
                 String adir = aIV.getInquiryNumber() + " " + aIV.getRecordId();
+                System.out.println(adir);
                 System.out.println(fna+adir);
                 zos.putNextEntry(new ZipEntry(fna + adir + "/"));
 
@@ -206,58 +500,131 @@
                 }
                 //娣诲姞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);
+//                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);
+//                    }
+//                }
 
-                // 璇诲彇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);
-                    }
-                }
 
-                //08-鍗峰唴鍗峰唴鐩綍鐨刾df
-                String pdf08Path= "08-鍗峰唴鐩綍.pdf";
-                List<DocumentMaterialsVo> list3 = dsvs;
-                if(list3.size()>0) {
-                    pdfGenerateService.generateFileDirectoryPdf(pdf08Path, list3);
-                    ZipEntry zipEntry3 = new ZipEntry(fna + adir +"/"+pdf08Path);
-                    zos.putNextEntry(zipEntry3);
 
-                    // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP
-                    try (FileInputStream fis = new FileInputStream(pdf08Path)) {
-                        byte[] buffer = new byte[1024];
-                        int len;
-                        while ((len = fis.read(buffer)) > 0) {
-                            zos.write(buffer, 0, len);
-                        }
-                    }
-                }
+
+
+                //09-澶囪�冭〃.pdf
+
+
+
+
+//                pdfGenerateService.generateFileStyleInfo(pdf09Path, aIV.getRecordId(), ids[i]);
+//                // 2. 鍘嬬缉PDF鍒癦IP鏂囦欢
+//                // 娣诲姞PDF鏂囦欢鍒癦IP
+//                ZipEntry zipEntry4 = new ZipEntry(fna + adir +"/"+pdf09Path);
+//                zos.putNextEntry(zipEntry4);
+//
+//                // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP
+//                try (FileInputStream fis = new FileInputStream(pdf09Path)) {
+//                    byte[] buffer = new byte[1024];
+//                    int len;
+//                    while ((len = fis.read(buffer)) > 0) {
+//                        zos.write(buffer, 0, len);
+//                    }
+//                }
+
+
                 //09-澶囪�冭〃.pdf
                 String pdf09Path = "09-澶囪�冭〃.pdf";
-                pdfGenerateService.generateFileStyleInfo(pdf09Path, aIV.getRecordId(), ids[i]);
-                // 2. 鍘嬬缉PDF鍒癦IP鏂囦欢
-                // 娣诲姞PDF鏂囦欢鍒癦IP
-                ZipEntry zipEntry4 = new ZipEntry(fna + adir +"/"+pdf09Path);
-                zos.putNextEntry(zipEntry4);
+                //  pdfGenerateService.generateFileStyleInfo(pdf09Path, aIV.getRecordId(), id);
+                //鎷垮埌鐩稿叧鏁版嵁
+                List<DocumentMaterialFileStyle> dmfs = documentMaterialsService.findFileStyleInfo(Math.toIntExact(ids[i]));
 
-                // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP
-                try (FileInputStream fis = new FileInputStream(pdf09Path)) {
-                    byte[] buffer = new byte[1024];
-                    int len;
-                    while ((len = fis.read(buffer)) > 0) {
-                        zos.write(buffer, 0, len);
+                LocalDate currentDate = LocalDate.now();
+
+
+                String cdt = currentDate.getYear()+"骞�"+currentDate.getMonthValue()+"鏈�"+currentDate.getDayOfMonth()+"鏃�";
+
+                HashMap<String, Object> hs = new HashMap<String, Object>();
+                int allPages = 0;
+                int texPages = 0;
+                int picPages = 0;
+                int patPages = 0;
+                if(!dmfs.isEmpty())
+                {
+                    for(DocumentMaterialFileStyle documentMaterialFileStyle:dmfs)
+                    {
+                        if(documentMaterialFileStyle.getFileStyle().equals("鏂囧瓧鏉愭枡"))
+                            texPages = documentMaterialFileStyle.getCnt();
+                        if(documentMaterialFileStyle.getFileStyle().equals("鍥炬牱鏉愭枡"))
+                            patPages = documentMaterialFileStyle.getCnt();
+                        if(documentMaterialFileStyle.getFileStyle().equals("鐓х墖鏉愭枡"))
+                            picPages = documentMaterialFileStyle.getCnt();
                     }
                 }
+                allPages = texPages + picPages + patPages;
+                hs.put("pages", allPages);
+                hs.put("patPages", patPages);
+                hs.put("picPages", picPages);
+                hs.put("texPages", texPages);
+                hs.put("volumeNumber", aIV.getRecordId());
+                hs.put("time", cdt);
+
+                if (!getLicense()) {
+                    System.out.println("娌℃湁鐩稿叧璇佷功锛�");
+                }
+
+
+                try {
+
+                    // 鑾峰彇 Word 妯℃澘鎵�鍦ㄨ矾寰�
+                    String filepath = "09-澶囪�冭〃.docx";
+                    // 閫氳繃 XWPFTemplate 缂栬瘧鏂囦欢骞舵覆鏌撴暟鎹埌妯℃澘涓�
+                    XWPFTemplate template = XWPFTemplate.compile(filepath).render(hs
+                    );
+
+                    String renderedDocPath = "rendered_output.docx";
+                    File renderedFile = new File(renderedDocPath);
+                    try {
+                        // 灏嗗畬鎴愭暟鎹覆鏌撶殑鏂囨。鍐欏嚭
+                        template.writeAndClose(new FileOutputStream(renderedFile));
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+
+                    com.aspose.words.Document doc = new com.aspose.words.Document("rendered_output.docx");
+                    // 鍒涘缓涓存椂瀛楄妭杈撳嚭娴�
+                    ByteArrayOutputStream baobk = new ByteArrayOutputStream();
+                    // 灏哤ord鏂囨。杞崲涓篜DF瀛楄妭鏁扮粍
+                    doc.save(baobk, com.aspose.words.SaveFormat.PDF);//全锟斤拷支锟斤拷DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 锟洁互转锟斤拷
+                   ZipEntry zipEntry4 = new ZipEntry(fna + adir +"/"+pdf09Path);
+                zos.putNextEntry(zipEntry4);
+                    baobk.writeTo(zos);
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+
+
+
+             //   com.aspose.words.Document doc = new com.aspose.words.Document("09-澶囪�冭〃.docx");
+
+
+
+
+
+
+
 
                 //excel 鍗峰唴灏侀潰瀵煎嚭zip
-                ZipEntry entryiv = new ZipEntry(fna + adir +"/"+"鍗峰唴灏侀潰" + ".xls");
+                ZipEntry entryiv = new ZipEntry(fna + adir +"/"+"妗堝嵎灏侀潰" + ".xls");
 
                 List<ArchiveInfoVo> arsi = new ArrayList<>();
                 arsi.add(aIV);
@@ -278,6 +645,64 @@
                 //  System.out.println(bos2);
                 zos.putNextEntry(entryiv);
 
+
+                bos2.writeTo(zos);
+
+
+                //pdf鐩綍灏侀潰
+                String pdfPathF = "07-妗堝嵎灏侀潰.pdf";
+                // pdfGenerateService.generatePdf(pdfPathF, id);
+
+                try {
+                    if (!getLicenseExcel()) {
+                        System.out.println("鎺堟潈澶辫触");
+                        // return ;
+                    }
+                    // 璇诲彇Excel鏂囦欢
+                    com.aspose.cells.Workbook wb = poiToAspose(util3.getWb());
+
+                    // 鑾峰彇闇�瑕佸鍑虹殑sheet锛堢储寮曚粠0寮�濮嬶級
+                    int targetSheetIndex = 1;
+                    com.aspose.cells.Worksheet targetSheet = wb.getWorksheets().get(targetSheetIndex);
+                    targetSheet.autoFitRows(true);
+                    System.out.println("褰撳墠sheet鍚嶇О锛�" + targetSheet.getName());
+                    System.out.println("褰撳墠sheet绱㈠紩锛�" + targetSheet.getIndex());
+
+                    // 闅愯棌鎵�鏈夊叾浠栧伐浣滆〃
+                    for (int j = 0; j < wb.getWorksheets().getCount(); j++) {
+                        if (j != targetSheetIndex) {
+                            wb.getWorksheets().get(j).setVisible(false);
+                        }
+                    }
+
+                    // 璁剧疆娲诲姩宸ヤ綔琛ㄤ负鐩爣宸ヤ綔琛�
+                    wb.getWorksheets().setActiveSheetIndex(targetSheetIndex);
+                    // 鍒涘缓PDF淇濆瓨閫夐」
+                    com.aspose.cells.PdfSaveOptions pdfSaveOptions = new com.aspose.cells.PdfSaveOptions();
+                    pdfSaveOptions.setCompliance(com.aspose.cells.PdfCompliance.PDF_A_1_B);
+                    // 鍒涘缓涓存椂瀛楄妭杈撳嚭娴�
+                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+                    // 灏嗘柊鐨刉orkbook淇濆瓨涓篜DF鍒颁复鏃舵祦
+                    //   newWorkbook.save(baos, com.aspose.cells.SaveFormat.PDF);
+                    wb.save(baos, pdfSaveOptions);
+
+                    // 灏哖DF娣诲姞鍒癦IP鏂囦欢
+                    ZipEntry entry07 = new ZipEntry(fna + adir +"/"+pdfPathF);
+                    zos.putNextEntry(entry07);
+                    zos.write(baos.toByteArray());
+                    //  zos.closeEntry();
+                    // 鐩存帴灏嗗師濮嬪伐浣滅翱淇濆瓨涓篜DF锛堝彧鍖呭惈鍙鐨勫伐浣滆〃锛�
+
+                    long now = System.currentTimeMillis();
+                    //   System.out.println("pdf杞崲鎴愬姛锛屽叡鑰楁椂锛�" + ((now - old) / 1000.0) + "绉�");
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    // 鎵撳嵃璇︾粏閿欒淇℃伅
+                    System.err.println("杞崲澶辫触锛�" + e.getMessage());
+                    e.printStackTrace(System.err);
+                }
+
 //            ExcelUtil<ArchiveInfoVo> utilsv = new ExcelUtil<ArchiveInfoVo>(ArchiveInfoVo.class);
 //
 //
@@ -285,7 +710,7 @@
 //            List<ArchiveInfoVo> aivs = new ArrayList<>();
 //            aivs.add(aIV);
 //            utilsv.byteOutputStreamExcel(boss, aivs,"Date List", "");
-                bos2.writeTo(zos);
+
 
 
 
@@ -297,7 +722,7 @@
                 zos.putNextEntry(entry5);
                 ByteOutputStream bos5 = new ByteOutputStream();
                 util5.byteOutputStreamExcel(bos5, docs,"鐢靛瓙鏂囦欢鐩綍", "");
-                bos.writeTo(zos);
+                bos5.writeTo(zos);
 
                 //鎷垮埌鍗峰唴鐩綍鐨別xcel
                 List<DocumentMaterialsVoSmall> list2 = dsvs.stream().map(res1 -> new DocumentMaterialsVoSmall(res1.getNum(), res1.getDocumentNumber(),res1.getCreator(),
@@ -315,14 +740,92 @@
                     // ExcelUtil<DocumentMaterialsVo> util1 = new ExcelUtil<DocumentMaterialsVo>(DocumentMaterialsVo.class);
                     System.out.println(dsvs);
                     zos.putNextEntry(entr);
-                    ByteOutputStream bos6 = new ByteOutputStream();
+                    ByteOutputStream bos8 = new ByteOutputStream();
 
-                    util2.exportExcelManySheet(bos6, mysheet);
+                    util2.exportExcelManySheet(bos8, mysheet);
 
                     //   util1.byteOutputStreamExcel(bos1, dsvs,"Date List", "");
-                    bos6.writeTo(zos);
+                    bos8.writeTo(zos);
+
+
+
+
+                    //08-鍗峰唴鍗峰唴鐩綍鐨刾df
+                    String pdf08Path= "08-鍗峰唴鐩綍.pdf";
+                    try {
+                        if (!getLicenseExcel()) {
+                            System.out.println("鎺堟潈澶辫触");
+                            // return ;
+                        }
+                        // 璇诲彇Excel鏂囦欢
+                        com.aspose.cells.Workbook wb1 = poiToAspose(util2.getWb());
+
+                        // 鑾峰彇闇�瑕佸鍑虹殑sheet锛堢储寮曚粠0寮�濮嬶級
+                        int targetSheetIndex = 1;
+                        com.aspose.cells.Worksheet targetSheet = wb1.getWorksheets().get(targetSheetIndex);
+                        targetSheet.autoFitRows(true);
+                        System.out.println("褰撳墠sheet鍚嶇О锛�" + targetSheet.getName());
+                        System.out.println("褰撳墠sheet绱㈠紩锛�" + targetSheet.getIndex());
+
+                        // 闅愯棌鎵�鏈夊叾浠栧伐浣滆〃
+                        for (int j = 0; j < wb1.getWorksheets().getCount(); j++) {
+                            if (j != targetSheetIndex) {
+                                wb1.getWorksheets().get(j).setVisible(false);
+                            }
+                        }
+
+                        // 璁剧疆娲诲姩宸ヤ綔琛ㄤ负鐩爣宸ヤ綔琛�
+                        wb1.getWorksheets().setActiveSheetIndex(targetSheetIndex);
+                        // 鍒涘缓PDF淇濆瓨閫夐」
+                        com.aspose.cells.PdfSaveOptions pdfSaveOptions = new com.aspose.cells.PdfSaveOptions();
+                        pdfSaveOptions.setCompliance(com.aspose.cells.PdfCompliance.PDF_A_1_B);
+                        // 鍒涘缓涓存椂瀛楄妭杈撳嚭娴�
+                        ByteArrayOutputStream baosm = new ByteArrayOutputStream();
+
+                        // 灏嗘柊鐨刉orkbook淇濆瓨涓篜DF鍒颁复鏃舵祦
+                        //   newWorkbook.save(baos, com.aspose.cells.SaveFormat.PDF);
+                        wb1.save(baosm, pdfSaveOptions);
+
+                        // 灏哖DF娣诲姞鍒癦IP鏂囦欢
+                        ZipEntry entry2 = new ZipEntry(fna + adir +"/"+pdf08Path);
+                        zos.putNextEntry(entry2);
+                        zos.write(baosm.toByteArray());
+                        //  zos.closeEntry();
+                        // 鐩存帴灏嗗師濮嬪伐浣滅翱淇濆瓨涓篜DF锛堝彧鍖呭惈鍙鐨勫伐浣滆〃锛�
+
+                        long now = System.currentTimeMillis();
+                        //   System.out.println("pdf杞崲鎴愬姛锛屽叡鑰楁椂锛�" + ((now - old) / 1000.0) + "绉�");
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        // 鎵撳嵃璇︾粏閿欒淇℃伅
+                        System.err.println("杞崲澶辫触锛�" + e.getMessage());
+                        e.printStackTrace(System.err);
+                    }
+
+
                 }
                 //鎶奺xcel杞负pdf
+
+//
+//                //08-鍗峰唴鍗峰唴鐩綍鐨刾df
+//                String pdf08Path= "08-鍗峰唴鐩綍.pdf";
+//                List<DocumentMaterialsVo> list3 = dsvs;
+//                if(list3.size()>0) {
+//                    pdfGenerateService.generateFileDirectoryPdf(pdf08Path, list3);
+//                    ZipEntry zipEntry3 = new ZipEntry(fna + adir +"/"+pdf08Path);
+//                    zos.putNextEntry(zipEntry3);
+//
+//                    // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP
+//                    try (FileInputStream fis = new FileInputStream(pdf08Path)) {
+//                        byte[] buffer = new byte[1024];
+//                        int len;
+//                        while ((len = fis.read(buffer)) > 0) {
+//                            zos.write(buffer, 0, len);
+//                        }
+//                    }
+//                }
+//
+//
 
 
 
@@ -339,38 +842,43 @@
                     //鍦ㄥ帇缂╁寘涓坊鍔犳枃浠跺す
 
                     //寰楀埌鏂囦欢鍚峟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));
 
+                    String fname = "";
+                    if(dc.getFileNumber()!=null&&dc.getPageNumber()!=null) {
+                        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();
                 }
+
+                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);
+        }
+
+        //鍒犻櫎鍘嬬缉鍖�
+//            if(file.exists()){
+//                file.delete();
+//            }
 
         } catch (Exception e) {
             throw new RuntimeException(e);
@@ -392,6 +900,11 @@
                 }
             }
         }
+
+        System.out.println(file.getName());
+        System.out.println(file.getTotalSpace());
+        //    file.
+        writeFileToRes(response, file.getName(), file);
 
     }
 
@@ -417,8 +930,12 @@
 
                 //.selectDocumentMaterialsList(documentMaterials);
         List<DocumentMaterialsVo> dsvs = documentMaterialsService.findArchMInfo(id.toString());
+        if(dsvs==null||dsvs.isEmpty())
+        {
+            throw new RuntimeException("鐢靛瓙鏂囦欢淇℃伅娌℃湁涓婁紶锛岃琛ュ厖锛�");
+        }
         ArchiveInfoVo aIV = iArchiveRecordsService.selectByRecordId(id);
-
+        System.out.println(dsvs.size());
         List<String> paths = new ArrayList<>();
 //        System.out.println(docs);
         if (docs.size() == 1) {  // 鐩存帴涓嬭浇
@@ -457,10 +974,13 @@
 
         String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
         String filePath = RuoYiConfig.getDownloadPath() + fileName;
-
-
+        if(file.exists())
+            System.out.println("322329323232323");
+        System.out.println(filePath+"0009999999999");
         response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
         FileUtils.setAttachmentResponseHeader(response, realFileName);
+     //   response.addHeader("Content-Disposition", "attachment;filename=fileName" + ".xls");
+
         FileUtils.writeBytes(filePath, response.getOutputStream());
 
     }
@@ -476,6 +996,29 @@
     }
 
 
+    public  com.aspose.cells.Workbook poiToAspose(org.apache.poi.ss.usermodel.Workbook poiWorkbook) throws Exception {
+        // 涓存椂鏂囦欢璺緞
+        String tempFilePath = "temp_workbook.xlsx";
+
+        try {
+            // 1. 灏咥pache POI Workbook淇濆瓨涓轰复鏃舵枃浠�
+            try (FileOutputStream fos = new FileOutputStream(tempFilePath)) {
+                poiWorkbook.write(fos);
+            }
+
+            // 2. 浣跨敤Aspose鍔犺浇涓存椂鏂囦欢
+            com.aspose.cells.Workbook asposeWorkbook = new com.aspose.cells.Workbook(tempFilePath);
+
+            return asposeWorkbook;
+
+        } finally {
+            // 娓呯悊涓存椂鏂囦欢
+            File tempFile = new File(tempFilePath);
+            if (tempFile.exists()) {
+                tempFile.delete();
+            }
+        }
+    }
 
 
 
@@ -524,59 +1067,112 @@
             //鍘嬬缉鏂囦欢
             zos = new ZipOutputStream(os);
 
-            //pdf鐩綍灏侀潰
-            String pdfPathF = "07-鍗烽潰灏侀潰.pdf";
-            pdfGenerateService.generatePdf(pdfPathF, 55L);
-            // 2. 鍘嬬缉PDF鍒癦IP鏂囦欢
-                // 娣诲姞PDF鏂囦欢鍒癦IP
-                ZipEntry zipEntry = new ZipEntry(pdfPathF);
-                zos.putNextEntry(zipEntry);
 
-                // 璇诲彇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);
-                    }
-                }
-            //08-鍗峰唴鍗峰唴鐩綍鐨刾df
-            String pdf08Path= "08-鍗峰唴鐩綍.pdf";
-            List<DocumentMaterialsVo> list3 = dsvs;
-            pdfGenerateService.generateFileDirectoryPdf(pdf08Path, list3);
-            ZipEntry zipEntry2 = new ZipEntry(pdf08Path);
-            zos.putNextEntry(zipEntry2);
 
-            // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP
-            try (FileInputStream fis = new FileInputStream(pdf08Path)) {
-                byte[] buffer = new byte[1024];
-                int len;
-                while ((len = fis.read(buffer)) > 0) {
-                    zos.write(buffer, 0, len);
-                }
-            }
                 //09-澶囪�冭〃.pdf
             String pdf09Path = "09-澶囪�冭〃.pdf";
-            pdfGenerateService.generateFileStyleInfo(pdf09Path, aIV.getRecordId(), id);
-            // 2. 鍘嬬缉PDF鍒癦IP鏂囦欢
-            // 娣诲姞PDF鏂囦欢鍒癦IP
-            ZipEntry zipEntry1 = new ZipEntry(pdf09Path);
-            zos.putNextEntry(zipEntry1);
+          //  pdfGenerateService.generateFileStyleInfo(pdf09Path, aIV.getRecordId(), id);
+            //鎷垮埌鐩稿叧鏁版嵁
+            List<DocumentMaterialFileStyle> dmfs = documentMaterialsService.findFileStyleInfo(Math.toIntExact(id));
 
-            // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP
-            try (FileInputStream fis = new FileInputStream(pdf09Path)) {
-                byte[] buffer = new byte[1024];
-                int len;
-                while ((len = fis.read(buffer)) > 0) {
-                    zos.write(buffer, 0, len);
+            LocalDate currentDate = LocalDate.now();
+
+
+            String cdt = currentDate.getYear()+"骞�"+currentDate.getMonthValue()+"鏈�"+currentDate.getDayOfMonth()+"鏃�";
+
+            HashMap<String, Object> hs = new HashMap<String, Object>();
+            int allPages = 0;
+            int texPages = 0;
+            int picPages = 0;
+            int patPages = 0;
+            if(!dmfs.isEmpty())
+            {
+                for(DocumentMaterialFileStyle documentMaterialFileStyle:dmfs)
+                {
+                    if(documentMaterialFileStyle.getFileStyle().equals("鏂囧瓧鏉愭枡"))
+                        texPages = documentMaterialFileStyle.getCnt();
+                    if(documentMaterialFileStyle.getFileStyle().equals("鍥炬牱鏉愭枡"))
+                        patPages = documentMaterialFileStyle.getCnt();
+                    if(documentMaterialFileStyle.getFileStyle().equals("鐓х墖鏉愭枡"))
+                        picPages = documentMaterialFileStyle.getCnt();
                 }
             }
+            allPages = texPages + picPages + patPages;
+            hs.put("pages", allPages);
+            hs.put("patPages", patPages);
+            hs.put("picPages", picPages);
+            hs.put("texPages", texPages);
+            hs.put("volumeNumber", aIV.getRecordId());
+            hs.put("time", cdt);
+
+            if (!getLicense()) {
+                System.out.println("娌℃湁鐩稿叧璇佷功锛�");
+            }
+
+
+            try {
+
+                // 鑾峰彇 Word 妯℃澘鎵�鍦ㄨ矾寰�
+                String filepath = "09-澶囪�冭〃.docx";
+                // 閫氳繃 XWPFTemplate 缂栬瘧鏂囦欢骞舵覆鏌撴暟鎹埌妯℃澘涓�
+                XWPFTemplate template = XWPFTemplate.compile(filepath).render(hs
+                       );
+
+                String renderedDocPath = "rendered_output.docx";
+                File renderedFile = new File(renderedDocPath);
+                try {
+                    // 灏嗗畬鎴愭暟鎹覆鏌撶殑鏂囨。鍐欏嚭
+                    template.writeAndClose(new FileOutputStream(renderedFile));
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+
+                com.aspose.words.Document doc = new com.aspose.words.Document("rendered_output.docx");
+                // 鍒涘缓涓存椂瀛楄妭杈撳嚭娴�
+                ByteArrayOutputStream baobk = new ByteArrayOutputStream();
+
+                // 灏哤ord鏂囨。杞崲涓篜DF瀛楄妭鏁扮粍
+                doc.save(baobk, com.aspose.words.SaveFormat.PDF);//全锟斤拷支锟斤拷DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF, EPUB, XPS, SWF 锟洁互转锟斤拷
+//                byte[] pdfBytes = baobk.toByteArray();
+
+                // 鑾峰彇PDF鎬婚〉鏁�
+
+
+                // 灏哖DF娣诲姞鍒癦IP鏂囦欢
+                ZipEntry entry09 = new ZipEntry(pdf09Path);
+                zos.putNextEntry(entry09);
+                baobk.writeTo(zos);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+
+
+            com.aspose.words.Document doc = new com.aspose.words.Document("09-澶囪�冭〃.docx");
+
+
+
+
+
+//            // 鍘嬬缉PDF鍒癦IP鏂囦欢
+//            // 娣诲姞PDF鏂囦欢鍒癦IP
+//            ZipEntry zipEntry1 = new ZipEntry(pdf09Path);
+//            zos.putNextEntry(zipEntry1);
+//
+//            // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP
+//            try (FileInputStream fis = new FileInputStream(pdf09Path)) {
+//                byte[] buffer = new byte[1024];
+//                int len;
+//                while ((len = fis.read(buffer)) > 0) {
+//                    zos.write(buffer, 0, len);
+//                }
+//            }
 
 
 
 
                 //excel 鍗峰唴灏侀潰瀵煎嚭zip
-            ZipEntry entryiv = new ZipEntry("鍗峰唴灏侀潰" + ".xls");
+            ZipEntry entryiv = new ZipEntry("妗堝嵎灏侀潰" + ".xls");
 
             List<ArchiveInfoVo> arsi = new ArrayList<>();
             arsi.add(aIV);
@@ -597,14 +1193,72 @@
           //  System.out.println(bos2);
             zos.putNextEntry(entryiv);
 
-//            ExcelUtil<ArchiveInfoVo> utilsv = new ExcelUtil<ArchiveInfoVo>(ArchiveInfoVo.class);
-//
+            bos2.writeTo(zos);
+
+
+            //pdf鐩綍灏侀潰
+            String pdfPathF = "07-妗堝嵎灏侀潰.pdf";
+            // pdfGenerateService.generatePdf(pdfPathF, id);
+
+            try {
+                if (!getLicenseExcel()) {
+                    System.out.println("鎺堟潈澶辫触");
+                   // return ;
+                }
+                // 璇诲彇Excel鏂囦欢
+                com.aspose.cells.Workbook wb = poiToAspose(util3.getWb());
+
+                // 鑾峰彇闇�瑕佸鍑虹殑sheet锛堢储寮曚粠0寮�濮嬶級
+                int targetSheetIndex = 1;
+                com.aspose.cells.Worksheet targetSheet = wb.getWorksheets().get(targetSheetIndex);
+                targetSheet.autoFitRows(true);
+                System.out.println("褰撳墠sheet鍚嶇О锛�" + targetSheet.getName());
+                System.out.println("褰撳墠sheet绱㈠紩锛�" + targetSheet.getIndex());
+
+                // 闅愯棌鎵�鏈夊叾浠栧伐浣滆〃
+                for (int i = 0; i < wb.getWorksheets().getCount(); i++) {
+                    if (i != targetSheetIndex) {
+                        wb.getWorksheets().get(i).setVisible(false);
+                    }
+                }
+
+                // 璁剧疆娲诲姩宸ヤ綔琛ㄤ负鐩爣宸ヤ綔琛�
+                wb.getWorksheets().setActiveSheetIndex(targetSheetIndex);
+                // 鍒涘缓PDF淇濆瓨閫夐」
+                com.aspose.cells.PdfSaveOptions pdfSaveOptions = new com.aspose.cells.PdfSaveOptions();
+                pdfSaveOptions.setCompliance(com.aspose.cells.PdfCompliance.PDF_A_1_B);
+                // 鍒涘缓涓存椂瀛楄妭杈撳嚭娴�
+                ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+                // 灏嗘柊鐨刉orkbook淇濆瓨涓篜DF鍒颁复鏃舵祦
+             //   newWorkbook.save(baos, com.aspose.cells.SaveFormat.PDF);
+                wb.save(baos, pdfSaveOptions);
+
+                // 灏哖DF娣诲姞鍒癦IP鏂囦欢
+                ZipEntry entry = new ZipEntry(pdfPathF);
+                zos.putNextEntry(entry);
+                zos.write(baos.toByteArray());
+              //  zos.closeEntry();
+                // 鐩存帴灏嗗師濮嬪伐浣滅翱淇濆瓨涓篜DF锛堝彧鍖呭惈鍙鐨勫伐浣滆〃锛�
+
+                long now = System.currentTimeMillis();
+                //   System.out.println("pdf杞崲鎴愬姛锛屽叡鑰楁椂锛�" + ((now - old) / 1000.0) + "绉�");
+            } catch (Exception e) {
+                e.printStackTrace();
+                // 鎵撳嵃璇︾粏閿欒淇℃伅
+                System.err.println("杞崲澶辫触锛�" + e.getMessage());
+                e.printStackTrace(System.err);
+            }
+
+
+
+
 //
 //            ByteOutputStream boss = new ByteOutputStream();
 //            List<ArchiveInfoVo> aivs = new ArrayList<>();
 //            aivs.add(aIV);
 //            utilsv.byteOutputStreamExcel(boss, aivs,"Date List", "");
-            bos2.writeTo(zos);
+
                 //鍐欏叆鐢靛瓙鐩綍  xsxl
 
             ZipEntry entry = new ZipEntry("鐢靛瓙鏂囦欢鐩綍" + ".xls");
@@ -622,7 +1276,7 @@
             String recordId = dsvs.get(0).getRecordId();
             byte[] imgr = barcodeService.generateBarcodeImage(recordId);
             ExcelExp e1 = new ExcelExp("鍗峰唴鐩綍鏁版嵁",dsvs, DocumentMaterialsVo.class);
-            ExcelExp e2 = new ExcelExp("鍗峰唴鏁版嵁", list2, recordId, imgr, DocumentMaterialsVoSmall.class);
+            ExcelExp e2 = new ExcelExp("鍗峰唴鐩綍", list2, recordId, imgr, DocumentMaterialsVoSmall.class);
             List<ExcelExp> mysheet = new ArrayList<ExcelExp>();
             mysheet.add(e1);
             mysheet.add(e2);
@@ -639,6 +1293,78 @@
             bos1.writeTo(zos);
             //鎶奺xcel杞负pdf
 
+            //08-鍗峰唴鍗峰唴鐩綍鐨刾df
+            String pdf08Path= "08-鍗峰唴鐩綍.pdf";
+            try {
+                if (!getLicenseExcel()) {
+                    System.out.println("鎺堟潈澶辫触");
+                    // return ;
+                }
+                // 璇诲彇Excel鏂囦欢
+                com.aspose.cells.Workbook wb1 = poiToAspose(util2.getWb());
+
+                // 鑾峰彇闇�瑕佸鍑虹殑sheet锛堢储寮曚粠0寮�濮嬶級
+                int targetSheetIndex = 1;
+                com.aspose.cells.Worksheet targetSheet = wb1.getWorksheets().get(targetSheetIndex);
+                targetSheet.autoFitRows(true);
+                System.out.println("褰撳墠sheet鍚嶇О锛�" + targetSheet.getName());
+                System.out.println("褰撳墠sheet绱㈠紩锛�" + targetSheet.getIndex());
+
+                // 闅愯棌鎵�鏈夊叾浠栧伐浣滆〃
+                for (int i = 0; i < wb1.getWorksheets().getCount(); i++) {
+                    if (i != targetSheetIndex) {
+                        wb1.getWorksheets().get(i).setVisible(false);
+                    }
+                }
+
+                // 璁剧疆娲诲姩宸ヤ綔琛ㄤ负鐩爣宸ヤ綔琛�
+                wb1.getWorksheets().setActiveSheetIndex(targetSheetIndex);
+                // 鍒涘缓PDF淇濆瓨閫夐」
+                com.aspose.cells.PdfSaveOptions pdfSaveOptions = new com.aspose.cells.PdfSaveOptions();
+                pdfSaveOptions.setCompliance(com.aspose.cells.PdfCompliance.PDF_A_1_B);
+                // 鍒涘缓涓存椂瀛楄妭杈撳嚭娴�
+                ByteArrayOutputStream baosm = new ByteArrayOutputStream();
+
+                // 灏嗘柊鐨刉orkbook淇濆瓨涓篜DF鍒颁复鏃舵祦
+                //   newWorkbook.save(baos, com.aspose.cells.SaveFormat.PDF);
+                wb1.save(baosm, pdfSaveOptions);
+
+                // 灏哖DF娣诲姞鍒癦IP鏂囦欢
+                ZipEntry entry2 = new ZipEntry(pdf08Path);
+                zos.putNextEntry(entry2);
+                zos.write(baosm.toByteArray());
+                //  zos.closeEntry();
+                // 鐩存帴灏嗗師濮嬪伐浣滅翱淇濆瓨涓篜DF锛堝彧鍖呭惈鍙鐨勫伐浣滆〃锛�
+
+                long now = System.currentTimeMillis();
+                //   System.out.println("pdf杞崲鎴愬姛锛屽叡鑰楁椂锛�" + ((now - old) / 1000.0) + "绉�");
+            } catch (Exception e) {
+                e.printStackTrace();
+                // 鎵撳嵃璇︾粏閿欒淇℃伅
+                System.err.println("杞崲澶辫触锛�" + e.getMessage());
+                e.printStackTrace(System.err);
+            }
+
+
+
+
+            //List<DocumentMaterialsVo> list3 = dsvs;
+
+
+           // pdfGenerateService.generateFileDirectoryPdf(pdf08Path, list3);
+//            ZipEntry zipEntry2 = new ZipEntry(pdf08Path);
+//            zos.putNextEntry(zipEntry2);
+//
+//            // 璇诲彇PDF鏂囦欢鍐呭骞跺啓鍏IP
+//            try (FileInputStream fis = new FileInputStream(pdf08Path)) {
+//                byte[] buffer = new byte[1024];
+//                int len;
+//                while ((len = fis.read(buffer)) > 0) {
+//                    zos.write(buffer, 0, len);
+//                }
+//            }
+
+
 
 
 
@@ -653,6 +1379,7 @@
 
                 System.out.println(filePath);
                 File tempFile = new File(filePath);
+
                 //鍦ㄥ帇缂╁寘涓坊鍔犳枃浠跺す
                 if(res) {
                     zos.putNextEntry(new ZipEntry("01-鐢宠鏉愭枡/"));
@@ -664,25 +1391,26 @@
                     res = false;
                 }
                 //寰楀埌鏂囦欢鍚峟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("01-鐢宠鏉愭枡/"+fname));
-                else if(dc.getStage().equals("02-鍔炴杩囩▼鏉愭枡"))
-                    zos.putNextEntry(new ZipEntry("02-鍔炴杩囩▼鏉愭枡/"+fname));
-                else if(dc.getStage().equals("03-缁撹鎬ф枃浠�"))
-                    zos.putNextEntry(new ZipEntry("03-缁撹鎬ф枃浠�/"+fname));
-                else if(dc.getStage().equals("04-鍏朵粬鏉愭枡")) {
-                    zos.putNextEntry(new ZipEntry("04-鍏朵粬鏉愭枡/" + fname));
+                String fname = "";
+                if(dc.getFileNumber()!=null&&dc.getPageNumber()!=null) {
+                    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("01-鐢宠鏉愭枡/" + fname));
+                    else if (dc.getStage().equals("02-鍔炴杩囩▼鏉愭枡"))
+                        zos.putNextEntry(new ZipEntry("02-鍔炴杩囩▼鏉愭枡/" + fname));
+                    else if (dc.getStage().equals("03-缁撹鎬ф枃浠�"))
+                        zos.putNextEntry(new ZipEntry("03-缁撹鎬ф枃浠�/" + fname));
+                    else if (dc.getStage().equals("04-鍏朵粬鏉愭枡")) {
+                        zos.putNextEntry(new ZipEntry("04-鍏朵粬鏉愭枡/" + fname));
+                    } else if (dc.getStage().equals("05-妗f鍙樻洿鏉愭枡"))
+                        zos.putNextEntry(new ZipEntry("05-妗f鍙樻洿鏉愭枡/" + fname));
+                    else if (dc.getStage().equals("06-涓氬姟鏁版嵁"))
+                        zos.putNextEntry(new ZipEntry("06-涓氬姟鏁版嵁/" + fname));
+                    else
+                        zos.putNextEntry(new ZipEntry(fname));
+
                 }
-                else if(dc.getStage().equals("05-妗f鍙樻洿鏉愭枡"))
-                    zos.putNextEntry(new ZipEntry("05-妗f鍙樻洿鏉愭枡/"+fname));
-                else if(dc.getStage().equals("06-涓氬姟鏁版嵁"))
-                    zos.putNextEntry(new ZipEntry("06-涓氬姟鏁版嵁/"+fname));
-                else
-                    zos.putNextEntry(new ZipEntry(fname));
-
-
 
                 int len;
                 FileInputStream in = new FileInputStream(tempFile);
@@ -720,3 +1448,7 @@
     }
 
 }
+
+
+
+

--
Gitblit v1.9.1