From 8485affcb0d4de05059d80cb1e844d6b18291654 Mon Sep 17 00:00:00 2001 From: heheng <475597332@qq.com> Date: 星期五, 16 五月 2025 14:35:49 +0800 Subject: [PATCH] 修正 --- src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java | 97 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 72 insertions(+), 25 deletions(-) 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..e1256ab 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,10 @@ 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.api.controller.basic.dto.respDto.OldRiskAssessResDTO; +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; @@ -13,7 +16,6 @@ import com.gkhy.labRiskManage.domain.basic.repository.jpa.OldRiskAssessRepository; import com.gkhy.labRiskManage.domain.basic.service.OldRiskAssessService; import org.apache.poi.hssf.usermodel.*; -import org.apache.poi.ss.usermodel.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -28,8 +30,8 @@ import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; -import java.io.File; -import java.io.FileOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.NumberFormat; import java.time.LocalDateTime; @@ -317,7 +319,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 +356,7 @@ } }; List<OldRiskAssess> list = repository.findAll(specification); + Result result = new Result<>(); //创建工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); @@ -402,29 +405,73 @@ 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(); - } +// // 保存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 + public List<OldRiskAssessResDTO> getOldRiskAssessListByRegion(List<String> region) { + + Specification<OldRiskAssess> specification = new Specification<OldRiskAssess>() { + @Override + public Predicate toPredicate(Root<OldRiskAssess> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { + query.orderBy(criteriaBuilder.asc(root.get("region"))); + List<Predicate> predicateList = new ArrayList<>(); + predicateList.add(criteriaBuilder.in(root.get("region")).value(region)); + + predicateList.add(criteriaBuilder.equal(root.get("deleteStatus"),StatusEnum.DELETE_NOT.getCode())); + //返回组装的条件 + return criteriaBuilder.and(predicateList.toArray(predicateList.toArray(new Predicate[0]))); } + }; + + List<OldRiskAssess> all = repository.findAll(specification); + if (ObjectUtils.isEmpty(all)){ + return null; } - return StatusEnum.SUCCESS.getCode(); + List<OldRiskAssessResDTO> oldRiskAssessResDTOS = BeanCopyUtils.copyBeanList(all, OldRiskAssessResDTO.class); + oldRiskAssessResDTOS.forEach(oldRiskAssessResDTO -> { + oldRiskAssessResDTO.setSort(oldRiskAssessResDTOS.indexOf(oldRiskAssessResDTO) + 1); + }); + return oldRiskAssessResDTOS; } @Override -- Gitblit v1.9.2