diff --git a/pom.xml b/pom.xml index 7e960d7ca..d8d64fe49 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.32.2 + 1.33.0 diff --git a/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcada.java b/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcada.java index 5e46bebe1..17c2a154c 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcada.java +++ b/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcada.java @@ -20,15 +20,22 @@ import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; +import javax.persistence.Transient; import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; import org.hibernate.annotations.Where; +import br.com.rjconsultores.auditador.annotations.AuditarClasse; +import br.com.rjconsultores.auditador.annotations.AuditarID; +import br.com.rjconsultores.auditador.annotations.NaoAuditar; +import br.com.rjconsultores.auditador.interfaces.Auditavel; + @Entity @Table(name = "OPERADOR_EMBARCADA") +@AuditarClasse(nome = "OPERADOR_EMBARCADA", tela = "auditarClasse.OperadorEmbarcada") @SequenceGenerator(name = "OPERADOR_EMBARCADA_SEQ", sequenceName = "OPERADOR_EMBARCADA_SEQ", allocationSize = 1) -public class OperadorEmbarcada implements Serializable { +public class OperadorEmbarcada implements Serializable, Auditavel { private static final long serialVersionUID = 1L; @@ -36,6 +43,7 @@ public class OperadorEmbarcada implements Serializable { @Basic(optional = false) @GeneratedValue(strategy = GenerationType.AUTO, generator = "OPERADOR_EMBARCADA_SEQ") @Column(name = "OPERADOR_EMBARCADA_ID") + @AuditarID private Long operadorEmbarcadaId; @OneToOne @@ -58,6 +66,10 @@ public class OperadorEmbarcada implements Serializable { @Column(name = "ACTIVO") private Boolean activo; + + @Transient + @NaoAuditar + private OperadorEmbarcada operadorClone; public Long getOperadorEmbarcadaId() { return operadorEmbarcadaId; @@ -137,5 +149,21 @@ public class OperadorEmbarcada implements Serializable { public String getName() { return usuario.getName(); + } + + @Override + public void clonar() throws CloneNotSupportedException { + operadorClone = new OperadorEmbarcada(); + operadorClone = (OperadorEmbarcada) this.clone(); + } + + @Override + public OperadorEmbarcada getCloneObject() throws CloneNotSupportedException { + return operadorClone; + } + + @Override + public String getTextoInclusaoExclusao() { + return String.format("ID [%s]", getOperadorEmbarcadaId()); } } diff --git a/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcadaLinha.java b/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcadaLinha.java index ed7fe139a..f78cd5fbe 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcadaLinha.java +++ b/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcadaLinha.java @@ -13,11 +13,18 @@ import javax.persistence.ManyToOne; import javax.persistence.OneToOne; import javax.persistence.SequenceGenerator; import javax.persistence.Table; +import javax.persistence.Transient; + +import br.com.rjconsultores.auditador.annotations.AuditarClasse; +import br.com.rjconsultores.auditador.annotations.AuditarID; +import br.com.rjconsultores.auditador.annotations.NaoAuditar; +import br.com.rjconsultores.auditador.interfaces.Auditavel; @Entity @Table(name = "OPERADOR_EMBARCADA_LINHA") +@AuditarClasse(nome = "OPERADOR_EMBARCADA_LINHA", tela = "auditarClasse.OperadorEmbarcadaLinha") @SequenceGenerator(name = "OPERADOR_EMBARCADA_LINHA_SEQ", sequenceName = "OPERADOR_EMBARCADA_LINHA_SEQ", allocationSize = 1) -public class OperadorEmbarcadaLinha implements Serializable { +public class OperadorEmbarcadaLinha implements Serializable, Auditavel { private static final long serialVersionUID = 1L; @@ -25,6 +32,7 @@ public class OperadorEmbarcadaLinha implements Serializable { @Basic(optional = false) @GeneratedValue(strategy = GenerationType.AUTO, generator = "OPERADOR_EMBARCADA_LINHA_SEQ") @Column(name = "OPERADOR_EMBARCADA_LINHA_ID") + @AuditarID private Long operadorEmbarcadaLinhaId; @ManyToOne @@ -37,6 +45,10 @@ public class OperadorEmbarcadaLinha implements Serializable { @Column(name = "ACTIVO") private Boolean activo; + + @Transient + @NaoAuditar + private OperadorEmbarcadaLinha operadorClone; public Long getOperadorEmbarcadaLinhaId() { return operadorEmbarcadaLinhaId; @@ -70,4 +82,27 @@ public class OperadorEmbarcadaLinha implements Serializable { this.ruta = ruta; } + @Override + public void clonar() throws CloneNotSupportedException { + operadorClone = new OperadorEmbarcadaLinha(); + operadorClone = (OperadorEmbarcadaLinha) this.clone(); + } + + @Override + public OperadorEmbarcadaLinha getCloneObject() throws CloneNotSupportedException { + return operadorClone; + } + + @Override + public String getTextoInclusaoExclusao() { + return String.format("ID [%s]", getOperadorEmbarcadaLinhaId() + "- linha: " + ruta.getRutaId() + " - " + ruta.getDescruta()); + } + + @Override + public String toString() { + return ruta.getNumRuta(); + } + + + } diff --git a/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcadaServico.java b/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcadaServico.java index 19ae14282..6ae07afab 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcadaServico.java +++ b/src/com/rjconsultores/ventaboletos/entidad/OperadorEmbarcadaServico.java @@ -14,11 +14,18 @@ import javax.persistence.ManyToOne; import javax.persistence.OneToOne; import javax.persistence.SequenceGenerator; import javax.persistence.Table; +import javax.persistence.Transient; + +import br.com.rjconsultores.auditador.annotations.AuditarClasse; +import br.com.rjconsultores.auditador.annotations.AuditarID; +import br.com.rjconsultores.auditador.annotations.NaoAuditar; +import br.com.rjconsultores.auditador.interfaces.Auditavel; @Entity @Table(name = "OPERADOR_EMBARCADA_SERVICO") +@AuditarClasse(nome = "OPERADOR_EMBARCADA_SERVICO", tela = "auditarClasse.OperadorEmbarcadaServico") @SequenceGenerator(name = "OPERADOR_EMBARCADA_SERVICO_SEQ", sequenceName = "OPERADOR_EMBARCADA_SERVICO_SEQ", allocationSize = 1) -public class OperadorEmbarcadaServico implements Serializable { +public class OperadorEmbarcadaServico implements Serializable, Auditavel { private static final long serialVersionUID = 1L; @@ -26,6 +33,7 @@ public class OperadorEmbarcadaServico implements Serializable { @Basic(optional = false) @GeneratedValue(strategy = GenerationType.AUTO, generator = "OPERADOR_EMBARCADA_SERVICO_SEQ") @Column(name = "OPERADOR_EMBARCADA_SERVICO_ID") + @AuditarID private Long operadorEmbarcadaServicoId; @ManyToOne @@ -38,6 +46,10 @@ public class OperadorEmbarcadaServico implements Serializable { @Column(name = "ACTIVO") private Boolean activo; + + @Transient + @NaoAuditar + private OperadorEmbarcadaServico operadorClone; public Long getOperadorEmbarcadaServicoId() { return operadorEmbarcadaServicoId; @@ -69,5 +81,28 @@ public class OperadorEmbarcadaServico implements Serializable { public void setCorrida(EsquemaCorrida corrida) { this.corrida = corrida; + } + + @Override + public void clonar() throws CloneNotSupportedException { + operadorClone = new OperadorEmbarcadaServico(); + operadorClone = (OperadorEmbarcadaServico) this.clone(); + } + + @Override + public OperadorEmbarcadaServico getCloneObject() throws CloneNotSupportedException { + return operadorClone; + } + + @Override + public String getTextoInclusaoExclusao() { + return String.format("ID [%s]", getOperadorEmbarcadaServicoId() + "- servico: " + corrida.getNumCorrida() + " - " + corrida.getInfoCorrida()); + } + + @Override + public String toString() { + return "" + corrida.getNumCorrida(); } + + } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/OperadorEmbarcadaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/OperadorEmbarcadaServiceImpl.java index 5ba7c3136..745ce2a5c 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/OperadorEmbarcadaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/OperadorEmbarcadaServiceImpl.java @@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.service.impl; import java.util.Date; import java.util.List; +import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -17,6 +18,7 @@ import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVentaVO; import com.rjconsultores.ventaboletos.exception.BusinessException; +import com.rjconsultores.ventaboletos.service.LogAuditoriaService; import com.rjconsultores.ventaboletos.service.OperadorEmbarcadaService; import com.rjconsultores.ventaboletos.vo.corrida.CorridaVO; @@ -29,6 +31,10 @@ public class OperadorEmbarcadaServiceImpl implements OperadorEmbarcadaService { private OperadorEmbarcadaServicoDAO opServicoDAO; @Autowired private OperadorEmbarcadaLinhaDAO opLinhaDAO; + + @Autowired + private LogAuditoriaService logAuditoriaService; + private static final Logger log = Logger.getLogger(OperadorEmbarcadaServiceImpl.class); @Transactional(rollbackFor = BusinessException.class) @Override @@ -57,8 +63,18 @@ public class OperadorEmbarcadaServiceImpl implements OperadorEmbarcadaService { if (operador.getOperadorEmbarcadaId() == null) { operador = operadorDAO.suscribir(operador); + logAuditoriaService.auditar(null, operador, null); } else { + OperadorEmbarcada operadorClone = null; + try { + operadorClone = operador.getCloneObject(); + } catch (CloneNotSupportedException e) { + log.error("Erro ao clonar oobjeto OperadorEmbarcada, erro: ",e); + } + operador = operadorDAO.actualizacion(operador); + + logAuditoriaService.auditar(operadorClone, operador, null); } return operador; } @@ -66,12 +82,22 @@ public class OperadorEmbarcadaServiceImpl implements OperadorEmbarcadaService { @Transactional @Override public void apagar(OperadorEmbarcada operador) throws BusinessException { + logAuditoriaService.auditarExclusao(operador, null); operadorDAO.borrar(operador); + } @Override public OperadorEmbarcada buscarOperadorEmbarcadaPorUsuario(Integer idUsuario) { - return operadorDAO.buscarOperadorEmbarcadaPorUsuario(idUsuario); + OperadorEmbarcada operador = operadorDAO.buscarOperadorEmbarcadaPorUsuario(idUsuario); + try { + if(operador != null) { + operador.clonar(); + } + } catch (CloneNotSupportedException e) { + } + + return operador; } @Override