fixes bug#21655
dev:aristides qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@105558 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
b6088bccc1
commit
65030fe371
|
@ -311,7 +311,6 @@ public class RelatorioAproveitamento extends Relatorio {
|
|||
sql.append(" INNER JOIN CORRIDA CR ON BO.CORRIDA_ID = CR.CORRIDA_ID AND BO.FECCORRIDA = CR.FECCORRIDA ");
|
||||
sql.append(" INNER JOIN ROL_OPERATIVO RO ON RO.ROLOPERATIVO_ID = CR.ROLOPERATIVO_ID ");
|
||||
sql.append(" INNER JOIN DIAGRAMA_AUTOBUS DA ON RO.DIAGRAMAAUTOBUS_ID = DA.DIAGRAMAAUTOBUS_ID ");
|
||||
sql.append(" INNER JOIN DET_DIAGRAMA_AUTOBUS DD ON RO.DIAGRAMAAUTOBUS_ID = DD.DIAGRAMAAUTOBUS_ID ");
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" BO.CORRIDA_ID = :CORRIDA_ID ");
|
||||
sql.append(" AND BO.FECCORRIDA = :FECCORRIDA ");
|
||||
|
@ -321,15 +320,6 @@ public class RelatorioAproveitamento extends Relatorio {
|
|||
sql.append(" AND BO.CATEGORIA_ID <> ");
|
||||
sql.append(constanteService.buscarPorNomeConstante("GRATUIDADE_CRIANCA").getValorconstante());
|
||||
sql.append(" AND BO.MOTIVOCANCELACION_ID IS NULL ");
|
||||
sql.append(" GROUP BY ");
|
||||
sql.append(" BO.PRECIOPAGADO, ");
|
||||
sql.append(" BO.BOLETO_ID, ");
|
||||
sql.append(" BO.ORIGEN_ID, ");
|
||||
sql.append(" BO.DESTINO_ID, ");
|
||||
sql.append(" BO.NUMKMVIAJE, ");
|
||||
sql.append(" (CASE WHEN BO.PRECIOBASE = 0 THEN 1 ELSE 0 END), ");
|
||||
sql.append(" (CASE WHEN BO.PRECIOBASE > 0 THEN 1 ELSE 0 END), ");
|
||||
sql.append(" DA.CANTASIENTOSVENDIBLES ");
|
||||
sql.append(" ORDER BY ");
|
||||
sql.append(" BO.ORIGEN_ID, ");
|
||||
sql.append(" BO.DESTINO_ID ) TRECHOS_VG ");
|
||||
|
|
|
@ -3,8 +3,11 @@ package com.rjconsultores.ventaboletos.relatorios.impl;
|
|||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
@ -24,9 +27,9 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageiros extends Relatorio
|
|||
Map<String, Object> parametros = this.relatorio.getParametros();
|
||||
|
||||
String dataDe = (String) parametros.get("DATA_DE");
|
||||
dataDe = dataDe + " 00:00:00";
|
||||
|
||||
String dataAte = (String) parametros.get("DATA_ATE");
|
||||
dataAte = dataAte + " 23:59:59";
|
||||
|
||||
|
||||
String linhasIds = (String) parametros.get("LINHAS");
|
||||
String empresaId = (String) parametros.get("EMPRESA_IDS");
|
||||
|
@ -73,9 +76,92 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageiros extends Relatorio
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
this.ordenarTrechosSentidoIda(this.dados,linhasIds);
|
||||
|
||||
this.resultSet = rset;
|
||||
}
|
||||
|
||||
private void ordenarTrechosSentidoIda(List<Map<String, Object>> dados, String linhasIds) {
|
||||
|
||||
List<String> listOrigemDestino = this.buscarSequenciaOrigemDestinoIda(linhasIds);
|
||||
|
||||
if (listOrigemDestino.isEmpty()){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
List<Map<String, Object>> dadosOrdenados = new ArrayList<Map<String,Object>>();
|
||||
|
||||
|
||||
for(Map<String, Object> dado : dados){
|
||||
|
||||
Map<String, Object> dataResult = new HashMap<String, Object>();
|
||||
|
||||
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<String> 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<String> listOrigemDestino = new ArrayList<String>();
|
||||
|
||||
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;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -113,17 +199,18 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageiros extends Relatorio
|
|||
sql.append(" JOIN parada ori ON ori.parada_id = b.origen_id ");
|
||||
sql.append(" JOIN parada des ON des.parada_id = b.destino_id ");
|
||||
sql.append(" JOIN ruta r ON r.ruta_id = b.ruta_id ");
|
||||
sql.append(" JOIN tramo tr ON tr.ORIGEN_ID = ori.PARADA_ID and tr.DESTINO_ID = des.PARADA_ID AND tr.ACTIVO = 1 ");
|
||||
sql.append(" JOIN RUTA_COMBINACION rc ON rc.ruta_id = r.ruta_id ");
|
||||
sql.append(" INNER JOIN tramo tr ON tr.TRAMO_ID =rc.TRAMO_ID AND tr.ORIGEN_ID = ori.PARADA_ID AND tr.DESTINO_ID = des.PARADA_ID AND tr.ACTIVO = 1 ");
|
||||
sql.append(" WHERE b.empresacorrida_id IN (").append(empresaId).append(") ");
|
||||
|
||||
sql.append(" AND b.indstatusboleto <> 'C' ");
|
||||
sql.append(" AND b.motivocancelacion_id is null ");
|
||||
|
||||
if (!StringUtils.isBlank(linhasIds)) {
|
||||
sql.append(" AND r.NUMRUTA = '").append(linhasIds).append("' ");
|
||||
}
|
||||
|
||||
sql.append(" AND b.feccorrida BETWEEN To_date('").append(dataDe).append("', 'dd/mm/yyyy HH24:mi:ss') ");
|
||||
sql.append(" AND To_date('").append(dataAte).append("', 'dd/mm/yyyy HH24:mi:ss') ");
|
||||
sql.append(" AND b.feccorrida BETWEEN To_date('").append(dataDe).append("', 'dd/mm/yyyy') ");
|
||||
sql.append(" AND To_date('").append(dataAte).append("', 'dd/mm/yyyy') ");
|
||||
|
||||
sql.append(" GROUP BY ");
|
||||
sql.append(" r.cantasientos, ");
|
||||
|
|
Loading…
Reference in New Issue