优化知识图谱的知识树

dev_2.1.0
liu 1 year ago
parent 785a1f2124
commit 3dce714331

@ -3,12 +3,9 @@ package com.supervision.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.supervision.dao.*;
import com.supervision.domain.*;
import com.supervision.enums.TagEnum;
@ -362,30 +359,7 @@ public class GraphNebulaServiceImpl implements GraphNebulaService {
for (TreeNodeVO nodeVO : firstNodeList) {
recursionBuildTree(nodeVO, treeNodeMap, graphVO.getEdges());
}
// 为所有节点分配新的唯一ID(前端需要ID字段为唯一ID)
Snowflake snowflake = IdUtil.getSnowflake(1);
// 先转JSON,再转回去.为了避免出现对象复用的情况,导致ID不能分配为唯一ID
String jsonStr = JSONUtil.toJsonStr(firstNodeList);
List<TreeNodeVO> newTreeNodeList = JSONUtil.toList(jsonStr, TreeNodeVO.class);
recursionGenerateSingleId(newTreeNodeList, snowflake);
return newTreeNodeList;
}
/**
* ID,IDGraphId
*/
private void recursionGenerateSingleId(List<TreeNodeVO> firstNodeList, Snowflake snowflake) {
for (TreeNodeVO treeNodeVO : firstNodeList) {
if (StrUtil.isBlank(treeNodeVO.getGraphId())) {
treeNodeVO.setGraphId(treeNodeVO.getId());
}
String nextId = snowflake.nextIdStr() + "-id";
treeNodeVO.setId(nextId);
if (CollUtil.isNotEmpty(treeNodeVO.getChildren())) {
recursionGenerateSingleId(treeNodeVO.getChildren(), snowflake);
}
}
return firstNodeList;
}
private void recursionBuildTree(TreeNodeVO preNode, Map<String, TreeNodeVO> treeNodeMap, List<EdgeVO> edgeList) {

@ -12,10 +12,8 @@ import java.util.Map;
@ApiModel
public class TreeNodeVO {
@ApiModelProperty("重新分配的唯一ID")
private String id;
@ApiModelProperty("图谱ID")
private String graphId;
private String id;
@ApiModelProperty("节点值")
private String nodeValue;

Loading…
Cancel
Save