Auditoria Simples
Sobre
Cria auditoria simples de uma entidade específica. É criado uma entrada na tabela de auditoria para cada operação do tipo inclusão, alteração ou exclusão de registro. Cada campo anotado que tenha sofrido qualquer alteração é associado com seu respectivo objeto de auditoria.
Funcionamento
Para auditar uma entidade é necessário anotar a classe com @AuditoriaSimples e passar como parâmetro os campos a serem auditados com seus respectivos labels.
Ao declarar os campos a serem auditados utilize a notação propriedade:label.
Em label definimos um identificador para o campo, caso não seja especificado o mesmo será inferido com o mesmo nome da propriedade.
Em propriedade declaramos o nome da propriedade existente na entidade que irá ser auditada.
@AuditoriaSimples(campos = { "nome:Nome", "supervisor.nome:Supervisor", "dependentes:Lista de Dependentes", "dependentes.nome:Nomes dos Dependentes:" })
public class FuncionarioVO extends ArenaBaseVO {
private String nome;
private String telefone;
private FuncionarioVO supervisor;
private Set<DependenteVO> dependentes = new LinkedHashSet<DependenteVO>();
//Getters e Setters ocultados para brevidade do exemplo
}public class FuncionarioCtr extends ArenaBaseCtr<FuncionarioVO> {
public Set<?> getAuditoria() throws Exception {
return repositorio().recuperarAuditoriaSimples(getObjetoAtual());
}
//try-catch ocultados para brevidade do exemplo
}<grid model="@{classecontrole.auditoria}" mold="paging" pageSize="5">
<columns>
<column width="2%" />
<column width="8%" label="Id" />
<column label="Data" />
<column label="Usuário" />
<column label="Operação" />
</columns>
<rows>
<row self="@{each=aud}" value="@{aud}">
<label value="@{aud.id}" />
<label value="@{aud.dataOperacaoFormatado}" />
<label value="@{aud.usuarioLogado}" />
<label value="@{aud.tipoOperacaoFormatado}" />
<detail open="false">
<grid model="@{aud.campos}">
<columns>
<column label="Campo" />
<column label="Propriedade" />
<column label="Valor Antigo" />
<column label="Valor Novo" />
</columns>
<rows>
<row self="@{each=campo}" value="@{campo}">
<label value="@{campo.labelCampo}" />
<label value="@{campo.nomeCampo}" />
<label value="@{campo.valorAntigo}" />
<label value="@{campo.valorNovo}" />
</row>
</rows>
</grid>
</detail>
</row>
</rows>
</grid>Métodos
AuditoriaSimplesVO
Método
Retorno
getId()
Long
Recupera o Id referente ao objeto da auditoria em si.
getCampos()
Set<CampoAuditadoVO>
Recupera a lista de campos alterados.
getDataOperacao()
Date
Recupera a data da auditoria.
getEntidade()
String
Recupera o nome completo da classe da entidade sendo auditada.
getObjetoId()
Long
Recupera o Id referente ao objeto da entidade que foi auditado.
getUsuarioLogado()
String
Recupera o identificador do usuário que efetuou a operação (crud).
getTipoOperacao()
Character
Recupera o caractere respectivo ao tipo da operação que iniciou a auditoria. Onde A representa alteração, I inclusão e E exclusão.
CampoAuditadoVO
Método
Retorno
getId()
Long
Recupera o Id referente ao objeto do campo auditado em si.
getLabelCampo()
String
Recupera o label associado ao campo auditado (declarado em campos na anotação).
getNomeCampo()
String
Recupera o nome do campo/propriedade que foi auditada (declarado em campos na anotação).
getValorAntigo()
String
Recupera o valor do campo antes da alteração, se houver.
getValorNovo()
String
Recupera o valor do campo após a alteração, se houver.
getEntidadePai()
String
Recupera o nome completo da classe referente ao objeto ao qual o campo/propriedade auditada pertence.
Exemplo: para objetoAninhado.outroObjeto.propriedade retornaria a classe respectiva ao outroObjeto.
getIdObjetoPai()
Long
Recupera o Id referente ao objeto ao qual o campo/propriedade pertence.
Exemplo: para objetoAninhado.outroObjeto.propriedade retornaria o Id respectivo aooutroObjeto.
getAuditoria()
AuditoriaSimplesVO
Recupera o objeto de auditoria no qual o campo auditado esta associado.
Last updated