From 07942c6d9038e91007a4215032b10d7b0ce262fe Mon Sep 17 00:00:00 2001 From: tangcy <406968399@qq.com> Date: Thu, 26 Mar 2026 08:35:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysDeptController.java | 26 +++++++++++++++++++ .../ruoyi/system/service/ISysDeptService.java | 9 +++++++ .../service/impl/SysDeptServiceImpl.java | 21 +++++++++++++++ .../resources/mapper/system/SysDeptMapper.xml | 3 +++ 4 files changed, 59 insertions(+) diff --git a/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/controller/SysDeptController.java b/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/controller/SysDeptController.java index 4867c742..d6f9039a 100644 --- a/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/controller/SysDeptController.java +++ b/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/controller/SysDeptController.java @@ -201,4 +201,30 @@ public class SysDeptController extends BaseController return toAjax(deptService.auditDept(deptId, auditStatus, auditOpinion)); } + + /** + * 修改部门状态(禁用/启用) + */ + @Operation(summary = "修改部门状态", description = "修改部门状态,0 正常,1 停用") + @RequiresPermissions("system:dept:edit") + @Log(title = "部门管理", businessType = BusinessType.UPDATE) + @PutMapping("/status/{deptId}") + public AjaxResult changeStatus(@PathVariable Long deptId, @RequestBody Map params) + { + deptService.checkDeptDataScope(deptId); + String status = params.get("status"); + + if (StringUtils.isEmpty(status)) + { + return error("部门状态不能为空"); + } + + // 校验停用部门是否有未停用的子部门 + if (UserConstants.DEPT_DISABLE.equals(status) && deptService.selectNormalChildrenDeptById(deptId) > 0) + { + return error("该部门包含未停用的子部门,不允许停用!"); + } + + return toAjax(deptService.changeDeptStatus(deptId, status)); + } } diff --git a/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/service/ISysDeptService.java index 2a63f268..527bce03 100644 --- a/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -139,4 +139,13 @@ public interface ISysDeptService * @return 结果 */ public int auditDept(Long deptId, String auditStatus, String auditOpinion); + + /** + * 修改部门状态(禁用/启用) + * + * @param deptId 部门 ID + * @param status 部门状态(0 正常,1 停用) + * @return 结果 + */ + public int changeDeptStatus(Long deptId, String status); } diff --git a/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 6a028c87..287e257b 100644 --- a/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-modules/aidmt-system-ms/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -405,6 +405,27 @@ public class SysDeptServiceImpl implements ISysDeptService return deptMapper.updateDept(dept); } + /** + * 修改部门状态(禁用/启用) + * + * @param deptId 部门 ID + * @param status 部门状态(0 正常,1 停用) + * @return 结果 + */ + @Override + public int changeDeptStatus(Long deptId, String status) + { + // 校验部门是否有数据权限 + checkDeptDataScope(deptId); + + SysDept dept = new SysDept(); + dept.setDeptId(deptId); + dept.setStatus(status); + dept.setUpdateBy(SecurityUtils.getUsername()); + + return deptMapper.updateDept(dept); + } + /** * 递归列表 */ diff --git a/ruoyi-modules/aidmt-system-ms/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-modules/aidmt-system-ms/src/main/resources/mapper/system/SysDeptMapper.xml index 35eedac2..8c56510c 100644 --- a/ruoyi-modules/aidmt-system-ms/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-modules/aidmt-system-ms/src/main/resources/mapper/system/SysDeptMapper.xml @@ -60,6 +60,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND d.dept_type = #{deptType} + + AND d.address like concat('%', #{address}, '%') + ${params.dataScope} order by d.parent_id, d.order_num