Merge branch 'dev' into pr@dev_one_dot_x

This commit is contained in:
dataeaseShu 2023-12-20 14:55:31 +08:00
commit e44c95d4eb
4 changed files with 117 additions and 159 deletions

View File

@ -52,7 +52,14 @@ public class ChartViewOldDataMergeService {
for (ChartViewWithBLOBs view : chartViewWithBLOBs) {
Type filterTokenType = new TypeToken<List<ChartFieldCustomFilterDTO>>() {
}.getType();
List<ChartFieldCustomFilterDTO> fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType);
List<ChartFieldCustomFilterDTO> fieldCustomFilter;
// 尝试将历史数据转成list如果转换出现异常则忽略该视图继续执行下一个
try {
fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType);
} catch (Exception e) {
continue;
}
if (CollectionUtils.isEmpty(fieldCustomFilter)) {
// '[]' 转换成 '{}'
view.setCustomFilter("{}");
@ -71,18 +78,17 @@ public class ChartViewOldDataMergeService {
tree.getItems().add(item);
} else {
List<ChartCustomFilterItemDTO> filter = filterDTO.getFilter();
if (CollectionUtils.isEmpty(filter)) {
continue;
}
for (ChartCustomFilterItemDTO f : filter) {
FilterTreeItem item = new FilterTreeItem();
item.setType("item");
item.setFieldId(filterDTO.getId());
item.setFilterType(filterDTO.getFilterType());
item.setTerm(f.getTerm());
item.setValue(f.getValue());
item.setEnumValue(new ArrayList<>());
tree.getItems().add(item);
if (CollectionUtils.isNotEmpty(filter)) {
for (ChartCustomFilterItemDTO f : filter) {
FilterTreeItem item = new FilterTreeItem();
item.setType("item");
item.setFieldId(filterDTO.getId());
item.setFilterType(filterDTO.getFilterType());
item.setTerm(f.getTerm());
item.setValue(f.getValue());
item.setEnumValue(new ArrayList<>());
tree.getItems().add(item);
}
}
}
} else {
@ -97,38 +103,37 @@ public class ChartViewOldDataMergeService {
tree.getItems().add(item);
} else {
List<ChartCustomFilterItemDTO> filter = dto.getFilter();
if (CollectionUtils.isEmpty(filter)) {
continue;
}
if (filter.size() == 1) {
ChartCustomFilterItemDTO f = filter.get(0);
FilterTreeItem item = new FilterTreeItem();
item.setType("item");
item.setFieldId(dto.getId());
item.setFilterType(dto.getFilterType());
item.setTerm(f.getTerm());
item.setValue(f.getValue());
item.setEnumValue(new ArrayList<>());
tree.getItems().add(item);
} else {
FilterTreeItem item = new FilterTreeItem();
item.setType("tree");
item.setEnumValue(new ArrayList<>());
FilterTreeObj subTree = new FilterTreeObj();
subTree.setLogic(dto.getLogic());
subTree.setItems(new ArrayList<>());
for (ChartCustomFilterItemDTO f : filter) {
FilterTreeItem itemTree = new FilterTreeItem();
itemTree.setType("item");
itemTree.setFieldId(dto.getId());
itemTree.setFilterType(dto.getFilterType());
itemTree.setTerm(f.getTerm());
itemTree.setValue(f.getValue());
itemTree.setEnumValue(new ArrayList<>());
subTree.getItems().add(itemTree);
if (CollectionUtils.isNotEmpty(filter)) {
if (filter.size() == 1) {
ChartCustomFilterItemDTO f = filter.get(0);
FilterTreeItem item = new FilterTreeItem();
item.setType("item");
item.setFieldId(dto.getId());
item.setFilterType(dto.getFilterType());
item.setTerm(f.getTerm());
item.setValue(f.getValue());
item.setEnumValue(new ArrayList<>());
tree.getItems().add(item);
} else {
FilterTreeItem item = new FilterTreeItem();
item.setType("tree");
item.setEnumValue(new ArrayList<>());
FilterTreeObj subTree = new FilterTreeObj();
subTree.setLogic(dto.getLogic());
subTree.setItems(new ArrayList<>());
for (ChartCustomFilterItemDTO f : filter) {
FilterTreeItem itemTree = new FilterTreeItem();
itemTree.setType("item");
itemTree.setFieldId(dto.getId());
itemTree.setFilterType(dto.getFilterType());
itemTree.setTerm(f.getTerm());
itemTree.setValue(f.getValue());
itemTree.setEnumValue(new ArrayList<>());
subTree.getItems().add(itemTree);
}
item.setSubTree(subTree);
tree.getItems().add(item);
}
item.setSubTree(subTree);
tree.getItems().add(item);
}
}
}
@ -160,7 +165,15 @@ public class ChartViewOldDataMergeService {
for (ChartViewCacheWithBLOBs view : chartViewWithBLOBs) {
Type filterTokenType = new TypeToken<List<ChartFieldCustomFilterDTO>>() {
}.getType();
List<ChartFieldCustomFilterDTO> fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType);
List<ChartFieldCustomFilterDTO> fieldCustomFilter;
// 尝试将历史数据转成list如果转换出现异常则忽略该视图继续执行下一个
try {
fieldCustomFilter = gson.fromJson(view.getCustomFilter(), filterTokenType);
} catch (Exception e) {
continue;
}
if (CollectionUtils.isEmpty(fieldCustomFilter)) {
// '[]' 转换成 '{}'
view.setCustomFilter("{}");
@ -179,18 +192,17 @@ public class ChartViewOldDataMergeService {
tree.getItems().add(item);
} else {
List<ChartCustomFilterItemDTO> filter = filterDTO.getFilter();
if (CollectionUtils.isEmpty(filter)) {
continue;
}
for (ChartCustomFilterItemDTO f : filter) {
FilterTreeItem item = new FilterTreeItem();
item.setType("item");
item.setFieldId(filterDTO.getId());
item.setFilterType(filterDTO.getFilterType());
item.setTerm(f.getTerm());
item.setValue(f.getValue());
item.setEnumValue(new ArrayList<>());
tree.getItems().add(item);
if (CollectionUtils.isNotEmpty(filter)) {
for (ChartCustomFilterItemDTO f : filter) {
FilterTreeItem item = new FilterTreeItem();
item.setType("item");
item.setFieldId(filterDTO.getId());
item.setFilterType(filterDTO.getFilterType());
item.setTerm(f.getTerm());
item.setValue(f.getValue());
item.setEnumValue(new ArrayList<>());
tree.getItems().add(item);
}
}
}
} else {
@ -205,38 +217,37 @@ public class ChartViewOldDataMergeService {
tree.getItems().add(item);
} else {
List<ChartCustomFilterItemDTO> filter = dto.getFilter();
if (CollectionUtils.isEmpty(filter)) {
continue;
}
if (filter.size() == 1) {
ChartCustomFilterItemDTO f = filter.get(0);
FilterTreeItem item = new FilterTreeItem();
item.setType("item");
item.setFieldId(dto.getId());
item.setFilterType(dto.getFilterType());
item.setTerm(f.getTerm());
item.setValue(f.getValue());
item.setEnumValue(new ArrayList<>());
tree.getItems().add(item);
} else {
FilterTreeItem item = new FilterTreeItem();
item.setType("tree");
item.setEnumValue(new ArrayList<>());
FilterTreeObj subTree = new FilterTreeObj();
subTree.setLogic(dto.getLogic());
subTree.setItems(new ArrayList<>());
for (ChartCustomFilterItemDTO f : filter) {
FilterTreeItem itemTree = new FilterTreeItem();
itemTree.setType("item");
itemTree.setFieldId(dto.getId());
itemTree.setFilterType(dto.getFilterType());
itemTree.setTerm(f.getTerm());
itemTree.setValue(f.getValue());
itemTree.setEnumValue(new ArrayList<>());
subTree.getItems().add(itemTree);
if (CollectionUtils.isNotEmpty(filter)) {
if (filter.size() == 1) {
ChartCustomFilterItemDTO f = filter.get(0);
FilterTreeItem item = new FilterTreeItem();
item.setType("item");
item.setFieldId(dto.getId());
item.setFilterType(dto.getFilterType());
item.setTerm(f.getTerm());
item.setValue(f.getValue());
item.setEnumValue(new ArrayList<>());
tree.getItems().add(item);
} else {
FilterTreeItem item = new FilterTreeItem();
item.setType("tree");
item.setEnumValue(new ArrayList<>());
FilterTreeObj subTree = new FilterTreeObj();
subTree.setLogic(dto.getLogic());
subTree.setItems(new ArrayList<>());
for (ChartCustomFilterItemDTO f : filter) {
FilterTreeItem itemTree = new FilterTreeItem();
itemTree.setType("item");
itemTree.setFieldId(dto.getId());
itemTree.setFilterType(dto.getFilterType());
itemTree.setTerm(f.getTerm());
itemTree.setValue(f.getValue());
itemTree.setEnumValue(new ArrayList<>());
subTree.getItems().add(itemTree);
}
item.setSubTree(subTree);
tree.getItems().add(item);
}
item.setSubTree(subTree);
tree.getItems().add(item);
}
}
}

View File

@ -71,6 +71,7 @@ public class ViewExportExcel {
Map<String, ChartExtRequest> result = new HashMap<>();
Map<String, List<ChartExtFilterRequest>> panelFilters = justView ? FilterBuildTemplate.buildFilters(components) : FilterBuildTemplate.buildEmpty(components);
List<String> tableInfoViewIds = findTableInfoViewIds(components);
for (Map.Entry<String, List<ChartExtFilterRequest>> entry : panelFilters.entrySet()) {
List<ChartExtFilterRequest> chartExtFilterRequests = entry.getValue();
ChartExtRequest chartExtRequest = new ChartExtRequest();
@ -78,11 +79,26 @@ public class ViewExportExcel {
chartExtRequest.setFilter(chartExtFilterRequests);
chartExtRequest.setResultCount((int) resultCount);
chartExtRequest.setResultMode(resultMode);
if(tableInfoViewIds.contains(entry.getKey())){
chartExtRequest.setGoPage(1L);
chartExtRequest.setPageSize(1000000L);
chartExtRequest.setExcelExportFlag(true);
}
result.put(entry.getKey(), chartExtRequest);
}
return result;
}
private List<String> findTableInfoViewIds(List<Map<String, Object>> components) {
List<String> tableInfoViewIds = new ArrayList<>();
components.forEach(element -> {
if (StringUtils.equals(element.get("type").toString(), "view") && StringUtils.equals(((Map<String, Object>) element.get("propValue")).get("innerType").toString(), "table-info")) {
tableInfoViewIds.add(((Map<String, Object>) element.get("propValue")).get("viewId").toString());
}
});
return tableInfoViewIds;
}
private ExcelSheetModel viewFiles(String viewId, ChartExtRequest request) {
ExcelSheetModel result = new ExcelSheetModel();
ChartViewDTO chartViewDTO = null;

View File

@ -280,11 +280,6 @@ export default {
) {
view.drillFields = []
}
// view.customFilter.forEach(function(ele) {
// if (ele && !ele.filter) {
// ele.filter = []
// }
// })
view.xaxis = JSON.stringify(view.xaxis)
view.viewFields = JSON.stringify(view.viewFields)
view.xaxisExt = JSON.stringify(view.xaxisExt)

View File

@ -1840,7 +1840,6 @@ import {
} from '@/api/chart/chart'
import DimensionItem from '../components/dragItem/DimensionItem'
import QuotaItem from '../components/dragItem/QuotaItem'
import FilterItem from '../components/dragItem/FilterItem'
import ChartDragItem from '../components/dragItem/ChartDragItem'
import DrillItem from '../components/dragItem/DrillItem'
import ResultFilterEditor from '../components/filter/ResultFilterEditor'
@ -1916,7 +1915,6 @@ export default {
ChartType,
ChartComponentG2,
QuotaExtItem,
FilterItem,
FilterTree,
FieldEdit,
TableSelector,
@ -2289,7 +2287,7 @@ export default {
bus.$off('show-rename', this.showRename)
bus.$off('show-quota-edit-filter', this.showQuotaEditFilter)
bus.$off('show-quota-edit-compare', this.showQuotaEditCompare)
bus.$off('show-edit-filter', this.showEditFilter)
bus.$off('show-edit-filter', this.openTreeFilter)
bus.$off('show-edit-formatter', this.valueFormatter)
bus.$off('calc-data', this.calcData)
bus.$off('plugins-calc-style', this.calcStyle)
@ -2379,7 +2377,7 @@ export default {
bus.$on('show-rename', this.showRename)
bus.$on('show-quota-edit-filter', this.showQuotaEditFilter)
bus.$on('show-quota-edit-compare', this.showQuotaEditCompare)
bus.$on('show-edit-filter', this.showEditFilter)
bus.$on('show-edit-filter', this.openTreeFilter)
bus.$on('show-edit-formatter', this.valueFormatter)
bus.$on('calc-data', this.calcData)
bus.$on('plugins-calc-style', this.calcStyle)
@ -2643,11 +2641,6 @@ export default {
view.type === 'table-pivot') {
view.drillFields = []
}
// view.customFilter.forEach(function(ele) {
// if (ele && !ele.filter) {
// ele.filter = []
// }
// })
this.chart = JSON.parse(JSON.stringify(view))
this.view = JSON.parse(JSON.stringify(view))
// stringify json param
@ -3068,63 +3061,6 @@ export default {
this.closeQuotaFilter()
},
filterItemRemove(item) {
this.view.customFilter.splice(item.index, 1)
this.calcData(true)
},
showEditFilter(item) {
this.filterItem = JSON.parse(JSON.stringify(item))
this.chartForFilter = JSON.parse(JSON.stringify(this.view))
if (!this.filterItem.logic) {
this.filterItem.logic = 'and'
}
if (!this.filterItem.filterType) {
this.filterItem.filterType = 'logic'
}
if (!this.filterItem.enumCheckField) {
this.filterItem.enumCheckField = []
}
this.resultFilterEdit = true
},
closeResultFilter() {
this.resultFilterEdit = false
},
saveResultFilter() {
if (((this.filterItem.deType === 0 || this.filterItem.deType === 5) && this.filterItem.filterType !== 'enum') ||
this.filterItem.deType === 1 ||
this.filterItem.deType === 2 ||
this.filterItem.deType === 3) {
for (let i = 0; i < this.filterItem.filter.length; i++) {
const f = this.filterItem.filter[i]
if (!f.term.includes('null') && !f.term.includes('empty') && (!f.value || f.value === '')) {
this.$message({
message: this.$t('chart.filter_value_can_null'),
type: 'error',
showClose: true
})
return
}
if (this.filterItem.deType === 2 || this.filterItem.deType === 3) {
if (isNaN(f.value)) {
this.$message({
message: this.$t('chart.filter_value_can_not_str'),
type: 'error',
showClose: true
})
return
}
}
}
}
this.view.customFilter[this.filterItem.index].filter = this.filterItem.filter
this.view.customFilter[this.filterItem.index].logic = this.filterItem.logic
this.view.customFilter[this.filterItem.index].filterType = this.filterItem.filterType
this.view.customFilter[this.filterItem.index].enumCheckField = this.filterItem.enumCheckField
this.calcData(true)
this.closeResultFilter()
},
showRename(val) {
this.itemForm = JSON.parse(JSON.stringify(val))
this.renameItem = true