diff --git a/bonus-admin/src/main/java/com/bonus/web/controller/system/SysDeptController.java b/bonus-admin/src/main/java/com/bonus/web/controller/system/SysDeptController.java index 6d80002..af861d8 100644 --- a/bonus-admin/src/main/java/com/bonus/web/controller/system/SysDeptController.java +++ b/bonus-admin/src/main/java/com/bonus/web/controller/system/SysDeptController.java @@ -5,6 +5,8 @@ import java.util.List; import com.bonus.common.annotation.RequiresPermissions; import com.bonus.common.annotation.SysLog; import com.bonus.common.enums.OperaType; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -33,6 +35,7 @@ import com.bonus.system.service.ISysDeptService; */ @RestController @RequestMapping("/system/dept") +@Slf4j public class SysDeptController extends BaseController { @Autowired private ISysDeptService deptService; @@ -146,4 +149,17 @@ public class SysDeptController extends BaseController { deptService.checkDeptDataScope(deptId); return toAjax(deptService.deleteDeptById(deptId)); } + + @ApiOperation(value = "获取部门下拉") + @GetMapping("getDeptSelect") + @SysLog(title = "获取部门下拉", module = "数据/档案移交->档案移交申请", businessType = OperaType.QUERY, details = "获取部门下拉", logType = 1) + public AjaxResult getDeptSelect(SysDept dto) { + try { + List list = deptService.getDeptSelect(dto); + return AjaxResult.success(list); + } catch (Exception e) { + log.error(e.toString(), e); + return AjaxResult.error("请求出错了"); + } + } } diff --git a/bonus-system/src/main/java/com/bonus/system/mapper/SysDeptMapper.java b/bonus-system/src/main/java/com/bonus/system/mapper/SysDeptMapper.java index 312b15d..0460ca6 100644 --- a/bonus-system/src/main/java/com/bonus/system/mapper/SysDeptMapper.java +++ b/bonus-system/src/main/java/com/bonus/system/mapper/SysDeptMapper.java @@ -121,4 +121,11 @@ public interface SysDeptMapper Integer getSysUserDeptId(Long deptId); Integer getTransferIssueDeptId(Long deptId); + + /** + * 查询下拉选 + * @param dto + * @return + */ + List getDeptSelect(SysDept dto); } diff --git a/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java b/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java index a6ec100..ebc7db7 100644 --- a/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java +++ b/bonus-system/src/main/java/com/bonus/system/service/ISysDeptService.java @@ -127,4 +127,11 @@ public interface ISysDeptService Integer getSysUserDeptId(Long deptId); Integer getTransferIssueDeptId(Long deptId); + + /** + * 部门不下来选 + * @param dto + * @return + */ + List getDeptSelect(SysDept dto); } diff --git a/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java b/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java index 472df81..d7e56a0 100644 --- a/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java +++ b/bonus-system/src/main/java/com/bonus/system/service/impl/SysDeptServiceImpl.java @@ -1,8 +1,6 @@ package com.bonus.system.service.impl; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -87,7 +85,30 @@ public class SysDeptServiceImpl implements ISysDeptService } return returnList; } + public static List buildDeptTree2(List list) { + // 使用 Map 提升查找效率 + Map map = new HashMap<>(); + List roots = new ArrayList<>(); + // 第一步:将所有节点放入 map + for (SysDept item : list) { + map.put(item.getDeptId(), item); + } + // 第二步:构建父子关系 + for (SysDept item : list) { + Long parentId = item.getParentId(); + // 如果 parent_id 为 null,则为根节点 + if (parentId == 0) { + roots.add(item); + } else { + SysDept parent = map.get(parentId); + if (parent != null) { + parent.getChildren().add(item); + } + } + } + return roots; + } /** * 构建前端所需要下拉树结构 * @@ -312,6 +333,16 @@ public class SysDeptServiceImpl implements ISysDeptService return deptMapper.getTransferIssueDeptId(deptId); } + @Override + public List getDeptSelect(SysDept dto) { + List deptSelect = deptMapper.getDeptSelect(dto); + // 构建树 + List tree = buildDeptTree2(deptSelect); + return tree; + } + + + /** * 递归列表 */ diff --git a/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml b/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml index 660735e..ff0446b 100644 --- a/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/bonus-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -135,8 +135,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" INNER JOIN DeptTree dt ON t.dept_id = dt.dept_id WHERE t.del_flag = '1' + - + insert into da_ky_sys_dept( dept_id, parent_id,