From 555decea39106b83c3f260fe75dce358e4cb2a64 Mon Sep 17 00:00:00 2001 From: liu Date: Thu, 29 Feb 2024 11:23:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=89=B2=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/supervision/enums/TagEnum.java | 36 +++++++++---------- .../service/impl/GraphNebulaServiceImpl.java | 21 +++++++---- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/virtual-patient-graph/src/main/java/com/supervision/enums/TagEnum.java b/virtual-patient-graph/src/main/java/com/supervision/enums/TagEnum.java index 08006acc..176b0942 100644 --- a/virtual-patient-graph/src/main/java/com/supervision/enums/TagEnum.java +++ b/virtual-patient-graph/src/main/java/com/supervision/enums/TagEnum.java @@ -1,41 +1,41 @@ package com.supervision.enums; public enum TagEnum { - medical_rec("病例", 1, "#00B8F5"), + medical_rec("病例", 1, "#2F7CFF"), - process_medical("电子病历", 2, "#00B8F5"), + process_medical("电子病历", 2, "#55CBAD"), - self_desc("主诉", 3, "#00B8F5"), + self_desc("主诉", 3, "#55CBAD"), - previous_history("既往病史", 3, "#00B8F5"), + previous_history("既往病史", 3, "#55CBAD"), - illness_history("现病史", 3, "#00B8F5"), + illness_history("现病史", 3, "#55CBAD"), - personal_history("个人史", 3, "#00B8F5"), + personal_history("个人史", 3, "#55CBAD"), - allergy_history("过敏史", 3, "#00B8F5"), + allergy_history("过敏史", 3, "#55CBAD"), - family_history("家族史", 3, "#00B8F5"), + family_history("家族史", 3, "#55CBAD"), - marriage_child_history("婚育史", 3, "#00B8F5"), + marriage_child_history("婚育史", 3, "#55CBAD"), - operation_history("手术史", 3, "#00B8F5"), + operation_history("手术史", 3, "#55CBAD"), - symptoms("症状", 2, "#00B8F5"), + symptoms("症状", 2, "#55CBAD"), - patient("患者信息", 2, "#00B8F5"), + patient("患者信息", 2, "#55CBAD"), - physical("体格检查", 2, "#00B8F5"), + physical("体格检查", 2, "#8D8BFF"), - physical_result("体格检查结果", 2, "#00B8F5"), + physical_result("体格检查结果", 2, "#8D8BFF"), - ancillary("辅助检查", 2, "#00B8F5"), + ancillary("辅助检查", 2, "#4E8CFF"), - ancillary_result("辅助检查结果", 2, "#00B8F5"), + ancillary_result("辅助检查结果", 2, "#4E8CFF"), - treatment_plan("处置计划", 2, "#00B8F5"), + treatment_plan("处置计划", 2, "#2BCCFF"), - diagnosis("诊断", 2, "#00B8F5"); + diagnosis("诊断", 2, "#FF6667"); private final String type; diff --git a/virtual-patient-graph/src/main/java/com/supervision/service/impl/GraphNebulaServiceImpl.java b/virtual-patient-graph/src/main/java/com/supervision/service/impl/GraphNebulaServiceImpl.java index d94e33b5..3fb9bd3b 100644 --- a/virtual-patient-graph/src/main/java/com/supervision/service/impl/GraphNebulaServiceImpl.java +++ b/virtual-patient-graph/src/main/java/com/supervision/service/impl/GraphNebulaServiceImpl.java @@ -4,10 +4,12 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; +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 com.alibaba.nacos.common.utils.UuidUtils; +import cn.hutool.json.JSONUtil; import com.supervision.dao.*; import com.supervision.domain.*; import com.supervision.enums.TagEnum; @@ -337,22 +339,27 @@ public class GraphNebulaServiceImpl implements GraphNebulaService { recursionBuildTree(nodeVO, treeNodeMap, graphVO.getEdges()); } // 为所有节点分配新的唯一ID(前端需要ID字段为唯一ID) - recursionGenerateSingleId(firstNodeList); - return firstNodeList; + Snowflake snowflake = IdUtil.getSnowflake(1); + // 先转JSON,再转回去.为了避免出现对象复用的情况,导致ID不能分配为唯一ID + String jsonStr = JSONUtil.toJsonStr(firstNodeList); + List newTreeNodeList = JSONUtil.toList(jsonStr, TreeNodeVO.class); + + recursionGenerateSingleId(newTreeNodeList, snowflake); + return newTreeNodeList; } /** * 为属性结构构建新的唯一ID,把原先的ID迁移到GraphId */ - private void recursionGenerateSingleId(List firstNodeList) { + private void recursionGenerateSingleId(List firstNodeList, Snowflake snowflake) { for (TreeNodeVO treeNodeVO : firstNodeList) { - String uuid = UuidUtils.generateUuid(); if (StrUtil.isBlank(treeNodeVO.getGraphId())) { treeNodeVO.setGraphId(treeNodeVO.getId()); } - treeNodeVO.setId(uuid); + String nextId = snowflake.nextIdStr() + "-id"; + treeNodeVO.setId(nextId); if (CollUtil.isNotEmpty(treeNodeVO.getChildren())) { - recursionGenerateSingleId(treeNodeVO.getChildren()); + recursionGenerateSingleId(treeNodeVO.getChildren(), snowflake); } } }