From 204c0d0bd652f5268efeff5a32ebaa536bdc5789 Mon Sep 17 00:00:00 2001 From: leonardo Date: Fri, 17 May 2019 17:56:04 +0000 Subject: [PATCH] 14394: Melhoria performace Dispositivo Venda Embarcada fixes bug#14394 dev:valdir qua:marcelo git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@93415 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/dao/BoletoDAO.java | 5 +- .../dao/hibernate/BoletoHibernateDAO.java | 30 ++++++++++ ...PtoVtaUsuarioUltimaVendaDispositivoVO.java | 55 +++++++++++++++++++ 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 src/com/rjconsultores/ventaboletos/vo/embarcada/PtoVtaUsuarioUltimaVendaDispositivoVO.java diff --git a/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java b/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java index 26369ecc7..92a4951c0 100644 --- a/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/BoletoDAO.java @@ -4,7 +4,10 @@ */ package com.rjconsultores.ventaboletos.dao; +import java.util.List; + import com.rjconsultores.ventaboletos.entidad.Boleto; +import com.rjconsultores.ventaboletos.vo.embarcada.PtoVtaUsuarioUltimaVendaDispositivoVO; /** * @@ -13,5 +16,5 @@ import com.rjconsultores.ventaboletos.entidad.Boleto; public interface BoletoDAO extends GenericDAO { public Boleto buscarPeloImeiDoDispositivo(String imei); - + public List buscarUltimaVendaDosDispositivosEmbarcada(); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java index cfb71fd40..8cd725943 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/BoletoHibernateDAO.java @@ -4,16 +4,23 @@ */ package com.rjconsultores.ventaboletos.dao.hibernate; +import java.util.List; + import org.hibernate.Criteria; +import org.hibernate.SQLQuery; import org.hibernate.SessionFactory; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; +import org.hibernate.transform.AliasToBeanResultTransformer; +import org.hibernate.type.LongType; +import org.hibernate.type.StringType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Repository; import com.rjconsultores.ventaboletos.dao.BoletoDAO; import com.rjconsultores.ventaboletos.entidad.Boleto; +import com.rjconsultores.ventaboletos.vo.embarcada.PtoVtaUsuarioUltimaVendaDispositivoVO; /** * @@ -27,6 +34,29 @@ public class BoletoHibernateDAO extends GenericHibernateDAO implem setSessionFactory(factory); } + public List buscarUltimaVendaDosDispositivosEmbarcada(){ + StringBuilder sb = new StringBuilder(); + sb.append("select p.puntoventa_id as puntoventaId, u.usuario_id as usuarioId, u.nombusuario as nombusuario, p.nombpuntoventa as nombpuntoventa, b.imei_dispositivo_embarcada as imei "); + sb.append("from "); + sb.append(" boleto b "); + sb.append(" left join usuario u on u.usuario_id = b.usuario_id "); + sb.append(" left join punto_venta p on p.puntoventa_id = b.puntoventa_id "); + sb.append("where "); + sb.append(" b.boleto_id in (select max(boleto_id) "); + sb.append("from boleto "); + sb.append("where imei_dispositivo_embarcada is not null "); + sb.append("group by imei_dispositivo_embarcada)"); + + + SQLQuery qry = getSession().createSQLQuery(sb.toString()) + .addScalar("puntoventaId", LongType.INSTANCE) + .addScalar("usuarioId", LongType.INSTANCE) + .addScalar("nombusuario", StringType.INSTANCE) + .addScalar("nombpuntoventa", StringType.INSTANCE) + .addScalar("imei", StringType.INSTANCE); + qry.setResultTransformer(new AliasToBeanResultTransformer(PtoVtaUsuarioUltimaVendaDispositivoVO.class)); + return qry.list(); + } public Boleto buscarPeloImeiDoDispositivo(String imei) { Criteria c = getSession().createCriteria(getPersistentClass()); diff --git a/src/com/rjconsultores/ventaboletos/vo/embarcada/PtoVtaUsuarioUltimaVendaDispositivoVO.java b/src/com/rjconsultores/ventaboletos/vo/embarcada/PtoVtaUsuarioUltimaVendaDispositivoVO.java new file mode 100644 index 000000000..9490e4c62 --- /dev/null +++ b/src/com/rjconsultores/ventaboletos/vo/embarcada/PtoVtaUsuarioUltimaVendaDispositivoVO.java @@ -0,0 +1,55 @@ +package com.rjconsultores.ventaboletos.vo.embarcada; + +public class PtoVtaUsuarioUltimaVendaDispositivoVO { + private Long puntoventaId; + private Long usuarioId; + private String nombusuario; + private String nombpuntoventa; + private String imei; + + public PtoVtaUsuarioUltimaVendaDispositivoVO(){} + + public PtoVtaUsuarioUltimaVendaDispositivoVO(Long puntoventaId, Long usuarioId, String nombusuario, String nombpuntoventa, String imei) { + super(); + this.puntoventaId = puntoventaId; + this.usuarioId = usuarioId; + this.nombusuario = nombusuario; + this.nombpuntoventa = nombpuntoventa; + this.imei = imei; + } + + public Long getPuntoventaId() { + return puntoventaId; + } + + public void setPuntoventaId(Long puntoventaId) { + this.puntoventaId = puntoventaId; + } + + public Long getUsuarioId() { + return usuarioId; + } + + public void setUsuarioId(Long usuarioId) { + this.usuarioId = usuarioId; + } + + public String getNombusuario() { + return nombusuario; + } + public void setNombusuario(String nombusuario) { + this.nombusuario = nombusuario; + } + public String getNombpuntoventa() { + return nombpuntoventa; + } + public void setNombpuntoventa(String nombpuntoventa) { + this.nombpuntoventa = nombpuntoventa; + } + public String getImei() { + return imei; + } + public void setImei(String imei) { + this.imei = imei; + } +}