From 97ae00b970d2a47b95e2a9a6da3a23daa1bac444 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 28 May 2024 15:31:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/ExportCenterManage.java | 833 ------------------ .../visualized/data/dataset/ExportExcel.vue | 2 +- 2 files changed, 1 insertion(+), 834 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java b/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java index 42190b0d49..d191dff6f6 100644 --- a/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java +++ b/core/core-backend/src/main/java/io/dataease/exportCenter/manage/ExportCenterManage.java @@ -201,62 +201,6 @@ public class ExportCenterManage { } } - -// public void exportTableDetails(PanelViewDetailsRequest request, Workbook wb, CellStyle cellStyle, Sheet detailsSheet) throws IOException { -// List details = request.getDetails(); -// Integer[] excelTypes = request.getExcelTypes(); -// if (CollectionUtils.isNotEmpty(details)) { -// for (int i = 0; i < details.size(); i++) { -// Row row = detailsSheet.createRow(i); -// Object[] rowData = details.get(i); -// if (rowData != null) { -// for (int j = 0; j < rowData.length; j++) { -// Cell cell = row.createCell(j); -// if (i == 0) {// 头部 -// cell.setCellValue(String.valueOf(rowData[j])); -// cell.setCellStyle(cellStyle); -// //设置列的宽度 -// detailsSheet.setColumnWidth(j, 255 * 20); -// } else { -// try { -// // with DataType -// if ((excelTypes[j].equals(DeTypeConstants.DE_INT) || excelTypes[j].equals(DeTypeConstants.DE_FLOAT)) && rowData[j] != null) { -// cell.setCellValue(Double.valueOf(rowData[j].toString())); -// } else if (rowData[j] != null) { -// cell.setCellValue(String.valueOf(rowData[j])); -// } -// } catch (Exception e) { -// LogUtil.warn("export excel data transform error"); -// } -// } -// } -// } -// } -// } -// } - -// public void reInitExportTask() { -// ExportTaskExample exportTaskExample = new ExportTaskExample(); -// ExportTaskExample.Criteria criteria = exportTaskExample.createCriteria(); -// criteria.andExportMachineNameEqualTo(hostName()).andExportStatusEqualTo("IN_PROGRESS"); -// ExportTask record = new ExportTask(); -// record.setExportStatus("FAILED"); -// exportTaskMapper.updateByExampleSelective(record, exportTaskExample); -// exportTaskExample.clear(); -// criteria = exportTaskExample.createCriteria(); -// criteria.andExportMachineNameEqualTo(hostName()).andExportStatusEqualTo("PENDING"); -// exportTaskMapper.selectByExampleWithBLOBs(exportTaskExample).parallelStream().forEach(exportTask -> { -// if (exportTask.getExportFromType().equalsIgnoreCase("dataset")) { -// DataSetExportRequest request = new Gson().fromJson(exportTask.getParams(), DataSetExportRequest.class); -// startDatasetTask(exportTask, request); -// } -// if (exportTask.getExportFromType().equalsIgnoreCase("chart")) { -// PanelViewDetailsRequest request = new Gson().fromJson(exportTask.getParams(), PanelViewDetailsRequest.class); -// startViewTask(exportTask, request); -// } -// }); -// } - private String hostName() { String hostname = null; try { @@ -439,219 +383,6 @@ public class ExportCenterManage { Running_Task.put(exportTask.getId(), future); } -// public void addTask(String exportFrom, String exportFromType, DataSetExportRequest request) { -// ExportTask exportTask = new ExportTask(); -// exportTask.setId(UUID.randomUUID().toString()); -// exportTask.setUserId(AuthUtils.getUser().getUserId()); -// exportTask.setExportFrom(exportFrom); -// exportTask.setExportFromType(exportFromType); -// exportTask.setExportStatus("PENDING"); -// exportTask.setFileName(request.getFilename() + ".xlsx"); -// exportTask.setExportPogress("0"); -// exportTask.setExportTime(System.currentTimeMillis()); -// exportTask.setParams(new Gson().toJson(request)); -// exportTask.setExportMachineName(hostName()); -// exportTaskMapper.insert(exportTask); -// startDatasetTask(exportTask, request); -// -// } - -// private void startDatasetTask(ExportTask exportTask, DataSetExportRequest request) { -// String dataPath = exportData_path + exportTask.getId(); -// File directory = new File(dataPath); -// boolean isCreated = directory.mkdir(); -// Future future = scheduledThreadPoolExecutor.submit(() -> { -// try { -// exportTask.setExportStatus("IN_PROGRESS"); -// exportTaskMapper.updateByPrimaryKey(exportTask); -// DatasetRowPermissionsTreeObj tree = null; -// if (StringUtils.isNotEmpty(request.getExpressionTree())) { -// Gson gson = new Gson(); -// tree = gson.fromJson(request.getExpressionTree(), DatasetRowPermissionsTreeObj.class); -// permissionsTreeService.getField(tree); -// } -// Datasource datasource = datasourceService.get(request.getDataSourceId()); -// Integer totalCount = getTotal(request, limit, tree); -// if (totalCount == null) { -// Workbook wb = new SXSSFWorkbook(); -// // Sheet -// Sheet detailsSheet = wb.createSheet("数据"); -// //给单元格设置样式 -// CellStyle cellStyle = wb.createCellStyle(); -// Font font = wb.createFont(); -// //设置字体大小 -// font.setFontHeightInPoints((short) 12); -// //设置字体加粗 -// font.setBold(true); -// //给字体设置样式 -// cellStyle.setFont(font); -// //设置单元格背景颜色 -// cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); -// //设置单元格填充样式(使用纯色背景颜色填充) -// cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); -// int pageSize = (datasource != null && StringUtils.equalsIgnoreCase(datasource.getType(), "es")) ? 10000 : limit; -// request.setRow(String.valueOf(pageSize)); -// Map previewData = dataSetTableService.getPreviewData(request, 1, pageSize, null, tree); -// List fields = (List) previewData.get("fields"); -// List> data = (List>) previewData.get("data"); -// List header = new ArrayList<>(); -// for (DatasetTableField field : fields) { -// header.add(field.getName()); -// } -// List> details = new ArrayList<>(); -// details.add(header); -// for (Map obj : data) { -// List row = new ArrayList<>(); -// for (DatasetTableField field : fields) { -// String string = (String) obj.get(field.getDataeaseName()); -// row.add(string); -// } -// details.add(row); -// } -// if (CollectionUtils.isNotEmpty(details)) { -// for (int i = 0; i < details.size(); i++) { -// Row row = detailsSheet.createRow(i); -// List rowData = details.get(i); -// if (rowData != null) { -// for (int j = 0; j < rowData.size(); j++) { -// Cell cell = row.createCell(j); -// if (i == 0) {// 头部 -// cell.setCellValue(rowData.get(j)); -// cell.setCellStyle(cellStyle); -// //设置列的宽度 -// detailsSheet.setColumnWidth(j, 255 * 20); -// } else { -// if ((fields.get(j).getDeType().equals(DeTypeConstants.DE_INT) || fields.get(j).getDeType() == DeTypeConstants.DE_FLOAT) && StringUtils.isNotEmpty(rowData.get(j))) { -// try { -// cell.setCellValue(Double.valueOf(rowData.get(j))); -// } catch (Exception e) { -// LogUtil.warn("export excel data transform error"); -// } -// } else { -// cell.setCellValue(rowData.get(j)); -// } -// } -// } -// } -// } -// } -// -// try (FileOutputStream outputStream = new FileOutputStream(dataPath + "/" + request.getFilename() + ".xlsx")) { -// wb.write(outputStream); -// } -// wb.close(); -// } else { -// Integer totalPage = (totalCount / extractPageSize) + (totalCount % extractPageSize > 0 ? 1 : 0); -// List fields = new ArrayList<>(); -// Workbook wb = new SXSSFWorkbook(); -// FileOutputStream fileOutputStream = new FileOutputStream(dataPath + "/" + request.getFilename() + ".xlsx"); -// Sheet detailsSheet = wb.createSheet("数据"); -// for (Integer p = 1; p < totalPage + 1; p++) { -// Map previewData = getPreviewData(request, p, extractPageSize, extractPageSize, null, tree); -// List> data = (List>) previewData.get("data"); -// if (p == 1L) { -// CellStyle cellStyle = wb.createCellStyle(); -// Font font = wb.createFont(); -// font.setFontHeightInPoints((short) 12); -// font.setBold(true); -// cellStyle.setFont(font); -// cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); -// cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); -// fields = (List) previewData.get("fields"); -// List header = new ArrayList<>(); -// for (DatasetTableField field : fields) { -// header.add(field.getName()); -// } -// List> details = new ArrayList<>(); -// details.add(header); -// for (Map obj : data) { -// List row = new ArrayList<>(); -// for (DatasetTableField field : fields) { -// String string = (String) obj.get(field.getDataeaseName()); -// row.add(string); -// } -// details.add(row); -// } -// if (CollectionUtils.isNotEmpty(details)) { -// for (int i = 0; i < details.size(); i++) { -// Row row = detailsSheet.createRow(i); -// List rowData = details.get(i); -// if (rowData != null) { -// for (int j = 0; j < rowData.size(); j++) { -// Cell cell = row.createCell(j); -// if (i == 0) { -// cell.setCellValue(rowData.get(j)); -// cell.setCellStyle(cellStyle); -// detailsSheet.setColumnWidth(j, 255 * 20); -// } else { -// if ((fields.get(j).getDeType().equals(DeTypeConstants.DE_INT) || fields.get(j).getDeType() == DeTypeConstants.DE_FLOAT) && StringUtils.isNotEmpty(rowData.get(j))) { -// try { -// cell.setCellValue(Double.valueOf(rowData.get(j))); -// } catch (Exception e) { -// LogUtil.warn("export excel data transform error"); -// } -// } else { -// cell.setCellValue(rowData.get(j)); -// } -// } -// } -// } -// } -// } -// } else { -// List> details = new ArrayList<>(); -// for (Map obj : data) { -// List row = new ArrayList<>(); -// for (DatasetTableField field : fields) { -// String string = (String) obj.get(field.getDataeaseName()); -// row.add(string); -// } -// details.add(row); -// } -// int lastNum = detailsSheet.getLastRowNum(); -// for (int i = 0; i < details.size(); i++) { -// Row row = detailsSheet.createRow(i + lastNum + 1); -// List rowData = details.get(i); -// if (rowData != null) { -// for (int j = 0; j < rowData.size(); j++) { -// Cell cell = row.createCell(j); -// if ((fields.get(j).getDeType().equals(DeTypeConstants.DE_INT) || fields.get(j).getDeType() == DeTypeConstants.DE_FLOAT) && StringUtils.isNotEmpty(rowData.get(j))) { -// try { -// cell.setCellValue(Double.valueOf(rowData.get(j))); -// } catch (Exception e) { -// LogUtil.warn("export excel data transform error"); -// } -// } else { -// cell.setCellValue(rowData.get(j)); -// } -// } -// } -// } -// } -// exportTask.setExportStatus("IN_PROGRESS"); -// double exportRogress = (double) ((double) p / (double) totalPage); -// DecimalFormat df = new DecimalFormat("#.##"); -// String formattedResult = df.format(exportRogress * 100); -// exportTask.setExportPogress(formattedResult); -// exportTaskMapper.updateByPrimaryKey(exportTask); -// } -// wb.write(fileOutputStream); -// fileOutputStream.flush(); -// fileOutputStream.close(); -// wb.close(); -// } -// exportTask.setExportPogress("100"); -// exportTask.setExportStatus("SUCCESS"); -// setFileSize(dataPath + "/" + request.getFilename() + ".xlsx", exportTask); -// } catch (Exception e) { -// LogUtil.error("Failed to export data", e); -// exportTask.setExportStatus("FAILED"); -// } finally { -// exportTaskMapper.updateByPrimaryKey(exportTask); -// } -// }); -// Running_Task.put(exportTask.getId(), future); -// } private void setFileSize(String filePath, CoreExportTask exportTask) { File file = new File(filePath); @@ -674,573 +405,9 @@ public class ExportCenterManage { exportTask.setFileSizeUnit(unit); } - public Boolean checkEngineTableIsExists(String id) throws Exception { -// Datasource engine = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(engine); -// QueryProvider qp = ProviderFactory.getQueryProvider(engine.getType()); -// datasourceRequest.setQuery(qp.searchTable(TableUtils.tableName(id))); -// List data = jdbcProvider.getData(datasourceRequest); -// return CollectionUtils.isNotEmpty(data); - return true; - } - -// private Integer getTotal(DataSetTableRequest dataSetTableRequest, Integer limit, DatasetRowPermissionsTreeObj extTree) throws Exception { -// DatasetTableField datasetTableField = DatasetTableField.builder().tableId(dataSetTableRequest.getId()).checked(Boolean.TRUE).build(); -// List fields = dataSetTableFieldsService.list(datasetTableField); -// if (CollectionUtils.isEmpty(fields)) { -// return null; -// } -// DatasetTable datasetTable = datasetTableMapper.selectByPrimaryKey(dataSetTableRequest.getId()); -// // 行权限 -// List rowPermissionsTree = permissionsTreeService.getRowPermissionsTree(fields, datasetTable, null); -// // ext filter -// if (extTree != null) { -// DataSetRowPermissionsTreeDTO dto = new DataSetRowPermissionsTreeDTO(); -// dto.setTree(extTree); -// rowPermissionsTree.add(dto); -// } -// // 列权限 -// Map desensitizationList = new HashMap<>(); -// fields = permissionService.filterColumnPermissions(fields, desensitizationList, datasetTable.getId(), null); -// if (CollectionUtils.isEmpty(fields)) { -// return null; -// } -// DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class); -// if (StringUtils.equalsIgnoreCase(datasetTable.getType(), DatasetType.DB.name()) || StringUtils.equalsIgnoreCase(datasetTable.getType(), DatasetType.API.name())) { -// if (datasetTable.getMode() == 0) { -// Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); -// if (ObjectUtils.isEmpty(ds)) { -// throw new RuntimeException(Translator.get("i18n_datasource_delete")); -// } -// if (StringUtils.isNotEmpty(ds.getStatus()) && ds.getStatus().equalsIgnoreCase("Error")) { -// throw new Exception(Translator.get("i18n_invalid_ds")); -// } -// Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = dataTableInfoDTO.getTable(); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// try { -// String totalSql = qp.getTotalCount(false, qp.createQueryTableWithLimit(table, fields, limit, false, ds, null, rowPermissionsTree), ds); -// if (totalSql == null) { -// return null; -// } -// datasourceRequest.setQuery(totalSql); -// List tmpData = datasourceProvider.getData(datasourceRequest); -// return CollectionUtils.isEmpty(tmpData) ? 0 : Integer.valueOf(tmpData.get(0)[0]); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// } else { -// // check doris table -// if (!checkEngineTableIsExists(dataSetTableRequest.getId())) { -// if (dataSetTableRequest.isPreviewForTask()) { -// return null; -// } else { -// throw new RuntimeException(Translator.get("i18n_data_not_sync")); -// } -// } -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// -// try { -// String totalSql = qp.getTotalCount(false, qp.createQueryTableWithLimit(table, fields, limit, false, ds, null, rowPermissionsTree), ds); -// if (totalSql == null) { -// return null; -// } -// datasourceRequest.setQuery(totalSql); -// List tmpData = jdbcProvider.getData(datasourceRequest); -// return CollectionUtils.isEmpty(tmpData) ? 0 : Integer.valueOf(tmpData.get(0)[0]); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// } -// -// } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), DatasetType.SQL.name())) { -// if (datasetTable.getMode() == 0) { -// Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); -// if (ObjectUtils.isEmpty(ds)) { -// throw new RuntimeException(Translator.get("i18n_datasource_delete")); -// } -// if (StringUtils.isNotEmpty(ds.getStatus()) && ds.getStatus().equalsIgnoreCase("Error")) { -// throw new Exception(Translator.get("i18n_invalid_ds")); -// } -// Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// DataTableInfoDTO dataTableInfo = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); -// String sql = dataTableInfo.isBase64Encryption() ? new String(Base64.getDecoder().decode(dataTableInfo.getSql())) : dataTableInfo.getSql(); -// sql = dataSetTableService.handleVariableDefaultValue(sql, datasetTable.getSqlVariableDetails(), ds.getType(), false); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// try { -// String totalSql = qp.getTotalCount(false, qp.createQuerySqlWithLimit(sql, fields, limit, false, null, rowPermissionsTree), ds); -// if (totalSql == null) { -// return null; -// } -// datasourceRequest.setQuery(totalSql); -// List tmpData = datasourceProvider.getData(datasourceRequest); -// return CollectionUtils.isEmpty(tmpData) ? 0 : Integer.valueOf(tmpData.get(0)[0]); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// } else { -// // check doris table -// if (!checkEngineTableIsExists(dataSetTableRequest.getId())) { -// throw new RuntimeException(Translator.get("i18n_data_not_sync")); -// } -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// try { -// String totalSql = qp.getTotalCount(false, qp.createQueryTableWithLimit(table, fields, limit, false, ds, null, rowPermissionsTree), ds); -// if (totalSql == null) { -// return null; -// } -// datasourceRequest.setQuery(totalSql); -// List tmpData = jdbcProvider.getData(datasourceRequest); -// return CollectionUtils.isEmpty(tmpData) ? 0 : Integer.valueOf(tmpData.get(0)[0]); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// } -// } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) { -// if (!checkEngineTableIsExists(dataSetTableRequest.getId())) { -// throw new RuntimeException(Translator.get("i18n_data_not_sync")); -// } -// -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// try { -// String totalSql = qp.getTotalCount(false, qp.createQueryTableWithLimit(table, fields, limit, false, ds, null, rowPermissionsTree), ds); -// if (totalSql == null) { -// return null; -// } -// datasourceRequest.setQuery(totalSql); -// List tmpData = jdbcProvider.getData(datasourceRequest); -// return CollectionUtils.isEmpty(tmpData) ? 0 : Integer.valueOf(tmpData.get(0)[0]); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) { -// if (datasetTable.getMode() == 0) { -// Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); -// if (ObjectUtils.isEmpty(ds)) { -// throw new RuntimeException(Translator.get("i18n_datasource_delete")); -// } -// Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// -// DataTableInfoDTO dt = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); -// List list = dataSetTableUnionService.listByTableId(dt.getList().get(0).getTableId()); -// -// String sql = ""; -// try { -// sql = dataSetTableService.getCustomSQLDatasource(dt, list, ds); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// try { -// String totalSql = qp.getTotalCount(false, qp.createQuerySQLAsTmp(sql, fields, false, null, rowPermissionsTree), ds); -// if (totalSql == null) { -// return null; -// } -// datasourceRequest.setQuery(totalSql); -// List tmpData = datasourceProvider.getData(datasourceRequest); -// return CollectionUtils.isEmpty(tmpData) ? 0 : Integer.valueOf(tmpData.get(0)[0]); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// } else { -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// try { -// String totalSql = qp.getTotalCount(true, qp.createQuerySQL(table, fields, false, ds, null, rowPermissionsTree), ds); -// if (totalSql == null) { -// return null; -// } -// datasourceRequest.setQuery(totalSql); -// List tmpData = jdbcProvider.getData(datasourceRequest); -// return CollectionUtils.isEmpty(tmpData) ? 0 : Integer.valueOf(tmpData.get(0)[0]); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// } -// } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "union")) { -// if (datasetTable.getMode() == 0) { -// Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); -// if (ObjectUtils.isEmpty(ds)) { -// DataEaseException.throwException(Translator.get("i18n_datasource_delete")); -// } -// Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// -// DataTableInfoDTO dt = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); -// -// String sql = ""; -// try { -// sql = (String) dataSetTableService.getUnionSQLDatasource(dt, ds).get("sql"); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// try { -// String totalSql = qp.getTotalCount(false, qp.createQuerySqlWithLimit(sql, fields, limit, false, null, rowPermissionsTree), ds); -// if (totalSql == null) { -// return null; -// } -// datasourceRequest.setQuery(totalSql); -// List tmpData = datasourceProvider.getData(datasourceRequest); -// return CollectionUtils.isEmpty(tmpData) ? 0 : Integer.valueOf(tmpData.get(0)[0]); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// } else { -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// try { -// String totalSql = qp.getTotalCount(false, qp.createQueryTableWithLimit(table, fields, limit, false, ds, null, rowPermissionsTree), ds); -// if (totalSql == null) { -// return null; -// } -// datasourceRequest.setQuery(totalSql); -// List tmpData = jdbcProvider.getData(datasourceRequest); -// return CollectionUtils.isEmpty(tmpData) ? 0 : Integer.valueOf(tmpData.get(0)[0]); -// } catch (Exception e) { -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// } -// } -// return null; -// } - - -// public Map getPreviewData(DataSetTableRequest dataSetTableRequest, Integer page, Integer pageSize, Integer realSize, List extFields, DatasetRowPermissionsTreeObj extTree) throws Exception { -// Map map = new HashMap<>(); -// String syncStatus = ""; -// DatasetTableField datasetTableField = DatasetTableField.builder().tableId(dataSetTableRequest.getId()).checked(Boolean.TRUE).build(); -// List fields = dataSetTableFieldsService.list(datasetTableField); -// if (CollectionUtils.isNotEmpty(extFields)) { -// fields = extFields; -// } -// if (CollectionUtils.isEmpty(fields)) { -// map.put("fields", fields); -// map.put("data", new ArrayList<>()); -// return map; -// } -// DatasetTable datasetTable = datasetTableMapper.selectByPrimaryKey(dataSetTableRequest.getId()); -// // 行权限 -// List rowPermissionsTree = permissionsTreeService.getRowPermissionsTree(fields, datasetTable, null); -// // ext filter -// if (extTree != null) { -// DataSetRowPermissionsTreeDTO dto = new DataSetRowPermissionsTreeDTO(); -// dto.setTree(extTree); -// rowPermissionsTree.add(dto); -// } -// // 列权限 -// Map desensitizationList = new HashMap<>(); -// fields = permissionService.filterColumnPermissions(fields, desensitizationList, datasetTable.getId(), null); -// if (CollectionUtils.isEmpty(fields)) { -// map.put("fields", fields); -// map.put("data", new ArrayList<>()); -// return map; -// } -// -// String[] fieldArray = fields.stream().map(DatasetTableField::getDataeaseName).toArray(String[]::new); -// -// DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(dataSetTableRequest.getInfo(), DataTableInfoDTO.class); -// -// List data = new ArrayList<>(); -// if (StringUtils.equalsIgnoreCase(datasetTable.getType(), DatasetType.DB.name()) || StringUtils.equalsIgnoreCase(datasetTable.getType(), DatasetType.API.name())) { -// if (datasetTable.getMode() == 0) { -// Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); -// if (ObjectUtils.isEmpty(ds)) { -// throw new RuntimeException(Translator.get("i18n_datasource_delete")); -// } -// if (StringUtils.isNotEmpty(ds.getStatus()) && ds.getStatus().equalsIgnoreCase("Error")) { -// throw new Exception(Translator.get("i18n_invalid_ds")); -// } -// Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = dataTableInfoDTO.getTable(); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// datasourceRequest.setQuery(qp.createQueryTableWithPage(table, fields, page, pageSize, realSize, false, ds, null, rowPermissionsTree)); -// try { -// -// data.addAll(datasourceProvider.getData(datasourceRequest)); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// } else { -// // check doris table -// if (!checkEngineTableIsExists(dataSetTableRequest.getId())) { -// if (dataSetTableRequest.isPreviewForTask()) { -// map.put("fields", fields); -// map.put("data", new ArrayList<>()); -// map.put("page", new DataSetPreviewPage()); -// return map; -// } else { -// throw new RuntimeException(Translator.get("i18n_data_not_sync")); -// } -// } -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// datasourceRequest.setQuery(qp.createQueryTableWithPage(table, fields, page, pageSize, realSize, false, ds, null, rowPermissionsTree)); -// map.put("sql", Base64.getEncoder().encodeToString(datasourceRequest.getQuery().getBytes())); -// try { -// data.addAll(jdbcProvider.getData(datasourceRequest)); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// } -// -// } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), DatasetType.SQL.name())) { -// if (datasetTable.getMode() == 0) { -// Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); -// if (ObjectUtils.isEmpty(ds)) { -// throw new RuntimeException(Translator.get("i18n_datasource_delete")); -// } -// if (StringUtils.isNotEmpty(ds.getStatus()) && ds.getStatus().equalsIgnoreCase("Error")) { -// throw new Exception(Translator.get("i18n_invalid_ds")); -// } -// Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// DataTableInfoDTO dataTableInfo = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); -// String sql = dataTableInfo.isBase64Encryption() ? new String(Base64.getDecoder().decode(dataTableInfo.getSql())) : dataTableInfo.getSql(); -// sql = dataSetTableService.handleVariableDefaultValue(sql, datasetTable.getSqlVariableDetails(), ds.getType(), false); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// datasourceRequest.setQuery(qp.createQuerySQLWithPage(sql, fields, page, pageSize, realSize, false, null, rowPermissionsTree)); -// map.put("sql", Base64.getEncoder().encodeToString(datasourceRequest.getQuery().getBytes())); -// datasourceRequest.setPage(page); -// datasourceRequest.setFetchSize(limit); -// datasourceRequest.setPageSize(pageSize); -// datasourceRequest.setRealSize(realSize); -// datasourceRequest.setPreviewData(true); -// try { -// datasourceRequest.setPageable(true); -// datasourceRequest.setPermissionFields(fields); -// data.addAll(datasourceProvider.getData(datasourceRequest)); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// } else { -// // check doris table -// if (!checkEngineTableIsExists(dataSetTableRequest.getId())) { -// throw new RuntimeException(Translator.get("i18n_data_not_sync")); -// } -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// datasourceRequest.setQuery(qp.createQueryTableWithPage(table, fields, page, pageSize, realSize, false, ds, null, rowPermissionsTree)); -// map.put("sql", Base64.getEncoder().encodeToString(datasourceRequest.getQuery().getBytes())); -// try { -// data.addAll(jdbcProvider.getData(datasourceRequest)); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// } -// } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) { -// if (!checkEngineTableIsExists(dataSetTableRequest.getId())) { -// throw new RuntimeException(Translator.get("i18n_data_not_sync")); -// } -// -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// datasourceRequest.setQuery(qp.createQueryTableWithPage(table, fields, page, pageSize, realSize, false, ds, null, rowPermissionsTree)); -// map.put("sql", Base64.getEncoder().encodeToString(datasourceRequest.getQuery().getBytes())); -// try { -// data.addAll(jdbcProvider.getData(datasourceRequest)); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// -// } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) { -// if (datasetTable.getMode() == 0) { -// Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); -// if (ObjectUtils.isEmpty(ds)) { -// throw new RuntimeException(Translator.get("i18n_datasource_delete")); -// } -// Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// -// DataTableInfoDTO dt = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); -// List list = dataSetTableUnionService.listByTableId(dt.getList().get(0).getTableId()); -// -// String sql = ""; -// try { -// sql = dataSetTableService.getCustomSQLDatasource(dt, list, ds); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// datasourceRequest.setQuery(qp.createQuerySQLWithPage(sql, fields, page, pageSize, realSize, false, null, rowPermissionsTree)); -// map.put("sql", Base64.getEncoder().encodeToString(datasourceRequest.getQuery().getBytes())); -// -// try { -// -// data.addAll(datasourceProvider.getData(datasourceRequest)); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// } else { -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// datasourceRequest.setQuery(qp.createQueryTableWithPage(table, fields, page, pageSize, realSize, false, ds, null, rowPermissionsTree)); -// map.put("sql", Base64.getEncoder().encodeToString(datasourceRequest.getQuery().getBytes())); -// try { -// data.addAll(jdbcProvider.getData(datasourceRequest)); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// } -// } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "union")) { -// if (datasetTable.getMode() == 0) { -// Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId()); -// if (ObjectUtils.isEmpty(ds)) { -// DataEaseException.throwException(Translator.get("i18n_datasource_delete")); -// } -// Provider datasourceProvider = ProviderFactory.getProvider(ds.getType()); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// -// DataTableInfoDTO dt = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); -// -// String sql = ""; -// try { -// sql = (String) dataSetTableService.getUnionSQLDatasource(dt, ds).get("sql"); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// datasourceRequest.setQuery(qp.createQuerySQLWithPage(sql, fields, page, pageSize, realSize, false, null, rowPermissionsTree)); -// map.put("sql", Base64.getEncoder().encodeToString(datasourceRequest.getQuery().getBytes())); -// -// try { -// -// data.addAll(datasourceProvider.getData(datasourceRequest)); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// -// } else { -// Datasource ds = engineService.getDeEngine(); -// JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); -// DatasourceRequest datasourceRequest = new DatasourceRequest(); -// datasourceRequest.setDatasource(ds); -// String table = TableUtils.tableName(dataSetTableRequest.getId()); -// QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); -// datasourceRequest.setQuery(qp.createQueryTableWithPage(table, fields, page, pageSize, realSize, false, ds, null, rowPermissionsTree)); -// map.put("sql", Base64.getEncoder().encodeToString(datasourceRequest.getQuery().getBytes())); -// try { -// data.addAll(jdbcProvider.getData(datasourceRequest)); -// } catch (Exception e) { -// -// DataEaseException.throwException(Translator.get("i18n_ds_error") + "->" + e.getMessage()); -// } -// } -// } -// -// List> jsonArray = new ArrayList<>(); -// if (CollectionUtils.isNotEmpty(data)) { -// jsonArray = data.stream().map(ele -> { -// Map tmpMap = new HashMap<>(); -// for (int i = 0; i < ele.length; i++) { -// if (desensitizationList.keySet().contains(fieldArray[i])) { -// tmpMap.put(fieldArray[i], ChartDataBuild.desensitizationValue(desensitizationList.get(fieldArray[i]), String.valueOf(ele[i]))); -// } else { -// tmpMap.put(fieldArray[i], ele[i]); -// } -// } -// return tmpMap; -// }).collect(Collectors.toList()); -// } -// map.put("fields", fields); -// map.put("data", jsonArray); -// return map; -// } private static final String LOG_RETENTION = "30"; -// public void cleanLog() { -// String value = systemParameterService.getValue(ParamConstants.BASIC.EXPORT_FILE_TIME_OUT.getValue()); -// value = StringUtils.isBlank(value) ? LOG_RETENTION : value; -// int logRetention = Integer.parseInt(value); -// Calendar instance = Calendar.getInstance(); -// Calendar startInstance = (Calendar) instance.clone(); -// startInstance.add(Calendar.DATE, -logRetention); -// startInstance.set(Calendar.HOUR_OF_DAY, 0); -// startInstance.set(Calendar.MINUTE, 0); -// startInstance.set(Calendar.SECOND, 0); -// startInstance.set(Calendar.MILLISECOND, -1); -// long timeInMillis = startInstance.getTimeInMillis(); -// ExportTaskExample exportTaskExample = new ExportTaskExample(); -// ExportTaskExample.Criteria criteria = exportTaskExample.createCriteria(); -// criteria.andExportTimeLessThan(timeInMillis); -// exportTaskMapper.selectByExample(exportTaskExample).forEach(exportTask -> { -// delete(exportTask.getId()); -// }); -// } } diff --git a/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue b/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue index d7c59a1224..08edb571af 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/ExportExcel.vue @@ -398,7 +398,7 @@ defineExpose({