jiangqs
2023-09-04 c97706c3cc213b7db3d381e8a0435ff0ef9a04d6
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysDeptServiceImpl.java
@@ -1,11 +1,5 @@
package com.ruoyi.system.service.impl.sys;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.text.Convert;
@@ -16,10 +10,21 @@
import com.ruoyi.system.api.domain.poji.sys.SysDept;
import com.ruoyi.system.api.domain.poji.sys.SysRole;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.domain.pojo.sys.SysDeptMenu;
import com.ruoyi.system.domain.vo.TreeSelect;
import com.ruoyi.system.mapper.sys.SysDeptMapper;
import com.ruoyi.system.mapper.sys.SysDeptMenuMapper;
import com.ruoyi.system.mapper.sys.SysRoleMapper;
import com.ruoyi.system.service.staff.SysWxCpService;
import com.ruoyi.system.service.sys.ISysDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 部门管理 服务实现
@@ -34,6 +39,12 @@
    @Autowired
    private SysRoleMapper roleMapper;
    @Autowired
    private SysDeptMenuMapper deptMenuMapper;
    @Resource
    private SysWxCpService sysWxCpService;
    /**
     * 查询部门管理数据
@@ -218,7 +229,46 @@
            throw new ServiceException("部门停用,不允许新增");
        }
        dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
        return deptMapper.insertDept(dept);
        //新增部门
        int i = deptMapper.insertDept(dept);
        if(dept.getMenuIds()!=null||dept.getStaffMenuIds()!=null){
            return insertDeptMenu(dept);
        }else{
            return i;
        }
    }
    /**
     * 新增角色菜单信息
     *
     * @param dept 部门对象
     */
    public int insertDeptMenu(SysDept dept)
    {
        int rows = 1;
        // 新增用户与角色管理
        List<SysDeptMenu> list = new ArrayList<SysDeptMenu>();
        for (Long menuId : dept.getMenuIds())
        {
            SysDeptMenu rm = new SysDeptMenu();
            rm.setDeptId(dept.getDeptId());
            rm.setMenuId(menuId);
            rm.setMenuFrom(1);
            list.add(rm);
        }
        for(Long menuId : dept.getStaffMenuIds()){
            SysDeptMenu rm = new SysDeptMenu();
            rm.setDeptId(dept.getDeptId());
            rm.setMenuId(menuId);
            rm.setMenuFrom(2);
            list.add(rm);
        }
        if (list.size() > 0)
        {
            rows = deptMenuMapper.batchDeptMenu(list);
        }
        return rows;
    }
    /**
@@ -246,6 +296,9 @@
            // 如果该部门是启用状态,则启用该部门的所有上级部门
            updateParentDeptStatusNormal(dept);
        }
        // 删除角色与菜单关联
        deptMenuMapper.deleteDeptMenuByDeptId(dept.getDeptId());
        insertDeptMenu(dept);
        return result;
    }
@@ -290,6 +343,10 @@
    @Override
    public int deleteDeptById(Long deptId)
    {
        SysDept sysDept = this.selectDeptById(deptId);
        if(sysDept.getWxDeptId()!=null){
            sysWxCpService.deleteWxCpDept(sysDept.getWxDeptId());
        }
        return deptMapper.deleteDeptById(deptId);
    }
@@ -335,4 +392,19 @@
    {
        return getChildList(list, t).size() > 0 ? true : false;
    }
    /**
     * @description  通过微信部门id获取部门
     * @author  jqs
     * @date    2023/8/17 16:21
     * @param wxDeptId
     * @return  SysDept
     */
    @Override
    public SysDept getByWxDeptId(Long wxDeptId){
        return deptMapper.getByWxDeptId(wxDeptId);
    }
}