|  | @ -237,27 +237,35 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
 | 
	
		
			
				|  |  |     @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |     @Override
 | 
	
		
			
				|  |  |     public void edit(SysOrgParam sysOrgParam) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         SysOrg sysOrg = this.querySysOrg(sysOrgParam);
 | 
	
		
			
				|  |  |         Long id = sysOrg.getId();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // 检测此人数据范围能不能操作这个公司
 | 
	
		
			
				|  |  |         boolean superAdmin = LoginContextHolder.me().isSuperAdmin();
 | 
	
		
			
				|  |  |         if (!superAdmin) {
 | 
	
		
			
				|  |  |             List<Long> dataScope = sysOrgParam.getDataScope();
 | 
	
		
			
				|  |  |             //数据范围为空
 | 
	
		
			
				|  |  |             if (ObjectUtil.isEmpty(dataScope)) {
 | 
	
		
			
				|  |  |                 throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
 | 
	
		
			
				|  |  |             } else if (!dataScope.contains(id)) {
 | 
	
		
			
				|  |  |                 //所操作的数据不在自己的数据范围内
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //数据范围中不包含本公司
 | 
	
		
			
				|  |  |             else if (!dataScope.contains(id)) {
 | 
	
		
			
				|  |  |                 throw new PermissionException(PermissionExceptionEnum.NO_PERMISSION_OPERATE);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //校验参数,检查是否存在相同的名称和编码
 | 
	
		
			
				|  |  |         checkParam(sysOrgParam, true);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //如果名称有变化,则修改对应员工的机构相关信息
 | 
	
		
			
				|  |  |         if (!sysOrg.getName().equals(sysOrgParam.getName())) {
 | 
	
		
			
				|  |  |             sysEmpService.updateEmpOrgInfo(sysOrg.getId(), sysOrg.getName());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         BeanUtil.copyProperties(sysOrgParam, sysOrg);
 | 
	
		
			
				|  |  |         this.fillPids(sysOrg);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //不能修改状态,用修改状态接口修改状态
 | 
	
		
			
				|  |  |         sysOrg.setStatus(null);
 | 
	
		
			
				|  |  |         this.updateById(sysOrg);
 | 
	
	
		
			
				|  | @ -358,6 +366,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
 | 
	
		
			
				|  |  |         String name = sysOrgParam.getName();
 | 
	
		
			
				|  |  |         String code = sysOrgParam.getCode();
 | 
	
		
			
				|  |  |         Long pid = sysOrgParam.getPid();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //如果父id不是根节点
 | 
	
		
			
				|  |  |         if (!pid.equals(0L)) {
 | 
	
		
			
				|  |  |             SysOrg pOrg = this.getById(pid);
 | 
	
	
		
			
				|  | @ -366,6 +375,14 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
 | 
	
		
			
				|  |  |                 throw new ServiceException(SysOrgExceptionEnum.ORG_NOT_EXIST);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // 如果是编辑,父id和自己的id不能一致
 | 
	
		
			
				|  |  |         if (isExcludeSelf) {
 | 
	
		
			
				|  |  |             if (sysOrgParam.getId().equals(sysOrgParam.getPid())) {
 | 
	
		
			
				|  |  |                 throw new ServiceException(SysOrgExceptionEnum.ID_CANT_EQ_PID);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         LambdaQueryWrapper<SysOrg> queryWrapperByName = new LambdaQueryWrapper<>();
 | 
	
		
			
				|  |  |         queryWrapperByName.eq(SysOrg::getName, name)
 | 
	
		
			
				|  |  |                 .ne(SysOrg::getStatus, CommonStatusEnum.DELETED.getCode());
 |