|
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.google.common.reflect.TypeToken;
|
|
import com.google.common.reflect.TypeToken;
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.Gson;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
|
|
+import com.qmth.boot.tools.excel.ExcelWriter;
|
|
|
|
+import com.qmth.boot.tools.excel.enums.ExcelType;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.bean.params.DownloadPaperFileParam;
|
|
import com.qmth.distributed.print.business.bean.params.DownloadPaperFileParam;
|
|
import com.qmth.distributed.print.business.bean.query.BasicExamStudentPageQuery;
|
|
import com.qmth.distributed.print.business.bean.query.BasicExamStudentPageQuery;
|
|
@@ -21,7 +23,6 @@ import com.qmth.distributed.print.business.enums.PaperFileDownloadExposureStatus
|
|
import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.distributed.print.business.templete.service.DownloadLogicService;
|
|
import com.qmth.distributed.print.business.templete.service.DownloadLogicService;
|
|
import com.qmth.distributed.print.business.util.CreatePdfUtil;
|
|
import com.qmth.distributed.print.business.util.CreatePdfUtil;
|
|
-import com.qmth.distributed.print.business.util.PdfUtil;
|
|
|
|
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
import com.qmth.teachcloud.common.bean.params.ArraysParams;
|
|
import com.qmth.teachcloud.common.bean.params.ArraysParams;
|
|
import com.qmth.teachcloud.common.bean.result.DictionaryResult;
|
|
import com.qmth.teachcloud.common.bean.result.DictionaryResult;
|
|
@@ -49,10 +50,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.FileCopyUtils;
|
|
import org.springframework.util.FileCopyUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
-import java.io.ByteArrayInputStream;
|
|
|
|
-import java.io.ByteArrayOutputStream;
|
|
|
|
-import java.io.File;
|
|
|
|
-import java.io.InputStream;
|
|
|
|
|
|
+import java.io.*;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -669,6 +667,7 @@ public class DownloadLogicServiceImpl implements DownloadLogicService {
|
|
SysUser sysUser = (SysUser) map.get(SystemConstant.USER);
|
|
SysUser sysUser = (SysUser) map.get(SystemConstant.USER);
|
|
Long privilegeId = (Long) map.get("privilegeId");
|
|
Long privilegeId = (Long) map.get("privilegeId");
|
|
File file = null;
|
|
File file = null;
|
|
|
|
+ FileOutputStream outputStream = null;
|
|
try {
|
|
try {
|
|
BasicExamStudentPageQuery query = (BasicExamStudentPageQuery) map.get("query");
|
|
BasicExamStudentPageQuery query = (BasicExamStudentPageQuery) map.get("query");
|
|
List<BasicExamStudentResult> list = basicExamStudentService.exportList(query, sysUser, privilegeId);
|
|
List<BasicExamStudentResult> list = basicExamStudentService.exportList(query, sysUser, privilegeId);
|
|
@@ -680,7 +679,25 @@ public class DownloadLogicServiceImpl implements DownloadLogicService {
|
|
|
|
|
|
file = SystemConstant.getFileTempDirVar(SystemConstant.EXCEL_PREFIX);
|
|
file = SystemConstant.getFileTempDirVar(SystemConstant.EXCEL_PREFIX);
|
|
// 生成excel文件
|
|
// 生成excel文件
|
|
- ExcelUtil.excelExportLocal(file, BasicExamStudentDto.class, examStudentDtoList);
|
|
|
|
|
|
+ outputStream = new FileOutputStream(file);
|
|
|
|
+ ExcelWriter writer = ExcelWriter.create(ExcelType.XLSX);
|
|
|
|
+
|
|
|
|
+ List<BasicExamStudentDto> collection = new ArrayList();
|
|
|
|
+ int sheetCount = 1;
|
|
|
|
+ for (BasicExamStudentDto s : examStudentDtoList) {
|
|
|
|
+ collection.add(s);
|
|
|
|
+ if (collection.size() == ExcelUtil.DEFAULT_SHEET_COUNT) {
|
|
|
|
+ writer.writeObjects("sheet" + sheetCount, null, BasicExamStudentDto.class, collection.listIterator());
|
|
|
|
+ collection.clear();
|
|
|
|
+ sheetCount++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (collection.size() > 0) {
|
|
|
|
+ writer.writeObjects("sheet" + sheetCount, null, BasicExamStudentDto.class, collection.listIterator());
|
|
|
|
+ collection.clear();
|
|
|
|
+ }
|
|
|
|
+ writer.output(outputStream);
|
|
|
|
+
|
|
String fileName = SystemConstant.getNanoId() + SystemConstant.EXCEL_PREFIX;
|
|
String fileName = SystemConstant.getNanoId() + SystemConstant.EXCEL_PREFIX;
|
|
FilePathVo filePathVo = fileUploadService.uploadFile(file, UploadFileEnum.FILE, fileName);
|
|
FilePathVo filePathVo = fileUploadService.uploadFile(file, UploadFileEnum.FILE, fileName);
|
|
tbTask.setResultFilePath(JSON.toJSONString(filePathVo));
|
|
tbTask.setResultFilePath(JSON.toJSONString(filePathVo));
|
|
@@ -691,6 +708,14 @@ public class DownloadLogicServiceImpl implements DownloadLogicService {
|
|
if (Objects.nonNull(file)) {
|
|
if (Objects.nonNull(file)) {
|
|
file.delete();
|
|
file.delete();
|
|
}
|
|
}
|
|
|
|
+ if (outputStream != null) {
|
|
|
|
+ try {
|
|
|
|
+ outputStream.flush();
|
|
|
|
+ outputStream.close();
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|