diff --git a/jero-boot/db/蔚来标准sql/dev_third_record.sql b/jero-boot/db/蔚来标准sql/dev_third_record.sql index c713155e9..2f2873c04 100644 --- a/jero-boot/db/蔚来标准sql/dev_third_record.sql +++ b/jero-boot/db/蔚来标准sql/dev_third_record.sql @@ -1335,6 +1335,9 @@ ADD COLUMN `is_del` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_c DROP PRIMARY KEY, ADD PRIMARY KEY (`vdr_id`); +ALTER TABLE `params_report` + ADD COLUMN `project_version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '相关项目版本' AFTER `target_market`; + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java index e7584e710..c13b31fa6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/controller/ParamsCollectManifestEOController.java @@ -10,6 +10,7 @@ import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO; import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; +import com.jero.modules.cert.collect.service.IParamsCollectManifestHistoryEOService; import com.jero.modules.cert.collect.vo.ParamsCollectManifestVO; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; @@ -43,6 +44,8 @@ import java.util.stream.Collectors; public class ParamsCollectManifestEOController extends JeroController { @Autowired private IParamsCollectManifestEOService paramsCollectManifestEOService; + @Autowired + private IParamsCollectManifestHistoryEOService paramsCollectManifestHistoryEOService; @Autowired private ISysUserService sysUserService; @@ -531,7 +534,12 @@ public class ParamsCollectManifestEOController extends JeroController - and control_type != '11' order by nio_number asc + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestHistoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestHistoryEOService.java index b84c3f009..05cb16497 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestHistoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestHistoryEOService.java @@ -3,8 +3,10 @@ package com.jero.modules.cert.collect.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.cert.collect.entity.ParamsCollectManifestHistoryEO; +import com.jero.modules.cert.collect.vo.ParamsCollectManifestVO; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -42,4 +44,7 @@ public interface IParamsCollectManifestHistoryEOService extends IService ids); + void exportAll(ParamsCollectManifestVO paramsCollectManifestVO, HttpServletResponse response, HttpServletRequest request); + + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index 90e4ff271..c46ccd87d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -3525,6 +3525,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl paramsConfigDataEOList) { @@ -606,4 +638,524 @@ public class ParamsCollectManifestHistoryEOServiceImpl extends ServiceImpl fieldList = Arrays.asList(field.split(",")); // list形式 + + // 查询导出数据 + List> allParamsInfoList = queryForExportAll(paramsCollectManifestVO); // id记得去掉 + + // 开始处理工作表 + List allRelevFileList = new ArrayList<>(); + + // 在excel表中添加表头 + XSSFRow row = sheetItems.createRow(0); + for (int i = 0; i < headers.length; i++) { + XSSFCell cell = row.createCell(i); + XSSFRichTextString text = new XSSFRichTextString(headers[i]); + cell.setCellValue(text); + cell.setCellStyle(cellStyle1); + sheetItems.setColumnWidth(i, 20 * 256); // 设置单元格宽度 + } + + Map fileNowPathMap = new HashMap<>(); + //放文字内容 + int allRow = 0; + for (int rowNum = 0; rowNum < allParamsInfoList.size(); rowNum++) { + Map exportDto = allParamsInfoList.get(rowNum); + + // 处理文件 + List fileList = (List) exportDto.get("fileList"); + if (CollectionUtil.isNotEmpty(fileList)) { + allRelevFileList.addAll(fileList); + fileList.forEach(file -> { + fileNowPathMap.put(file.getId(), fileNowPath + File.separator + exportDto.get("nio_number")); + }); + + } + + allRow++; + XSSFRow row1 = sheetItems.createRow(allRow); + for (int cellNum = 0; cellNum < fieldList.size(); cellNum++) { + if (ObjectUtils.isNotEmpty(exportDto.get(fieldList.get(cellNum)))) { + row1.createCell(cellNum).setCellValue(exportDto.get(fieldList.get(cellNum)).toString()); + row1.getCell(cellNum).setCellStyle(cellStyle); + + } + } + + } + + //下载关联文件内容 + if (allRelevFileList != null && !allRelevFileList.isEmpty()) { + allRelevFileList = allRelevFileList.stream().distinct().collect(Collectors.toList()); + downLoadFileList(allRelevFileList, fileNowPathMap); + } + + String repFileName = fileName.replaceAll("/", "_"); + excelOS = new FileOutputStream(fileNowPath + File.separator + repFileName); + response.setHeader("Content-Disposition", + "attachment; filename=\"" + ReadExcel.encodeFileName(fileOriName + ".zip", request) + "\""); + response.setContentType("application/force-download"); + response.flushBuffer(); + os = response.getOutputStream(); + workbook.write(excelOS); + excelOS.flush(); + excelOS.close(); + ZipUtil.zip(fileNowPath, fileNowPath + ".zip"); +// FileInputStream fis = new FileInputStream(fileNowPath + ".zip"); +// int len = 0; +// while ((len = fis.read()) != -1) { +// os.write(len); +// } + + // 将导出文件上传到cos上 + String uploadFileName = fileOriName + ".zip"; + InputStream uploadFileio = new FileInputStream(new File(fileNowPath+".zip")); + MultipartFile mFile = new MockMultipartFile(uploadFileName, uploadFileName, "text/plain", uploadFileio); // 用于上传 + OSSFile ossFile = ossFileService.uploadLocalOfCos(mFile, "/manifest", "", CutEnum.CN.getValue()); // 上传导出的压缩包 +// +// // 系统向用户发消息 +// LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录人 +// String msgTitle = "The file " + paramsCollectManifestVO.getExportName() + " that you exported has been generated."; +// String content = "The file " + paramsCollectManifestVO.getExportName() + " that you exported has been generated, please click download."; +// +// String href = "download."; +// String contentInfo = "The file " + paramsCollectManifestVO.getExportName() + " that you exported has been generated, please click " + href; +// +// SysAnnouncement sysAnnouncement = new SysAnnouncement(); +// sysAnnouncement.setDelFlag("0"); +// sysAnnouncement.setSendStatus("0"); +// sysAnnouncement.setSendTime(new Date()); +// sysAnnouncement.setMsgCategory(MessageTypeEnum.PUSH.getValue()); //消息类型:转发推送 +// sysAnnouncement.setInitiator(MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); // 发起人:系统 +// sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户 +// sysAnnouncement.setTitile(msgTitle); +// sysAnnouncement.setMsgContent(content); +// sysAnnouncement.setMsgContentInfo(contentInfo); +// sysAnnouncement.setUserIds(currentUser.getId()); // 发送给当前导出人 +// sysAnnouncementService.saveAnnouncement(sysAnnouncement); +// +// JSONObject obj = new JSONObject(); +// obj.put(WebsocketConst.MSG_CMD, WebsocketConst.CMD_TOPIC); +// obj.put(WebsocketConst.MSG_ID, currentUser.getId()); +// obj.put(WebsocketConst.MSG_TXT, contentInfo); +// webSocket.sendMessage(obj.toJSONString()); +// +// uploadFileio.close(); + os.flush(); + os.close(); // 后开先关 +// fis.close(); // 先开后关 + pce.setState(ExportStateEnum.SUCCESSFULLY.getValue()); + pce.setFileId(ossFile.getId()); + paramsCollectExportService.updateById(pce); + } catch (Exception e) { + pce.setState(ExportStateEnum.FAILURE.getValue()); + paramsCollectExportService.updateById(pce); + if (e instanceof JeroBootException) { + throw new JeroBootException(e.getMessage()); + } else { + log.error(e.getMessage(), e); + if (CutEnum.EN.getValue().equals(paramsCollectManifestVO.getCut())) { + throw new JeroBootException("Failed to download file, please try again"); + } else { + throw new JeroBootException("下载文件失败,请重试"); + } + } + } finally { + IOUtils.closeQuietly(os); + IOUtils.closeQuietly(excelOS); + File tempZipFile = new File(uploadpath + "/tempZip"); + FileUtil.deleteContents(tempZipFile); + } + } + + + private String[] getWorkbookTitleForExport(ParamsCollectManifestVO paramsCollectManifestVO) { + String cut = paramsCollectManifestVO.getCut(); + String paramsManifestId = paramsCollectManifestVO.getParamsManifestId(); + + List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.PARAMS_COLLECT_MANIFEST.getValue()); + + List dbFieldNameList = new LinkedList<>(); + List dbFieldList = new LinkedList<>(); + + if (fieldList.size() != 0) { + //过滤列表字段(is_show_list-->列表是否显示0否 1是) + fieldList = fieldList.stream().filter(e -> YesOrNoEnum.YES.getValue().equals(String.valueOf(e.getIsShowList()))).collect(Collectors.toList()); + } + + // 固定列 + int indexOfDescription = 1; // 参数名称的位置 + for (int i = 0; i < fieldList.size(); i++) { + OnlCgformField onlCgformField = fieldList.get(i); + String dbFieldName = onlCgformField.getDbFieldName(); + if (!"deadline".equals(dbFieldName) && !"cert_category".equals(dbFieldName)) { + dbFieldList.add(dbFieldName); + + if (CutEnum.CN.getValue().equals(cut)) { + dbFieldNameList.add(onlCgformField.getDbFieldTxt()); // 字段中文名 + } else { + dbFieldNameList.add(onlCgformField.getDbFieldEnName()); // 字段英文名 + } + if ("params_name".equals(dbFieldName)) { + indexOfDescription = i; + } + } + } + + // 认证类别列 + List dbFieldNameListCC = new LinkedList<>(); + List dbFieldListCC = new LinkedList<>(); + // 查询所有认证类别 + List sysDictItemList = sysDictItemService.selectItemsByDictCode("cert_category"); + if (CutEnum.EN.getValue().equals(cut)) { + sysDictItemList.forEach(sysDictItem -> { + dbFieldListCC.add(sysDictItem.getItemValue()); + dbFieldNameListCC.add(sysDictItem.getEnName() + " Number"); + }); + + } else { + sysDictItemList.forEach(sysDictItem -> { + dbFieldListCC.add(sysDictItem.getItemValue()); + dbFieldNameListCC.add(sysDictItem.getItemText() + "编号"); + }); + } + + // 配置列 + List dbFieldNameListConfig = new LinkedList<>(); + List dbFieldListConfig = new LinkedList<>(); + List paramsConfigEOList = paramsConfigHistoryEOService.queryList(paramsManifestId); + for (ParamsConfigHistoryEO paramsConfigEO : paramsConfigEOList) { + dbFieldListConfig.add(paramsConfigEO.getId()); + dbFieldNameListConfig.add(paramsConfigEO.getConfigName()); + } + + // 插入认证类别列 + dbFieldList.addAll(indexOfDescription, dbFieldListCC); + dbFieldNameList.addAll(indexOfDescription, dbFieldNameListCC); + + // 插入配置列 + dbFieldList.addAll(dbFieldListConfig); + dbFieldNameList.addAll(dbFieldNameListConfig); + + String[] title = new String[2]; + String dbFieldStr = StringUtils.join(dbFieldList, ","); + String dbFieldNameStr = StringUtils.join(dbFieldNameList, ","); + + title[0] = dbFieldStr; + title[1] = dbFieldNameStr; + return title; + } + + private List> queryForExportAll(ParamsCollectManifestVO paramsCollectManifestVO) { + String paramsManifestId = paramsCollectManifestVO.getParamsManifestId(); + String paramsTemplateId = paramsCollectManifestVO.getParamsTemplateId(); + Integer paramsTemplatePublishVersion = paramsCollectManifestVO.getParamsTemplatePublishVersion(); + String cut = paramsCollectManifestVO.getCut(); + + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + ParamsCollectManifestEO queryEO = new ParamsCollectManifestEO(); + queryEO.setParamsManifestId(paramsManifestId); + String userTypes = paramsCollectManifestVO.getUserTypes(); + if (userTypes != null && CollectManifestUserTypeEnum.SDT.getValue().equals(userTypes)) { + queryEO.setUserTypes(CollectManifestUserTypeEnum.SDT.getValue()); + queryEO.setSdt(loginUser.getUsername()); + } + + List> dataList = paramsCollectManifestHistoryEOMapper.listInfoForExport(queryEO, null); // 查询导出数据 + if (dataList == null || dataList.isEmpty()) { + // 没有查到数据,进行提示 + if (CutEnum.EN.getValue().equals(paramsCollectManifestVO.getCut())) { + throw new JeroBootException("No data, unable to export"); + } else { + throw new JeroBootException("无数据,无法导出"); + } + } + + List paramsConfigEOList = paramsConfigHistoryEOService.queryList(paramsManifestId); // 查询所有配置列 + + List paramsConfigIdList = paramsConfigEOList.stream().map(ParamsConfigEO::getId).collect(Collectors.toList()); + List paramsConfigDataEOList = paramsConfigDataHistoryEOService.queryListByConfigIdList(paramsConfigIdList); // 查询所有配置数据 + + List> exportDataList = new ArrayList<>(); + // 配置列多行数据处理 + for (Map data : dataList) { + String controlType = (String)data.get("control_type"); + if("0".equals(paramsCollectManifestVO.getExportOption()) && "11".equals(controlType)){ + //不要标题 + continue; + } + String id = (String) data.get("id"); + + Map> paramsConfigDataMap = paramsConfigDataEOList.stream().filter(configDataEO -> { + boolean flag = false; + if (StringUtils.equals(configDataEO.getParamsCollectManifestId(), id)) { + flag = true; + } + return flag; + }).collect(Collectors.groupingBy(configDataEO -> configDataEO.getParamsConfigId())); + + List> paramsConfigDataCountList = new ArrayList<>(); + + for (Map.Entry> map : paramsConfigDataMap.entrySet()) { + Map paramsConfigDataCountMap = new HashMap<>(); + paramsConfigDataCountMap.put("key", map.getKey()); + paramsConfigDataCountMap.put("paramsConfigDataCount", map.getValue().size()); + paramsConfigDataCountMap.put("value", map.getValue()); + paramsConfigDataCountList.add(paramsConfigDataCountMap); + } + + // 排序 配置数据总数倒序排序 + Collections.sort(paramsConfigDataCountList, new Comparator>() { + @Override + public int compare(Map o1, Map o2) { + return o2.get("paramsConfigDataCount").toString().compareTo(o1.get("paramsConfigDataCount").toString()); + } + }); + + // 获取出最多行的配置列。 + if (!paramsConfigDataCountList.isEmpty()) { + Map paramsConfigDataMaxCountMap = paramsConfigDataCountList.get(0); + String key = (String) paramsConfigDataMaxCountMap.get("key"); + List paramsConfigDataEOs = paramsConfigDataMap.get(key); + for (ParamsConfigDataEO paramsConfigDataEO : paramsConfigDataEOs) { + Map dataTemp = new HashMap<>(); + data.entrySet().forEach(o -> dataTemp.put(o.getKey(), o.getValue())); + exportDataList.add(dataTemp); + } + } else { + exportDataList.add(data); + } + } + + List nioNumberList = dataList.stream().map(m -> (String) m.get("nio_number")).collect(Collectors.toList()); + List certCategoryParamsInfoPublishEOList = certCategoryParamsInfoPublishEOService.queryListByVersionAndNio(paramsTemplateId, paramsTemplatePublishVersion, nioNumberList); //查询所有认证类别参数项 + + // 查询责任领域数据字典 + List sysDictItemList = sysDictItemService.selectItemsByDictCode("duty_territory"); + Map dutyTerritoryMap = new HashMap<>(); + if (CutEnum.EN.getValue().equals(cut)) { + dutyTerritoryMap = sysDictItemList.stream().collect(Collectors.toMap(c -> c.getItemValue(), c -> c.getEnName())); + } else { + dutyTerritoryMap = sysDictItemList.stream().collect(Collectors.toMap(c -> c.getItemValue(), c -> c.getItemText())); + } + // 状态 + Map stateMap = CollectManifestStateEnum.toMap(cut); + + // 插入配置列和认证类别列数据 + for (Map record1 : exportDataList) { + + String paramsCollectManifestId = (String) record1.get("id"); + String nioNumber = (String) record1.get("nio_number"); + String dutyTerritory = (String) record1.get("duty_territory"); + String state = (String) record1.get("state"); + + String control_type = record1.get("control_type").toString(); + //references_col -> #a# # + if (!Objects.isNull(record1.get("references_col"))) { + String references_col = record1.get("references_col").toString(); + if (StringUtils.isNotEmpty(references_col)) { + String[] references_colArr = references_col.split("#"); + if (StringUtils.equals(control_type, ControlTypeEnum.FILE.getValue())) { + String fileId = references_colArr[2]; + List fileInfos = this.ossFileService.getFileInfos(fileId); + String fileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + references_col = "#" + references_colArr[0] + "#" + references_colArr[1] + "#" + fileName; + } else if (StringUtils.equals(control_type, ControlTypeEnum.TEXT_FILE.getValue()) + || StringUtils.equals(control_type, ControlTypeEnum.PULL_SINGLE_FILE.getValue()) + || StringUtils.equals(control_type, ControlTypeEnum.PULL_MORE_FILE.getValue())) { + String fileId = references_colArr[2]; + List fileInfos = this.ossFileService.getFileInfos(fileId); + String fileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + references_col = "#" + references_colArr[0] + "#" + references_colArr[1] + "#" + fileName; + } else if (StringUtils.equals(control_type, ControlTypeEnum.TEXT_PULL_SINGLE_FILE.getValue())) { + String fileId = references_colArr[2]; + List fileInfos = this.ossFileService.getFileInfos(fileId); + String fileName = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.joining(",")); + references_col = "#" + references_colArr[0] + "#" + references_colArr[1] + "#" + fileName; + } + + StringBuilder references_colSb = new StringBuilder(); + for (String col : references_col.split("#")) { + if (StringUtils.isNotEmpty(col) && !StringUtils.equals(col, " ")) { + references_colSb.append(col).append("#"); + } + } + + if (StringUtils.isNotEmpty(references_colSb)) { + references_col = references_colSb.substring(0, references_colSb.length() - 1); + } else { + references_col = references_colSb.toString(); + } + + record1.put("references_col", references_col); + } + } + + // 处理负责领域 + record1.put("duty_territory", dutyTerritoryMap.get(dutyTerritory)); + + // 处理状态 + record1.put("state", stateMap.get(state)); + + // 认证类别列 + List certCategoryParamsInfoPublishEOS = certCategoryParamsInfoPublishEOList.stream().filter(e -> nioNumber.equals(e.getNioNumber())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(certCategoryParamsInfoPublishEOS)) { + certCategoryParamsInfoPublishEOS.forEach(certCategoryParamsInfoPublishEO -> { + record1.put(certCategoryParamsInfoPublishEO.getCertCategory(), certCategoryParamsInfoPublishEO.getParamsNumber()); + }); + } + + // 配置列 + if (CollectionUtil.isNotEmpty(paramsConfigEOList)) { + List fileList = new ArrayList<>(); + + paramsConfigEOList.forEach(paramsConfigEO -> { // 参数配置 + + String paramsConfigId = paramsConfigEO.getId(); + List paramsConfigDataEOS = paramsConfigDataEOList.stream().filter(e -> { + boolean flag = false; + if(StringUtils.equals(paramsConfigId,e.getParamsConfigId()) && StringUtils.equals(paramsCollectManifestId,e.getParamsCollectManifestId())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); // 参数配置数据 + StringBuilder configDataBuilder = new StringBuilder(); // 重新组合配置数据 + if (CollectionUtil.isNotEmpty(paramsConfigDataEOS)) { + ParamsConfigDataEO paramsConfigDataEO = paramsConfigDataEOS.get(0); + if (StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) { + configDataBuilder.append(paramsConfigDataEO.getTextData()).append("#"); + } + if (StringUtils.isNotEmpty(paramsConfigDataEO.getPullData())) { + configDataBuilder.append(paramsConfigDataEO.getPullData()).append("#"); + } + if (StringUtils.isNotEmpty(paramsConfigDataEO.getFileConnectId())) { + List ossFileList = ossFileService.getFileInfosByConnectId(paramsConfigDataEO.getFileConnectId()); + if (CollectionUtil.isNotEmpty(ossFileList)) { + configDataBuilder.append(nioNumber).append("/").append(ossFileList.get(0).getFileName()).append("#"); + + fileList.addAll(ossFileList); + } + } + paramsConfigDataEOList.remove(paramsConfigDataEO); + } + + String configData = configDataBuilder.toString(); + if (configData.contains("#")) { + configData = configData.substring(0, configData.lastIndexOf("#")); + } + + record1.put(paramsConfigEO.getId(), configData); + }); + + record1.put("fileList", fileList); + } + } + return exportDataList; + } + + + private void downLoadFileList(List fileTemplateList, Map fileNowPathMap) { + for (OSSFile fileExportDto : fileTemplateList) { + String fileNowPath = fileNowPathMap.get(fileExportDto.getId()); + File nowFile = new File(fileNowPath); + if (nowFile.exists()) { + nowFile.delete(); + } + nowFile.mkdirs(); + + String oldPath = fileExportDto.getUrl(); + String newPath = fileNowPath + File.separator + fileExportDto.getFileName(); + if (CosBootUtil.doesObjectExist(oldPath)) { + try (InputStream in = CosBootUtil.download(oldPath);) { + copyFile(in, newPath); + } catch (IOException e) { + e.printStackTrace(); + log.error(e.getMessage(), e); + } + } + } + } + + private void copyFile(InputStream in, String destPath) throws IOException { + BufferedInputStream bis = new BufferedInputStream(in); + BufferedOutputStream bos = + new BufferedOutputStream(Files.newOutputStream(Paths.get(destPath), + StandardOpenOption.CREATE, + StandardOpenOption.TRUNCATE_EXISTING, + StandardOpenOption.WRITE)); + // 打开输入流 +// FileInputStream fis = new FileInputStream(srcPath); + // 打开输出流 +// FileOutputStream fos = new FileOutputStream(destPath); + // 读取和写入信息 + byte[] bytes = new byte[1024 * 1024]; + int len; + while ((len = bis.read(bytes)) > 0) { + bos.write(bytes, 0, len); + } + // 关闭流 先开后关 后开先关 + bos.close(); // 后开先关 + bis.close(); // 先开后关 + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java index e080b6c69..d33b6f3e6 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/vo/ParamsCollectManifestVO.java @@ -110,4 +110,8 @@ public class ParamsCollectManifestVO { //是否导出标题 ”1“ 是 ”0“否 @TableField(exist = false) private String exportOption; + + //是否是历史版本 ”1“ 是 ”0“否 + @TableField(exist = false) + private String isHistory; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java index b12561b94..38fddf82e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/report/controller/ParamsReportEOController.java @@ -123,14 +123,20 @@ public class ParamsReportEOController extends JeroController
- {{this.$route.query.pageName ? this.$route.query.pageName : $t('ParameterViewPage')}} + {{this.$route.query.pageName ? this.$t('ParameteItemReportList')+'('+this.$route.query.pageName+')' + ' — '+this.$route.query.title +' — '+ this.$route.query.version: $t('ParameterViewPage')}}
@@ -129,6 +129,13 @@ {{$t('dataExport')}} + + +
+ + {{$t('Derivedlist')}} +
+
{{$t('ConventionalExport')}} @@ -215,21 +222,131 @@ {{this.$t('pleaseWaitWhileRunning')}} + + + + + +
+
+ * + + {{$t('exportOption')}} +
+ + + + {{$t('includeTitle')}} + + + {{$t('Notitleincluded')}} + + + +
+
+
+
+
+ + + + + +
+ {{$t('Exportsuccessexportlist')}} + + + +
+
+
+
+ + + + + + + {{$t('download')}} + {{$t('delete')}} + + + + + + + +
+ +
+