filtraIncidentesColaboradorNaData

Customiza os incidentes gerados para um colaborador, em um dia específico:

Sintaxe: filtraIncidentesColaboradorNaData(int numEmp, int tipCol, int numCad, LocalDate datApu, List<Integer> incidentes);

Parâmetros:

Nome

Tipo

Descrição

numEmp

int

Empresa do colaborador que está sendo processado.

tipCol

int

Tipo do colaborador que está sendo processado.

numCad

int

Cadastro do colaborador que está sendo processado.

datApu

LocalDate

Data que está sendo apurada e utilizada para gerar incidentes.

incidentes

int

Lista com os códigos dos incidentes em potencial para o colaborador na data passada como parâmetro.

Tipo de retorno: Retorna uma lista com os códigos dos incidentes que devem ser gerados para o colaborador no dia processado. Para não gerar incidentes para o colaborador neste dia, basta retornar uma lista vazia.

Contexto: Contexto de geração de incidentes. A regra precisa ter como padrão o pacote custom.br.com.senior.incidente e nome da classe RegraIncidenteFiltro e implementar na classe PontoRegraIncidenteFiltro.

Exemplo:
package custom.br.com.senior.incidente;

import java.util.List;
import java.time.LocalDate;
import br.com.senior.rh.entity.IColaboradorPonto;
import com.senior.util.config.Configuration;

public class RegraIncidenteFiltro implements PontoRegraIncidenteFiltro {
    @Override
    public List<Integer> filtraIncidentesColaboradorNaData(ContextoIncidente contextoIncidente, List<Integer> incidentes) {
        System.out.println("Executou a regra " + this.getClass().getCanonicalName());

        final int empresa = 1;
        final int tipoColaborador = 1;
        final int colaborador = 1;
        final int codigoAlerta = 14;
        LocalDate dia04 = LocalDate.of(2026, 5, 4);

        IColaboradorPonto colaboradorPonto = contextoIncidente.getColaborador();

        if (dia04.isEqual(contextoIncidente.getDataApuracao()) && empresa == colaboradorPonto.getNumEmp() && tipoColaborador == colaboradorPonto.getTipCol() && colaborador == colaboradorPonto.getNumCad()) {
            for (int i = 0; i < incidentes.size(); i++) {
                if (codigoAlerta == incidentes.get(i)) {
                    incidentes.remove(i);
                    break;
                }
            }
        }

        String regraExecutadoComSucesso = Boolean.FALSE.toString();
        if (!incidentes.contains(new Integer(codigoAlerta))) {
            regraExecutadoComSucesso = Boolean.TRUE.toString();
        }
        Configuration.set(getClass().getName(), regraExecutadoComSucesso);
        return incidentes;
    }
}

Este artigo ajudou você?