Browse Source

添加行政区划的树

DESKTOP-2K9OVK9\siwei 7 months ago
parent
commit
97b2fe6a3a

+ 25 - 31
onemap-modules/onemap-system/src/main/java/com/onemap/system/controller/SysDeptController.java

@@ -1,6 +1,7 @@
 package com.onemap.system.controller;
 
 import java.util.List;
+
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -25,13 +26,12 @@ import com.onemap.system.service.ISysDeptService;
 
 /**
  * 部门信息
- * 
+ *
  * @author onemap
  */
 @RestController
 @RequestMapping("/dept")
-public class SysDeptController extends BaseController
-{
+public class SysDeptController extends BaseController {
     @Autowired
     private ISysDeptService deptService;
 
@@ -40,8 +40,7 @@ public class SysDeptController extends BaseController
      */
     @RequiresPermissions("system:dept:list")
     @GetMapping("/list")
-    public AjaxResult list(SysDept dept)
-    {
+    public AjaxResult list(SysDept dept) {
         List<SysDept> depts = deptService.selectDeptList(dept);
         return success(depts);
     }
@@ -51,8 +50,7 @@ public class SysDeptController extends BaseController
      */
     @RequiresPermissions("system:dept:list")
     @GetMapping("/list/exclude/{deptId}")
-    public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
-    {
+    public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId) {
         List<SysDept> depts = deptService.selectDeptList(new SysDept());
         depts.removeIf(d -> d.getDeptId().intValue() == deptId || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""));
         return success(depts);
@@ -63,8 +61,7 @@ public class SysDeptController extends BaseController
      */
     @RequiresPermissions("system:dept:query")
     @GetMapping(value = "/{deptId}")
-    public AjaxResult getInfo(@PathVariable Long deptId)
-    {
+    public AjaxResult getInfo(@PathVariable Long deptId) {
         deptService.checkDeptDataScope(deptId);
         return success(deptService.selectDeptById(deptId));
     }
@@ -75,10 +72,8 @@ public class SysDeptController extends BaseController
     @RequiresPermissions("system:dept:add")
     @Log(title = "部门管理", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@Validated @RequestBody SysDept dept)
-    {
-        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
-        {
+    public AjaxResult add(@Validated @RequestBody SysDept dept) {
+        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
             return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
         }
         dept.setCreateBy(SecurityUtils.getUsername());
@@ -91,20 +86,14 @@ public class SysDeptController extends BaseController
     @RequiresPermissions("system:dept:edit")
     @Log(title = "部门管理", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@Validated @RequestBody SysDept dept)
-    {
+    public AjaxResult edit(@Validated @RequestBody SysDept dept) {
         Long deptId = dept.getDeptId();
         deptService.checkDeptDataScope(deptId);
-        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
-        {
+        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept))) {
             return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
-        }
-        else if (dept.getParentId().equals(deptId))
-        {
+        } else if (dept.getParentId().equals(deptId)) {
             return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
-        }
-        else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0)
-        {
+        } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) {
             return error("该部门包含未停用的子部门!");
         }
         dept.setUpdateBy(SecurityUtils.getUsername());
@@ -117,14 +106,11 @@ public class SysDeptController extends BaseController
     @RequiresPermissions("system:dept:remove")
     @Log(title = "部门管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{deptId}")
-    public AjaxResult remove(@PathVariable Long deptId)
-    {
-        if (deptService.hasChildByDeptId(deptId))
-        {
+    public AjaxResult remove(@PathVariable Long deptId) {
+        if (deptService.hasChildByDeptId(deptId)) {
             return warn("存在下级部门,不允许删除");
         }
-        if (deptService.checkDeptExistUser(deptId))
-        {
+        if (deptService.checkDeptExistUser(deptId)) {
             return warn("部门存在用户,不允许删除");
         }
         deptService.checkDeptDataScope(deptId);
@@ -137,8 +123,16 @@ public class SysDeptController extends BaseController
     @RequiresPermissions("system:dept:add")
     @Log(title = "同步基础信息平台部门", businessType = BusinessType.INSERT)
     @RequestMapping("/sync")
-    public AjaxResult sync()
-    {
+    public AjaxResult sync() {
         return toAjax(deptService.sync());
     }
+
+    /**
+     * 用于批次数据获取部门列表的树结构
+     */
+    @RequiresPermissions(value = {"supervise:pcsj:xzqhdm:tree"})
+    @GetMapping("/deptTree")
+    public AjaxResult deptTreeParent(SysDept dept) {
+        return success(deptService.deptTreeParent(dept));
+    }
 }

+ 85 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/domain/vo/DeptTreeSelect.java

@@ -0,0 +1,85 @@
+package com.onemap.system.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.onemap.system.api.domain.SysDept;
+import com.onemap.system.domain.SysMenu;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * Treeselect树结构实体类
+ *
+ * @author onemap
+ */
+public class DeptTreeSelect implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 节点ID
+     */
+    private Long id;
+
+    /**
+     * 节点名称
+     */
+    private String label;
+
+    private String district;
+
+    /**
+     * 子节点
+     */
+    @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    private List<DeptTreeSelect> children;
+
+    public DeptTreeSelect() {
+
+    }
+
+    public DeptTreeSelect(SysDept dept) {
+        this.id = dept.getDeptId();
+        this.label = dept.getDeptName();
+        this.district = dept.getDistrict();
+        this.children = dept.getChildren().stream().map(DeptTreeSelect::new).collect(Collectors.toList());
+    }
+
+    public DeptTreeSelect(SysMenu menu) {
+        this.id = menu.getMenuId();
+        this.label = menu.getMenuName();
+        this.children = menu.getChildren().stream().map(DeptTreeSelect::new).collect(Collectors.toList());
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    public List<DeptTreeSelect> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<DeptTreeSelect> children) {
+        this.children = children;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district;
+    }
+}

+ 2 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/ISysDeptService.java

@@ -2,6 +2,7 @@ package com.onemap.system.service;
 
 import java.util.List;
 import com.onemap.system.api.domain.SysDept;
+import com.onemap.system.domain.vo.DeptTreeSelect;
 import com.onemap.system.domain.vo.TreeSelect;
 
 /**
@@ -27,6 +28,7 @@ public interface ISysDeptService
      */
     public List<TreeSelect> selectDeptTreeList(SysDept dept);
 
+    public List<DeptTreeSelect> deptTreeParent(SysDept dept);
     /**
      * 构建前端所需要树结构
      * 

+ 28 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/SysDeptServiceImpl.java

@@ -4,6 +4,8 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
+
+import com.onemap.system.domain.vo.DeptTreeSelect;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.onemap.common.core.constant.UserConstants;
@@ -351,4 +353,30 @@ public class SysDeptServiceImpl implements ISysDeptService
     {
         return getChildList(list, t).size() > 0 ? true : false;
     }
+
+    @Override
+    public List<DeptTreeSelect> deptTreeParent(SysDept dept) {
+        SysDept newdept = new SysDept();
+        List<SysDept> depts = deptMapper.selectDeptList(newdept);
+        List<SysDept> deptTrees = buildDeptTree(depts);
+        List<DeptTreeSelect> tree = deptTrees.stream().map(DeptTreeSelect::new).collect(Collectors.toList());
+        if (dept != null && null != dept.getDeptId()) {
+            tree = deptTreeParentRecursion(tree, dept.getDeptId());
+        }
+        return tree;
+    }
+
+    public List<DeptTreeSelect> deptTreeParentRecursion(List<DeptTreeSelect> tree, Long deptId) {
+        List<DeptTreeSelect> ret = new ArrayList<>();
+        for (DeptTreeSelect tr : tree) {
+            if (tr.getId().equals(deptId)) {
+                ret.add(tr);
+                return ret;
+            }
+            List<DeptTreeSelect> pr = tr.getChildren();
+            ret = deptTreeParentRecursion(pr, deptId);
+        }
+        return ret;
+    }
+
 }