RuoYi
2021-06-10 37d4080b22325bd4ed476acd4f2e3a19f55ff52f
优化部门父级启用状态
已修改3个文件
31 ■■■■ 文件已修改
src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mybatis/system/SysDeptMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/project/system/mapper/SysDeptMapper.java
@@ -94,11 +94,11 @@
    public int updateDept(SysDept dept);
    /**
     * 修改所在部门的父级部门状态
     * 修改所在部门正常状态
     * 
     * @param dept 部门
     * @param deptIds 部门ID组
     */
    public void updateDeptStatus(SysDept dept);
    public void updateDeptStatusNormal(Long[] deptIds);
    /**
     * 修改子元素关系
src/main/java/com/ruoyi/project/system/service/impl/SysDeptServiceImpl.java
@@ -7,6 +7,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.exception.CustomException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
@@ -211,7 +212,7 @@
        if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()))
        {
            // 如果该部门是启用状态,则启用该部门的所有上级部门
            updateParentDeptStatus(dept);
            updateParentDeptStatusNormal(dept);
        }
        return result;
    }
@@ -221,12 +222,11 @@
     * 
     * @param dept 当前部门
     */
    private void updateParentDeptStatus(SysDept dept)
    private void updateParentDeptStatusNormal(SysDept dept)
    {
        String updateBy = dept.getUpdateBy();
        dept = deptMapper.selectDeptById(dept.getDeptId());
        dept.setUpdateBy(updateBy);
        deptMapper.updateDeptStatus(dept);
        String ancestors = dept.getAncestors();
        Long[] deptIds = Convert.toLongArray(ancestors);
        deptMapper.updateDeptStatusNormal(deptIds);
    }
    /**
src/main/resources/mybatis/system/SysDeptMapper.xml
@@ -140,14 +140,11 @@
        </foreach>
    </update>
     
     <update id="updateDeptStatus" parameterType="SysDept">
         update sys_dept
         <set>
             <if test="status != null and status != ''">status = #{status},</if>
             <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
             update_time = sysdate()
        </set>
         where find_in_set(#{deptId}, ancestors)
    <update id="updateDeptStatusNormal" parameterType="Long">
         update sys_dept set status = '0' where dept_id in
         <foreach collection="array" item="deptId" open="(" separator="," close=")">
            #{deptId}
        </foreach>
    </update>
    
    <delete id="deleteDeptById" parameterType="Long">