diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/DefaultChartHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/DefaultChartHandler.java index e889d79a3b..448c10e224 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/DefaultChartHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/DefaultChartHandler.java @@ -110,7 +110,7 @@ public class DefaultChartHandler extends AbstractChartPlugin { String querySql = SQLProvider.createQuerySQL(sqlMeta, true, needOrder, view); querySql = provider.rebuildSQL(querySql, sqlMeta, crossDs, dsMap); datasourceRequest.setQuery(querySql); - logger.info("calcite chart sql: " + querySql); + logger.debug("calcite chart sql: " + querySql); List data = (List) provider.fetchResultField(datasourceRequest).get("data"); //自定义排序 data = ChartDataUtil.resultCustomSort(xAxis, data); diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/YoyChartHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/YoyChartHandler.java index 4e3acc664f..1b2cb55999 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/YoyChartHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/YoyChartHandler.java @@ -87,7 +87,7 @@ public class YoyChartHandler extends DefaultChartHandler { var request = new DatasourceRequest(); request.setDsList(dsMap); request.setQuery(originSql); - logger.info("calcite yoy sql: " + originSql); + logger.debug("calcite yoy sql: " + originSql); // 实际过滤后的数据 var originData = (List) provider.fetchResultField(request).get("data"); List resultData = new ArrayList<>(); diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/bar/BarHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/bar/BarHandler.java index 985c85307a..6e6a8beed6 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/bar/BarHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/bar/BarHandler.java @@ -55,7 +55,7 @@ public class BarHandler extends YoyChartHandler { req.setDsList(dsMap); var assistSql = assistSQL(originSql, assistFields); req.setQuery(assistSql); - logger.info("calcite assistSql sql: " + assistSql); + logger.debug("calcite assistSql sql: " + assistSql); var assistData = (List) provider.fetchResultField(req).get("data"); result.setAssistData(assistData); result.setDynamicAssistFields(dynamicAssistFields); diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/line/LineHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/line/LineHandler.java index 4d6e814c2c..653ee6a928 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/line/LineHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/line/LineHandler.java @@ -66,7 +66,7 @@ public class LineHandler extends YoyChartHandler { req.setDsList(dsMap); var assistSql = assistSQL(originSql, assistFields); req.setQuery(assistSql); - logger.info("calcite assistSql sql: " + assistSql); + logger.debug("calcite assistSql sql: " + assistSql); var assistData = (List) provider.fetchResultField(req).get("data"); result.setAssistData(assistData); result.setDynamicAssistFields(dynamicAssistFields); diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/line/StackAreaHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/line/StackAreaHandler.java index 598c5f570c..a2df5f4627 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/line/StackAreaHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/line/StackAreaHandler.java @@ -102,7 +102,7 @@ public class StackAreaHandler extends YoyChartHandler { req.setDsList(dsMap); var assistSql = assistSQL(originSql, assistFields); req.setQuery(assistSql); - logger.info("calcite assist sql: " + assistSql); + logger.debug("calcite assist sql: " + assistSql); var assistData = (List) provider.fetchResultField(req).get("data"); result.setAssistData(assistData); result.setDynamicAssistFields(dynamicAssistFields); diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/map/SymbolicMapHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/map/SymbolicMapHandler.java index 7641a5e66f..a477fcce74 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/map/SymbolicMapHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/map/SymbolicMapHandler.java @@ -79,7 +79,7 @@ public class SymbolicMapHandler extends GroupChartHandler { String querySql = SQLProvider.createQuerySQL(sqlMeta, true, needOrder, view); querySql = provider.rebuildSQL(querySql, sqlMeta, crossDs, dsMap); datasourceRequest.setQuery(querySql); - logger.info("calcite chart sql: " + querySql); + logger.debug("calcite chart sql: " + querySql); List data = (List) provider.fetchResultField(datasourceRequest).get("data"); // 获取所有字段数据作为数据详情返回 List detailData = new ArrayList<>(); @@ -98,7 +98,7 @@ public class SymbolicMapHandler extends GroupChartHandler { String querySQL; querySQL = SQLProvider.createQuerySQL(sqlMeta2, false, needOrder, false); querySQL = provider.rebuildSQL(querySQL, sqlMeta2, crossDs, dsMap); - logger.info("calcite data preview sql: " + querySQL); + logger.debug("calcite data preview sql: " + querySQL); // 调用数据源的calcite获得data DatasourceRequest datasourceRequest1 = new DatasourceRequest(); datasourceRequest1.setQuery(querySQL); diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java index 8514343bd0..7989cb3a1a 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/mix/MixHandler.java @@ -86,7 +86,7 @@ public class MixHandler extends YoyChartHandler { req.setDsList(dsMap); var assistSql = assistSQL(originSql, assistFields); req.setQuery(assistSql); - logger.info("calcite assistSql sql: " + assistSql); + logger.debug("calcite assistSql sql: " + assistSql); var assistData = (List) provider.fetchResultField(req).get("data"); leftResult.setAssistData(assistData); leftResult.setDynamicAssistFields(leftAssistFields); diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/numeric/NumericalChartHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/numeric/NumericalChartHandler.java index 1774d0694b..fe558dd171 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/numeric/NumericalChartHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/numeric/NumericalChartHandler.java @@ -41,7 +41,7 @@ public class NumericalChartHandler extends DefaultChartHandler { String querySql = SQLProvider.createQuerySQL(sqlMeta, true, needOrder, view); querySql = provider.rebuildSQL(querySql, sqlMeta, crossDs, dsMap); datasourceRequest.setQuery(querySql); - logger.info("calcite chart sql: " + querySql); + logger.debug("calcite chart sql: " + querySql); List data = (List) provider.fetchResultField(datasourceRequest).get("data"); boolean isdrill = filterResult .getFilterList() diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/table/TableInfoHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/table/TableInfoHandler.java index cf465f3aed..ac7116a81b 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/table/TableInfoHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/table/TableInfoHandler.java @@ -95,7 +95,7 @@ public class TableInfoHandler extends DefaultChartHandler { totalPageSql = provider.rebuildSQL(totalPageSql, sqlMeta, crossDs, dsMap); datasourceRequest.setQuery(totalPageSql); datasourceRequest.setTotalPageFlag(true); - logger.info("calcite total sql: " + totalPageSql); + logger.debug("calcite total sql: " + totalPageSql); List tmpData = (List) provider.fetchResultField(datasourceRequest).get("data"); var totalItems = ObjectUtils.isEmpty(tmpData) ? 0 : Long.valueOf(tmpData.get(0)[0]); if (StringUtils.equalsIgnoreCase(view.getResultMode(), "custom")) { @@ -108,7 +108,7 @@ public class TableInfoHandler extends DefaultChartHandler { querySql = provider.rebuildSQL(querySql, sqlMeta, crossDs, dsMap); datasourceRequest.setQuery(querySql); - logger.info("calcite chart sql: " + querySql); + logger.debug("calcite chart sql: " + querySql); List data = (List) provider.fetchResultField(datasourceRequest).get("data"); //自定义排序 data = ChartDataUtil.resultCustomSort(xAxis, data); diff --git a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java index 324f560fb5..d0bf82adf6 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java @@ -721,7 +721,7 @@ public class ChartDataManage { querySql = provider.rebuildSQL(querySql, sqlMeta, crossDs, dsMap); datasourceRequest.setQuery(querySql); - logger.info("calcite chart get field enum sql: " + querySql); + logger.debug("calcite chart get field enum sql: " + querySql); data = (List) provider.fetchResultField(datasourceRequest).get("data"); } diff --git a/core/core-backend/src/main/java/io/dataease/copilot/manage/CopilotManage.java b/core/core-backend/src/main/java/io/dataease/copilot/manage/CopilotManage.java index ef986b8dcd..5af29a5318 100644 --- a/core/core-backend/src/main/java/io/dataease/copilot/manage/CopilotManage.java +++ b/core/core-backend/src/main/java/io/dataease/copilot/manage/CopilotManage.java @@ -119,7 +119,7 @@ public class CopilotManage { datasetDataManage.buildFieldName(sqlMap, allFields); List strings = transCreateTableFields(allFields); String createSql = "CREATE TABLE de_tmp_table (" + StringUtils.join(strings, ",") + ")"; - logger.info("Copilot Schema SQL: " + createSql); + logger.debug("Copilot Schema SQL: " + createSql); // PerMsgDTO perMsgDTO = new PerMsgDTO(); msgDTO.setDatasetGroupId(dto.getId()); @@ -178,7 +178,7 @@ public class CopilotManage { // Order2SQLObj.getOrders(sqlMeta, dto.getSortFields(), allFields, crossDs, dsMap); // String querySQL = SQLProvider.createQuerySQL(sqlMeta, false, false, needOrder); // querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); -// logger.info("preview sql: " + querySQL); +// logger.debug("preview sql: " + querySQL); // 无法加行权限的情况下,直接用sql String querySQL = sql; @@ -197,7 +197,7 @@ public class CopilotManage { s = copilotSQL .replaceAll(SqlPlaceholderConstants.KEYWORD_PREFIX_REGEX + "de_tmp_table" + SqlPlaceholderConstants.KEYWORD_SUFFIX_REGEX, "(" + querySQL + ")") .replaceAll(SqlPlaceholderConstants.KEYWORD_PREFIX_REGEX + "DE_TMP_TABLE" + SqlPlaceholderConstants.KEYWORD_SUFFIX_REGEX, "(" + querySQL + ")"); - logger.info("copilot sql: " + s); + logger.debug("copilot sql: " + s); datasourceRequest.setQuery(s); data = provider.fetchResultField(datasourceRequest); } catch (Exception e) { @@ -205,7 +205,7 @@ public class CopilotManage { s = copilotSQL .replaceAll(SqlPlaceholderConstants.KEYWORD_PREFIX_REGEX + "de_tmp_table" + SqlPlaceholderConstants.KEYWORD_SUFFIX_REGEX, "(" + querySQL + ") tmp") .replaceAll(SqlPlaceholderConstants.KEYWORD_PREFIX_REGEX + "DE_TMP_TABLE" + SqlPlaceholderConstants.KEYWORD_SUFFIX_REGEX, "(" + querySQL + ") tmp"); - logger.info("copilot sql: " + s); + logger.debug("copilot sql: " + s); datasourceRequest.setQuery(s); data = provider.fetchResultField(datasourceRequest); } catch (Exception e1) { @@ -293,8 +293,8 @@ public class CopilotManage { if (!receiveDTO.getSqlOk() || !receiveDTO.getChartOk()) { DEException.throwException((String) JsonUtil.toJSONString(receiveDTO)); } - logger.info("Copilot Service SQL: " + receiveDTO.getSql()); - logger.info("Copilot Service Chart: " + JsonUtil.toJSONString(receiveDTO.getChart())); + logger.debug("Copilot Service SQL: " + receiveDTO.getSql()); + logger.debug("Copilot Service Chart: " + JsonUtil.toJSONString(receiveDTO.getChart())); return receiveDTO; } @@ -461,7 +461,7 @@ public class CopilotManage { SqlNode sqlNode = parser.parseStmt(); return sqlNode.toSqlString(dialect).toString().toLowerCase(); } catch (Exception e) { - logger.info("calcite trans copilot SQL error"); + logger.debug("calcite trans copilot SQL error"); return receiveDTO.getSql(); } } else { diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java index e5628c7da9..3cb3b7b3f8 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java @@ -122,7 +122,7 @@ public class DatasetDataManage { } datasourceRequest.setQuery(sql.replaceAll("\r\n", " ") .replaceAll("\n", " ")); - logger.info("calcite data table field sql: " + datasourceRequest.getQuery()); + logger.debug("calcite data table field sql: " + datasourceRequest.getQuery()); // 获取数据源表的原始字段 if (StringUtils.equalsIgnoreCase(type, DatasetTableType.DB)) { datasourceRequest.setTable(tableInfoDTO.getTable()); @@ -144,7 +144,7 @@ public class DatasetDataManage { sql = Utils.replaceSchemaAlias(sql, datasourceRequest.getDsList()); sql = provider.transSqlDialect(sql, datasourceRequest.getDsList()); datasourceRequest.setQuery(sql); - logger.info("calcite data table field sql: " + datasourceRequest.getQuery()); + logger.debug("calcite data table field sql: " + datasourceRequest.getQuery()); tableFields = provider.fetchTableField(datasourceRequest); } return transFields(tableFields, true); @@ -228,7 +228,7 @@ public class DatasetDataManage { querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, false, start, count); } querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); - logger.info("calcite data preview sql: " + querySQL); + logger.debug("calcite data preview sql: " + querySQL); // 通过数据源请求数据 // 调用数据源的calcite获得data @@ -276,7 +276,7 @@ public class DatasetDataManage { sql = s; } String querySQL = "SELECT COUNT(*) FROM (" + sql + ") t_a_0"; - logger.info("calcite data count sql: " + querySQL); + logger.debug("calcite data count sql: " + querySQL); // 通过数据源请求数据 // 调用数据源的calcite获得data @@ -373,7 +373,7 @@ public class DatasetDataManage { // replace placeholder sql = provider.replaceTablePlaceHolder(sql, originSql); - logger.info("calcite data preview sql: " + sql); + logger.debug("calcite data preview sql: " + sql); datasourceRequest.setQuery(sql); Map data = provider.fetchResultField(datasourceRequest); // 重新构造data @@ -519,7 +519,7 @@ public class DatasetDataManage { querySQL = SQLProvider.createQuerySQL(sqlMeta, false, needOrder, true); } querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); - logger.info("calcite data enum sql: " + querySQL); + logger.debug("calcite data enum sql: " + querySQL); // 通过数据源请求数据 // 调用数据源的calcite获得data @@ -767,7 +767,7 @@ public class DatasetDataManage { querySQL = SQLProvider.createQuerySQL(sqlMeta, false, needOrder, sortDistinct && ids.size() == 1); } querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); - logger.info("calcite data enum sql: " + querySQL); + logger.debug("calcite data enum sql: " + querySQL); // 通过数据源请求数据 // 调用数据源的calcite获得data @@ -898,7 +898,7 @@ public class DatasetDataManage { querySQL = SQLProvider.createQuerySQL(sqlMeta, false, needOrder, false); } querySQL = provider.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); - logger.info("filter tree sql: " + querySQL); + logger.debug("filter tree sql: " + querySQL); // 通过数据源请求数据 // 调用数据源的calcite获得data diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java index a80441c48c..62069e2157 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLManage.java @@ -260,7 +260,7 @@ public class DatasetSQLManage { } sql = MessageFormat.format("SELECT {0} FROM {1}", f, TableUtils.getTableAndAlias(tableName, getDatasourceType(dsMap, currentDs.getDatasourceId()), isCross)); } - logger.info("calcite origin sql: " + sql); + logger.debug("calcite origin sql: " + sql); Map map = new HashMap<>(); map.put("sql", sql); map.put("field", checkedFields); diff --git a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java index 790d773831..1eb4c348e9 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationExportManage.java @@ -5,8 +5,10 @@ import io.dataease.api.visualization.vo.DataVisualizationVO; import io.dataease.chart.manage.ChartDataManage; import io.dataease.chart.manage.ChartViewManege; import io.dataease.constant.CommonConstants; +import io.dataease.dataset.server.DatasetFieldServer; import io.dataease.engine.constant.DeTypeConstants; import io.dataease.exception.DEException; +import io.dataease.extensions.datasource.dto.DatasetTableFieldDTO; import io.dataease.extensions.view.dto.ChartExtFilterDTO; import io.dataease.extensions.view.dto.ChartExtRequest; import io.dataease.extensions.view.dto.ChartViewDTO; @@ -45,6 +47,9 @@ public class CoreVisualizationExportManage { @Resource private VisualizationTemplateExtendDataManage extendDataManage; + @Resource + private DatasetFieldServer datasetFieldServer; + public File exportExcel(Long dvId, String busiFlag, List viewIdList, boolean onlyDisplay) throws Exception { DataVisualizationVO visualization = extDataVisualizationMapper.findDvInfo(dvId, busiFlag); if (ObjectUtils.isEmpty(visualization)) DEException.throwException("资源不存在或已经被删除..."); @@ -81,7 +86,27 @@ public class CoreVisualizationExportManage { chartViewDTO = extendDataManage.getChartDataInfo(request.getId(), request); } else { try { + List dsHeader = null; + Integer[] dsTypes = null; + //downloadType = dataset 为下载原始名字 这里做数据转换模拟 table-info类型图表导出 + if ("dataset".equals(request.getDownloadType())) { + request.setType("table-info"); + request.setIsPlugin(false); + List sourceFields = datasetFieldServer.listByDatasetGroup(request.getTableId()); + dsHeader = sourceFields.stream() + .map(DatasetTableFieldDTO::getName) + .toList(); + dsTypes = sourceFields.stream() + .map(DatasetTableFieldDTO::getDeType) + .toArray(Integer[]::new); + TypeReference> listTypeReference = new TypeReference>(){ + }; + request.setXAxis(JsonUtil.parseList(JsonUtil.toJSONString(sourceFields).toString(),listTypeReference)); + } chartViewDTO = chartDataManage.calcData(request); + if ("dataset".equals(request.getDownloadType())) { + result.getData().addFirst(dsHeader); + } } catch (Exception e) { throw new RuntimeException(e); } diff --git a/core/core-frontend/src/components/visualization/UserViewEnlarge.vue b/core/core-frontend/src/components/visualization/UserViewEnlarge.vue index 20e18c203d..7da8a430ef 100644 --- a/core/core-frontend/src/components/visualization/UserViewEnlarge.vue +++ b/core/core-frontend/src/components/visualization/UserViewEnlarge.vue @@ -41,10 +41,21 @@ icon="Download" size="middle" :loading="exportLoading" - @click="downloadViewDetails" + @click="downloadViewDetails('view')" > 导出Excel + + 导出原始明细 + { htmlToImage() } -const downloadViewDetails = () => { +const downloadViewDetails = (downloadType = 'view') => { const viewDataInfo = dvMainStore.getViewDataDetails(viewInfo.value.id) const chartExtRequest = dvMainStore.getLastViewRequestInfo(viewInfo.value.id) const chart = { ...viewInfo.value, chartExtRequest, data: viewDataInfo, - type: sourceViewType.value + type: sourceViewType.value, + downloadType: downloadType } exportLoading.value = true exportExcelDownload(chart, () => { diff --git a/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java b/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java index 84da2cf3dc..da431d3a75 100644 --- a/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java +++ b/sdk/extensions/extensions-datasource/src/main/java/io/dataease/extensions/datasource/provider/Provider.java @@ -112,7 +112,7 @@ public abstract class Provider { } public String rebuildSQL(String sql, SQLMeta sqlMeta, boolean crossDs, Map dsMap) { - logger.info("calcite sql: " + sql); + logger.debug("calcite sql: " + sql); if (crossDs) { return sql; } diff --git a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/ChartViewDTO.java b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/ChartViewDTO.java index 95223fe6d7..abf77a281b 100644 --- a/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/ChartViewDTO.java +++ b/sdk/extensions/extensions-view/src/main/java/io/dataease/extensions/view/dto/ChartViewDTO.java @@ -35,4 +35,7 @@ public class ChartViewDTO extends ChartViewBaseDTO { */ @JsonSerialize(using = ToStringSerializer.class) private Long sourceTableId; + + // 数据下载模式 dataset 指的是现在原始数据 + private String downloadType; }