From 9267b2b48f59325b7544640e0622ffcfb998d428 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Mon, 9 Jun 2025 17:27:21 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=E6=8F=90=E4=BA=A4=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=9B=BE=E5=B1=82=E7=AE=A1=E7=90=86=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E2=91=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/system/api/RemoteDeptService.java | 2 ++ .../controller/BusinessLayerController.java | 8 ++--- .../business/domain/vo/BusinessLayerVo.java | 3 ++ .../impl/BusinessLayerServiceImpl.java | 25 +++++++++++----- .../system/dubbo/RemoteDeptServiceImpl.java | 7 +++++ .../dromara/system/mapper/SysDeptMapper.java | 2 ++ .../system/service/ISysDeptService.java | 2 ++ .../service/impl/SysDeptServiceImpl.java | 5 ++++ .../dromara/system/utils/KmzParserUtil.java | 5 +++- .../resources/mapper/system/SysDeptMapper.xml | 30 +++++++++++++++++++ 10 files changed, 77 insertions(+), 12 deletions(-) diff --git a/dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java b/dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java index 0277739..13cc9c3 100644 --- a/dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java +++ b/dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java @@ -29,4 +29,6 @@ public interface RemoteDeptService { List selectListByParentId(String deptId); RemoteDeptVo getByParentId(String deptId); + + List listTreeDeptByChild(Long deptId); } diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java index 1595700..112b46c 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java @@ -38,7 +38,7 @@ public class BusinessLayerController extends BaseController { * 图层模块列表 */ @Operation(summary ="图层模块列表",description = "图层模块列表") - @SaCheckPermission("business:layer:list") +// @SaCheckPermission("business:layer:list") @GetMapping("/list") public R> list(BusinessLayerBo bo, PageQuery pageQuery) { return R.ok(businessLayerService.queryPageList(bo, pageQuery)); @@ -54,7 +54,7 @@ public class BusinessLayerController extends BaseController { * 图层新增 */ @Operation(summary ="图层新增",description = "图层新增") - @SaCheckPermission("business:layer:add") +// @SaCheckPermission("business:layer:add") @Log(title = "图层新增", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -65,7 +65,7 @@ public class BusinessLayerController extends BaseController { /** * 图层修改 */ - @SaCheckPermission("business:layer:edit") +// @SaCheckPermission("business:layer:edit") @Operation(summary ="图层修改",description = "图层修改") @Log(title = "图层修改", businessType = BusinessType.UPDATE) @RepeatSubmit() @@ -79,7 +79,7 @@ public class BusinessLayerController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("business:task:remove") +// @SaCheckPermission("business:task:remove") @Operation(summary ="图层删除",description = "图层删除") @Log(title = "图层删除", businessType = BusinessType.DELETE) @GetMapping("/delete") diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java index 7f9e46e..52460ff 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java @@ -70,4 +70,7 @@ public class BusinessLayerVo { private List children; + //用于前端回显 + private List deptIdList; + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java index f45c01a..3f91bb8 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java @@ -20,10 +20,7 @@ import org.dromara.system.api.domain.vo.RemoteDeptVo; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Slf4j @@ -33,7 +30,7 @@ public class BusinessLayerServiceImpl implements IBusinessLayerService { private final BusinessLayerMapper baseMapper; - @DubboReference + @DubboReference(timeout = 30000) RemoteDeptService remoteDeptService; @Override @@ -41,10 +38,16 @@ public class BusinessLayerServiceImpl implements IBusinessLayerService { Page result = baseMapper.queryPageList(pageQuery.build(), bo); result.getRecords().forEach(businessLayerVo -> { + List deptList = remoteDeptService.listTreeDeptByChild(businessLayerVo.getDeptId()); + LinkedList deptIdList = new LinkedList<>(); + deptList.forEach(deptVo -> { + deptIdList.add(deptVo.getDeptId()); + }); + List layerVoList = baseMapper.selectInfoByParent(businessLayerVo.getId()); businessLayerVo.setChildren(buildTree(layerVoList,businessLayerVo.getId())); - + businessLayerVo.setDeptIdList(deptIdList); }); return TableDataInfo.build(result); @@ -101,7 +104,7 @@ public class BusinessLayerServiceImpl implements IBusinessLayerService { * @param allNodes * @return */ - public static List buildTree(List allNodes, Long parentId) { + public List buildTree(List allNodes, Long parentId) { // 创建一个Map来存储所有节点,键为ID,值为节点 Map nodeMap = new HashMap<>(); for (BusinessLayerVo node : allNodes) { @@ -113,6 +116,14 @@ public class BusinessLayerServiceImpl implements IBusinessLayerService { // 遍历所有节点,将子节点添加到父节点的 children 列表中 for (BusinessLayerVo node : allNodes) { + List deptList = remoteDeptService.listTreeDeptByChild(node.getDeptId()); + LinkedList deptIdList = new LinkedList<>(); + deptList.forEach(deptVo -> { + deptIdList.add(deptVo.getDeptId()); + }); + + node.setDeptIdList(deptIdList); + if (node.getParentId().equals(parentId)) { rootNodes.add(node); // 当前节点的 parentId 与传入的 parentId 匹配,作为根节点 } else { diff --git a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java index 524e362..c9f453c 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java @@ -66,4 +66,11 @@ public class RemoteDeptServiceImpl implements RemoteDeptService { SysDeptVo sysDeptVo = sysDeptService.getByParentId(deptId); return BeanUtil.copyProperties(sysDeptVo, RemoteDeptVo.class); } + + @Override + public List listTreeDeptByChild(Long deptId) { + List deptVoList = sysDeptService.listTreeDeptByChild(deptId); + + return BeanUtil.copyToList(deptVoList, RemoteDeptVo.class); + } } diff --git a/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java b/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java index 019c1d4..a368ea3 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java +++ b/dk-modules/system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java @@ -74,4 +74,6 @@ public interface SysDeptMapper extends BaseMapperPlus { List> getNamePathList(@Param("deptId") Long deptId); List listTreeDept(@Param("deptId") Long deptId, @Param("tbPrefix") ProjectTablePrefixConfig tbPrefix); + + List listTreeDeptByChild(@Param("deptId") Long deptId); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java b/dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java index 05a0a95..b259af1 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/ISysDeptService.java @@ -160,4 +160,6 @@ public interface ISysDeptService { List listTreeDept(Long deptId); SysDept addBoundaryDept(SysDeptBo sysDeptBo); + + List listTreeDeptByChild(Long deptId); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java index 9ee2afe..78e5813 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java @@ -407,4 +407,9 @@ public class SysDeptServiceImpl implements ISysDeptService { return dept; } + @Override + public List listTreeDeptByChild(Long deptId) { + return baseMapper.listTreeDeptByChild(deptId); //.getTableCloud() + } + } diff --git a/dk-modules/system/src/main/java/org/dromara/system/utils/KmzParserUtil.java b/dk-modules/system/src/main/java/org/dromara/system/utils/KmzParserUtil.java index b5237b4..e7af342 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/utils/KmzParserUtil.java +++ b/dk-modules/system/src/main/java/org/dromara/system/utils/KmzParserUtil.java @@ -1,5 +1,6 @@ package org.dromara.system.utils; +import cn.hutool.core.util.ObjectUtil; import org.dromara.system.domain.kmz.KmzResult; import org.dromara.system.domain.kmz.Placemark; @@ -121,7 +122,9 @@ public class KmzParserUtil { for (String coords : currentCoordinates) { Placemark newPlacemark = new Placemark(); newPlacemark.setName(currentPlacemark.getName()); - newPlacemark.setAttributes(new HashMap<>(currentPlacemark.getAttributes())); + if (ObjectUtil.isNotEmpty(currentPlacemark.getAttributes())){ + newPlacemark.setAttributes(new HashMap<>(currentPlacemark.getAttributes())); + } newPlacemark.setCoordinates(coords); placemarks.add(newPlacemark); } diff --git a/dk-modules/system/src/main/resources/mapper/system/SysDeptMapper.xml b/dk-modules/system/src/main/resources/mapper/system/SysDeptMapper.xml index d823dfc..bbb8d7c 100644 --- a/dk-modules/system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/dk-modules/system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -112,4 +112,34 @@ )select * from warning_summary + + +