From 56eef136d6f95d963dbf7d54edbb5a897ddfb82c Mon Sep 17 00:00:00 2001 From: Jackwang Date: Mon, 29 Aug 2022 16:07:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=97=E5=B0=9A=E8=AF=89=E5=8A=9E-=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E6=A0=91=E8=B0=83=E6=95=B4=E6=B7=BB=E5=8A=A0=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../elink/esua/epdc/dto/SysDeptResultDTO.java | 38 ++++++++++++++++++ .../epdc/controller/SysDeptController.java | 12 ++++++ .../com/elink/esua/epdc/dao/SysDeptDao.java | 12 ++++-- .../esua/epdc/service/SysDeptService.java | 9 +++++ .../epdc/service/impl/SysDeptServiceImpl.java | 37 ++++++++++++++++++ .../src/main/resources/mapper/SysDeptDao.xml | 10 +++++ .../controller/ApiSysAdminController.java | 39 +++++++++++++++++++ .../esua/epdc/feign/AdminFeignClient.java | 10 +++++ .../fallback/AdminFeignClientFallback.java | 6 ++- .../elink/esua/epdc/service/AdminService.java | 12 ++++++ .../epdc/service/impl/AdminServiceImpl.java | 8 ++++ 11 files changed, 189 insertions(+), 4 deletions(-) create mode 100644 esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysDeptResultDTO.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiSysAdminController.java diff --git a/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysDeptResultDTO.java b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysDeptResultDTO.java new file mode 100644 index 000000000..5c3691a9e --- /dev/null +++ b/esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/SysDeptResultDTO.java @@ -0,0 +1,38 @@ +package com.elink.esua.epdc.dto; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * 部门节点 + * + * @author wangtong + * @date 2022/8/29 11:01 + */ +@Data +public class SysDeptResultDTO { + + /** + * 部门id + */ + private String value; + + /** + * 部门名称 + */ + private String label; + + /** + * 上级id + */ + private String pid; + + /** + * 排序 + */ + private int sort; + + private List children = new ArrayList<>(); +} diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java index 472ead8c7..afe24ccf4 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java @@ -402,4 +402,16 @@ public class SysDeptController { public Result getDeptInfoCode(Long gridId) { return sysDeptService.getDeptInfoCode(gridId); } + + /** + * @describe: 获取所有部门的树状列表 街道-社区-网格 + * @author wangtong + * @date 2022/8/29 11:01 + * @params [gridId] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @GetMapping("getAllDeptTree") + public Result> getAllDeptTree() { + return sysDeptService.getAllDeptTree(); + } } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java index 991bd9616..1f33de3cc 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java @@ -16,9 +16,6 @@ import com.elink.esua.epdc.dto.epdc.form.KpiGridIdsFormDTO; import com.elink.esua.epdc.dto.epdc.form.UserSysDeptInfoFormDTO; import com.elink.esua.epdc.dto.epdc.result.ExportKpiResultDTO; import com.elink.esua.epdc.dto.epdc.result.UserSysDeptInfoResultDTO; -import com.elink.esua.epdc.entity.CustomerAgencyEntity; -import com.elink.esua.epdc.entity.CustomerDepartmentEntity; -import com.elink.esua.epdc.entity.CustomerGridEntity; import com.elink.esua.epdc.entity.SysDeptEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -262,4 +259,13 @@ public interface SysDeptDao extends BaseDao { void updateDepartmentTotalUser(String id); void updateAgencyTotalUser(String toString); + + /** + * @describe: 查询所有的街道-社区-网格 + * @author wangtong + * @date 2022/8/29 13:46 + * @params [] + * @return java.util.List + */ + List selectAllDeptTree(); } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java index 5cc68c208..ffb951f10 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java @@ -329,4 +329,13 @@ public interface SysDeptService extends BaseService { * @return com.elink.esua.epdc.commons.tools.utils.Result */ Result getDeptInfoCode(Long gridId); + + /** + * @describe: 获取所有部门的树状列表 街道-社区-网格 + * @author wangtong + * @date 2022/8/29 11:01 + * @params [gridId] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result> getAllDeptTree(); } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java index 3f6d97fa5..f0b055ff9 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java @@ -55,6 +55,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 部门管理 @@ -1315,4 +1317,39 @@ public class SysDeptServiceImpl extends BaseServiceImpl().ok(result); } + + @Override + public Result> getAllDeptTree() { + List sqlList = baseDao.selectAllDeptTree(); + //调整为树结构 + List resultList = build(sqlList); + //添加排序,默认正序排列 + List childSortMenu = Optional.ofNullable(resultList) + .map(List::stream) + .orElseGet(Stream::empty) + .sorted(Comparator.comparing(SysDeptResultDTO::getSort)) + .collect(Collectors.toList()); + return new Result>().ok(childSortMenu); + } + + /** + * 构建树节点 + */ + public static List build(List treeNodes) { + List result = new ArrayList<>(); + //list转map + Map nodeMap = new LinkedHashMap<>(treeNodes.size()); + for (SysDeptResultDTO treeNode : treeNodes) { + nodeMap.put(treeNode.getValue(), treeNode); + } + for (SysDeptResultDTO node : nodeMap.values()) { + SysDeptResultDTO parent = nodeMap.get(node.getPid()); + if (parent != null && !(node.getValue().equals(parent.getValue()))) { + parent.getChildren().add(node); + continue; + } + result.add(node); + } + return result; + } } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml index dc4f62b66..d31b18146 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml @@ -464,5 +464,15 @@ update epmet_gov_org.customer_agency set TOTAL_USER =TOTAL_USER+1 where id =#{id} + diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiSysAdminController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiSysAdminController.java new file mode 100644 index 000000000..8e5033e92 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiSysAdminController.java @@ -0,0 +1,39 @@ +package com.elink.esua.epdc.controller; + +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.SysDeptResultDTO; +import com.elink.esua.epdc.service.AdminService; +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; + +/** + * 管理端对外接口 + * + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/11 9:25 + */ +@RestController +@RequestMapping("sys/admin") +public class ApiSysAdminController { + + @Autowired + private AdminService adminService; + + /** + * @describe: 获取所有部门的树状列表 街道-社区-网格 + * @author wangtong + * @date 2022/8/29 11:01 + * @params [gridId] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @GetMapping("getAllDeptTree") + public Result> getAllDeptTree() { + return adminService.getAllDeptTree(); + } + +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java index 7e3f66c99..20aa8b386 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java @@ -172,4 +172,14 @@ public interface AdminFeignClient { */ @GetMapping(value = "sys/city/getAreaInfo", consumes = MediaType.APPLICATION_JSON_VALUE) Result getAreaInfo(CityAreaFormDTO formDto); + + /** + * @describe: 获取所有部门的树状列表 街道-社区-网格 + * @author wangtong + * @date 2022/8/29 11:01 + * @params [gridId] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @GetMapping(value = "sys/dept/getAllDeptTree", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> getAllDeptTree(); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java index b8a7892a8..1aa48f482 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java @@ -1,6 +1,5 @@ package com.elink.esua.epdc.feign.fallback; -import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; @@ -91,4 +90,9 @@ public class AdminFeignClientFallback implements AdminFeignClient { public Result getAreaInfo(CityAreaFormDTO formDto) { return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getAreaInfo", formDto); } + + @Override + public Result> getAllDeptTree() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getAllDeptTree"); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java index ce445219b..5c423bd52 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java @@ -4,8 +4,11 @@ import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.AppUserIdMenuDTO; import com.elink.esua.epdc.dto.CompleteDeptDTO; +import com.elink.esua.epdc.dto.SysDeptResultDTO; import com.elink.esua.epdc.dto.epdc.form.CityAreaFormDTO; +import java.util.List; + /** * 管理端相关接口 * @@ -51,4 +54,13 @@ public interface AdminService { * @return com.elink.esua.epdc.commons.tools.utils.Result */ Result getAreaInfo(CityAreaFormDTO formDto); + + /** + * @describe: 获取所有部门的树状列表 街道-社区-网格 + * @author wangtong + * @date 2022/8/29 11:01 + * @params [gridId] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result> getAllDeptTree(); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java index 1538e1fec..e8a71ae65 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java @@ -4,6 +4,7 @@ import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.AppUserIdMenuDTO; import com.elink.esua.epdc.dto.CompleteDeptDTO; +import com.elink.esua.epdc.dto.SysDeptResultDTO; import com.elink.esua.epdc.dto.epdc.form.CityAreaFormDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.service.AdminService; @@ -11,6 +12,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author yujintao * @email yujintao@elink-cn.com @@ -57,4 +60,9 @@ public class AdminServiceImpl implements AdminService { log.info("formDto:"+formDto); return adminFeignClient.getAreaInfo(formDto); } + + @Override + public Result> getAllDeptTree() { + return adminFeignClient.getAllDeptTree(); + } }