diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/TreatmentPlanManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/TreatmentPlanManageController.java index 746e4f1c..ffb7c9bb 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/TreatmentPlanManageController.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/TreatmentPlanManageController.java @@ -1,7 +1,7 @@ package com.supervision.manage.controller; import com.supervision.manage.service.ConfigTreatmentPlanManageService; -import com.supervision.vo.manage.ConfigTreatmentPlanWrapVo; +import com.supervision.vo.manage.TreeNode; import com.supervision.model.ConfigTreatmentPlan; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -24,7 +24,7 @@ public class TreatmentPlanManageController { @ApiOperation("查询处置计划树") @GetMapping("/queryTree") - public ConfigTreatmentPlanWrapVo queryTree(@RequestParam("处置方式") Integer disposalMethod) { + public List queryTree(@RequestParam("处置方式") Integer disposalMethod) { return configTreatmentPlanManageService.queryTree(disposalMethod); @@ -40,7 +40,7 @@ public class TreatmentPlanManageController { @ApiOperation("根据id查询处置计划详情") @GetMapping("/findById") - public ConfigTreatmentPlanWrapVo findById(@RequestParam("处置方式") String id) { + public TreeNode findById(@RequestParam("处置方式") String id) { return configTreatmentPlanManageService.findById(id); diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/ConfigTreatmentPlanManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/ConfigTreatmentPlanManageService.java index bd56e527..6045a33a 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/ConfigTreatmentPlanManageService.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/ConfigTreatmentPlanManageService.java @@ -1,15 +1,15 @@ package com.supervision.manage.service; import com.supervision.model.ConfigTreatmentPlan; -import com.supervision.vo.manage.ConfigTreatmentPlanWrapVo; +import com.supervision.vo.manage.TreeNode; import java.util.List; public interface ConfigTreatmentPlanManageService { - ConfigTreatmentPlanWrapVo queryTree(Integer disposalMethod); + List queryTree(Integer disposalMethod); List queryList(Integer disposalMethod); - ConfigTreatmentPlanWrapVo findById(String id); + TreeNode findById(String id); } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/ConfigTreatmentPlanManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/ConfigTreatmentPlanManageServiceImpl.java index 2dd320e5..93b76796 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/ConfigTreatmentPlanManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/ConfigTreatmentPlanManageServiceImpl.java @@ -1,21 +1,75 @@ package com.supervision.manage.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.supervision.manage.service.ConfigTreatmentPlanManageService; import com.supervision.model.ConfigTreatmentPlan; -import com.supervision.vo.manage.ConfigTreatmentPlanWrapVo; +import com.supervision.service.ConfigTreatmentPlanService; +import com.supervision.vo.manage.TreeNode; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor public class ConfigTreatmentPlanManageServiceImpl implements ConfigTreatmentPlanManageService { + private final ConfigTreatmentPlanService configTreatmentPlanService; @Override - public ConfigTreatmentPlanWrapVo queryTree(Integer disposalMethod) { - return null; + public List queryTree(Integer disposalMethod) { + List list = configTreatmentPlanService.lambdaQuery().eq(!Objects.isNull(disposalMethod), + ConfigTreatmentPlan::getDisposalPlan, disposalMethod).list(); + + if (CollUtil.isEmpty(list)){ + return CollUtil.newArrayList(); + } + + TreeNode root = new TreeNode(); + for (ConfigTreatmentPlan configTreatmentPlan : list) { + String id = configTreatmentPlan.getId(); + String disposalPlan = configTreatmentPlan.getDisposalPlan(); + String firstMeasures = configTreatmentPlan.getFirstMeasures(); + String secondMeasures = configTreatmentPlan.getSecondMeasures(); + + // 一级节点 + if (StrUtil.isEmpty(disposalPlan)){ + continue; + } + TreeNode disposalPlanNode = root.findChildByName(disposalPlan); + if (null == disposalPlanNode){ + disposalPlanNode = new TreeNode(StrUtil.isNotEmpty(firstMeasures) ? null : id, disposalPlan); + root.getOrDefaultChild().add(disposalPlanNode); + } + + // 二级节点 + if (StrUtil.isEmpty(firstMeasures)){ + continue; + } + TreeNode firstMeasuresNode = disposalPlanNode.findChildByName(firstMeasures); + if (null == firstMeasuresNode){ + firstMeasuresNode = new TreeNode(StrUtil.isNotEmpty(secondMeasures) ? null : id,firstMeasures); + disposalPlanNode.getOrDefaultChild().add(firstMeasuresNode); + } + + + // 三级节点 + if (StrUtil.isEmpty(secondMeasures)){ + continue; + } + TreeNode secondMeasuresNode = firstMeasuresNode.findChildByName(secondMeasures); + if (null == secondMeasuresNode){ + secondMeasuresNode = new TreeNode(id,secondMeasures); + firstMeasuresNode.getOrDefaultChild().add(secondMeasuresNode); + } + } + + return root.getChild(); } @Override @@ -24,7 +78,7 @@ public class ConfigTreatmentPlanManageServiceImpl implements ConfigTreatmentPlan } @Override - public ConfigTreatmentPlanWrapVo findById(String id) { + public TreeNode findById(String id) { return null; } diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java index 753c82e1..d0b59ddd 100644 --- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java +++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/DiseaseAncillaryManageServiceImpl.java @@ -3,17 +3,13 @@ package com.supervision.manage.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; -import com.supervision.manage.service.ConfigTreatmentPlanManageService; import com.supervision.manage.service.DiseaseAncillaryManageService; -import com.supervision.model.ConfigTreatmentPlan; import com.supervision.model.DiseaseAncillary; import com.supervision.service.DiseaseAncillaryService; -import com.supervision.vo.manage.ConfigTreatmentPlanWrapVo; import com.supervision.vo.manage.DiseaseAncillaryResVo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import java.util.HashMap; import java.util.List; import java.util.Objects; diff --git a/virtual-patient-model/src/main/java/com/supervision/model/ConfigTreatmentPlan.java b/virtual-patient-model/src/main/java/com/supervision/model/ConfigTreatmentPlan.java index 6db1b1b8..0c68f7db 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/ConfigTreatmentPlan.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/ConfigTreatmentPlan.java @@ -15,7 +15,7 @@ import lombok.Data; * 处置计划表 * @TableName vp_treatment_plan */ -@TableName(value ="vp_treatment_plan") +@TableName(value ="vp_config_treatment_plan") @Data public class ConfigTreatmentPlan implements Serializable { /** diff --git a/virtual-patient-model/src/main/java/com/supervision/service/ConfigTreatmentPlanService.java b/virtual-patient-model/src/main/java/com/supervision/service/ConfigTreatmentPlanService.java index be71ebe2..233f4119 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/ConfigTreatmentPlanService.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/ConfigTreatmentPlanService.java @@ -2,9 +2,6 @@ package com.supervision.service; import com.supervision.model.ConfigTreatmentPlan; import com.baomidou.mybatisplus.extension.service.IService; -import com.supervision.vo.manage.ConfigTreatmentPlanWrapVo; - -import java.util.List; /** * @author Administrator diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigConfigTreatmentPlanServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigConfigTreatmentPlanServiceImpl.java index 54bd8cba..e81fde7b 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigConfigTreatmentPlanServiceImpl.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/ConfigConfigTreatmentPlanServiceImpl.java @@ -4,11 +4,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.supervision.model.ConfigTreatmentPlan; import com.supervision.service.ConfigTreatmentPlanService; import com.supervision.mapper.ConfigTreatmentPlanMapper; -import com.supervision.vo.manage.ConfigTreatmentPlanWrapVo; import org.springframework.stereotype.Service; -import java.util.List; - /** * @author Administrator * @description 针对表【vp_treatment_plan(处置计划表)】的数据库操作Service实现 diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/manage/ConfigTreatmentPlanWrapVo.java b/virtual-patient-model/src/main/java/com/supervision/vo/manage/ConfigTreatmentPlanWrapVo.java deleted file mode 100644 index 7bf54618..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/vo/manage/ConfigTreatmentPlanWrapVo.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.supervision.vo.manage; - -import com.supervision.model.ConfigTreatmentPlan; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.util.List; - -@Data -public class ConfigTreatmentPlanWrapVo { - - private List configTreatmentPlanWraps; - - @Data - @EqualsAndHashCode(callSuper = true) - static class ConfigTreatmentPlanWrap extends ConfigTreatmentPlan { - - private List child; - } -} diff --git a/virtual-patient-model/src/main/java/com/supervision/vo/manage/TreeNode.java b/virtual-patient-model/src/main/java/com/supervision/vo/manage/TreeNode.java new file mode 100644 index 00000000..f16a847c --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/vo/manage/TreeNode.java @@ -0,0 +1,47 @@ +package com.supervision.vo.manage; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +@Data +public class TreeNode { + + private String id; + + private String name; + + private List child; + + + public TreeNode() { + } + + public TreeNode(String id, String name) { + this.id = id; + this.name = name; + } + + @JsonIgnore + public List getOrDefaultChild(){ + if (null == child){ + child = new ArrayList<>(); + } + return child; + } + + public TreeNode findChildByName(String name){ + if (CollUtil.isEmpty(child) || StrUtil.isEmpty(name)){ + return null; + } + + return child.stream().filter(node -> name.equals(node.getName())).findFirst().orElse(null); + + + } +}