From 78839ec83b089ed91ad00585748e78f1c724e570 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 16 九月 2022 08:46:28 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/system/controller/DeptController.java |   45 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 39 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/crm/system/controller/DeptController.java b/src/main/java/com/zy/crm/system/controller/DeptController.java
index decd896..b753f51 100644
--- a/src/main/java/com/zy/crm/system/controller/DeptController.java
+++ b/src/main/java/com/zy/crm/system/controller/DeptController.java
@@ -12,11 +12,12 @@
 import com.core.common.R;
 import com.zy.crm.common.utils.ListUtils;
 import com.zy.crm.common.utils.TreeUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
 import com.zy.crm.common.web.BaseController;
+import com.zy.crm.manager.utils.NodeUtils;
 import com.zy.crm.system.entity.Dept;
 import com.zy.crm.system.service.DeptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
 import java.util.*;
@@ -45,6 +46,7 @@
         EntityWrapper<Dept> wrapper = new EntityWrapper<>();
         excludeTrash(param);
         convert(param, wrapper);
+        hostEq(wrapper);
         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} {
             wrapper.orderBy("sort");
         }
@@ -67,13 +69,27 @@
     @RequestMapping(value = "/dept/add/auth")
     @ManagerAuth
     public R add(Dept dept) {
+        dept.setLevel(1);
+        if (dept.getParentId() == null || dept.getParentId() == 0) {
+            dept.setParentId(getOriginDept().getId());
+        }
+        Dept parent = deptService.selectById(dept.getParentId());
+        if (parent != null) {
+            dept.setParentName(parent.getName());
+            dept.setLevel(parent.getLevel() + 1);
+        }
+        // path
+        NodeUtils nodeUtils = new NodeUtils();
+        nodeUtils.executePath(dept);
+        dept.setHostId(getHostId());
+        dept.setPath(nodeUtils.path.toString());
+        dept.setNamePath(nodeUtils.pathName.toString());
+
         dept.setCreateBy(getUserId());
         dept.setCreateTime(new Date());
         dept.setUpdateBy(getUserId());
         dept.setUpdateTime(new Date());
-        if (dept.getParentId() == null) {
-            dept.setParentId(0L);
-        }
+        dept.setStatus(1);
         deptService.insert(dept);
         return R.ok();
     }
@@ -84,6 +100,23 @@
         if (Cools.isEmpty(dept) || null==dept.getId()){
             return R.error();
         }
+        if (dept.getParentId() != null && dept.getParentId() > 0) {
+            if (dept.getParentId().equals(dept.getId())) {
+                return R.error("鏁版嵁閿欒");
+            }
+            Dept parent = deptService.selectById(dept.getParentId());
+            if (parent != null) {
+                dept.setParentName(parent.getName());
+                dept.setLevel(parent.getLevel() + 1);
+            }
+        }
+        // path
+        NodeUtils nodeUtils = new NodeUtils();
+        nodeUtils.executePath(dept);
+        dept.setPath(nodeUtils.path.toString());
+        dept.setNamePath(nodeUtils.pathName.toString());
+        dept.setUpdateBy(getUserId());
+        dept.setUpdateTime(new Date());
         deptService.updateById(dept);
         return R.ok();
     }
@@ -139,7 +172,7 @@
     @PostMapping(value = "/dept/tree/auth")
     @ManagerAuth
     public R tree(@RequestParam(required = false, defaultValue = "") String condition) throws IOException, ClassNotFoundException {
-        ArrayList<Map> tree = treeUtils.getDeptTree(String.valueOf(getOriginDept().getId()), getHostId());
+        ArrayList<Map> tree = treeUtils.getDeptTree(String.valueOf(getDeptId()), getHostId());
         // 娣辨嫹璐�
         List<Map> result = ListUtils.deepCopy(tree);
         if (!Cools.isEmpty(condition)) {

--
Gitblit v1.9.1