From 2b6e3a59f01f09bc4789fe8c350fb696ab8d45ed Mon Sep 17 00:00:00 2001 From: alberto Date: Fri, 21 Jun 2019 14:45:06 +0000 Subject: [PATCH] Verificar a possibilidade de melhorar o tempo de sincronismo do Operador na Embarcada bug#14740 dev:trevezani qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@94843 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/rest/ConsultarOperador.java | 136 ++++++++++++++++++ .../ConsultarOperadorDetalhesCorrida.java | 66 +++++++++ .../rest/SincronizarOperador.java | 28 +++- 3 files changed, 227 insertions(+), 3 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/rest/ConsultarOperador.java create mode 100644 src/java/com/rjconsultores/ventaboletos/rest/ConsultarOperadorDetalhesCorrida.java diff --git a/src/java/com/rjconsultores/ventaboletos/rest/ConsultarOperador.java b/src/java/com/rjconsultores/ventaboletos/rest/ConsultarOperador.java new file mode 100644 index 000000000..13ae583a6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/rest/ConsultarOperador.java @@ -0,0 +1,136 @@ +package com.rjconsultores.ventaboletos.rest; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; + +import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaDAO; +import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaLinhaDAO; +import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO; +import com.rjconsultores.ventaboletos.entidad.FormaPagoDet; +import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada; +import com.rjconsultores.ventaboletos.entidad.PtoVtaSeguro; +import com.rjconsultores.ventaboletos.entidad.PtovtaCatInd; +import com.rjconsultores.ventaboletos.entidad.PuntoVentaVO; +import com.rjconsultores.ventaboletos.vo.corrida.CorridaVO; +import com.rjconsultores.ventaboletos.vo.embarcada.FormaPagamentoVO; +import com.rjconsultores.ventaboletos.vo.embarcada.OperadorEmbarcadaVO; +import com.rjconsultores.ventaboletos.vo.embarcada.SeguroTaxaEmbarqueVO; +import com.rjconsultores.ventaboletos.vo.embarcada.TiposPassagensBloqueadasVO; +import com.rjconsultores.ventaboletos.vo.ruta.RutaVO; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; + +@Path("/consultarOperadorProxy") +public class ConsultarOperador { + private static Logger log = org.slf4j.LoggerFactory.getLogger(ConsultarOperador.class); + + @GET + @Produces({ MediaType.APPLICATION_JSON }) + public OperadorEmbarcadaVO buscarDadosOperador( + @QueryParam("operador") Integer operador, + @QueryParam("empresa") Integer empresa, + @QueryParam("dataInicial") String dataInicial, + @QueryParam("dataFinal") String dataFinal) { + long start = System.currentTimeMillis(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmm"); + + Date dtIni = null; + Date dtFim = null; + + try { + dtIni = sdf.parse(dataInicial); + dtFim = sdf.parse(dataFinal); + } catch (ParseException e) { + log.error(e.getMessage(), e); + } + + OperadorEmbarcadaDAO operadorEmbarcadaDAO = (OperadorEmbarcadaDAO)AppContext.getApplicationContext().getBean("operadorEmbarcadaDAO"); + OperadorEmbarcadaLinhaDAO operadorEmbarcadaLinhaDAO = (OperadorEmbarcadaLinhaDAO)AppContext.getApplicationContext().getBean("operadorEmbarcadaLinhaDAO"); + OperadorEmbarcadaServicoDAO operadorEmbarcadaServicoDAO = (OperadorEmbarcadaServicoDAO)AppContext.getApplicationContext().getBean("operadorEmbarcadaServicoDAO"); + OperadorEmbarcada operadorEmbarcada = operadorEmbarcadaDAO.buscarOperadorEmbarcadaPorUsuario(operador); + + PuntoVentaVO puntoVentaVO = operadorEmbarcadaDAO.getPuntoVentaVO(operador); + + List lsRutaVO = operadorEmbarcadaLinhaDAO.getListaRutaVO(operador); + + List lsCorridaVO = operadorEmbarcadaServicoDAO.getListaCorridaProxyVO(operador, empresa, dtIni, dtFim); + + OperadorEmbarcadaVO vo = new OperadorEmbarcadaVO(); + vo.setIdOperador(operadorEmbarcada.getUsuarioId()); + vo.setOperador(operadorEmbarcada.getUsername()); + vo.setDescOperador(operadorEmbarcada.getName()); + + if (puntoVentaVO != null) { + vo.setIdAgencia(puntoVentaVO.getPuntoventaId()); + vo.setDescAgencia(puntoVentaVO.nombpuntoventa); + + vo.setLsFormasPagamento(new ArrayList()); + vo.setLsSeguroTaxaEmbarque(new ArrayList()); + vo.setLsTiposPassagensBloqueadas(new ArrayList()); + + List listFP = operadorEmbarcadaDAO.getListaFormaPago(puntoVentaVO.getPuntoventaId()); + + for (FormaPagoDet dp : listFP) { + vo.getLsFormasPagamento().add( + new FormaPagamentoVO( + dp.getEmpresa().getEmpresaId(), + dp.getEmpresa().getNombempresa(), + dp.getFormaPago().getFormapagoId().intValue(), + dp.getFormaPago().getDescpago())); + } + + List listSTx = operadorEmbarcadaDAO.getListaSeguroTaxaEmbarque(puntoVentaVO.getPuntoventaId()); + + for (PtoVtaSeguro st : listSTx) { + vo.getLsSeguroTaxaEmbarque().add( + new SeguroTaxaEmbarqueVO( + st.getEmpresa().getEmpresaId(), + st.getIndVendeSeguroOpcEmbarcada(), + st.getIndVendeSeguroTabelaEmbarcada(), + st.getIndTaxaEmbarqueEmbarcada())); + } + + List listTPB = operadorEmbarcadaDAO.getListaTiposPassagensBloqueadas(puntoVentaVO.getPuntoventaId()); + + for (PtovtaCatInd tpb : listTPB) { + vo.getLsTiposPassagensBloqueadas().add( + new TiposPassagensBloqueadasVO( + tpb.getCategoria().getCategoriaId(), + tpb.getUsuarioBloqueado().getUsuarioId(), + tpb.getEmpresa().getEmpresaId())); + } + } + + vo.setLsRutas(lsRutaVO); + vo.setLsCorridas(lsCorridaVO); + + printInfo("/consultarOperadorProxy", start); + + return vo; + } + + private void printInfo(String service, long start) { + long milliseconds = System.currentTimeMillis() - start; + long minutes = (milliseconds / 1000) / 60; + long seconds = (milliseconds / 1000) % 60; + + String info = String.format("[%s] %d minutos e %d segundos", service, minutes, seconds); + + if ((minutes + seconds) == 0) { + info = String.format("[%s] %d milissegundos", service, milliseconds); + } + + log.info(info); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/rest/ConsultarOperadorDetalhesCorrida.java b/src/java/com/rjconsultores/ventaboletos/rest/ConsultarOperadorDetalhesCorrida.java new file mode 100644 index 000000000..96567dd3c --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/rest/ConsultarOperadorDetalhesCorrida.java @@ -0,0 +1,66 @@ +package com.rjconsultores.ventaboletos.rest; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; + +import org.slf4j.Logger; + +import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO; +import com.rjconsultores.ventaboletos.dao.PuntoVentaDAO; +import com.rjconsultores.ventaboletos.vo.corrida.CorridaVO; +import com.rjconsultores.ventaboletos.vo.embarcada.DetalheCorridaVO; +import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; + +@Path("/consultarOperadorDetalhesCorrida") +public class ConsultarOperadorDetalhesCorrida { + private static Logger log = org.slf4j.LoggerFactory.getLogger(ConsultarOperadorDetalhesCorrida.class); + + @GET + @Produces({ MediaType.APPLICATION_JSON }) + public DetalheCorridaVO buscarDetalhesCorrida( + @QueryParam("corridaId") Integer corridaId, + @QueryParam("feccorrida") String feccorrida, + @QueryParam("rutaId") Integer rutaId, + @QueryParam("marcaId") Integer marcaId, + @QueryParam("puntoVentaId") Integer puntoVentaId, + @QueryParam("claseServicioId") Integer claseServicioId) { + long start = System.currentTimeMillis(); + + CorridaVO corrida = new CorridaVO(); + corrida.setCorridaId(corridaId); + corrida.setFeccorrida(feccorrida); + corrida.setRutaId(rutaId); + corrida.setMarcaId(marcaId); + corrida.setClaseServicioId(claseServicioId); + + OperadorEmbarcadaServicoDAO operadorEmbarcadaServicoDAO = (OperadorEmbarcadaServicoDAO)AppContext.getApplicationContext().getBean("operadorEmbarcadaServicoDAO"); + PuntoVentaDAO puntoventaDAO = (PuntoVentaDAO)AppContext.getApplicationContext().getBean("puntoVentaDAO"); + + operadorEmbarcadaServicoDAO.preencherCorrida(corrida, puntoventaDAO.obtenerID(puntoVentaId)); + + DetalheCorridaVO vo = new DetalheCorridaVO(); + vo.setLsTramoVO(corrida.getLsTramoVO()); + vo.setLsSecuenciaVO(corrida.getLsSecuenciaVO()); + + printInfo("/consultarOperadorDetalhesCorrida", start); + + return vo; + } + + private void printInfo(String service, long start) { + long milliseconds = System.currentTimeMillis() - start; + long minutes = (milliseconds / 1000) / 60; + long seconds = (milliseconds / 1000) % 60; + + String info = String.format("[%s] %d minutos e %d segundos", service, minutes, seconds); + + if ((minutes + seconds) == 0) { + info = String.format("[%s] %d milissegundos", service, milliseconds); + } + + log.info(info); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/rest/SincronizarOperador.java b/src/java/com/rjconsultores/ventaboletos/rest/SincronizarOperador.java index 5937cfd73..9d3cbc6f2 100644 --- a/src/java/com/rjconsultores/ventaboletos/rest/SincronizarOperador.java +++ b/src/java/com/rjconsultores/ventaboletos/rest/SincronizarOperador.java @@ -13,6 +13,8 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import org.slf4j.Logger; + import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaDAO; import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaLinhaDAO; import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO; @@ -32,7 +34,8 @@ import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext; @Path("/sincronizarOperador") public class SincronizarOperador { - + private static Logger log = org.slf4j.LoggerFactory.getLogger(SincronizarOperador.class); + @GET @Produces({ MediaType.APPLICATION_JSON }) public Response buscarDadosOperador( @@ -40,8 +43,9 @@ public class SincronizarOperador { @QueryParam("empresa") Integer empresa, @QueryParam("dataInicial") String dataInicial, @QueryParam("dataFinal") String dataFinal) { + long start = System.currentTimeMillis(); + SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmm"); -// SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd"); Date dtIni = null; Date dtFim = null; @@ -50,7 +54,7 @@ public class SincronizarOperador { dtIni = sdf.parse(dataInicial); dtFim = sdf.parse(dataFinal); } catch (ParseException e) { - e.printStackTrace(); + log.error(e.getMessage(), e); } OperadorEmbarcadaDAO operadorEmbarcadaDAO = (OperadorEmbarcadaDAO)AppContext.getApplicationContext().getBean("operadorEmbarcadaDAO"); @@ -66,7 +70,9 @@ public class SincronizarOperador { // List lsOperadorEmbarcadaLinha = operadorEmbarcadaLinhaDAO.buscarPorOperador(operadorEmbarcada); PuntoVentaVO puntoVentaVO = operadorEmbarcadaDAO.getPuntoVentaVO(operador); + ListlsRutaVO = operadorEmbarcadaLinhaDAO.getListaRutaVO(operador); + ListlsCorridaVO = operadorEmbarcadaServicoDAO.getListaCorridaVO(operador, empresa, dtIni, dtFim, puntoventaDAO.obtenerID(puntoVentaVO.getPuntoventaId())); OperadorEmbarcadaVO vo = new OperadorEmbarcadaVO(); @@ -117,7 +123,23 @@ public class SincronizarOperador { vo.setLsRutas(lsRutaVO); vo.setLsCorridas(lsCorridaVO); + + printInfo("/sincronizarOperador", start); + return Response.ok(vo, MediaType.APPLICATION_JSON).build(); } + private void printInfo(String service, long start) { + long milliseconds = System.currentTimeMillis() - start; + long minutes = (milliseconds / 1000) / 60; + long seconds = (milliseconds / 1000) % 60; + + String info = String.format("[%s] %d minutos e %d segundos", service, minutes, seconds); + + if ((minutes + seconds) == 0) { + info = String.format("[%s] %d milissegundos", service, milliseconds); + } + + log.info(info); + } }