RuoYi
2021-06-11 41b7e62b026966b15d0b378b4726f0735aa27466
优化部门父级启用状态
3 files modified
31 ■■■■ changed files
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java 6 ●●●● patch | view | raw | blame | history
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java 12 ●●●● patch | view | raw | blame | history
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml 13 ●●●●● patch | view | raw | blame | history
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -96,11 +96,11 @@
    public int updateDept(SysDept dept);
    /**
     * 修改所在部门的父级部门状态
     * 修改所在部门正常状态
     * 
     * @param dept 部门
     * @param deptIds 部门ID组
     */
    public void updateDeptStatus(SysDept dept);
    public void updateDeptStatusNormal(Long[] deptIds);
    /**
     * 修改子元素关系
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -8,6 +8,7 @@
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.CustomException;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.system.api.domain.SysDept;
@@ -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);
    }
    /**
ruoyi-modules/ruoyi-system/src/main/resources/mapper/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">