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