diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/board/BoardProtocolController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/board/BoardProtocolController.java index f8955e8c..eac8b8e3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/board/BoardProtocolController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/board/BoardProtocolController.java @@ -88,4 +88,13 @@ public class BoardProtocolController extends BaseController { public AjaxResult remove(@PathVariable List ids) { return toAjax(boardProtocolService.removeByIds(ids)); } + + /** + * 获取协议树列表 + */ + @PreAuthorize("@ss.hasPermi('plan:type:list')") + @GetMapping("/protocolTree") + public AjaxResult deptTree(BoardProtocol planType) { + return success(boardProtocolService.listProtocolTree(planType)); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/board/domain/BoardProtocol.java b/ruoyi-system/src/main/java/com/ruoyi/board/domain/BoardProtocol.java index faae9df2..498a4f87 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/board/domain/BoardProtocol.java +++ b/ruoyi-system/src/main/java/com/ruoyi/board/domain/BoardProtocol.java @@ -13,7 +13,7 @@ import lombok.Data; @TableName(value = "pub_board_protocol") public class BoardProtocol { @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; /** * 情报板品牌 diff --git a/ruoyi-system/src/main/java/com/ruoyi/board/service/IBoardProtocolService.java b/ruoyi-system/src/main/java/com/ruoyi/board/service/IBoardProtocolService.java index 80dd5e10..8f8241d3 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/board/service/IBoardProtocolService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/board/service/IBoardProtocolService.java @@ -2,6 +2,10 @@ package com.ruoyi.board.service; import com.github.yulichang.base.MPJBaseService; import com.ruoyi.board.domain.BoardProtocol; +import com.ruoyi.common.core.domain.TreeSelect; + +import java.util.List; public interface IBoardProtocolService extends MPJBaseService { + List listProtocolTree(BoardProtocol planType); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/board/service/impl/BoardProtocolServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/board/service/impl/BoardProtocolServiceImpl.java index 3af06459..6e36738f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/board/service/impl/BoardProtocolServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/board/service/impl/BoardProtocolServiceImpl.java @@ -4,9 +4,44 @@ import com.github.yulichang.base.MPJBaseServiceImpl; import com.ruoyi.board.domain.BoardProtocol; import com.ruoyi.board.mapper.BoardProtocolMapper; import com.ruoyi.board.service.IBoardProtocolService; +import com.ruoyi.common.core.domain.TreeSelect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + @Service public class BoardProtocolServiceImpl extends MPJBaseServiceImpl implements IBoardProtocolService { + private static final Logger log = LoggerFactory.getLogger(BoardProtocolServiceImpl.class); + private static final Long DEFAULT_ID = 0L; + @Override + public List listProtocolTree(BoardProtocol planType) { + List protocols = list(); + Map> protocolsByBrand = protocols.stream().collect(Collectors.groupingBy(BoardProtocol::getBrand)); + List treeSelects = new ArrayList<>(); + protocolsByBrand.forEach((brand, brandProtocols) -> treeSelects.add(createTreeSelectForBrand(brand, brandProtocols))); + return treeSelects; + } + + private TreeSelect createTreeSelectForBrand(String brand, List brandProtocols) { + TreeSelect treeSelect = new TreeSelect(); + treeSelect.setLabel(brand); + treeSelect.setId(DEFAULT_ID); + treeSelect.setChildren(brandProtocols.stream().map(this::mapToTreeSelect).collect(Collectors.toList())); + return treeSelect; + } + + private TreeSelect mapToTreeSelect(BoardProtocol protocol) { + TreeSelect treeSelect = new TreeSelect(); + treeSelect.setId(protocol.getId()); + treeSelect.setLabel(protocol.getProtocol()); + return treeSelect; + } + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/board/service/impl/PlanTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/board/service/impl/PlanTypeServiceImpl.java index ded9c1f9..cca9520d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/board/service/impl/PlanTypeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/board/service/impl/PlanTypeServiceImpl.java @@ -33,7 +33,7 @@ public class PlanTypeServiceImpl extends MPJBaseServiceImpl buildPlanTree(List list) { List returnList = new ArrayList<>();