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 | 1418 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 1,139 insertions(+), 279 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 acddd4c..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,34 +1,26 @@
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.ArchiveInfoVo;
-import com.ruoyi.domain.vo.DocumentMaterialsVo;
-import com.ruoyi.domain.vo.DocumentMaterialsVoSmall;
-import com.ruoyi.framework.web.domain.server.Sys;
+import com.ruoyi.domain.vo.*;
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;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -36,25 +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;
@@ -66,27 +57,289 @@
@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);
List<ArchiveInfoVo> arsi = new ArrayList<>();
arsi.add(aIV);
+
+ String recordId = aIV.getRecordId();
+ byte[] imgr = barcodeService.generateBarcodeImage(recordId);
+ byte[] sedcode = pdfGenerateService.createQrCodeN(recordId, 30, 30);
ExcelExp e1 = new ExcelExp("妗堝嵎灏侀潰鏁版嵁",arsi, ArchiveInfoVo.class);
- ExcelExp e2 = new ExcelExp("鎻愬彇鏂规硶鈥�", arsi, ArchiveInfoVo.class);
+ ExcelExp e2 = new ExcelExp("妗堝嵎灏侀潰", arsi, recordId, imgr,sedcode, ArchiveInfoVo.class);
List<ExcelExp> mysheet = new ArrayList<ExcelExp>();
mysheet.add(e1);
mysheet.add(e2);
ByteOutputStream bos1 = new ByteOutputStream();
ExcelUtilManySheetSecond<List<ExcelExp>> util2 = new ExcelUtilManySheetSecond<List<ExcelExp>>(mysheet);
- util2.exportExcelManySheet(response, mysheet);
+ // util2.exportExcelManySheet(response, mysheet);
@@ -116,7 +369,544 @@
+ @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";
+ //鐢熸垚鍘嬬缉鍖呭瓨鍌ㄥ湴鍧�锛堟渶鍚庝細鍒犳帀锛�
+ 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 sequence = generateDailySequence(formattedDate);
+ String fna = "GH" + formattedDate + sequence + "/";
+ zos.putNextEntry(new ZipEntry(fna));
+
+
+ //娣诲姞ids鐨勫叏閮ㄦ暟鎹埌excel
+ ArchiveRecords archiveRecords = new ArchiveRecords();
+ archiveRecords.setIds(ids);
+ List<ArchiveRecords> lis = iArchiveRecordsService.selectArchiveRecordsList(archiveRecords);
+ //妗堝嵎鐩綍瀵煎嚭
+ ZipEntry entry = new ZipEntry(fna + "妗堝嵎鐩綍" + ".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);
+ 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();
+ // 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()+"----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 + "/"));
+
+ //鍦ㄩ噷闈㈡坊鍔犳枃浠�
+ 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);
+// }
+// }
+
+
+
+
+
+ //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(), id);
+ //鎷垮埌鐩稿叧鏁版嵁
+ List<DocumentMaterialFileStyle> dmfs = documentMaterialsService.findFileStyleInfo(Math.toIntExact(ids[i]));
+
+ 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");
+
+ List<ArchiveInfoVo> arsi = new ArrayList<>();
+ arsi.add(aIV);
+
+ String recordId1 = aIV.getRecordId();
+ byte[] imgr1 = barcodeService.generateBarcodeImage(recordId1);
+ byte[] sedcode = pdfGenerateService.createQrCodeN(recordId1, 30, 30);
+ ExcelExp e3 = new ExcelExp("妗堝嵎灏侀潰鏁版嵁",arsi, ArchiveInfoVo.class);
+ ExcelExp e4 = new ExcelExp("妗堝嵎灏侀潰", arsi, recordId1, imgr1,sedcode, ArchiveInfoVo.class);
+ List<ExcelExp> mysheet1 = new ArrayList<ExcelExp>();
+ mysheet1.add(e3);
+ mysheet1.add(e4);
+ ByteOutputStream bos2 = new ByteOutputStream();
+ ExcelUtilManySheetSecond<List<ExcelExp>> util3 = new ExcelUtilManySheetSecond<List<ExcelExp>>(mysheet1);
+
+ util3.exportExcelManySheet(bos2, mysheet1);
+
+ // 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);
+//
+//
+// ByteOutputStream boss = new ByteOutputStream();
+// List<ArchiveInfoVo> aivs = new ArrayList<>();
+// aivs.add(aIV);
+// utilsv.byteOutputStreamExcel(boss, aivs,"Date List", "");
+
+
+
+
+ //鍐欏叆鐢靛瓙鐩綍 xsxl
+
+ ZipEntry entry5 = new ZipEntry(fna + adir +"/"+"鐢靛瓙鏂囦欢鐩綍" + ".xls");
+ ExcelUtil<DocumentMaterialsVoLarge> util5 = new ExcelUtil<DocumentMaterialsVoLarge>(DocumentMaterialsVoLarge.class);
+
+ zos.putNextEntry(entry5);
+ ByteOutputStream bos5 = new ByteOutputStream();
+ util5.byteOutputStreamExcel(bos5, docs,"鐢靛瓙鏂囦欢鐩綍", "");
+ bos5.writeTo(zos);
+
+ //鎷垮埌鍗峰唴鐩綍鐨別xcel
+ List<DocumentMaterialsVoSmall> list2 = dsvs.stream().map(res1 -> new DocumentMaterialsVoSmall(res1.getNum(), res1.getDocumentNumber(),res1.getCreator(),
+ res1.getTitle(), res1.getDate(), res1.getPageNumber(), res1.getRemarks())).collect(Collectors.toList());
+ if(!dsvs.isEmpty()) {
+ 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);
+ List<ExcelExp> mysheet = new ArrayList<ExcelExp>();
+ mysheet.add(e1);
+ mysheet.add(e2);
+ ExcelUtilManySheet<List<ExcelExp>> util2 = new ExcelUtilManySheet<List<ExcelExp>>(mysheet);
+ ZipEntry entr = new ZipEntry(fna + adir + "/" + "鍗峰唴鐩綍" + ".xls");
+ // ExcelUtil<DocumentMaterialsVo> util1 = new ExcelUtil<DocumentMaterialsVo>(DocumentMaterialsVo.class);
+ System.out.println(dsvs);
+ zos.putNextEntry(entr);
+ ByteOutputStream bos8 = new ByteOutputStream();
+
+ util2.exportExcelManySheet(bos8, mysheet);
+
+ // util1.byteOutputStreamExcel(bos1, dsvs,"Date List", "");
+ 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);
+// }
+// }
+// }
+//
+//
+
+
+
+ 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 = "";
+ 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();
+ }
+ }
+
+ //鍒犻櫎鍘嬬缉鍖�
+// if(file.exists()){
+// file.delete();
+// }
+
+ } 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();
+ }
+ }
+ }
+
+ System.out.println(file.getName());
+ System.out.println(file.getTotalSpace());
+ // file.
+ writeFileToRes(response, file.getName(), file);
+
+ }
@@ -128,16 +918,24 @@
* @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);
- List<DocumentMaterials> docs = documentMaterialsService.selectDocumentMaterialsList(documentMaterials);
- List<DocumentMaterialsVo> dsvs = documentMaterialsService.findArchMInfo(id.toString());
- ArchiveInfoVo aIV = iArchiveRecordsService.selectByRecordId(id);
+ List<DocumentMaterialsVoLarge> docs = documentMaterialsService.selectDocumentMaterialsAllByRecordId(id);
+ System.out.println(docs.size()+"----009");
+
+ //.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) { // 鐩存帴涓嬭浇
@@ -157,8 +955,11 @@
String datumName = "user";
//鍘嬬缉鏂囦欢
List<String> filePathList = paths;
- File file = compressedFileToZip(docs, dsvs, aIV);
+ File file = compressedFileToZip(docs, dsvs, aIV, id);
System.out.println(file.getName());
+
+ String fileName =aIV.getRecordId()+".zip";
+
//杈撳嚭鏂囦欢娴�
writeFileToRes(response, file.getName(), file);
//鍒犻櫎鍘嬬缉鍖�
@@ -173,31 +974,15 @@
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());
- // FileInputStream inputStream = new FileInputStream(file);
-// //1.璁剧疆鏂囦欢ContentType绫诲瀷锛岃繖鏍疯缃紝浼氳嚜鍔ㄥ垽鏂笅杞芥枃浠剁被鍨�.
-// response.setContentType("application/octet-stream");
-// //2.璁剧疆鏂囦欢澶达細鏈�鍚庝竴涓弬鏁版槸璁剧疆涓嬭浇鏂囦欢鍚�
-// response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
-// response.addHeader("Content-Length", "" + file.length());
-//
-// //3.閫氳繃response鑾峰彇ServletOutputStream瀵硅薄(out)
-// ServletOutputStream out = response.getOutputStream();
-//
-// int b = 0;
-// byte[] buffer = new byte[1024];
-// while (b != -1) {
-// b = inputStream.read(buffer);
-// //4.鍐欏埌杈撳嚭娴�(out)涓�
-// out.write(buffer, 0, b);
-// }
-// out.flush();
-// out.close();
-// inputStream.close();
+
}
public String frontCompWithZore(int formatLength,int formatNumber){
/**
@@ -210,81 +995,29 @@
return newString;
}
- private void handleXSSFImages(XSSFSheet sheet, Document pdfDoc) throws Exception {
- XSSFDrawing drawing = sheet.getDrawingPatriarch();
- if (drawing == null) return;
- for (XSSFShape shape : drawing.getShapes()) {
- if (shape instanceof XSSFPicture) {
- XSSFPicture pic = (XSSFPicture)shape;
- XSSFClientAnchor anchor = pic.getPreferredSize();
+ public com.aspose.cells.Workbook poiToAspose(org.apache.poi.ss.usermodel.Workbook poiWorkbook) throws Exception {
+ // 涓存椂鏂囦欢璺緞
+ String tempFilePath = "temp_workbook.xlsx";
- // 鑾峰彇鍥剧墖鏁版嵁
- byte[] bytes = pic.getPictureData().getData();
- Image pdfImage = Image.getInstance(bytes);
+ try {
+ // 1. 灏咥pache POI Workbook淇濆瓨涓轰复鏃舵枃浠�
+ try (FileOutputStream fos = new FileOutputStream(tempFilePath)) {
+ poiWorkbook.write(fos);
+ }
- // 璁剧疆鍥剧墖浣嶇疆鍜屽ぇ灏�
- float imageWidth = pdfImage.getWidth();
- float imageHeight = pdfImage.getHeight();
- float scale = Math.min(
- (PageSize.A4.getWidth() - 100) / imageWidth,
- (PageSize.A4.getHeight() - 100) / imageHeight
- );
- pdfImage.scaleAbsolute(imageWidth * scale, imageHeight * scale);
+ // 2. 浣跨敤Aspose鍔犺浇涓存椂鏂囦欢
+ com.aspose.cells.Workbook asposeWorkbook = new com.aspose.cells.Workbook(tempFilePath);
- // 娣诲姞鍥剧墖鍒癙DF
- pdfDoc.add(pdfImage);
- pdfDoc.add(Chunk.NEWLINE);
+ return asposeWorkbook;
+
+ } finally {
+ // 娓呯悊涓存椂鏂囦欢
+ File tempFile = new File(tempFilePath);
+ if (tempFile.exists()) {
+ tempFile.delete();
}
}
- }
-
-
-
-
- private static String getCellValue(Cell cell,FormulaEvaluator evaluator) {
- // System.out.println(cell);
- if (cell == null) return "";
- CellValue cellValue = evaluator.evaluate(cell);
- if(cellValue==null)
- return "";
- // System.out.println(cellValue.getCellType());
- switch (cellValue.getCellType()) {
- case STRING:
- return cell.getStringCellValue();
- case NUMERIC:
- // 鑾峰彇鏁板�煎苟杞负鏁村瀷
- double numericValue = cell.getNumericCellValue();
- // 鍒ゆ柇鏄惁涓烘暣鏁�
- if (numericValue == (int)numericValue) {
- if((int)numericValue==0)
- return "";
- else
- return String.valueOf((int)numericValue);
- } else {
- return String.valueOf(numericValue); // 鎴栬�呮牴鎹渶瑕佽繑鍥炲洓鑸嶄簲鍏ョ殑鏁村瀷
- }
-
- case BOOLEAN:
- return String.valueOf(cell.getBooleanCellValue());
- case FORMULA:
-
- return cell.getCellFormula()+"";
- case BLANK:
- return "";
- default:
- return "";
- }
- }
- private int getRealLastCellNum(Row row) {
- int lastCellNum = 0;
- for (int i = 0; i < row.getLastCellNum(); i++) {
- Cell cell = row.getCell(i);
- if (cell != null && cell.getCellType() != CellType.BLANK) {
- lastCellNum = i + 1;
- }
- }
- return lastCellNum;
}
@@ -316,10 +1049,10 @@
// 鍘嬬缉鏂囦欢
- private File compressedFileToZip(List<DocumentMaterials> docs, List<DocumentMaterialsVo> dsvs, ArchiveInfoVo aIV) throws Exception {
+ private File compressedFileToZip(List<DocumentMaterialsVoLarge> docs, List<DocumentMaterialsVo> dsvs, ArchiveInfoVo aIV, Long id) throws Exception {
//鍘嬬缉鍖呭叿浣撳悕绉帮紙鎷兼帴鏃堕棿鎴抽槻姝㈤噸鍚嶏級
String datumName = "";
- String zipFileName = datumName + "-" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".zip";
+ String zipFileName =dsvs.get(0).getDocumentNumber()+aIV.getRecordId()+ ".zip";
//鐢熸垚鍘嬬缉鍖呭瓨鍌ㄥ湴鍧�锛堟渶鍚庝細鍒犳帀锛�
String fileZip = RuoYiConfig.getProfile() + "/download/" + zipFileName;
OutputStream os=null;
@@ -334,36 +1067,202 @@
//鍘嬬缉鏂囦欢
zos = new ZipOutputStream(os);
- //pdf鐩綍灏侀潰
- String pdfPathF = "07-鍗烽潰灏侀潰.pdf";
- pdfGenerateService.generatePdf(pdfPathF);
- // 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);
+
+ //09-澶囪�冭〃.pdf
+ String pdf09Path = "09-澶囪�冭〃.pdf";
+ // pdfGenerateService.generateFileStyleInfo(pdf09Path, aIV.getRecordId(), id);
+ //鎷垮埌鐩稿叧鏁版嵁
+ List<DocumentMaterialFileStyle> dmfs = documentMaterialsService.findFileStyleInfo(Math.toIntExact(id));
+
+ 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");
+
+ List<ArchiveInfoVo> arsi = new ArrayList<>();
+ arsi.add(aIV);
+
+ String recordId1 = aIV.getRecordId();
+ byte[] imgr1 = barcodeService.generateBarcodeImage(recordId1);
+ byte[] sedcode = pdfGenerateService.createQrCodeN(recordId1, 30, 30);
+ ExcelExp e3 = new ExcelExp("妗堝嵎灏侀潰鏁版嵁",arsi, ArchiveInfoVo.class);
+ ExcelExp e4 = new ExcelExp("妗堝嵎灏侀潰", arsi, recordId1, imgr1,sedcode, ArchiveInfoVo.class);
+ List<ExcelExp> mysheet1 = new ArrayList<ExcelExp>();
+ mysheet1.add(e3);
+ mysheet1.add(e4);
+ ByteOutputStream bos2 = new ByteOutputStream();
+ ExcelUtilManySheetSecond<List<ExcelExp>> util3 = new ExcelUtilManySheetSecond<List<ExcelExp>>(mysheet1);
+
+ util3.exportExcelManySheet(bos2, mysheet1);
+
+ // 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 i = 0; i < wb.getWorksheets().getCount(); i++) {
+ if (i != targetSheetIndex) {
+ wb.getWorksheets().get(i).setVisible(false);
}
}
- //excel 鍗峰唴灏侀潰瀵煎嚭zip
- ZipEntry entryiv = new ZipEntry("鍗峰唴灏侀潰" + ".xls");
- ExcelUtil<ArchiveInfoVo> utilsv = new ExcelUtil<ArchiveInfoVo>(ArchiveInfoVo.class);
- zos.putNextEntry(entryiv);
- ByteOutputStream boss = new ByteOutputStream();
- List<ArchiveInfoVo> aivs = new ArrayList<>();
- aivs.add(aIV);
- utilsv.byteOutputStreamExcel(boss, aivs,"Date List", "");
- boss.writeTo(zos);
+ // 璁剧疆娲诲姩宸ヤ綔琛ㄤ负鐩爣宸ヤ綔琛�
+ 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", "");
+
//鍐欏叆鐢靛瓙鐩綍 xsxl
ZipEntry entry = new ZipEntry("鐢靛瓙鏂囦欢鐩綍" + ".xls");
- ExcelUtil<DocumentMaterials> util = new ExcelUtil<DocumentMaterials>(DocumentMaterials.class);
+ ExcelUtil<DocumentMaterialsVoLarge> util = new ExcelUtil<DocumentMaterialsVoLarge>(DocumentMaterialsVoLarge.class);
zos.putNextEntry(entry);
ByteOutputStream bos = new ByteOutputStream();
@@ -377,16 +1276,11 @@
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);
ExcelUtilManySheet<List<ExcelExp>> util2 = new ExcelUtilManySheet<List<ExcelExp>>(mysheet);
-
-
-
-
-
ZipEntry entr = new ZipEntry("鍗峰唴鐩綍" + ".xls");
ExcelUtil<DocumentMaterialsVo> util1 = new ExcelUtil<DocumentMaterialsVo>(DocumentMaterialsVo.class);
System.out.println(dsvs);
@@ -399,132 +1293,93 @@
bos1.writeTo(zos);
//鎶奺xcel杞负pdf
-
+ //08-鍗峰唴鍗峰唴鐩綍鐨刾df
+ String pdf08Path= "08-鍗峰唴鐩綍.pdf";
try {
- // 1. 璇诲彇Excel鏂囦欢
- String excelPath = RuoYiConfig.getProfile() + "/download/"+"鍗峰収鐩綍.xls";
- String pdfPath = RuoYiConfig.getProfile() + "/download/"+"1.pdf";
-
- Workbook workbook = WorkbookFactory.create(new File(excelPath));
- FileOutputStream fos = new FileOutputStream(pdfPath);
- FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
-
-
- // 鑾峰彇绗竴涓伐浣滆〃
- Sheet sheet = workbook.getSheetAt(1);
-
- // 鍒涘缓PDF鏂囨。瀵硅薄
- Document document = new Document(PageSize.A2, 50, 50, 50, 50);
-
- // 鍒涘缓PDF杈撳嚭娴�
- PdfWriter writer = PdfWriter.getInstance(document, fos);
- // 4. 澶勭悊宸ヤ綔琛ㄤ腑鐨勫浘鐗�
- if (workbook instanceof XSSFWorkbook) {
- handleXSSFImages((XSSFSheet)sheet, document);
+ if (!getLicenseExcel()) {
+ System.out.println("鎺堟潈澶辫触");
+ // return ;
}
- // 鎵撳紑PDF鏂囨。
- document.open();
+ // 璇诲彇Excel鏂囦欢
+ com.aspose.cells.Workbook wb1 = poiToAspose(util2.getWb());
- // 鍒涘缓PDF琛ㄦ牸瀵硅薄
- System.out.println(sheet.getRow(0).getLastCellNum()+"--00");
- PdfPTable table = new PdfPTable(sheet.getRow(0).getLastCellNum());
- table.setHeaderRows(1);
+ // 鑾峰彇闇�瑕佸鍑虹殑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());
- // 璁剧疆琛ㄦ牸瀹藉害
- table.setWidthPercentage(100);
-
- // 璁剧疆琛ㄦ牸鏍囬
- Paragraph title = new Paragraph(sheet.getSheetName(), new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 16, Font.BOLD));
- title.setAlignment(Element.ALIGN_CENTER);
- document.add(title);
- // System.out.println(sheet.)
- // 娣诲姞琛ㄦ牸鍐呭
- for (Row row : sheet) {
- {
- if (row == null) continue;
- System.out.println(getRealLastCellNum(row)+"---987");
-// if(row.getRowNum()==0)
-// continue;
- if(row.getRowNum()==2)
- {
- PdfPCell pdfCell = ImageSet(100);
- pdfCell.setColspan(7);
- pdfCell.setRowspan(3);
- pdfCell.setBorderWidth(1f);
- pdfCell.setBorderColor(BaseColor.BLACK);
- pdfCell.setPadding(5f);
- pdfCell.setHorizontalAlignment(Element.ALIGN_CENTER);
- pdfCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
- table.addCell(pdfCell);
- System.out.println("{{{{{{{{{{{{{");
- continue;
- }
- for (int i = 0; i < 7; i++)
- {
-
- Cell cell = row.getCell(i);
- if(row.getRowNum()==3)
- {
- PdfPCell pdfCell = new PdfPCell(new Paragraph("鍗峰唴鐩綍", new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 12)));
- pdfCell.setColspan(7);
- pdfCell.setBorderWidth(1f);
- pdfCell.setBorderColor(BaseColor.BLACK);
- pdfCell.setPadding(5f);
- pdfCell.setHorizontalAlignment(Element.ALIGN_CENTER);
- pdfCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
- table.addCell(pdfCell);
- System.out.println("{{{{{{{{{{{{{");
- break;
- }
- if(cell==null) {
-
- table.addCell("");
- continue;
- }
- PdfPCell pdfCell = new PdfPCell(new Paragraph(getCellValue(cell, evaluator), new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 12)));
-
- if(row.getRowNum()!=1) {
- pdfCell.setBorderWidth(1f);
- pdfCell.setBorderColor(BaseColor.BLACK);
- pdfCell.setPadding(5f);
- pdfCell.setHorizontalAlignment(Element.ALIGN_CENTER);
- pdfCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
- }
- if (cell.getRowIndex() == 5) {
- pdfCell.setBackgroundColor(BaseColor.LIGHT_GRAY);
- }
-
- table.addCell(pdfCell);
-
- }
- }
+ // 闅愯棌鎵�鏈夊叾浠栧伐浣滆〃
+ for (int i = 0; i < wb1.getWorksheets().getCount(); i++) {
+ if (i != targetSheetIndex) {
+ wb1.getWorksheets().get(i).setVisible(false);
}
+ }
- // 娣诲姞琛ㄦ牸鍒癙DF鏂囨。
- table.setSpacingBefore(20f);
- table.setSpacingAfter(20f);
- table.setKeepTogether(true);
- document.add(table);
+ // 璁剧疆娲诲姩宸ヤ綔琛ㄤ负鐩爣宸ヤ綔琛�
+ 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();
- // 鍏抽棴PDF鏂囨。
- document.close();
+ // 灏嗘柊鐨刉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);
+// }
+// }
+
+
+
+
+
boolean res = true;
byte[] buf = new byte[1024];
- for (DocumentMaterials dc : docs) {
+ 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);
+
//鍦ㄥ帇缂╁寘涓坊鍔犳枃浠跺す
if(res) {
zos.putNextEntry(new ZipEntry("01-鐢宠鏉愭枡/"));
@@ -536,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);
@@ -592,3 +1448,7 @@
}
}
+
+
+
+
--
Gitblit v1.9.1