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.annotation.security.RolesAllowed; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; 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.rest.SincronizarOperador.ParamsSincronizarOperador; 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); @POST @Consumes({ MediaType.APPLICATION_JSON }) @RolesAllowed("EMBARCADA") @Produces({ MediaType.APPLICATION_JSON }) public OperadorEmbarcadaVO buscarDadosOperador(ParamsSincronizarOperador params) { long start = System.currentTimeMillis(); SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmm"); Date dtIni = null; Date dtFim = null; try { dtIni = sdf.parse(params.dataInicial); dtFim = sdf.parse(params.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(params.operador); PuntoVentaVO puntoVentaVO = operadorEmbarcadaDAO.getPuntoVentaVO(params.operador); List lsRutaVO = operadorEmbarcadaLinhaDAO.getListaRutaVO(params.operador); List lsCorridaVO = operadorEmbarcadaServicoDAO.getListaCorridaProxyVO(params.operador, params.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); } }