Regra de montagem de hierarquia

É utilizada para disponibilizar ao usuário uma maneira de atribuir gestores a um colaborador específico, mesmo que a hierarquia for montada através de um posto de trabalho.

Exemplo:

Regra de customização para gerar a tabela de hierarquia:

Essa regra o gestor irá executar diariamente e para isso é necessário o consultor:

  • Criar a classe custom.senior.hierarquia.RegraHierarquiaPonto e extends de PontoRegraHierarquiaPonto;
  • Implementar o método buscaGestor (int empresa, int tipoColaborador, int cadastro), que deve retornar a lista dos gestores liderados.

<div class="Code"><p class="Ident1"><span class="bordo">public class</span> PontoRegraHierarquiaPontoPostoTrabalho <span class="bordo">extends</span> PontoRegraHierarquiaPonto {</p><p></p><p class="Ident2"><span class="anotacao">@Override</span></p><p class="Ident2"><span class="bordo">public</span> List&#x3C;Colaborador> buscaGestor(<span class="bordo" style="font-weight: bold;">int</span><span class="bordo">empresa</span>, <span class="bordo">int</span><span class="bordo">tipoColaborador</span>, <span class="bordo">int</span><span class="bordo">cadastro</span>) {</p><p></p><p class="Ident4">HistoricoCargo <span class="bordo" style="text-decoration: underline; font-weight: normal;">historicoCargo</span> = getContextoHierarquiaPonto().getHistoricoCargo(<span class="bordo" style="font-weight: bold;">new</span> LocalDate());</p><p class="Ident4">HistoricoApuracao <span class="bordo">historicoApuracao</span> = getContextoHierarquiaPonto().getHistoricoApuracao(<span class="bordo">new</span> LocalDate());</p><p class="Ident4">HistoricoCentroCusto <span class="bordo" style="text-decoration: underline; font-weight: normal;">historicoCentroCusto</span> = getContextoHierarquiaPonto().getHistoricoCentrodeCusto(<span class="bordo">new</span> LocalDate());</p><p class="Ident4">HistoricoFilial <span class="bordo" style="text-decoration: underline; font-weight: normal;">historicoFilial</span> = getContextoHierarquiaPonto().getHistoricoFilial(<span class="bordo">new</span> LocalDate());</p><p class="Ident4">HistoricoLocal <span class="bordo" style="text-decoration: underline; font-weight: normal;">historicoLocal</span> = getContextoHierarquiaPonto().getHistoricoLocal(<span class="bordo">new</span> LocalDate());</p><p class="Ident4">HistoricoSindicato <span class="bordo" style="text-decoration: underline; font-weight: normal;">historicoSindicato</span> = getContextoHierarquiaPonto().getHistoricoSindicato(<span class="bordo">new</span> LocalDate());</p><p></p><p></p><p class="Ident4">List&#x3C;Colaborador> <span class="bordo">gestores</span> = getContextoHierarquiaPonto().buscaGestorPostoTrabalho(<span class="bordo">empresa</span>, <span class="bordo">tipoColaborador</span>, <span class="bordo">cadastro</span>);</p><p class="Ident4"></p><p class="Ident4"><span class="bordo">if</span>(<span class="bordo">gestores</span>.isEmpty()) {</p><p></p><p class="Ident5">List&#x3C;Colaborador> <span class="bordo">colaboradores</span> = <span class="bordo">new</span> ArrayList&#x3C;Colaborador>();</p><p class="Ident5"></p><p class="Ident5"><span class="bordo">colaboradores</span>.add(<span class="bordo">new</span> Colaborador(<span class="bordo">empresa</span>, <span class="bordo">tipoColaborador</span>, <span class="bordo">cadastro</span>));</p><p></p><p class="Ident4">}</p><p></p><p class="Ident4"><span class="bordo">return</span><span class="bordo">gestores</span>;</p><p class="Ident2">}</p><p></p><p class="Ident1">}</p></div>

Observação

Para ter acesso ao métodos da regra, o consultor deve utilizar o método getContextoHierarquiaPonto().

Para buscar o gestor do posto de trabalho, deve utilizar: getContextoHierarquiaPonto().buscaGestorPostoTrabalho(empresa, tipoColaborador, cadastro), que retorna uma lista de gestores.

Importante

Para que um campo de usuário customizado esteja com os valores atualizados, sem a necessidade de atualização da página, é necessário que a regra busque este valor através da entidade da tela, utilizando o método getField().getValue() do cursor e especificando o campo da seguinte maneira:

Object value = cursor.getField(<nome do campo de usuário>).getValue(<entidade que representa tabela>)

Contexto disponível: Contexto de geração de incidentes.

Este artigo ajudou você?