Pārlūkot izejas kodu

添加校验部门包含未停用的子部门

RuoYi 4 gadi atpakaļ
vecāks
revīzija
4b77378458

+ 5 - 2
ruoyi/src/main/java/com/ruoyi/common/constant/UserConstants.java

@@ -19,13 +19,16 @@ public class UserConstants
     public static final String EXCEPTION = "1";
 
     /** 用户封禁状态 */
-    public static final String USER_BLOCKED = "1";
+    public static final String USER_DISABLE = "1";
 
     /** 角色封禁状态 */
-    public static final String ROLE_BLOCKED = "1";
+    public static final String ROLE_DISABLE = "1";
 
     /** 部门正常状态 */
     public static final String DEPT_NORMAL = "0";
+    
+    /** 部门停用状态 */
+    public static final String DEPT_DISABLE = "1";
 
     /** 字典正常状态 */
     public static final String DICT_NORMAL = "0";

+ 6 - 0
ruoyi/src/main/java/com/ruoyi/project/system/controller/SysDeptController.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
@@ -109,6 +110,11 @@ public class SysDeptController extends BaseController
         {
             return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
         }
+        else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus())
+                && deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0)
+        {
+            return AjaxResult.error("该部门包含未停用的子部门!");
+        }
         dept.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(deptService.updateDept(dept));
     }

+ 8 - 0
ruoyi/src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java

@@ -43,6 +43,14 @@ public interface SysDeptMapper
      */
     public List<SysDept> selectChildrenDeptById(Long deptId);
 
+    /**
+     * 根据ID查询所有子部门(正常状态)
+     * 
+     * @param deptId 部门ID
+     * @return 子部门数
+     */
+    public int selectNormalChildrenDeptById(Long deptId);
+
     /**
      * 是否存在子节点
      * 

+ 8 - 0
ruoyi/src/main/java/com/ruoyi/project/system/service/ISysDeptService.java

@@ -51,6 +51,14 @@ public interface ISysDeptService
      */
     public SysDept selectDeptById(Long deptId);
 
+    /**
+     * 根据ID查询所有子部门(正常状态)
+     * 
+     * @param deptId 部门ID
+     * @return 子部门数
+     */
+    public int selectNormalChildrenDeptById(Long deptId);
+
     /**
      * 是否存在部门子节点
      * 

+ 11 - 0
ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java

@@ -108,6 +108,17 @@ public class SysDeptServiceImpl implements ISysDeptService
         return deptMapper.selectDeptById(deptId);
     }
 
+    /**
+     * 根据ID查询所有子部门(正常状态)
+     * 
+     * @param deptId 部门ID
+     * @return 子部门数
+     */
+    public int selectNormalChildrenDeptById(Long deptId)
+    {
+        return deptMapper.selectNormalChildrenDeptById(deptId);
+    }
+
     /**
      * 是否存在子节点
      * 

+ 4 - 0
ruoyi/src/main/resources/mybatis/system/SysDeptMapper.xml

@@ -71,6 +71,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		select * from sys_dept where find_in_set(#{deptId}, ancestors)
 	</select>
 	
+	<select id="selectNormalChildrenDeptById" parameterType="Long" resultType="java.lang.Integer">
+		select count(*) from sys_dept where status = 0 and del_flag = '0' and find_in_set(#{deptId}, ancestors)
+	</select>
+	
 	<select id="checkDeptNameUnique" resultMap="SysDeptResult">
 	    <include refid="selectDeptVo"/>
 		where dept_name=#{deptName} and parent_id = #{parentId}