| | |
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | | import org.springframework.stereotype.Service;
|
| | | import com.ruoyi.common.constant.UserConstants;
|
| | | import com.ruoyi.common.exception.CustomException;
|
| | | import com.ruoyi.common.core.text.Convert;
|
| | | import com.ruoyi.common.exception.ServiceException;
|
| | | import com.ruoyi.common.utils.SecurityUtils;
|
| | | import com.ruoyi.common.utils.StringUtils;
|
| | | import com.ruoyi.common.utils.spring.SpringUtils;
|
| | | import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
|
| | | import com.ruoyi.framework.web.domain.TreeSelect;
|
| | | import com.ruoyi.project.system.domain.SysDept;
|
| | | import com.ruoyi.project.system.domain.SysRole;
|
| | | import com.ruoyi.project.system.domain.SysUser;
|
| | | import com.ruoyi.project.system.mapper.SysDeptMapper;
|
| | | import com.ruoyi.project.system.mapper.SysRoleMapper;
|
| | | import com.ruoyi.project.system.service.ISysDeptService;
|
| | |
|
| | | /**
|
| | |
| | | {
|
| | | @Autowired
|
| | | private SysDeptMapper deptMapper;
|
| | | |
| | | @Autowired
|
| | | private SysRoleMapper roleMapper;
|
| | |
|
| | | /**
|
| | | * 查询部门管理数据
|
| | |
| | | @Override
|
| | | public List<Integer> selectDeptListByRoleId(Long roleId)
|
| | | {
|
| | | return deptMapper.selectDeptListByRoleId(roleId);
|
| | | SysRole role = roleMapper.selectRoleById(roleId);
|
| | | return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly());
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | }
|
| | |
|
| | | /**
|
| | | * 校验部门是否有数据权限
|
| | | * |
| | | * @param deptId 部门id
|
| | | */
|
| | | @Override
|
| | | public void checkDeptDataScope(Long deptId)
|
| | | {
|
| | | if (!SysUser.isAdmin(SecurityUtils.getUserId()))
|
| | | {
|
| | | SysDept dept = new SysDept();
|
| | | dept.setDeptId(deptId);
|
| | | List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
|
| | | if (StringUtils.isEmpty(depts))
|
| | | {
|
| | | throw new ServiceException("没有权限访问部门数据!");
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 新增保存部门信息
|
| | | *
|
| | | * @param dept 部门信息
|
| | |
| | | // 如果父节点不为正常状态,则不允许新增子节点
|
| | | if (!UserConstants.DEPT_NORMAL.equals(info.getStatus()))
|
| | | {
|
| | | throw new CustomException("部门停用,不允许新增");
|
| | | throw new ServiceException("部门停用,不允许新增");
|
| | | }
|
| | | dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
|
| | | return deptMapper.insertDept(dept);
|
| | |
| | | updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors);
|
| | | }
|
| | | int result = deptMapper.updateDept(dept);
|
| | | if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()))
|
| | | if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
|
| | | && !StringUtils.equals("0", dept.getAncestors()))
|
| | | {
|
| | | // 如果该部门是启用状态,则启用该部门的所有上级部门
|
| | | updateParentDeptStatus(dept);
|
| | | updateParentDeptStatusNormal(dept);
|
| | | }
|
| | | return result;
|
| | | }
|
| | |
| | | *
|
| | | * @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);
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | List<SysDept> children = deptMapper.selectChildrenDeptById(deptId);
|
| | | for (SysDept child : children)
|
| | | {
|
| | | child.setAncestors(child.getAncestors().replace(oldAncestors, newAncestors));
|
| | | child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors));
|
| | | }
|
| | | if (children.size() > 0)
|
| | | {
|