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