From a3dd50cbc545f72c9622b4b15e4393cb4a812f35 Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 21 May 2015 18:10:03 +0000 Subject: [PATCH] =?UTF-8?q?Diverg=C3=AAncia=20Relat=C3=B3rio=20Empresa=20?= =?UTF-8?q?=C3=B4nibus=20x=20Empresa=20Corrida=20(bug=20#6270)=20Tempo:=20?= =?UTF-8?q?04=20horas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@44251 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioEmpresaCorrida.java | 49 +++++++++---------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEmpresaCorrida.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEmpresaCorrida.java index 0f7f6c3be..3b41790c2 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEmpresaCorrida.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEmpresaCorrida.java @@ -20,7 +20,6 @@ import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; public class RelatorioEmpresaCorrida extends Relatorio { private Logger log = LoggerFactory.getLogger(RelatorioEmpresaCorrida.class); - private List lsDadosRelatorio; public RelatorioEmpresaCorrida(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); @@ -54,7 +53,7 @@ public class RelatorioEmpresaCorrida extends Relatorio { rset = stmt.executeQuery(); log.info("Depois de enviar consulta para o banco:" + System.currentTimeMillis()); - lsDadosRelatorio = new ArrayList(); + List lsDadosRelatorio = new ArrayList(); log.info("Preenchendo bean:" + System.currentTimeMillis()); while (rset.next()) { @@ -70,6 +69,7 @@ public class RelatorioEmpresaCorrida extends Relatorio { } log.info("Fim bean:" + System.currentTimeMillis()); + log.info("empresa:" + empresa + ";fecinicio:" + fecInicio + ";fecFinal:" + fecFinal); String sqlKm = getSqlKm(empresa); log.info(sqlKm); @@ -82,24 +82,27 @@ public class RelatorioEmpresaCorrida extends Relatorio { stmt.setInt("empresa_id", Integer.parseInt(empresa)); } + List lsAux = new ArrayList(); + + log.info("Antes de enviar consulta para o banco:" + System.currentTimeMillis()); rset = stmt.executeQuery(); + log.info("Depois de enviar consulta para o banco:" + System.currentTimeMillis()); while (rset.next()) { Integer rutaId = rset.getInt("ruta_id"); - Integer index = buscarRelatorioEmpresaCorrida(lsDadosRelatorio, rutaId); - if (index > -1) { - RelatorioEmpresaCorridaBean rec = lsDadosRelatorio.get(index); + RelatorioEmpresaCorridaBean rec = buscarRelatorioEmpresaCorrida(lsDadosRelatorio, rutaId); + if (rec != null) { rec.setKmOnibusArrendados(rset.getInt("kmOnibusArrendados")); rec.setKmOnibusProprio(rset.getInt("kmOnibusProprio")); rec.setKmTotal(rset.getInt("kmTotal")); - lsDadosRelatorio.set(index, rec); + lsAux.add(rec); } } - if (lsDadosRelatorio.size() > 0) { - setLsDadosRelatorio(lsDadosRelatorio); + if (lsAux.size() > 0) { + setLsDadosRelatorio(lsAux); } } }); @@ -107,20 +110,19 @@ public class RelatorioEmpresaCorrida extends Relatorio { public void setLsDadosRelatorio(List lsDadosRelatorio) { this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); - this.lsDadosRelatorio = lsDadosRelatorio; } @Override protected void processaParametros() throws Exception { } - private Integer buscarRelatorioEmpresaCorrida(List lsDadosRelatorio, Integer rutaId) { + private RelatorioEmpresaCorridaBean buscarRelatorioEmpresaCorrida(List lsDadosRelatorio, Integer rutaId) { for (RelatorioEmpresaCorridaBean rec : lsDadosRelatorio) { if (rec.getRutaId().equals(rutaId)) { - return lsDadosRelatorio.indexOf(rec); + return rec; } } - return -1; + return null; } private String getSql(String empresa) { @@ -131,19 +133,17 @@ public class RelatorioEmpresaCorrida extends Relatorio { sql.append(" e.nombempresa, "); sql.append(" r.ruta_id, "); sql.append(" r.descruta AS linea, "); - sql.append(" COALESCE(SUM(CASE WHEN ((b.motivocancelacion_id IS NULL) AND (cat.grupocategoria_id IS NULL OR cat.grupocategoria_id <> 4)) THEN b.preciopagado ELSE 0 END), 0) boletos, "); - sql.append(" COALESCE(SUM(CASE WHEN b.motivocancelacion_id IS NULL AND cat.grupocategoria_id = 4 THEN b.preciopagado ELSE 0 END), 0) abonos, "); - sql.append(" COALESCE(SUM(CASE WHEN b.motivocancelacion_id IS NULL THEN 1 ELSE 0 END), 0) passageirosTransp "); + sql.append(" COALESCE(SUM(CASE WHEN (cat.grupocategoria_id IS NULL OR cat.grupocategoria_id <> 4) THEN b.preciopagado ELSE 0 END), 0) boletos, "); + sql.append(" COALESCE(SUM(CASE WHEN cat.grupocategoria_id = 4 THEN b.preciopagado ELSE 0 END), 0) abonos, "); + sql.append(" COUNT(b.boleto_id) passageirosTransp "); sql.append("FROM ruta r "); - sql.append("INNER JOIN ruta_empresa re ON re.ruta_id = r.ruta_id "); - sql.append("INNER JOIN empresa e ON re.empresa_id = e.empresa_id "); - sql.append("LEFT JOIN corrida c ON c.ruta_id = re.ruta_id "); - sql.append("LEFT JOIN boleto b ON b.corrida_id = c.corrida_id AND b.feccorrida = c.feccorrida "); - sql.append("LEFT OUTER JOIN categoria cat ON cat.categoria_id = b.categoria_id "); + sql.append("LEFT JOIN corrida c ON c.ruta_id = r.ruta_id "); + sql.append("INNER JOIN empresa e ON c.marca_id = e.empresa_id "); + sql.append("LEFT JOIN boleto b ON b.corrida_id = c.corrida_id AND b.feccorrida = c.feccorrida AND b.motivocancelacion_id IS NULL "); + sql.append("LEFT JOIN categoria cat ON cat.categoria_id = b.categoria_id "); sql.append("WHERE c.activo <> 0 "); sql.append("AND r.activo = 1 "); - sql.append("AND re.activo = 1 "); - sql.append(StringUtils.isBlank(empresa) ? "" : "AND re.empresa_id = :empresa_id "); + sql.append(StringUtils.isBlank(empresa) ? "" : "AND c.marca_id = :empresa_id "); sql.append("AND c.FECCORRIDA BETWEEN :fecInicio AND :fecFinal "); sql.append("GROUP BY "); sql.append(" e.empresa_id, "); @@ -166,13 +166,10 @@ public class RelatorioEmpresaCorrida extends Relatorio { sql.append("FROM corrida c "); sql.append("INNER JOIN corrida_tramo ct ON ct.corrida_id = c.corrida_id AND c.feccorrida = ct.feccorrida "); sql.append("INNER JOIN tramo t ON t.tramo_id = ct.tramo_id "); - sql.append("INNER JOIN parada o ON o.parada_id = ct.origen_id "); - sql.append("INNER JOIN parada d ON d.parada_id = ct.destino_id "); sql.append("INNER JOIN autobus a ON a.autobus_id = ct.autobus_id "); - sql.append("INNER JOIN empresa e ON e.empresa_id = a.empresa_id "); sql.append("WHERE c.activo <> 0 "); sql.append("AND ct.activo = 1 "); - sql.append(StringUtils.isBlank(empresa) ? "" : "AND c.empresacorrida_id = :empresa_id "); + sql.append(StringUtils.isBlank(empresa) ? "" : "AND c.marca_id = :empresa_id "); sql.append("AND c.FECCORRIDA BETWEEN :fecInicio AND :fecFinal "); sql.append("GROUP BY c.ruta_id "); sql.append("ORDER BY c.ruta_id ");