From d1c145306df7351c61381142b875f4fe85fc3255 Mon Sep 17 00:00:00 2001 From: celio Date: Thu, 5 May 2022 22:12:19 +0000 Subject: [PATCH] fixes bug#24234 dev: Wallace qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@112148 d1611594-4594-4d17-8e1d-87c2c4800839 --- ...trativoMovimentoPassageirosNovoLayout.java | 101 ++++++++++++++++-- 1 file changed, 92 insertions(+), 9 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.java index 2cc9519a6..011abb2aa 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.java @@ -2,10 +2,14 @@ package com.rjconsultores.ventaboletos.relatorios.impl; import java.math.BigDecimal; import java.sql.Connection; +import java.sql.PreparedStatement; import java.sql.ResultSet; +import java.sql.SQLException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.Map; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; @@ -98,11 +102,94 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout extends } } - + this.ordenarTrechosSentidoIda(this.dados,linhasIds); this.resultSet = rset; } + + private void ordenarTrechosSentidoIda(List> dados, String linhasIds) { + + List listOrigemDestino = this.buscarSequenciaOrigemDestinoIda(linhasIds); + + if (listOrigemDestino.isEmpty()){ + return; + } + + + List> dadosOrdenados = new ArrayList>(); + + + for(Map dado : dados){ + + Map dataResult = new HashMap(); + + String origemAtual = dado.get("origem").toString(); + String destinoAtual = dado.get("destino").toString(); + + String trecho = origemAtual.concat("|").concat(destinoAtual); + + if (!listOrigemDestino.contains(trecho) ){ + origemAtual = dado.get("destino").toString(); + destinoAtual = dado.get("origem").toString(); + } + + dataResult.put("origem", origemAtual); + dataResult.put("destino", destinoAtual); + dataResult.put("km", dado.get("km")); + dataResult.put("totalida", dado.get("totalida")); + dataResult.put("totalvolta", dado.get("totalvolta")); + + dadosOrdenados.add(dataResult); + } + + dados.clear(); + dados.addAll(dadosOrdenados); + + + } + + private List buscarSequenciaOrigemDestinoIda(String linhasIds) { + StringBuilder query = new StringBuilder(); + query.append("SELECT "); + query.append("ori.DESCPARADA || '|' || des.DESCPARADA AS trecho "); + query.append("FROM "); + query.append("ruta r "); + query.append("JOIN RUTA_COMBINACION rc ON rc.ruta_id = r.ruta_id "); + query.append("INNER JOIN tramo tr ON tr.TRAMO_ID =rc.TRAMO_ID AND tr.ACTIVO = 1 "); + query.append("JOIN parada ori ON\tori.parada_id = tr.origen_id "); + query.append("JOIN parada des ON\tdes.parada_id = tr.destino_id "); + query.append(" "); + query.append("WHERE "); + query.append(" r.NUMRUTA = '").append(linhasIds).append("' "); + query.append("AND r.INDSENTIDOIDA =1 "); + query.append("AND rc.ACTIVO =1 "); + query.append("AND r.ACTIVO =1 "); + query.append("ORDER BY 1 "); + + List listOrigemDestino = new ArrayList(); + + try { + + Connection conexao = this.relatorio.getConexao(); + PreparedStatement ps= conexao.prepareStatement(query.toString()); + + ResultSet rset = ps.executeQuery(); + + while (rset.next()) { + listOrigemDestino.add(rset.getString("trecho")); + } + + rset.close(); + ps.close(); + + } catch (SQLException e) { + throw new RuntimeException("Erro ao buscar sequencia da linha",e); + } + return listOrigemDestino; + } }); } + + @Override protected void processaParametros() throws Exception { @@ -132,8 +219,8 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout extends sql.append(" ELSE NULL "); sql.append(" END "); sql.append(" ) AS totalvolta, "); - sql.append(" rc.rutacombinacion_id AS rutaCombinacionId, "); - sql.append(" ct.numsecuencia "); + sql.append(" rc.rutacombinacion_id AS rutaCombinacionId "); + sql.append(" FROM "); sql.append(" boleto b "); sql.append(" JOIN empresa e ON ( e.empresa_id = b.empresacorrida_id ) "); @@ -159,9 +246,7 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout extends sql.append(" AND tar.destino_id = b.destino_id "); sql.append(" AND tar.TRAMO_ID = tr.TRAMO_ID "); sql.append(" AND tar.activo = 1 ) "); - sql.append(" INNER JOIN corrida_tramo ct ON (tr.tramo_id = ct.tramo_id "); - sql.append(" AND b.corrida_id = ct.corrida_id "); - sql.append(" AND ct.activo =1 ) "); + sql.append(" WHERE b.empresacorrida_id IN :empresa_id "); sql.append(" AND b.motivocancelacion_id is null "); @@ -179,10 +264,8 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout extends sql.append(" r.numruta, "); sql.append(" ori.descparada, "); sql.append(" des.descparada, "); - sql.append(" rc.rutacombinacion_id, "); - sql.append(" ct.numsecuencia "); + sql.append(" rc.rutacombinacion_id "); sql.append(" ORDER BY "); - sql.append(" ct.numsecuencia, "); sql.append(" r.descruta, "); sql.append(" rc.rutacombinacion_id ");