Перейти к основному содержимому

Заменить руководителя узла оргструктуры

PUT 

/api/v1/clients/:clientId/orgStructures/:id/elements/:elementId/changeHeadManager

Описание метода

Атомарно заменяет одного руководителя (HEAD_MANAGER) узла оргструктуры на другого. Используется как для точечной замены руководителя в узле типа DEPARTMENT (где может быть несколько руководителей), так и для восстановления EMPLOYEE_AS_NODE-узла, у которого ключевой сотрудник уволен — на его место ставится новый активный сотрудник, узел сохраняет IDidВнутренний идентификатор сущности в формате UUID, генерируемый HRlink при создании. Неизменяемый, используется во всех внутренних операциях. и положение в дереве.

Активность старого руководителя не проверяется (допускается уволенный); активность нового руководителя обязательна, и связанный с ним пользователь должен подтвердить приглашение в систему. Имя узла этим методом не меняется — даже для EMPLOYEE_AS_NODE-узла: переименование выполняется отдельным запросом обновления узла.

Возвращает обновлённые метаданные структуры и сам узел с актуальными счётчиками и обновлённым составом headEmployees. Цепочка предков не возвращается — замена одного руководителя на другого не меняет счётчики узла или предков.

Тип узла (DEPARTMENT либо EMPLOYEE_AS_NODE) не ограничивает операцию — замена ключевого сотрудника EMPLOYEE_AS_NODE является основным сценарием восстановления узла с уволенным руководителем.

Самостоятельной идемпотентности нет: вызов с одинаковыми oldHeadManagerId и newHeadManagerId отклоняется ошибкой. Чтобы убедиться, что нужный сотрудник уже руководитель узла, — сначала прочитать карточку узла и не выполнять запрос при совпадении IDidВнутренний идентификатор сущности в формате UUID, генерируемый HRlink при создании. Неизменяемый, используется во всех внутренних операциях..

Валидации запроса

  • Тело запроса задано; oldHeadManagerId и newHeadManagerId заданы.

  • IDidВнутренний идентификатор сущности в формате UUID, генерируемый HRlink при создании. Неизменяемый, используется во всех внутренних операциях. клиента соответствует формату UUID; клиент существует, не удалён, к нему относится пользователь, выполняющий операцию.

  • У пользователя клиента есть право ORG_STRUCTURES_UPDATE.

  • IDidВнутренний идентификатор сущности в формате UUID, генерируемый HRlink при создании. Неизменяемый, используется во всех внутренних операциях. оргструктуры соответствует формату UUID; оргструктура существует, принадлежит клиенту, не является Юридической, находится в статусе DRAFT.

  • Если version задана — совпадает с актуальной версией оргструктуры в БД.

  • Режим редактирования оргструктуры свободен либо захвачен инициатором операции.

  • IDidВнутренний идентификатор сущности в формате UUID, генерируемый HRlink при создании. Неизменяемый, используется во всех внутренних операциях. узла соответствует формату UUID; узел существует в указанной оргструктуре.

  • oldHeadManagerId не равен newHeadManagerId.

  • Новый руководитель существует в тенантеTenantЭкземпляр системы HRlink на отдельном домене (например, company.hr-link.ru). Внутри одного тенанта может быть несколько пространств клиентов., принадлежит клиенту, активен (не уволен) и подтвердил приглашение в систему.

  • Новый руководитель ещё не состоит в узле в любой позиции.

  • Старый руководитель присутствует в узле в позиции HEAD_MANAGER.

  • Функционал оргструктур включён в настройках клиента.

Request

Responses

Успешная операция.