From 6adcb9d2eaa5676fbbaa251dca95a12f40223f4a Mon Sep 17 00:00:00 2001
From: fei <791364011@qq.com>
Date: 星期三, 10 十二月 2025 17:36:08 +0800
Subject: [PATCH] 修改了对应代码
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/archive/archiveAllExportController.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 92 insertions(+), 22 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 28d5ea7..f2e7b9a 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
@@ -8,10 +8,7 @@
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.*;
@@ -44,8 +41,11 @@
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
@@ -57,6 +57,8 @@
@RestController
@RequestMapping("/system/archiveAllExport")
public class archiveAllExportController {
+ // 瀛樺偍褰撳ぉ瀵煎嚭搴忓彿鐨凪ap锛岄敭涓烘棩鏈�(yyyyMMdd)锛屽�间负褰撳墠搴忓彿
+ private static Map<String, Integer> dailySequenceMap = new ConcurrentHashMap<>();
@Autowired
private pdfGenerateService pdfGenerateService;
@@ -67,6 +69,21 @@
@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);
+ }
+ }
@@ -125,6 +142,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 +186,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 +198,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,15 +209,32 @@
//绉讳氦娓呭崟
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);
- zos.putNextEntry(entry1);
- ByteOutputStream bos1 = new ByteOutputStream();
- util1.byteOutputStreamExcel(bos1, lrs,"绉讳氦娓呭崟", "");
- bos1.writeTo(zos);
- for(int i = 0; i < ids.length; i++) {
+
+ ExcelExp e6 = new ExcelExp("绉讳氦娓呭崟",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);
+
+
+
+
+ for(int i = 0; i < ids.length; i++) {
// 鑾峰彇鏂囦欢鐨勪繚瀛樹綅缃�,璇诲彇鏁版嵁搴�,
DocumentMaterials documentMaterials = new DocumentMaterials();
documentMaterials.setRecordId(ids[i]);
@@ -190,7 +247,7 @@
ArchiveInfoVo aIV = iArchiveRecordsService.selectByRecordId(ids[i]);
String adir = aIV.getInquiryNumber() + " " + aIV.getRecordId();
- System.out.println(fna+adir);
+ System.out.println(fna + adir);
zos.putNextEntry(new ZipEntry(fna + adir + "/"));
//鍦ㄩ噷闈㈡坊鍔犳枃浠�
@@ -297,7 +354,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,12 +372,12 @@
// 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);
// util1.byteOutputStreamExcel(bos1, dsvs,"Date List", "");
- bos6.writeTo(zos);
+ bos8.writeTo(zos);
}
//鎶奺xcel杞负pdf
@@ -369,8 +426,11 @@
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 +452,11 @@
}
}
}
+
+ System.out.println(file.getName());
+ System.out.println(file.getTotalSpace());
+ // file.
+ writeFileToRes(response, file.getName(), file);
}
@@ -417,8 +482,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,8 +526,9 @@
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);
FileUtils.writeBytes(filePath, response.getOutputStream());
--
Gitblit v1.9.1