From 942bdeee0b6fcc92b35e788c851d39c5182a8e40 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期二, 10 六月 2025 13:01:20 +0800
Subject: [PATCH] add

---
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysDeptController.java |  145 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 145 insertions(+), 0 deletions(-)

diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysDeptController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysDeptController.java
new file mode 100644
index 0000000..264632f
--- /dev/null
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysDeptController.java
@@ -0,0 +1,145 @@
+package com.gkhy.exam.admin.controller.system;
+
+
+import cn.hutool.core.util.ObjectUtil;
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.common.constant.UserConstant;
+import com.gkhy.exam.common.domain.entity.SysDept;
+import com.gkhy.exam.system.service.ISysDeptService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+import static com.gkhy.exam.common.utils.SecurityUtils.getUsername;
+
+/**
+ * 部门信息
+ * 
+ * @author expert
+ */
+@Api(tags = "部门-业务处室")
+@RestController
+@RequestMapping("/system/dept")
+public class SysDeptController
+{
+    @Autowired
+    private ISysDeptService deptService;
+
+    /**
+     * 获取部门列表
+     */
+//    @PreAuthorize("@ss.hasPermi('system:dept:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "获取部门列表")
+    public CommonResult list(SysDept dept)
+    {
+        List<SysDept> depts = deptService.selectDeptList(dept);
+        return CommonResult.success(depts);
+    }
+
+
+
+
+    /**
+     * 查询部门列表(排除节点)
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:list')")
+    @GetMapping("/list/exclude/{deptId}")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", name = "deptId", dataType = "Long", required = true, value = "部门id"),
+    })
+    @ApiOperation(value = "查询部门列表(排除节点)")
+    public CommonResult 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 CommonResult.success(depts);
+    }
+
+    /**
+     * 根据部门编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:query')")
+    @GetMapping(value = "/{deptId}")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", name = "deptId", dataType = "Long", required = true, value = "部门id"),
+    })
+    @ApiOperation(value = "根据部门编号获取详细信息")
+    public CommonResult getInfo(@PathVariable Long deptId)
+    {
+        deptService.checkDeptDataScope(deptId);
+        return  CommonResult.success(deptService.selectDeptById(deptId));
+    }
+
+    /**
+     * 新增部门
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:add')")
+    @PostMapping("/add")
+    @ApiOperation(value = "新增部门业务处室")
+    public CommonResult add(@Validated @RequestBody SysDept dept)
+    {
+        if (!deptService.checkDeptNameUnique(dept))
+        {
+            return CommonResult.failed("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        dept.setCreateBy(getUsername());
+        return CommonResult.success(deptService.insertDept(dept));
+    }
+
+    /**
+     * 修改部门
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:edit')")
+    @ApiOperation(value = "修改部门门业务处室")
+    @PutMapping
+    public CommonResult edit(@Validated @RequestBody SysDept dept)
+    {
+        Long deptId = dept.getDeptId();
+        deptService.checkDeptDataScope(deptId);
+        if (!deptService.checkDeptNameUnique(dept))
+        {
+            return CommonResult.failed("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        else if (dept.getParentId().equals(deptId))
+        {
+            return CommonResult.failed("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
+        }
+        else if (ObjectUtil.equals(UserConstant.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0)
+        {
+            return CommonResult.failed("该部门包含未停用的子部门!");
+        }
+        dept.setUpdateBy(getUsername());
+        return CommonResult.success(deptService.updateDept(dept));
+    }
+
+    /**
+     * 删除部门
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:remove')")
+    @DeleteMapping("/{deptId}")
+    @ApiOperation(value = "删除部门门业务处室")
+    public CommonResult remove(@PathVariable Long deptId)
+    {
+        if (deptService.hasChildByDeptId(deptId))
+        {
+            return CommonResult.failed("存在下级部门,不允许删除");
+        }
+        if (deptService.checkDeptExistUser(deptId))
+        {
+            return CommonResult.failed("部门存在用户,不允许删除");
+        }
+        //todo  校验专家是否申请复用
+        deptService.checkDeptDataScope(deptId);
+        return CommonResult.success(deptService.deleteDeptById(deptId));
+    }
+}

--
Gitblit v1.9.2