|
@@ -1,5 +1,6 @@
|
|
|
package com.dragoninfo.dcuc.app.facade;
|
|
|
|
|
|
+import com.dragoninfo.dcuc.app.business.IDataIndexBusiness;
|
|
|
import com.dragoninfo.dcuc.app.dto.dataresource.ChildResourceClassify;
|
|
|
import com.dragoninfo.dcuc.app.dto.dataresource.ResourceClassify;
|
|
|
import com.dragoninfo.dcuc.app.enumresources.DataResourceEnum;
|
|
@@ -44,8 +45,7 @@ import java.util.stream.Collectors;
|
|
|
@Slf4j
|
|
|
@RestController
|
|
|
@RequestMapping(value = "/dcuc/app/dataResourceFacade")
|
|
|
-public class DataResourceFacade implements IDataResourceFacade
|
|
|
-{
|
|
|
+public class DataResourceFacade implements IDataResourceFacade {
|
|
|
|
|
|
public static final String ID_SEPARATOR = "|";
|
|
|
|
|
@@ -64,6 +64,9 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
@Autowired
|
|
|
private IFieldClaService fieldClaService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IDataIndexBusiness dataIndexBusiness;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public List<DataResourceClassifyVo> getAllDataResourceTree(@RequestParam("attrType") String attrType) {
|
|
@@ -85,7 +88,7 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
public DataResourceClassifyVo getDataResourceTree(String typeCode) {
|
|
|
DataResourceClassifyVo result = null;
|
|
|
DataResourceEnum dataResourceEnum = Enum.valueOf(DataResourceEnum.class, typeCode);
|
|
|
- switch (dataResourceEnum){
|
|
|
+ switch (dataResourceEnum) {
|
|
|
case DATA_CLASSIFY:
|
|
|
result = getDataLevelTree();
|
|
|
break;
|
|
@@ -99,8 +102,8 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
case DATA_RESOURCE_CLASSIFY:
|
|
|
result = getDataClassifyTree();
|
|
|
break;
|
|
|
- default:
|
|
|
- break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
@@ -121,19 +124,21 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
.build();
|
|
|
List<DataLevelVo> dataLevelList = getDataLevelList();
|
|
|
List<DataResourceTreeVo> child = dataLevelList.stream().map(item -> DataResourceTreeVo.builder()
|
|
|
- .id(Joiner.on(ID_SEPARATOR).join(dataLevelTreeVo.getId(), item.getLevelCode()))
|
|
|
- .code(item.getLevelCode())
|
|
|
- .label(item.getLevelName())
|
|
|
- .dataType(item.getTypeCode())
|
|
|
- .codeDataTypeStr(UUIDUtils.getUUID() + ID_SEPARATOR + item.getLevelCode() + ID_SEPARATOR + item.getTypeCode())
|
|
|
- .treeNode(false)
|
|
|
- .pId(dataLevelTreeVo.getId())
|
|
|
- .innerId(item.getInnerId()).build()).collect(Collectors.toList());
|
|
|
+ .id(Joiner.on(ID_SEPARATOR).join(dataLevelTreeVo.getId(), item.getLevelCode()))
|
|
|
+ .code(item.getLevelCode())
|
|
|
+ .label(item.getLevelName())
|
|
|
+ .dataType(item.getTypeCode())
|
|
|
+ .codeDataTypeStr(UUIDUtils.getUUID() + ID_SEPARATOR + item.getLevelCode() + ID_SEPARATOR + item.getTypeCode())
|
|
|
+ .treeNode(false)
|
|
|
+ .pId(dataLevelTreeVo.getId())
|
|
|
+ .innerId(item.getInnerId()).build()).collect(Collectors.toList());
|
|
|
dataLevelTreeVo.setChild(child);
|
|
|
- if(child.size() == 0) {
|
|
|
+ if (child.size() == 0) {
|
|
|
dataResourceClassifyVo.setNodes(new ArrayList<>());
|
|
|
} else {
|
|
|
- dataResourceClassifyVo.setNodes(new ArrayList<DataResourceTreeVo>(){{add(dataLevelTreeVo);}});
|
|
|
+ dataResourceClassifyVo.setNodes(new ArrayList<DataResourceTreeVo>() {{
|
|
|
+ add(dataLevelTreeVo);
|
|
|
+ }});
|
|
|
}
|
|
|
//设置总数量
|
|
|
dataResourceClassifyVo.setTotal(child.size());
|
|
@@ -167,11 +172,13 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
.pId(securityLevelTree.getId())
|
|
|
.innerId(item.getInnerId()).build()).collect(Collectors.toList());
|
|
|
securityLevelTree.setChild(child);
|
|
|
- if(child.size() == 0) {
|
|
|
+ if (child.size() == 0) {
|
|
|
dataResourceClassifyVo.setNodes(new ArrayList<>());
|
|
|
dataResourceClassifyVo.setTotal(0);
|
|
|
} else {
|
|
|
- dataResourceClassifyVo.setNodes(new ArrayList<DataResourceTreeVo>(){{add(securityLevelTree);}} );
|
|
|
+ dataResourceClassifyVo.setNodes(new ArrayList<DataResourceTreeVo>() {{
|
|
|
+ add(securityLevelTree);
|
|
|
+ }});
|
|
|
//设置总数量
|
|
|
dataResourceClassifyVo.setTotal(child.size());
|
|
|
}
|
|
@@ -205,13 +212,15 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
combineTreeNode(secNodes, thirdNodes);
|
|
|
combineTreeNode(thirdNodes, fourNodes);
|
|
|
topTreeVo.setChild(firNodes);
|
|
|
- if(firNodes.size() == 0) {
|
|
|
+ if (firNodes.size() == 0) {
|
|
|
resourceVo.setNodes(new ArrayList<>());
|
|
|
resourceVo.setTotal(0);
|
|
|
} else {
|
|
|
//计算总数量
|
|
|
resourceVo.setTotal(getTotalCount(topTreeVo));
|
|
|
- resourceVo.setNodes(new ArrayList<DataResourceTreeVo>(){{add(topTreeVo);}});
|
|
|
+ resourceVo.setNodes(new ArrayList<DataResourceTreeVo>() {{
|
|
|
+ add(topTreeVo);
|
|
|
+ }});
|
|
|
}
|
|
|
return resourceVo;
|
|
|
}
|
|
@@ -244,11 +253,13 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
.stream().map(item -> convertFieldClaToNode(item, item.getFirId())).collect(Collectors.toList());
|
|
|
combineTreeNode(firNodes, secNodes);
|
|
|
topTreeVo.setChild(firNodes);
|
|
|
- if(firNodes.size() == 0) {
|
|
|
+ if (firNodes.size() == 0) {
|
|
|
resourceVo.setNodes(new ArrayList<>());
|
|
|
resourceVo.setTotal(0);
|
|
|
} else {
|
|
|
- resourceVo.setNodes(new ArrayList<DataResourceTreeVo>(){{add(topTreeVo);}});
|
|
|
+ resourceVo.setNodes(new ArrayList<DataResourceTreeVo>() {{
|
|
|
+ add(topTreeVo);
|
|
|
+ }});
|
|
|
resourceVo.setTotal(getTotalCount(topTreeVo));
|
|
|
}
|
|
|
return resourceVo;
|
|
@@ -267,7 +278,7 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
|
|
|
private void combineTreeNode(List<DataResourceTreeVo> firNodes, List<DataResourceTreeVo> secNodes) {
|
|
|
Map<String, List<DataResourceTreeVo>> secMap = secNodes.stream().collect(Collectors.groupingBy(DataResourceTreeVo::getPId));
|
|
|
- firNodes.forEach(item->{
|
|
|
+ firNodes.forEach(item -> {
|
|
|
List<DataResourceTreeVo> childes = secMap.get(item.getId());
|
|
|
item.setChild(childes);
|
|
|
});
|
|
@@ -310,7 +321,7 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
@Override
|
|
|
public List<DataFieldClassifyVo> getFieldClassifyList() {
|
|
|
List<FieldClaAcceptDTO> list = fieldClaService.getAll();
|
|
|
- return list.stream().map(item-> {
|
|
|
+ return list.stream().map(item -> {
|
|
|
DataFieldClassifyVo vo = new DataFieldClassifyVo();
|
|
|
vo.setFirstLevelCode(item.getFirCode());
|
|
|
vo.setFirstLevelName(item.getFirName());
|
|
@@ -330,7 +341,7 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
//方法内部有从ThreadLocal获取信息
|
|
|
//CompletableFuture默认使用ForkJoin线程池,不要使用1.8的新线程开启方法
|
|
|
//如果使用线程池需要用包装类将线程包装后设置RequestContextHolder
|
|
|
- Runnable r = ()-> {
|
|
|
+ Runnable r = () -> {
|
|
|
RequestContextHolder.setRequestAttributes(requestAttributes);
|
|
|
try {
|
|
|
List<DataLevelVo> list = getDataLevelListFromRemote();
|
|
@@ -354,7 +365,7 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
//方法内部有从ThreadLocal获取信息
|
|
|
//CompletableFuture默认使用ForkJoin线程池,不要使用1.8的新线程开启方法
|
|
|
//如果使用线程池需要用包装类将线程包装后设置RequestContextHolder
|
|
|
- Runnable r = ()-> {
|
|
|
+ Runnable r = () -> {
|
|
|
RequestContextHolder.setRequestAttributes(requestAttributes);
|
|
|
try {
|
|
|
List<DataLevelVo> list = getSecurityLevelListFromRemote();
|
|
@@ -378,7 +389,7 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
//方法内部有从ThreadLocal获取信息
|
|
|
//CompletableFuture默认使用ForkJoin线程池,不要使用1.8的新线程开启方法
|
|
|
//如果使用线程池需要用包装类将线程包装后设置RequestContextHolder
|
|
|
- Runnable r = ()-> {
|
|
|
+ Runnable r = () -> {
|
|
|
try {
|
|
|
RequestContextHolder.setRequestAttributes(requestAttributes);
|
|
|
List<DataResourceTreeVo> nodes = getDataClassifyTreeFromRemote();
|
|
@@ -403,7 +414,7 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
//方法内部有从ThreadLocal获取信息
|
|
|
//CompletableFuture默认使用ForkJoin线程池,不要使用1.8的新线程开启方法
|
|
|
//如果使用线程池需要用包装类将线程包装后设置RequestContextHolder
|
|
|
- Runnable r = ()-> {
|
|
|
+ Runnable r = () -> {
|
|
|
try {
|
|
|
RequestContextHolder.setRequestAttributes(requestAttributes);
|
|
|
List<DataResourceTreeVo> nodes = getFieldClassifyTreeFromRemote();
|
|
@@ -418,22 +429,28 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
return ResponseStatus.success();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public ResponseStatus syncTableAndColumn() {
|
|
|
+ dataIndexBusiness.syncTableAndColumn();
|
|
|
+ return ResponseStatus.success();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public List<DataLevelVo> getDetailByIdsAndClaType(List<String> ids, String classifyType) {
|
|
|
- List<DataLevelVo> vos= new ArrayList<>();
|
|
|
- if(CollectionUtils.isEmpty(ids)) {
|
|
|
+ List<DataLevelVo> vos = new ArrayList<>();
|
|
|
+ if (CollectionUtils.isEmpty(ids)) {
|
|
|
return vos;
|
|
|
}
|
|
|
- if(StringUtils.isBlank(classifyType)) {
|
|
|
+ if (StringUtils.isBlank(classifyType)) {
|
|
|
return vos;
|
|
|
}
|
|
|
DataResourceEnum anEnum = DataResourceEnum.getByCode(classifyType);
|
|
|
- if(null == anEnum) {
|
|
|
+ if (null == anEnum) {
|
|
|
return vos;
|
|
|
- } else if(DataResourceEnum.COLUMN_CLASSIFY.equals(anEnum)) {
|
|
|
+ } else if (DataResourceEnum.COLUMN_CLASSIFY.equals(anEnum)) {
|
|
|
List<FieldCla> list = fieldClaService.getByIds(ids);
|
|
|
- list.stream().map(item->{
|
|
|
+ list.stream().map(item -> {
|
|
|
DataLevelVo vo = new DataLevelVo();
|
|
|
vo.setTypeCode(item.getDataType());
|
|
|
vo.setLevelName(item.getName());
|
|
@@ -442,9 +459,9 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
return vo;
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
- } else if(DataResourceEnum.DATA_CLASSIFY.equals(anEnum)) {
|
|
|
+ } else if (DataResourceEnum.DATA_CLASSIFY.equals(anEnum)) {
|
|
|
List<DataLevel> list = dataLevelService.getByIds(ids);
|
|
|
- list.stream().map(item->{
|
|
|
+ list.stream().map(item -> {
|
|
|
DataLevelVo vo = new DataLevelVo();
|
|
|
vo.setTypeCode(item.getDataType());
|
|
|
vo.setLevelName(item.getLevelName());
|
|
@@ -453,9 +470,9 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
return vo;
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
- } else if(DataResourceEnum.DATA_RESOURCE_CLASSIFY.equals(anEnum)) {
|
|
|
+ } else if (DataResourceEnum.DATA_RESOURCE_CLASSIFY.equals(anEnum)) {
|
|
|
List<DataCla> list = dataClaService.getByIds(ids);
|
|
|
- list.stream().map(item->{
|
|
|
+ list.stream().map(item -> {
|
|
|
DataLevelVo vo = new DataLevelVo();
|
|
|
vo.setTypeCode(item.getDataType());
|
|
|
vo.setLevelName(item.getName());
|
|
@@ -464,9 +481,9 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
return vo;
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
- } else if(DataResourceEnum.DATA_SECURITY_LEVEL.equals(anEnum)) {
|
|
|
+ } else if (DataResourceEnum.DATA_SECURITY_LEVEL.equals(anEnum)) {
|
|
|
List<DataSec> list = dataSecService.getByIds(ids);
|
|
|
- list.stream().map(item->{
|
|
|
+ list.stream().map(item -> {
|
|
|
DataLevelVo vo = new DataLevelVo();
|
|
|
vo.setTypeCode(item.getDataType());
|
|
|
vo.setLevelName(item.getSecName());
|
|
@@ -480,32 +497,32 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
|
|
|
@Override
|
|
|
public DataLevelVo getDetailByIdAndClaType(String id, String classifyType) {
|
|
|
- if(StringUtils.isAnyBlank(id, classifyType)) {
|
|
|
+ if (StringUtils.isAnyBlank(id, classifyType)) {
|
|
|
return null;
|
|
|
}
|
|
|
DataLevelVo vo = new DataLevelVo();
|
|
|
DataResourceEnum anEnum = DataResourceEnum.getByCode(classifyType);
|
|
|
- if(null == anEnum) {
|
|
|
+ if (null == anEnum) {
|
|
|
return null;
|
|
|
- } else if(DataResourceEnum.COLUMN_CLASSIFY.equals(anEnum)) {
|
|
|
+ } else if (DataResourceEnum.COLUMN_CLASSIFY.equals(anEnum)) {
|
|
|
FieldCla fieldCla = fieldClaService.getById(id);
|
|
|
vo.setInnerId(fieldCla.getId());
|
|
|
vo.setLevelCode(fieldCla.getCode());
|
|
|
vo.setLevelName(fieldCla.getName());
|
|
|
vo.setTypeCode(fieldCla.getDataType());
|
|
|
- } else if(DataResourceEnum.DATA_CLASSIFY.equals(anEnum)) {
|
|
|
+ } else if (DataResourceEnum.DATA_CLASSIFY.equals(anEnum)) {
|
|
|
DataLevel dataLevel = dataLevelService.getById(id);
|
|
|
vo.setInnerId(dataLevel.getId());
|
|
|
vo.setLevelCode(dataLevel.getLevelCode());
|
|
|
vo.setLevelName(dataLevel.getLevelName());
|
|
|
vo.setTypeCode(dataLevel.getDataType());
|
|
|
- } else if(DataResourceEnum.DATA_RESOURCE_CLASSIFY.equals(anEnum)) {
|
|
|
+ } else if (DataResourceEnum.DATA_RESOURCE_CLASSIFY.equals(anEnum)) {
|
|
|
DataCla dataCla = dataClaService.getById(id);
|
|
|
vo.setInnerId(dataCla.getId());
|
|
|
vo.setLevelCode(dataCla.getId());
|
|
|
vo.setLevelName(dataCla.getName());
|
|
|
vo.setTypeCode(dataCla.getCode());
|
|
|
- } else if(DataResourceEnum.DATA_SECURITY_LEVEL.equals(anEnum)) {
|
|
|
+ } else if (DataResourceEnum.DATA_SECURITY_LEVEL.equals(anEnum)) {
|
|
|
DataSec dataSec = dataSecService.getById(id);
|
|
|
vo.setInnerId(dataSec.getId());
|
|
|
vo.setLevelCode(dataSec.getSecCode());
|
|
@@ -624,6 +641,7 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
|
|
|
/**
|
|
|
* 计算treeVo所有最底层子节点数量,不包含叶节点
|
|
|
+ *
|
|
|
* @param treeVo
|
|
|
* @return
|
|
|
*/
|
|
@@ -634,10 +652,10 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
childVo.setPId(treeVo.getId());
|
|
|
childVo.setId(Joiner.on(ID_SEPARATOR).join(treeVo.getId(), childVo.getCode()));
|
|
|
List<DataResourceTreeVo> cc = childVo.getChild();
|
|
|
- if(CollectionUtils.isNotEmpty(cc)){
|
|
|
+ if (CollectionUtils.isNotEmpty(cc)) {
|
|
|
childVo.setTreeNode(true);
|
|
|
count += getTotalCount(childVo);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
childVo.setTreeNode(false);
|
|
|
count += 1;
|
|
|
}
|
|
@@ -647,17 +665,19 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
|
|
|
/**
|
|
|
* 从数据资源目录获取数据-数据分级
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
private List<DataLevelVo> getDataLevelListFromRemote() {
|
|
|
return getFirstChildResourceClassifies(dataResourceService.getDataLevelList())
|
|
|
.stream()
|
|
|
- .map(childResourceClassify -> new DataLevelVo(null, childResourceClassify.getCodeValue(), childResourceClassify.getCodeName(),childResourceClassify.getTypeCode()))
|
|
|
+ .map(childResourceClassify -> new DataLevelVo(null, childResourceClassify.getCodeValue(), childResourceClassify.getCodeName(), childResourceClassify.getTypeCode()))
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 从数据资源目录获取数据-安全级别数据
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
private List<DataLevelVo> getSecurityLevelListFromRemote() {
|
|
@@ -673,7 +693,7 @@ public class DataResourceFacade implements IDataResourceFacade
|
|
|
.map(resourceClassify -> {
|
|
|
//设置节点的dataType,dataType为上级的typeCode字段
|
|
|
List<ChildResourceClassify> dataList = Optional.ofNullable(resourceClassify.getDataList()).orElse(Lists.newArrayList());
|
|
|
- dataList.stream().forEach(item-> item.setTypeCode(resourceClassify.getTypeCode()));
|
|
|
+ dataList.stream().forEach(item -> item.setTypeCode(resourceClassify.getTypeCode()));
|
|
|
return dataList;
|
|
|
})
|
|
|
.orElse(Lists.newArrayList());
|