|
@@ -73,20 +73,21 @@ public class DataResourceFacade implements IDataResourceFacade {
|
|
|
//表:数据分级 数据资源分类
|
|
|
if (DataAttrTypeEnum.DATA_ATTR_TABLE.getValue().equals(attrType)) {
|
|
|
// 查询所有的表和列
|
|
|
- List<AppDataResourceInfo> tabInfos = tabInfoService.getAllTabInfos();
|
|
|
+ List<AppDataResourceInfo> tabInfos = tabInfoService.getHasClassifyTables();
|
|
|
result.add(getDataLevelTree());
|
|
|
result.add(getDataClassifyTree(tabInfos));
|
|
|
} else if (DataAttrTypeEnum.DATA_ATTR_COLUMN.getValue().equals(attrType)) {
|
|
|
- List<AppDataItemInfo> colInfos = colInfoService.getAllColInfos();
|
|
|
+ List<AppDataResourceInfo> tabInfos = tabInfoService.getAllTabInfos();
|
|
|
+ List<AppDataItemInfo> colInfos = colInfoService.getHasClassifyColInfos();
|
|
|
result.add(getSecurityLevelTree());
|
|
|
- result.add(getFieldClassifyTree(colInfos));
|
|
|
+ result.add(getFieldClassifyTree(tabInfos, colInfos));
|
|
|
} else {
|
|
|
List<AppDataResourceInfo> tabInfos = tabInfoService.getAllTabInfos();
|
|
|
- List<AppDataItemInfo> colInfos = colInfoService.getAllColInfos();
|
|
|
+ List<AppDataItemInfo> colInfos = colInfoService.getHasClassifyColInfos();
|
|
|
result.add(getDataLevelTree());
|
|
|
result.add(getDataClassifyTree(tabInfos));
|
|
|
result.add(getSecurityLevelTree());
|
|
|
- result.add(getFieldClassifyTree(colInfos));
|
|
|
+ result.add(getFieldClassifyTree(tabInfos, colInfos));
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
@@ -102,8 +103,8 @@ public class DataResourceFacade implements IDataResourceFacade {
|
|
|
result = getDataLevelTree();
|
|
|
break;
|
|
|
case COLUMN_CLASSIFY:
|
|
|
- colInfos = colInfoService.getAllColInfos();
|
|
|
- result = getFieldClassifyTree(colInfos);
|
|
|
+ colInfos = colInfoService.getHasClassifyColInfos();
|
|
|
+ result = getFieldClassifyTree(tabInfos, colInfos);
|
|
|
break;
|
|
|
case DATA_SECURITY_LEVEL:
|
|
|
result = getSecurityLevelTree();
|
|
@@ -315,8 +316,10 @@ public class DataResourceFacade implements IDataResourceFacade {
|
|
|
}
|
|
|
|
|
|
|
|
|
- private DataResourceClassifyVo getFieldClassifyTree(List<AppDataItemInfo> colInfos) {
|
|
|
-
|
|
|
+ private DataResourceClassifyVo getFieldClassifyTree(List<AppDataResourceInfo> tabInfos, List<AppDataItemInfo> colInfos) {
|
|
|
+ Map<String, AppDataResourceInfo> tableMap = tabInfos
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(AppDataResourceInfo::getDataObjectId, e -> e));
|
|
|
Map<String, List<AppDataItemInfo>> colInfosMap = getColumnClaGroupMap(colInfos);
|
|
|
|
|
|
DataResourceEnum dataResourceEnum = DataResourceEnum.COLUMN_CLASSIFY;
|
|
@@ -338,7 +341,7 @@ public class DataResourceFacade implements IDataResourceFacade {
|
|
|
resourceVo.setNodes(new ArrayList<>());
|
|
|
resourceVo.setTotal(0);
|
|
|
} else {
|
|
|
- boolean b = combinePidCol(topTreeVo, colInfosMap);
|
|
|
+ boolean b = combinePidTabAndCol(topTreeVo, tableMap, colInfosMap);
|
|
|
if (b) {
|
|
|
resourceVo.setNodes(new ArrayList<>());
|
|
|
resourceVo.setTotal(0);
|
|
@@ -355,7 +358,7 @@ public class DataResourceFacade implements IDataResourceFacade {
|
|
|
return colInfos.stream().collect(Collectors.groupingBy(AppDataItemInfo::getColumnClassify));
|
|
|
}
|
|
|
|
|
|
- private boolean combinePidCol(DataResourceTreeVo treeVo, Map<String, List<AppDataItemInfo>> colInfosMap) {
|
|
|
+ private boolean combinePidTabAndCol(DataResourceTreeVo treeVo, Map<String, AppDataResourceInfo> tableMap, Map<String, List<AppDataItemInfo>> colInfosMap) {
|
|
|
List<DataResourceTreeVo> child = treeVo.getChild();
|
|
|
Iterator<DataResourceTreeVo> iterator = child.iterator();
|
|
|
while (iterator.hasNext()) {
|
|
@@ -365,19 +368,24 @@ public class DataResourceFacade implements IDataResourceFacade {
|
|
|
List<DataResourceTreeVo> cc = childVo.getChild();
|
|
|
if (CollectionUtils.isNotEmpty(cc)) {
|
|
|
childVo.setTreeNode(true);
|
|
|
- boolean emptyChild = combinePidCol(childVo, colInfosMap);
|
|
|
+ boolean emptyChild = combinePidTabAndCol(childVo, tableMap, colInfosMap);
|
|
|
if (emptyChild) {
|
|
|
iterator.remove();
|
|
|
}
|
|
|
} else {
|
|
|
// 如果为叶子节点,查找对应的表和列
|
|
|
// 如果查找不到表和列则移除
|
|
|
- String id = childVo.getId();
|
|
|
List<AppDataItemInfo> dataColInfo = colInfosMap.get(childVo.getCode());
|
|
|
if (dataColInfo == null) {
|
|
|
iterator.remove();
|
|
|
} else {
|
|
|
- List<DataResourceTreeVo> tableVos = convertColumnToTreeVo(childVo.getId(), dataColInfo);
|
|
|
+ Map<String, List<AppDataItemInfo>> tableGroup = dataColInfo.stream()
|
|
|
+ .collect(Collectors.groupingBy(AppDataItemInfo::getResourceTableId));
|
|
|
+ List<DataResourceTreeVo> tableVos = tableGroup.entrySet().stream().map(e -> {
|
|
|
+ String tableId = e.getKey();
|
|
|
+ AppDataResourceInfo table = tableMap.get(tableId);
|
|
|
+ return convertTableToTreeVo(childVo.getId(), Collections.singletonList(table), tableGroup);
|
|
|
+ }).flatMap(List::stream).collect(Collectors.toList());
|
|
|
childVo.setTreeNode(true);
|
|
|
childVo.setChild(tableVos);
|
|
|
}
|
|
@@ -811,7 +819,7 @@ public class DataResourceFacade implements IDataResourceFacade {
|
|
|
if (dataTabInfo == null) {
|
|
|
iterator.remove();
|
|
|
} else {
|
|
|
- List<DataResourceTreeVo> tableVos = convertTableToTreeVo(childVo, dataTabInfo, null);
|
|
|
+ List<DataResourceTreeVo> tableVos = convertTableToTreeVo(childVo.getId(), dataTabInfo, null);
|
|
|
childVo.setTreeNode(true);
|
|
|
childVo.setChild(tableVos);
|
|
|
}
|
|
@@ -822,11 +830,11 @@ public class DataResourceFacade implements IDataResourceFacade {
|
|
|
return CollectionUtils.isEmpty(child);
|
|
|
}
|
|
|
|
|
|
- private List<DataResourceTreeVo> convertTableToTreeVo(DataResourceTreeVo childVo, List<AppDataResourceInfo> dataTabInfo, Map<String, List<AppDataItemInfo>> colInfosMap) {
|
|
|
+ private List<DataResourceTreeVo> convertTableToTreeVo(String pid, List<AppDataResourceInfo> dataTabInfo, Map<String, List<AppDataItemInfo>> colInfosMap) {
|
|
|
return dataTabInfo.stream().map(e -> {
|
|
|
DataResourceTreeVo vo = new DataResourceTreeVo();
|
|
|
vo.setId(e.getId());
|
|
|
- vo.setPId(childVo.getId());
|
|
|
+ vo.setPId(pid);
|
|
|
vo.setLabel(e.getTableName());
|
|
|
vo.setDataType(DataResourceEnum.TAB.getCode());
|
|
|
if (null != colInfosMap) {
|