manage:添加 查询疾病身体部位树 功能

dev_2.0.0
xueqingkun 1 year ago
parent e93e8d6a83
commit 41dd81ac3f

@ -2,8 +2,10 @@ package com.supervision.manage.controller.diseasemanage;
import com.supervision.manage.service.DiseasePhysicalManageService; import com.supervision.manage.service.DiseasePhysicalManageService;
import com.supervision.vo.manage.DiseasePhysicalLocationNodeVo;
import com.supervision.vo.manage.DiseasePhysicalResVo; import com.supervision.vo.manage.DiseasePhysicalResVo;
import com.supervision.model.DiseasePhysical; import com.supervision.model.DiseasePhysical;
import com.supervision.vo.manage.PhysicalLocationNode;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -52,4 +54,12 @@ public class DiseasePhysicalManageController {
} }
@ApiOperation("查询疾病身体部位树")
@GetMapping("/queryTree")
public List<DiseasePhysicalLocationNodeVo> queryTree(@RequestParam String diseaseId) {
return diseasePhysicalManageService.queryTree(diseaseId);
}
} }

@ -1,7 +1,9 @@
package com.supervision.manage.service; package com.supervision.manage.service;
import com.supervision.model.DiseasePhysical; import com.supervision.model.DiseasePhysical;
import com.supervision.vo.manage.DiseasePhysicalLocationNodeVo;
import com.supervision.vo.manage.DiseasePhysicalResVo; import com.supervision.vo.manage.DiseasePhysicalResVo;
import com.supervision.vo.manage.PhysicalLocationNode;
import java.util.List; import java.util.List;
@ -16,4 +18,6 @@ public interface DiseasePhysicalManageService {
boolean updatePhysical(DiseasePhysical diseasePhysical); boolean updatePhysical(DiseasePhysical diseasePhysical);
boolean deleteByDiseaseId(String diseaseId); boolean deleteByDiseaseId(String diseaseId);
List<DiseasePhysicalLocationNodeVo> queryTree(String diseaseId);
} }

@ -1,22 +1,34 @@
package com.supervision.manage.service.impl; package com.supervision.manage.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.supervision.manage.service.DiseasePhysicalManageService; import com.supervision.manage.service.DiseasePhysicalManageService;
import com.supervision.manage.service.PhysicalLocationManageService;
import com.supervision.manage.service.PhysicalToolManageService;
import com.supervision.model.ConfigPhysicalLocation;
import com.supervision.model.DiseaseAncillary; import com.supervision.model.DiseaseAncillary;
import com.supervision.model.DiseasePhysical; import com.supervision.model.DiseasePhysical;
import com.supervision.service.ConfigPhysicalLocationService;
import com.supervision.service.DiseasePhysicalService; import com.supervision.service.DiseasePhysicalService;
import com.supervision.vo.manage.DiseasePhysicalLocationNodeVo;
import com.supervision.vo.manage.DiseasePhysicalResVo; import com.supervision.vo.manage.DiseasePhysicalResVo;
import com.supervision.vo.manage.PhysicalLocationNode;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageService { public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageService {
private final DiseasePhysicalService diseasePhysicalService; private final DiseasePhysicalService diseasePhysicalService;
private final PhysicalLocationManageService physicalToolManageService;
@Override @Override
public List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId) { public List<DiseasePhysicalResVo> queryListByDiseaseId(String diseaseId) {
@ -57,6 +69,40 @@ public class DiseasePhysicalManageServiceImpl implements DiseasePhysicalManageSe
return diseasePhysicalService.lambdaUpdate().eq(DiseasePhysical::getDiseaseId,diseaseId).remove(); return diseasePhysicalService.lambdaUpdate().eq(DiseasePhysical::getDiseaseId,diseaseId).remove();
} }
@Override
public List<DiseasePhysicalLocationNodeVo> queryTree(String diseaseId) {
List<PhysicalLocationNode> physicalLocationNodes = physicalToolManageService.queryTree();
if (CollectionUtil.isEmpty(physicalLocationNodes)){
return CollectionUtil.newArrayList();
}
PhysicalLocationNode physicalLocationNode = new PhysicalLocationNode();
physicalLocationNode.setChild(physicalLocationNodes);
DiseasePhysicalLocationNodeVo bean = BeanUtil.toBean(physicalLocationNode, DiseasePhysicalLocationNodeVo.class);
List<DiseasePhysicalResVo> diseasePhysicalResVos = diseasePhysicalService.queryListByDiseaseId(diseaseId);
if (CollectionUtil.isEmpty(diseasePhysicalResVos)){
return bean.getChild();
}
List<String> toolIds = diseasePhysicalResVos.stream().map(DiseasePhysical::getToolId).distinct().collect(Collectors.toList());
populateDiseasePhysicalLocationNodeFlag(bean,toolIds);
return bean.getChild();
}
private void populateDiseasePhysicalLocationNodeFlag(DiseasePhysicalLocationNodeVo node,List<String> toolIds) {
if (StrUtil.isNotEmpty(node.getId())){
node.setFlag(toolIds.stream().anyMatch(id->node.getId().equals(id)));
}
if (CollectionUtil.isNotEmpty(node.getChild())){
for (DiseasePhysicalLocationNodeVo childNode : node.getChild()) {
populateDiseasePhysicalLocationNodeFlag(childNode,toolIds);
}
}
}
private void assertDiseasePhysical(DiseasePhysical diseasePhysical){ private void assertDiseasePhysical(DiseasePhysical diseasePhysical){

@ -36,7 +36,7 @@ public class PhysicalLocationManageServiceImpl implements PhysicalLocationManage
if (StrUtil.isNotEmpty(value.getParentId())) { if (StrUtil.isNotEmpty(value.getParentId())) {
PhysicalLocationNode physicalLocationNode = map.get(value.getParentId()); PhysicalLocationNode physicalLocationNode = map.get(value.getParentId());
if (!Objects.isNull(physicalLocationNode)) { if (!Objects.isNull(physicalLocationNode)) {
List<ConfigPhysicalLocation> child = physicalLocationNode.getChild(); List<PhysicalLocationNode> child = physicalLocationNode.getChild();
if (null == child) { if (null == child) {
child = new ArrayList<>(); child = new ArrayList<>();
physicalLocationNode.setChild(child); physicalLocationNode.setChild(child);

@ -0,0 +1,44 @@
package com.supervision.vo.manage;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class DiseasePhysicalLocationNodeVo {
@TableId
private String id;
/**
*
*/
@ApiModelProperty("编码")
private String code;
/**
*
*/
@ApiModelProperty("位置分类")
private String locationClass;
/**
*
*/
@ApiModelProperty("位置名称")
private String locationName;
@ApiModelProperty("部位层级")
private String level;
@ApiModelProperty("父级Id")
private String parentId;
@ApiModelProperty("标识 true:已选择 false:未选择")
private boolean flag;
private List<DiseasePhysicalLocationNodeVo> child;
}

@ -10,6 +10,6 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class PhysicalLocationNode extends ConfigPhysicalLocation{ public class PhysicalLocationNode extends ConfigPhysicalLocation{
private List<ConfigPhysicalLocation> child; private List<PhysicalLocationNode> child;
} }

Loading…
Cancel
Save