From aa347001d6b71dc604f010dcdde1219d8d751cf6 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Thu, 7 Sep 2023 19:41:05 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=9C=AA=E7=AC=A6=E5=90=88?= =?UTF-8?q?=E9=A1=B9=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectLawsInventoryEOServiceImpl.java | 172 ++++++++++++++++-- 1 file changed, 153 insertions(+), 19 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index aec45aa36..cdcbaa6c0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -34,6 +34,7 @@ import com.jero.common.util.PageUtil; import com.jero.common.util.oss.CosBootUtil; import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl; import com.jero.modules.dummy.entity.DummyInventoryBaseEO; import com.jero.modules.dummy.entity.DummyInventoryInfoEO; import com.jero.modules.dummy.enums.AttestationRankEnum; @@ -80,6 +81,7 @@ import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; +import com.jero.modules.system.util.PDFUtils; import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; import com.jero.modules.todoCenter.entity.ProcessInfoEO; import com.jero.modules.todoCenter.enums.DesignComplianceFlowNodeKeyEnum; @@ -282,6 +284,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl params) { +// params.put("projectLibraryId","1546314907190935554"); +// params.put("projectName","EDS1.2 EVO-G1.1-中国-00"); +// params.put("cut","en"); + +// Map map1 = new HashMap<>(); +// map1.put("id","e4a2fe2b042e4150943e82094250f54d"); +// Map map2 = new HashMap<>(); +// map2.put("id","e1d5b1aa19344abb8154deea15539daa"); +// List> ncrTrackVOList =new ArrayList<>(); +// ncrTrackVOList.add(map1); +// ncrTrackVOList.add(map2); +// +// params.put("ncrTrackVOList",ncrTrackVOList); + + + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdfTemp = new SimpleDateFormat("yyyy-MM-dd"); String cut = (String) params.get("cut"); String header = ""; - String sheetName = "未符合项"; + String sheetName = ""; if (StringUtils.equals(cut,CutEnum.CN.getValue())) { - header = "编号,标题,流程类型,责任领域,问题类型,发起人,责任人"; + sheetName = "问题管理"; + header = "标题,问题类型,PS_ISSUE,创建人,创建时间,相关法规,相关项目,责任部门,问题状态,描述和分析"; } else if (StringUtils.equals(cut,CutEnum.EN.getValue())) { - header = "Number,Title,Process Type,Responsible Field,Issue Type,Creator,Assignee"; - sheetName = "Non-compliant"; + header = "Title,Issue Type,PS-ISSUE,Creator,Create Date,Related Regualtions,Related Project,Resonsible Field,Status,Description"; + sheetName = "Problem management"; } OutputStream os = null; @@ -10788,6 +10821,18 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl> dataList = this.queryNotComplianList(params); + List> expertDataList = new ArrayList<>(); + if(ObjectUtils.allNotNull(dataList)){ + List> mapList = (List>) params.get("ncrTrackVOList"); + if(ObjectUtils.isNotEmpty(mapList)){ + for (Map map : mapList) { + List> collect = dataList.stream().filter(e -> ObjectUtils.isNotEmpty(e.get("id")) && e.get("id").equals(map.get("id"))).collect(Collectors.toList()); + expertDataList.addAll(collect); + } + dataList = expertDataList; + } + } + CellStyle cellStyle = workbook.createCellStyle(); cellStyle.setAlignment(HorizontalAlignment.CENTER); Row rowHeader = sheet.createRow(0);//开始创建标题行 @@ -10804,20 +10849,105 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl connectIdList = new ArrayList<>(); + List fileList = dataList.stream() + .filter(e -> ObjectUtils.isNotEmpty(e.get("file"))).map(e -> e.get("file")).collect(Collectors.toList()); + List approvalEvidenceList = dataList.stream() + .filter(e -> ObjectUtils.isNotEmpty(e.get("approvalEvidence"))).map(e -> e.get("approvalEvidence")).collect(Collectors.toList()); + if(!fileList.isEmpty()){ + connectIdList.addAll(fileList); + } + if(!approvalEvidenceList.isEmpty()){ + connectIdList.addAll(approvalEvidenceList); + } + if(!connectIdList.isEmpty()){ + List fileInfosList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(connectIdList, ",")); + for (Map map : dataList) { + String title = (String) map.get("title"); + String createTime = ""; + if(ObjectUtils.isNotEmpty(map.get("createTime"))){ + createTime = String.valueOf(map.get("createTime")).split(" ")[0]; + } + String folder = title+createTime; + List connectIdListTemp = new ArrayList<>(); + if(ObjectUtils.isNotEmpty(map.get("file"))){ + connectIdListTemp.add((String) map.get("file")); + } + if(ObjectUtils.isNotEmpty(map.get("approvalEvidence"))){ + connectIdListTemp.add((String) map.get("approvalEvidence")); + } + if(!connectIdListTemp.isEmpty()){ + List ossFileList = fileInfosList.stream().filter(e -> connectIdListTemp.contains(e.getConnectId())).collect(Collectors.toList()); + if (ossFileList.size() != 0) { + String fileNowPath = path + File.separator + folder; + File file = new File(fileNowPath); + if (file.exists()) { + file.delete(); + } + file.mkdirs(); + for (OSSFile ossFile : ossFileList) { + String url = ossFile.getUrl(); + //判断文件是否存在 + if(StringUtils.isNotBlank(url)){ + //判断文件是否存在 + boolean b = CosBootUtil.doesObjectExist(url); + if(b){ + InputStream download = CosBootUtil.download(url); + if(url.endsWith(".pdf") || url.endsWith(".PDF")){ + String currentTime = sdf.format(new Date()); + String waterContent = loginUser.getUsername() + " " + currentTime; + File newFile = PDFUtils.PDFWatermark(download,uploadpath,ossFile.getFileName(),waterContent); + download = new FileInputStream(newFile.getPath()); + } + documentLibraryEOService.copyFile(download, fileNowPath + File.separator + ossFile.getFileName()); + } + } + } + } + } + } + } + ZipUtil.zip(path, path + ".zip"); + //文件 + FileInputStream fis = new FileInputStream(path + ".zip"); os = response.getOutputStream(); - workbook.write(os); + + int len = 0; + while ((len = fis.read()) != -1) { + os.write(len); + } os.flush(); + fis.close(); } catch (IOException e) { e.printStackTrace(); if(CutEnum.CN.getValue().equals(cut)){ @@ -10825,8 +10955,12 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl