From 820fde4dc19a0205ea4a48b8dd08979a8b212f30 Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期三, 04 九月 2024 11:08:51 +0800
Subject: [PATCH] 信息公式

---
 project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java |   72 ++++++++++++++++++++++++++++++++----
 1 files changed, 64 insertions(+), 8 deletions(-)

diff --git a/project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java
index bb89e61..c2ac98b 100644
--- a/project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java
+++ b/project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java
@@ -1,5 +1,8 @@
 package com.project.system.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.project.common.annotation.DataScope;
 import com.project.common.constant.UserConstants;
 import com.project.common.core.domain.TreeSelect;
@@ -14,10 +17,11 @@
 import com.project.system.mapper.SysDeptMapper;
 import com.project.system.mapper.SysRoleMapper;
 import com.project.system.service.ISysDeptService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -28,13 +32,11 @@
  * @author project
  */
 @Service
-public class SysDeptServiceImpl implements ISysDeptService
+@RequiredArgsConstructor
+public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> implements ISysDeptService
 {
-    @Autowired
-    private SysDeptMapper deptMapper;
-
-    @Autowired
-    private SysRoleMapper roleMapper;
+    private final SysDeptMapper deptMapper;
+    private final SysRoleMapper roleMapper;
 
     /**
      * 鏌ヨ閮ㄩ棬绠$悊鏁版嵁
@@ -294,15 +296,43 @@
         return deptMapper.deleteDeptById(deptId);
     }
 
+    /**
+     * 鏍规嵁鐧诲綍浜洪儴闂ㄨ幏鍙栧鎵规満鏋刬d
+     * @param deptId    鐧诲綍浜洪儴闂╥d
+     * @return  瀹℃壒鏈烘瀯id
+     */
     @Override
     public Long getCheckDeptIdByLoginDeptId(Long deptId)
     {
         SysDept loginDept = selectDeptById(deptId);
-        if (loginDept.getParentId()==101){
+        if (loginDept.getDeptId()==100 || loginDept.getParentId()==100){
             return loginDept.getDeptId();
         } else {
             return getCheckDeptIdByLoginDeptId(loginDept.getParentId());
         }
+    }
+
+    /**
+     * 鏍规嵁鐧诲綍浜篿d鑾峰彇绠¤緰鏈烘瀯ids
+     * @param userId    鐧诲綍浜篿d
+     * @return  瀹℃壒鏈烘瀯ids
+     */
+    @Override
+    public List<Long> getApplyDeptIdsByLoginUserId(Long userId)
+    {
+        return deptMapper.getApplyDeptIdsByLoginUserId(userId);
+    }
+
+    @Override
+    public String getDeptAllName(Long deptId)
+    {
+        List<String> names = new ArrayList<>();
+        names = getAncestorsNames(deptId, names);
+        if (CollectionUtil.isEmpty(names)){
+            return "";
+        }
+        Collections.reverse(names);
+        return StrUtil.join("-", names);
     }
 
     /**
@@ -347,4 +377,30 @@
     {
         return getChildList(list, t).size() > 0;
     }
+
+
+    /**
+     * 鑾峰彇绁栫睄names鍒楄〃
+     *
+     * @param deptId 褰撳墠閮ㄩ棬id
+     * @param names  绁栫睄id鍒楄〃
+     * @return  names鍒楄〃
+     */
+    public List<String> getAncestorsNames(long deptId, List<String> names) {
+        SysDept dept = deptMapper.selectDeptById(deptId);
+        if (dept == null) {
+            return names;
+        }
+        if (deptId == 100) {
+            names.add(dept.getDeptName());
+            return names;
+        }
+        if (dept.getParentId() != null && dept.getParentId() == 100) {
+            names.add(dept.getDeptName());
+            return names;
+        } else {
+            names.add(dept.getDeptName());
+            return getAncestorsNames(dept.getParentId(), names);
+        }
+    }
 }

--
Gitblit v1.9.1