From cb09151750dfdaa34a86522620810d6afb2ddaad Mon Sep 17 00:00:00 2001 From: luogw <3132758203@qq.com> Date: Fri, 30 Jan 2026 10:17:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=91=E5=BD=A2=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessGroupApplicationService.java | 2 ++ .../BusinessGroupApplicationServiceImpl.java | 5 +++ .../controller/BusinessGroupController.java | 5 +++ .../ProductLineExamineeController.java | 26 +++++++++++++++ .../domain/dto/BusinessGroupDTO.java | 4 +++ .../domain/dto/ProductLineDTO.java | 2 +- .../SearchBusinessGroupDomainService.java | 1 + ...tTreeListProductLineDomainServiceImpl.java | 9 +++-- .../SaveProductLineDomainServiceImpl.java | 3 +- .../SearchBusinessGroupDomainServiceImpl.java | 33 +++++++++++++++++++ 10 files changed, 83 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/project/information/controller/ProductLineExamineeController.java diff --git a/src/main/java/com/project/information/application/BusinessGroupApplicationService.java b/src/main/java/com/project/information/application/BusinessGroupApplicationService.java index 6065877..db0b869 100644 --- a/src/main/java/com/project/information/application/BusinessGroupApplicationService.java +++ b/src/main/java/com/project/information/application/BusinessGroupApplicationService.java @@ -10,4 +10,6 @@ public interface BusinessGroupApplicationService { Result> list(BusinessGroupParam param) throws Exception; Result> batchSave(String batchSaveStr) throws Exception; + + Result> treeList(BusinessGroupParam param) throws Exception; } diff --git a/src/main/java/com/project/information/application/impl/BusinessGroupApplicationServiceImpl.java b/src/main/java/com/project/information/application/impl/BusinessGroupApplicationServiceImpl.java index 2157e93..6eab6c7 100644 --- a/src/main/java/com/project/information/application/impl/BusinessGroupApplicationServiceImpl.java +++ b/src/main/java/com/project/information/application/impl/BusinessGroupApplicationServiceImpl.java @@ -28,4 +28,9 @@ public class BusinessGroupApplicationServiceImpl implements BusinessGroupApplica public Result> batchSave(String batchSaveStr) throws Exception { return batchSaveBusinessGroupDomainService.batchSave(batchSaveStr); } + + @Override + public Result> treeList(BusinessGroupParam param) throws Exception { + return searchBusinessGroupDomainService.treeList(param); + } } diff --git a/src/main/java/com/project/information/controller/BusinessGroupController.java b/src/main/java/com/project/information/controller/BusinessGroupController.java index eda430b..da04214 100644 --- a/src/main/java/com/project/information/controller/BusinessGroupController.java +++ b/src/main/java/com/project/information/controller/BusinessGroupController.java @@ -26,6 +26,11 @@ public class BusinessGroupController { return businessGroupApplicationService.list(param); } + @GetMapping("/treeList") + public Result> treeList(BusinessGroupParam param) throws Exception { + return businessGroupApplicationService.treeList(param); + } + @PostMapping("/batchSave") public Result> batchSave(String batchSaveStr) throws Exception { return businessGroupApplicationService.batchSave(batchSaveStr); diff --git a/src/main/java/com/project/information/controller/ProductLineExamineeController.java b/src/main/java/com/project/information/controller/ProductLineExamineeController.java new file mode 100644 index 0000000..3a70e60 --- /dev/null +++ b/src/main/java/com/project/information/controller/ProductLineExamineeController.java @@ -0,0 +1,26 @@ +package com.project.information.controller; + +import com.project.base.domain.result.Result; +import com.project.information.application.ProductLineApplicationService; +import com.project.information.domain.dto.ProductLineDTO; +import com.project.information.domain.param.ProductLineParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@Slf4j +@RequestMapping("/api/examinee/productLine") +public class ProductLineExamineeController { + @Autowired + private ProductLineApplicationService productLineApplicationService; + + @GetMapping("/treeList") + public Result> treeList(ProductLineParam param) throws Exception { + return productLineApplicationService.treeList(param); + } +} diff --git a/src/main/java/com/project/information/domain/dto/BusinessGroupDTO.java b/src/main/java/com/project/information/domain/dto/BusinessGroupDTO.java index 722533b..171633a 100644 --- a/src/main/java/com/project/information/domain/dto/BusinessGroupDTO.java +++ b/src/main/java/com/project/information/domain/dto/BusinessGroupDTO.java @@ -3,10 +3,14 @@ package com.project.information.domain.dto; import com.project.base.domain.dto.BaseDTO; import lombok.Data; +import java.util.ArrayList; +import java.util.List; + @Data public class BusinessGroupDTO extends BaseDTO { private Long id; private String name; private String sort; + private List childrenList = new ArrayList<>(); } diff --git a/src/main/java/com/project/information/domain/dto/ProductLineDTO.java b/src/main/java/com/project/information/domain/dto/ProductLineDTO.java index ef1f764..5b0b5bd 100644 --- a/src/main/java/com/project/information/domain/dto/ProductLineDTO.java +++ b/src/main/java/com/project/information/domain/dto/ProductLineDTO.java @@ -14,7 +14,7 @@ public class ProductLineDTO extends BaseDTO { private Integer sort = 0; private Boolean leaf; private String business; - private String businessId; + private Long businessId; private Long parentId; private String parentName; diff --git a/src/main/java/com/project/information/domain/service/SearchBusinessGroupDomainService.java b/src/main/java/com/project/information/domain/service/SearchBusinessGroupDomainService.java index 249da88..0135490 100644 --- a/src/main/java/com/project/information/domain/service/SearchBusinessGroupDomainService.java +++ b/src/main/java/com/project/information/domain/service/SearchBusinessGroupDomainService.java @@ -9,4 +9,5 @@ import java.util.List; public interface SearchBusinessGroupDomainService { Result> list(BusinessGroupParam param) throws Exception; + Result> treeList(BusinessGroupParam param) throws Exception; } diff --git a/src/main/java/com/project/information/domain/service/impl/GetTreeListProductLineDomainServiceImpl.java b/src/main/java/com/project/information/domain/service/impl/GetTreeListProductLineDomainServiceImpl.java index d7b3414..ef65a08 100644 --- a/src/main/java/com/project/information/domain/service/impl/GetTreeListProductLineDomainServiceImpl.java +++ b/src/main/java/com/project/information/domain/service/impl/GetTreeListProductLineDomainServiceImpl.java @@ -23,12 +23,11 @@ public class GetTreeListProductLineDomainServiceImpl implements GetTreeListProdu @Autowired private ProductLineBaseService productLineBaseService; @Override - public Result> treeList(ProductLineParam param) throws Exception { - if (ObjectUtil.isEmpty(param.getBusinessId())) { - throw new BusinessErrorException("事业部ID不能为空"); - } + public Result> treeList(ProductLineParam param){ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(ProductLineEntity::getBusinessId , param.getBusinessId()); + if (ObjectUtil.isNotEmpty(param.getBusinessId())) { + queryWrapper.eq(ProductLineEntity::getBusinessId , param.getBusinessId()); + } List res = productLineBaseService.list(queryWrapper) .stream().map(entity -> entity.toDTO(ProductLineDTO::new)) .collect(Collectors.toList()); diff --git a/src/main/java/com/project/information/domain/service/impl/SaveProductLineDomainServiceImpl.java b/src/main/java/com/project/information/domain/service/impl/SaveProductLineDomainServiceImpl.java index 47c208f..83ae5da 100644 --- a/src/main/java/com/project/information/domain/service/impl/SaveProductLineDomainServiceImpl.java +++ b/src/main/java/com/project/information/domain/service/impl/SaveProductLineDomainServiceImpl.java @@ -1,6 +1,7 @@ package com.project.information.domain.service.impl; import cn.hutool.core.util.BooleanUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.project.base.domain.exception.BusinessErrorException; @@ -21,7 +22,7 @@ public class SaveProductLineDomainServiceImpl implements SaveProductLineDomainSe @Override public Result save(ProductLineDTO dto) throws Exception { // 校验 - if (StrUtil.isBlank(dto.getBusiness())) { + if (StrUtil.isBlank(dto.getBusiness()) && ObjectUtil.isEmpty(dto.getBusinessId())) { throw new BusinessErrorException("所属 BG 不能为空"); } if (Objects.isNull(dto.getLeaf())) { diff --git a/src/main/java/com/project/information/domain/service/impl/SearchBusinessGroupDomainServiceImpl.java b/src/main/java/com/project/information/domain/service/impl/SearchBusinessGroupDomainServiceImpl.java index 64082da..ae74ff7 100644 --- a/src/main/java/com/project/information/domain/service/impl/SearchBusinessGroupDomainServiceImpl.java +++ b/src/main/java/com/project/information/domain/service/impl/SearchBusinessGroupDomainServiceImpl.java @@ -1,16 +1,24 @@ package com.project.information.domain.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.project.base.domain.result.Result; +import com.project.base.domain.utils.TreeUtils; import com.project.information.domain.dto.BusinessGroupDTO; +import com.project.information.domain.dto.ProductLineDTO; import com.project.information.domain.entity.BusinessGroupEntity; import com.project.information.domain.param.BusinessGroupParam; +import com.project.information.domain.param.ProductLineParam; +import com.project.information.domain.service.GetTreeListProductLineDomainService; import com.project.information.domain.service.SearchBusinessGroupDomainService; import com.project.information.mapper.BusinessGroupMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; @Service @@ -18,6 +26,9 @@ public class SearchBusinessGroupDomainServiceImpl implements SearchBusinessGroup @Autowired private BusinessGroupMapper businessGroupMapper; + @Autowired + private GetTreeListProductLineDomainService getTreeListProductLineDomainService; + @Override public Result> list(BusinessGroupParam param) throws Exception { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -26,4 +37,26 @@ public class SearchBusinessGroupDomainServiceImpl implements SearchBusinessGroup .map(entity -> entity.toDTO(BusinessGroupDTO::new)) .collect(Collectors.toList())); } + + @Override + public Result> treeList(BusinessGroupParam param) throws Exception { + List businessGroupDTOList = list(param).getData(); + + //获取树形产品线 + Result> productLineListResult = getTreeListProductLineDomainService.treeList(new ProductLineParam()); + List productLineList = productLineListResult.getData(); + + Map> productLineMap = Optional.ofNullable(productLineList) + .orElse(new ArrayList<>()) + .stream() + .filter(dto -> ObjectUtil.isNotEmpty(dto.getBusinessId())) + .collect(Collectors.groupingBy(ProductLineDTO::getBusinessId)); + + for (BusinessGroupDTO businessGroupDTO : businessGroupDTOList) { + List productLineDTOS = productLineMap.getOrDefault(businessGroupDTO.getId(), new ArrayList<>()); + businessGroupDTO.setChildrenList(productLineDTOS); + } + + return Result.success(businessGroupDTOList); + } }