package br.usp.nds.remote.persistencia; import java.io.Serializable; import java.util.Date; import java.util.List; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.Transient; @Entity public class Evento extends Entidade implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int codigo; private String descricao; private Date data; @ManyToOne private Sensor sensor; @ManyToOne private Leitura leitura; @Transient private String codigosEmbarcacoes; @Transient private String inicio; @Transient private String fim; public List listarUltimos() { return em.createQuery("SELECT e FROM Evento e WHERE e.sensor.embarcacao.codigo = " + codigosEmbarcacoes + " ORDER BY e.codigo DESC").setMaxResults(5).getResultList(); } public List listar() { String sql = "SELECT e FROM Evento e WHERE 1 = 1"; if (codigosEmbarcacoes == null || codigosEmbarcacoes.isEmpty()) { codigosEmbarcacoes = "0"; } sql += " AND e.sensor.embarcacao.codigo IN (" + codigosEmbarcacoes + ")"; if (inicio != null && !inicio.isEmpty()) { sql += " AND YEAR(e.data) * 10000 + MONTH(e.data) * 100 + DAY(e.data) >= " + inicio.substring(6, 10) + inicio.substring(3, 5) + inicio.substring(0, 2); } if (fim != null && !fim.isEmpty()) { sql += " AND YEAR(e.data) * 10000 + MONTH(e.data) * 100 + DAY(e.data) <= " + fim.substring(6, 10) + fim.substring(3, 5) + fim.substring(0, 2); } sql += " ORDER BY e.codigo"; return em.createQuery(sql).getResultList(); } public String getCodigosEmbarcacoes() { return codigosEmbarcacoes; } public void setCodigosEmbarcacoes(String codigosEmbarcacoes) { this.codigosEmbarcacoes = codigosEmbarcacoes; } public String getInicio() { return inicio; } public void setInicio(String inicio) { this.inicio = inicio; } public String getFim() { return fim; } public void setFim(String fim) { this.fim = fim; } public Date getData() { return data; } public void setData(Date data) { this.data = data; } public Leitura getLeitura() { return leitura; } public void setLeitura(Leitura leitura) { this.leitura = leitura; } public Sensor getSensor() { return sensor; } public void setSensor(Sensor sensor) { this.sensor = sensor; } public int getCodigo() { return codigo; } public void setCodigo(int codigo) { this.codigo = codigo; } public String getDescricao() { return descricao; } public void setDescricao(String descricao) { this.descricao = descricao; } }