CREATE DEFINER=`root`@`%` FUNCTION `GetPositionInfo`(VPositionId VARCHAR(36)) RETURNS varchar(36) CHARSET utf8
BEGIN
-- 预期岗位结果
DECLARE vResult VARCHAR(36);
DECLARE vCount INT;
SET vResult = '00000000-0000-0000-0000-000000000000'; -- 返回结果集
SET vCount=0; -- 判断是那一层级
IF VPositionId <> '00000000-0000-0000-0000-000000000000' THEN
loop_label: loop
SET vResult=(SELECT PositionId
FROM oep.Position
WHERE oep.Position.PositionParentId=VPositionId LIMIT 1);
SET vCount=vCount+1;
IF vResult IS NULL THEN
IF vCount =1 THEN
SET vResult= '00000000-0000-0000-0000-000000000000';
ELSE
SET vResult=VPositionId;
END IF;
LEAVE loop_label;
ELSE
SET VPositionId=vResult;
END IF;
end loop;
END IF;
RETURN vResult;
END