diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java index 9de794919f..4b84680302 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java @@ -139,10 +139,12 @@ public class DataSetGroupService { } public void getParent(List list, DatasetGroup datasetGroup) { - if (StringUtils.isNotEmpty(datasetGroup.getPid())) { - DatasetGroup d = datasetGroupMapper.selectByPrimaryKey(datasetGroup.getPid()); - list.add(d); - getParent(list, d); + if (ObjectUtils.isNotEmpty(datasetGroup)) { + if (StringUtils.isNotEmpty(datasetGroup.getPid())) { + DatasetGroup d = datasetGroupMapper.selectByPrimaryKey(datasetGroup.getPid()); + list.add(d); + getParent(list, d); + } } } } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index b6540ab380..626e177d6d 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -44,6 +44,7 @@ import java.io.*; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.text.MessageFormat; +import java.text.NumberFormat; import java.util.*; import java.util.stream.Collectors; @@ -204,6 +205,7 @@ public class DataSetTableService { } public Map getPreviewData(DataSetTableRequest dataSetTableRequest, Integer page, Integer pageSize) throws Exception { + Map map = new HashMap<>(); DatasetTableField datasetTableField = DatasetTableField.builder().build(); datasetTableField.setTableId(dataSetTableRequest.getId()); datasetTableField.setChecked(Boolean.TRUE); @@ -265,33 +267,38 @@ public class DataSetTableService { } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) { List datasetTableTaskLogs = dataSetTableTaskLogService.getByTableId(datasetTable.getId()); if (CollectionUtils.isEmpty(datasetTableTaskLogs)) { - throw new Exception("no records"); - } - if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name())) { - throw new Exception(Translator.get("i18n_processing_data")); - } - if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Error.name())) { - throw new Exception("Failed to extract data: " + datasetTableTaskLogs.get(0).getInfo()); - } - Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); - JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); - DatasourceRequest datasourceRequest = new DatasourceRequest(); - datasourceRequest.setDatasource(ds); - String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); - QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); - datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); - try { - data.addAll(jdbcProvider.getData(datasourceRequest)); - } catch (Exception e) { - e.printStackTrace(); + map.put("status", "warnning"); + map.put("msg", Translator.get("i18n_processing_data")); + dataSetPreviewPage.setTotal(0); + }else if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name())) { + map.put("status", "warnning"); + map.put("msg", Translator.get("i18n_processing_data")); + dataSetPreviewPage.setTotal(0); + }else if (datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Error.name())) { + map.put("status", "error"); + map.put("msg", "Failed to extract data: " + datasetTableTaskLogs.get(0).getInfo()); + dataSetPreviewPage.setTotal(0); + }else { + Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); + JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); + DatasourceRequest datasourceRequest = new DatasourceRequest(); + datasourceRequest.setDatasource(ds); + String table = DorisTableUtils.dorisName(dataSetTableRequest.getId()); + QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); + datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize)); + try { + data.addAll(jdbcProvider.getData(datasourceRequest)); + } catch (Exception e) { + e.printStackTrace(); + } + try { + datasourceRequest.setQuery(qp.createQueryCountSQL(table)); + dataSetPreviewPage.setTotal(Integer.valueOf(jdbcProvider.getData(datasourceRequest).get(0)[0])); + } catch (Exception e) { + e.printStackTrace(); + } } - try { - datasourceRequest.setQuery(qp.createQueryCountSQL(table)); - dataSetPreviewPage.setTotal(Integer.valueOf(jdbcProvider.getData(datasourceRequest).get(0)[0])); - } catch (Exception e) { - e.printStackTrace(); - } } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "custom")) { Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); @@ -317,15 +324,17 @@ public class DataSetTableService { List> jsonArray = new ArrayList<>(); if (CollectionUtils.isNotEmpty(data)) { jsonArray = data.stream().map(ele -> { - Map map = new HashMap<>(); + Map tmpMap = new HashMap<>(); for (int i = 0; i < ele.length; i++) { - map.put(fieldArray[i], ele[i]); + tmpMap.put(fieldArray[i], ele[i]); } - return map; + return tmpMap; }).collect(Collectors.toList()); } - Map map = new HashMap<>(); + if(!map.containsKey("status")){ + map.put("status", "success"); + } map.put("fields", fields); map.put("data", jsonArray); map.put("page", dataSetPreviewPage); @@ -819,8 +828,15 @@ public class DataSetTableService { } else if (cellTypeEnum.equals(CellType.NUMERIC)) { double d = cell.getNumericCellValue(); try { - String value = String.valueOf(d); - return value.endsWith(".0") ? value.substring(0, value.length() -2):value; + Double value = new Double(d); + double eps = 1e-10; + if(value - Math.floor(value) < eps){ + return value.longValue() + ""; + }else { + NumberFormat nf = NumberFormat.getInstance(); + nf.setGroupingUsed(false); + return nf.format(value); + } } catch (Exception e) { BigDecimal b = new BigDecimal(d); return b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() + ""; diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java index fde4cf6ff5..11dd7acf0d 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -639,7 +639,7 @@ public class ExtractDataService { private static String handleExcelIntColumn = " \t\tif(tmp != null && tmp.endsWith(\".0\")){\n" + " try {\n" + - " Integer.valueOf(tmp.substring(0, tmp.length()-2));\n" + + " Long.valueOf(tmp.substring(0, tmp.length()-2));\n" + " get(Fields.Out, filed).setValue(r, tmp.substring(0, tmp.length()-2));\n" + " get(Fields.Out, filed).getValueMeta().setType(2);\n" + " }catch (Exception e){}\n" + diff --git a/backend/src/main/java/io/dataease/service/panel/ShareService.java b/backend/src/main/java/io/dataease/service/panel/ShareService.java index efa71c3127..0fcd5582ad 100644 --- a/backend/src/main/java/io/dataease/service/panel/ShareService.java +++ b/backend/src/main/java/io/dataease/service/panel/ShareService.java @@ -17,6 +17,7 @@ import io.dataease.controller.sys.base.ConditionEntity; import io.dataease.dto.panel.PanelShareDto; import io.dataease.dto.panel.PanelSharePo; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -111,7 +112,7 @@ public class ShareService { //List构建Tree private List convertTree(List datas){ - Map> map = datas.stream().collect(Collectors.groupingBy(PanelShareDto::getCreator)); + Map> map = datas.stream().filter(panelShareDto -> StringUtils.isNotEmpty(panelShareDto.getCreator())).collect(Collectors.groupingBy(PanelShareDto::getCreator)); return map.entrySet().stream().map(entry -> { PanelShareDto panelShareDto = new PanelShareDto(); panelShareDto.setName(entry.getKey()); diff --git a/frontend/src/layout/components/AppMain.vue b/frontend/src/layout/components/AppMain.vue index b31f25780d..1a249a656a 100644 --- a/frontend/src/layout/components/AppMain.vue +++ b/frontend/src/layout/components/AppMain.vue @@ -25,8 +25,8 @@ export default { @import "~@/styles/variables.scss"; .app-main { - /*107 = navbar 50 + topbar 57 */ - min-height: calc(100vh - 107px); + /* topbar 56 */ + min-height: calc(100vh - 56px); width: 100%; position: relative; overflow: hidden; diff --git a/frontend/src/layout/components/Sidebar/index.vue b/frontend/src/layout/components/Sidebar/index.vue index c057faf0dd..d937418561 100644 --- a/frontend/src/layout/components/Sidebar/index.vue +++ b/frontend/src/layout/components/Sidebar/index.vue @@ -50,7 +50,7 @@ export default { return variables }, isCollapse() { - return !this.sidebar.opened + return false } } } diff --git a/frontend/src/layout/components/Topbar.vue b/frontend/src/layout/components/Topbar.vue index 80d6bba935..0f73ef356d 100644 --- a/frontend/src/layout/components/Topbar.vue +++ b/frontend/src/layout/components/Topbar.vue @@ -1,8 +1,8 @@