From 3ea61dd8477c0e652ff660aabbd11a11cdf63a45 Mon Sep 17 00:00:00 2001 From: 16639036659 <577530412@qq.com> Date: 星期三, 15 五月 2024 09:56:55 +0800 Subject: [PATCH] 导出调整 --- src/main/java/com/gkhy/labRiskManage/api/controller/basic/OldRiskAssessController.java | 16 ++++--- src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java | 7 +++ src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java | 74 +++++++++++++++++++++++++------------ 3 files changed, 65 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/gkhy/labRiskManage/api/controller/basic/OldRiskAssessController.java b/src/main/java/com/gkhy/labRiskManage/api/controller/basic/OldRiskAssessController.java index 52d5f77..a3acaa4 100644 --- a/src/main/java/com/gkhy/labRiskManage/api/controller/basic/OldRiskAssessController.java +++ b/src/main/java/com/gkhy/labRiskManage/api/controller/basic/OldRiskAssessController.java @@ -20,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; /** @@ -134,20 +135,21 @@ } @PostMapping("/select/exportOldRiskAssess") - public Result exportOldRiskAssess(@RequestBody OldRiskAssessQueryReqBO queryReqDO){ + public Result exportOldRiskAssess(@RequestBody OldRiskAssessQueryReqBO queryReqDO, HttpServletResponse response, HttpServletRequest request){ Result result = new Result(); result.setCode(ResultCode.OK); result.setMsg("导出成功"); - int importResult = oldRiskAssessService.exportOldRiskAssess(getCurrentUserId(), queryReqDO); + Result<OldRiskAssessExportRespDTO> importResult = oldRiskAssessService.exportOldRiskAssess(getCurrentUserId(), queryReqDO, response, request); - if (importResult < 1){ - result.setCode(ResultCode.NOT_OK); - result.setMsg("导出失败"); - } - result.setCount(importResult); +// if (importResult < 1){ +// result.setCode(ResultCode.NOT_OK); +// result.setMsg("导出失败"); +// } + result.setCount(importResult.getCount()); + result.setData(importResult.getData()); return result; } diff --git a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java index 75e5159..ca81ac9 100644 --- a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java +++ b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java @@ -1,10 +1,15 @@ package com.gkhy.labRiskManage.domain.basic.service; import com.gkhy.labRiskManage.api.controller.basic.dto.repDto.OldRiskAssessQueryReqBO; +import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessExportRespDTO; import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessQueryRespDTO; +import com.gkhy.labRiskManage.commons.domain.Result; import com.gkhy.labRiskManage.commons.domain.SearchResult; import com.gkhy.labRiskManage.domain.basic.entity.OldRiskAssess; import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; public interface OldRiskAssessService { @@ -18,5 +23,5 @@ int importOldRiskAssess(Long currentUserId, MultipartFile file); - int exportOldRiskAssess(Long currentUserId, OldRiskAssessQueryReqBO queryReqDO); + Result<OldRiskAssessExportRespDTO> exportOldRiskAssess(Long currentUserId, OldRiskAssessQueryReqBO queryReqDO, HttpServletResponse response, HttpServletRequest request); } diff --git a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java index 517e209..eda1981 100644 --- a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java +++ b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java @@ -1,7 +1,9 @@ package com.gkhy.labRiskManage.domain.basic.service.impl; import com.gkhy.labRiskManage.api.controller.basic.dto.repDto.OldRiskAssessQueryReqBO; +import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessExportRespDTO; import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessQueryRespDTO; +import com.gkhy.labRiskManage.commons.domain.Result; import com.gkhy.labRiskManage.commons.domain.SearchResult; import com.gkhy.labRiskManage.commons.enums.ResultCode; import com.gkhy.labRiskManage.commons.enums.StatusEnum; @@ -21,6 +23,7 @@ import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Base64Utils; import org.springframework.util.ObjectUtils; import org.springframework.web.multipart.MultipartFile; @@ -28,9 +31,14 @@ import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStream; +import java.net.URLEncoder; import java.text.NumberFormat; import java.time.LocalDateTime; import java.util.ArrayList; @@ -317,7 +325,7 @@ } @Override - public int exportOldRiskAssess(Long currentUserId, OldRiskAssessQueryReqBO queryReqDO) { + public Result<OldRiskAssessExportRespDTO> exportOldRiskAssess(Long currentUserId, OldRiskAssessQueryReqBO queryReqDO , HttpServletResponse response, HttpServletRequest request) { //组装查询条件 Specification<OldRiskAssess> specification = new Specification<OldRiskAssess>() { @@ -354,6 +362,7 @@ } }; List<OldRiskAssess> list = repository.findAll(specification); + Result result = new Result<>(); //创建工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); @@ -402,29 +411,46 @@ cell.setCellValue(oldRiskAssess.getControlLevel()); } - // 保存Excel文件 - try{ - // 获取桌面路径 - String desktopPath = System.getProperty("user.home") + "/Desktop/"; - // 导出文件名 - String fileName = desktopPath + "评分标准.xlsx"; - FileOutputStream fileOutputStream = new FileOutputStream(new File(fileName)); - // 将工作簿写入文件 - workbook.write(fileOutputStream); - workbook.close(); - fileOutputStream.close(); - } catch (Exception e) { - e.printStackTrace(); - }finally{ - if (workbook != null){ - try { - workbook.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - return StatusEnum.SUCCESS.getCode(); +// // 保存Excel文件 +// try{ +// ServletOutputStream out = null; +// response.setContentType("application/json"); +// response.setCharacterEncoding("utf-8"); +// response.setContentType("application/octet-stream;charset=UTF-8"); +// String fileName = "测试测试.xls"; +// +// String agent = request.getHeader("USER-AGENT").toLowerCase(); +// String uncodeFileNameString = ""; +// if(agent.contains("firefox")){ +// // 火狐 +// uncodeFileNameString = "=?UTF-8?B?" + (new String(Base64Utils.encodeToString(fileName.getBytes("UTF-8")))) + "?="; +// }else{ +// // 其他 +// uncodeFileNameString = URLEncoder.encode(fileName, "UTF-8"); +// uncodeFileNameString = uncodeFileNameString.replace("+", "%20"); // 空格被转为了 "+" ,要转成utf-8的空格符号 "%20" +// } +// response.setContentType("application/octet-stream;charset=UTF-8"); +// response.setHeader("Content-disposition", "attachment; filename=" + uncodeFileNameString); +// out = response.getOutputStream(); +// +// +//// // 获取桌面路径 +//// String desktopPath = System.getProperty("user.home") + "/Desktop/"; +//// // 导出文件名 +//// String fileName = desktopPath + "评分标准.xlsx"; +//// FileOutputStream fileOutputStream = new FileOutputStream(new File(fileName)); +// // 将工作簿写入文件 +// workbook.write(out); +// workbook.close(); +// out.close(); +// } catch (Exception e) { +// e.printStackTrace(); +// } + + result.setData(list); + result.setCount(list.size()); + + return result; } @Override -- Gitblit v1.9.2