From bc519951f0da29b0a765970f330968a6a084eebb Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Thu, 27 Jun 2024 14:47:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=94=BB=E5=83=8F=E5=BA=93=E6=A0=91?= =?UTF-8?q?=E5=9B=BE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LabelFieldInfoController.java | 6 +- .../labelfieldinfo/LabelFieldInfoMapper.java | 8 ++ .../ILabelFieldInfoService.java | 4 +- .../impl/LabelFieldInfoServiceImpl.java | 36 +++++--- .../vo/labelfieldinfo/LabelFieldTreeVO.java | 88 +++++++++++++++++++ .../vo/labelfieldinfo/LabelFieldVO.java | 19 ++-- .../labelfieldinfo/LabelFieldInfoMapper.xml | 41 +++++++-- 7 files changed, 175 insertions(+), 27 deletions(-) create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldTreeVO.java diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/labelfieldinfo/LabelFieldInfoController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/labelfieldinfo/LabelFieldInfoController.java index e5a6072e..cd525f84 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/labelfieldinfo/LabelFieldInfoController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/labelfieldinfo/LabelFieldInfoController.java @@ -9,6 +9,8 @@ import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.manage.domain.labelfieldinfo.LabelFieldInfo; import com.xinelu.manage.dto.labelfieldinfo.LabelFieldInfoAddDTO; import com.xinelu.manage.service.labelfieldinfo.ILabelFieldInfoService; +import com.xinelu.manage.vo.labelfieldinfo.LabelFieldTreeVO; +import com.xinelu.manage.vo.labelfieldinfo.LabelFieldVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -55,8 +57,8 @@ public class LabelFieldInfoController extends BaseController { * 查询标签字段信息列表树图 */ @GetMapping("/labelFieldList") - public AjaxResult labelFieldList(String fieldType) { - return AjaxResult.success(labelFieldInfoService.labelFieldList(fieldType)); + public List labelFieldList(String fieldType) { + return labelFieldInfoService.labelFieldList(fieldType); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldinfo/LabelFieldInfoMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldinfo/LabelFieldInfoMapper.java index 7084d540..2ae3d72f 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldinfo/LabelFieldInfoMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldinfo/LabelFieldInfoMapper.java @@ -95,4 +95,12 @@ public interface LabelFieldInfoMapper { * @return GroupingValue */ List selectLabelFieldInfoByTaskPartitionDictId(Long taskPartitionDictId); + + /** + * 查询标签 + * + * @param taskPartitionDictIds 标签 + * @return GroupingValue + */ + List selectLabelFieldNameByTaskPartitionDictIds(@Param("taskPartitionDictIds") List taskPartitionDictIds); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/ILabelFieldInfoService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/ILabelFieldInfoService.java index 9d7d3aac..22e55ea6 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/ILabelFieldInfoService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/ILabelFieldInfoService.java @@ -3,6 +3,8 @@ package com.xinelu.manage.service.labelfieldinfo; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.manage.domain.labelfieldinfo.LabelFieldInfo; import com.xinelu.manage.dto.labelfieldinfo.LabelFieldInfoAddDTO; +import com.xinelu.manage.vo.labelfieldinfo.LabelFieldTreeVO; +import com.xinelu.manage.vo.labelfieldinfo.LabelFieldVO; import java.util.List; @@ -35,7 +37,7 @@ public interface ILabelFieldInfoService { * @param fieldType 字段类型 * @return AjaxResult */ - AjaxResult labelFieldList(String fieldType); + List labelFieldList(String fieldType); /** * 新增标签字段信息 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/impl/LabelFieldInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/impl/LabelFieldInfoServiceImpl.java index de44da28..1eb7a533 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/impl/LabelFieldInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/impl/LabelFieldInfoServiceImpl.java @@ -1,6 +1,5 @@ package com.xinelu.manage.service.labelfieldinfo.impl; -import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.SecurityUtils; import com.xinelu.manage.domain.labelfieldinfo.LabelFieldInfo; @@ -8,15 +7,17 @@ import com.xinelu.manage.dto.labelfieldinfo.LabelFieldInfoAddDTO; import com.xinelu.manage.mapper.labelfieldcontent.LabelFieldContentMapper; import com.xinelu.manage.mapper.labelfieldinfo.LabelFieldInfoMapper; import com.xinelu.manage.service.labelfieldinfo.ILabelFieldInfoService; -import com.xinelu.manage.vo.labelfieldcontent.LabelFieldContentVO; +import com.xinelu.manage.vo.labelfieldinfo.LabelFieldTreeVO; import com.xinelu.manage.vo.labelfieldinfo.LabelFieldVO; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -64,18 +65,31 @@ public class LabelFieldInfoServiceImpl implements ILabelFieldInfoService { * @return AjaxResult */ @Override - public AjaxResult labelFieldList(String fieldType) { + public List labelFieldList(String fieldType) { + int i = 1; List labelFieldList = labelFieldInfoMapper.selectLabelFieldList(fieldType); - List labelFieldIds = labelFieldList.stream().filter(Objects::nonNull).map(LabelFieldVO::getLabelFieldId).filter(Objects::nonNull).collect(Collectors.toList()); - if (labelFieldIds.size() == 0) { - return AjaxResult.success(labelFieldList); + List taskPartitionDictIds = labelFieldList.stream().filter(Objects::nonNull).map(LabelFieldVO::getTaskPartitionDictId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); + if (taskPartitionDictIds.size() == 0) { + return new ArrayList<>(); } - List labelFieldContentList = labelFieldContentMapper.selectLabelFieldContent(labelFieldIds); - for (LabelFieldVO labelField : labelFieldList) { - List collect = labelFieldContentList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getFieldId()) && labelField.getLabelFieldId().equals(item.getFieldId())).collect(Collectors.toList()); - labelField.setLabelFieldContentList(collect); + List collect = labelFieldList.stream().filter(Objects::nonNull).collect(Collectors.toList()); + List labelFieldInfoList = labelFieldInfoMapper.selectLabelFieldNameByTaskPartitionDictIds(taskPartitionDictIds); + List labelFieldVOS = new ArrayList<>(); + labelFieldVOS.addAll(collect); + labelFieldVOS.addAll(labelFieldInfoList); + for (LabelFieldVO labelFieldVO : labelFieldVOS) { + labelFieldVO.setCode(i); + i++; } - return AjaxResult.success(labelFieldList); + for (LabelFieldVO labelField : collect) { + if (Objects.nonNull(labelField.getTaskPartitionDictId()) && StringUtils.isNotBlank(labelField.getTaskPartitionDictName()) && StringUtils.isNotBlank(labelField.getLabel())) { + List collectLabelFieldInfoList = labelFieldInfoList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getTaskPartitionDictId()) && labelField.getTaskPartitionDictId().equals(item.getTaskPartitionDictId())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(collectLabelFieldInfoList)) { + labelField.setLabelFieldList(collectLabelFieldInfoList); + } + } + } + return collect.stream().map(LabelFieldTreeVO::new).collect(Collectors.toList()); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldTreeVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldTreeVO.java new file mode 100644 index 00000000..31737660 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldTreeVO.java @@ -0,0 +1,88 @@ +package com.xinelu.manage.vo.labelfieldinfo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 画像树图信息对象vo + * + * @author xinelu + * @date 2024-06-27 + */ +@Data +public class LabelFieldTreeVO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 节点ID + */ + private Long id; + + /** + * 节点名称 + */ + private String label; + + /** + * 节点层级 + */ + private Integer value; + + + private String termCode; + + + /** + * 子节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + public LabelFieldTreeVO() { + + } + + public LabelFieldTreeVO(LabelFieldVO labelField) { + this.id = labelField.getId(); + this.label = labelField.getLabel(); + this.termCode = labelField.getFieldCode(); + this.value = labelField.getCode(); + this.children = labelField.getLabelFieldList().stream().map(LabelFieldTreeVO::new).collect(Collectors.toList()); + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTermCode() { + return termCode; + } + + public void setTermCode(String termCode) { + this.termCode = termCode; + } + + public Integer getValue() { + return value; + } + + public void setValue(Integer value) { + this.value = value; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldVO.java index 271d1b26..07de7145 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldVO.java @@ -1,10 +1,10 @@ package com.xinelu.manage.vo.labelfieldinfo; import com.xinelu.manage.domain.labelfieldinfo.LabelFieldInfo; -import com.xinelu.manage.vo.labelfieldcontent.LabelFieldContentVO; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.ArrayList; import java.util.List; /** @@ -22,8 +22,17 @@ public class LabelFieldVO extends LabelFieldInfo { */ private Long LabelFieldId; - /** - * 标签内容 - */ - private List labelFieldContentList; + private String label; + + private Integer code; + + private List labelFieldList = new ArrayList(); + + public List getChildren() { + return labelFieldList; + } + + public void setChildren(List children) { + this.labelFieldList = children; + } } \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/labelfieldinfo/LabelFieldInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/labelfieldinfo/LabelFieldInfoMapper.xml index 5aa431be..56fc1cda 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/labelfieldinfo/LabelFieldInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/labelfieldinfo/LabelFieldInfoMapper.xml @@ -61,14 +61,20 @@ + + \ No newline at end of file From 92e21842c0e2d04fe73327aad251076d4714f10b Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Thu, 27 Jun 2024 15:16:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=94=BB=E5=83=8F=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../labelfieldcontent/LabelFieldContentMapper.java | 2 +- .../mapper/labelfieldinfo/LabelFieldInfoMapper.java | 2 +- .../impl/LabelFieldContentServiceImpl.java | 2 +- .../labelfieldinfo/impl/LabelFieldInfoServiceImpl.java | 5 +++++ .../xinelu/manage/vo/labelfieldinfo/LabelFieldVO.java | 9 +++++++++ .../manage/labelfieldcontent/LabelFieldContentMapper.xml | 5 ++++- 6 files changed, 21 insertions(+), 4 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldcontent/LabelFieldContentMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldcontent/LabelFieldContentMapper.java index 0c56784f..0d60deaa 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldcontent/LabelFieldContentMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldcontent/LabelFieldContentMapper.java @@ -79,7 +79,7 @@ public interface LabelFieldContentMapper { * @param labelFieldIds 标签字段信息表 * @return LabelFieldContentVO */ - List selectLabelFieldContent(@Param("labelFieldIds") List labelFieldIds); + List selectLabelFieldContent(@Param("labelFieldIds") List labelFieldIds, @Param("patientId") Long patientId); /** * 画像内容查询 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldinfo/LabelFieldInfoMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldinfo/LabelFieldInfoMapper.java index 2ae3d72f..e100bd44 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldinfo/LabelFieldInfoMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/labelfieldinfo/LabelFieldInfoMapper.java @@ -100,7 +100,7 @@ public interface LabelFieldInfoMapper { * 查询标签 * * @param taskPartitionDictIds 标签 - * @return GroupingValue + * @return LabelFieldVO */ List selectLabelFieldNameByTaskPartitionDictIds(@Param("taskPartitionDictIds") List taskPartitionDictIds); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java index b4020a41..c002b0a8 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java @@ -252,7 +252,7 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService { //传入标签内容ids List afferentLabelFieldContentIds = groupingValues.stream().filter(Objects::nonNull).map(GroupingValue::getLabelFieldContentId).filter(Objects::nonNull).collect(Collectors.toList()); //数据库标签内容ids - List databaseLabelFieldContents = labelFieldContentMapper.selectLabelFieldContent(afferentLabelFieldInfoIds); + List databaseLabelFieldContents = labelFieldContentMapper.selectLabelFieldContent(afferentLabelFieldInfoIds, groupingValues.get(0).getPatientId()); List databaseLabelFieldContentIds = databaseLabelFieldContents.stream().filter(Objects::nonNull).map(LabelFieldContentVO::getLabelFieldContentId).filter(Objects::nonNull).collect(Collectors.toList()); //做差集 List subtractLabelFieldContentIds = (List) CollectionUtils.subtract(databaseLabelFieldContentIds, afferentLabelFieldContentIds); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/impl/LabelFieldInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/impl/LabelFieldInfoServiceImpl.java index 1eb7a533..8ee8f694 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/impl/LabelFieldInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldinfo/impl/LabelFieldInfoServiceImpl.java @@ -67,20 +67,24 @@ public class LabelFieldInfoServiceImpl implements ILabelFieldInfoService { @Override public List labelFieldList(String fieldType) { int i = 1; + //查询细分 List labelFieldList = labelFieldInfoMapper.selectLabelFieldList(fieldType); List taskPartitionDictIds = labelFieldList.stream().filter(Objects::nonNull).map(LabelFieldVO::getTaskPartitionDictId).filter(Objects::nonNull).distinct().collect(Collectors.toList()); if (taskPartitionDictIds.size() == 0) { return new ArrayList<>(); } List collect = labelFieldList.stream().filter(Objects::nonNull).collect(Collectors.toList()); + //根据细分查询画像 List labelFieldInfoList = labelFieldInfoMapper.selectLabelFieldNameByTaskPartitionDictIds(taskPartitionDictIds); List labelFieldVOS = new ArrayList<>(); labelFieldVOS.addAll(collect); labelFieldVOS.addAll(labelFieldInfoList); + //组装编号用于前端判断 for (LabelFieldVO labelFieldVO : labelFieldVOS) { labelFieldVO.setCode(i); i++; } + //组装数据 for (LabelFieldVO labelField : collect) { if (Objects.nonNull(labelField.getTaskPartitionDictId()) && StringUtils.isNotBlank(labelField.getTaskPartitionDictName()) && StringUtils.isNotBlank(labelField.getLabel())) { List collectLabelFieldInfoList = labelFieldInfoList.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getTaskPartitionDictId()) && labelField.getTaskPartitionDictId().equals(item.getTaskPartitionDictId())).collect(Collectors.toList()); @@ -89,6 +93,7 @@ public class LabelFieldInfoServiceImpl implements ILabelFieldInfoService { } } } + //树图 return collect.stream().map(LabelFieldTreeVO::new).collect(Collectors.toList()); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldVO.java index 07de7145..33f74538 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/labelfieldinfo/LabelFieldVO.java @@ -22,10 +22,19 @@ public class LabelFieldVO extends LabelFieldInfo { */ private Long LabelFieldId; + /** + * 树图名 + */ private String label; + /** + * 树图编号 + */ private Integer code; + /** + * 子集合 + */ private List labelFieldList = new ArrayList(); public List getChildren() { diff --git a/postdischarge-manage/src/main/resources/mapper/manage/labelfieldcontent/LabelFieldContentMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/labelfieldcontent/LabelFieldContentMapper.xml index a71610b8..b9784c95 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/labelfieldcontent/LabelFieldContentMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/labelfieldcontent/LabelFieldContentMapper.xml @@ -224,11 +224,14 @@ from label_field_content - field_id in + and field_id in #{labelFieldIds} + + and patient_id = #{patientId} +