fixes bug#0011329

dev: emerson
qua: renato.oliveira

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@82902 d1611594-4594-4d17-8e1d-87c2c4800839
master
emerson 2018-06-26 19:29:16 +00:00
parent 93486c36a3
commit 2e83c4cb8e
3 changed files with 101 additions and 36 deletions

View File

@ -8,8 +8,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -19,8 +17,27 @@ import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioEmpresaCorridaBean;
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class RelatorioEmpresaCorrida extends Relatorio {
private Logger log = LoggerFactory.getLogger(RelatorioEmpresaCorrida.class);
protected static final String FIELD_FEC_FINAL = "fecFinal";
protected static final String FILED_FEC_INICIO = "fecInicio";
protected static final String FIELD_EMPRESA_ID = "empresa_id";
protected static final String FIELD_KM_TOTAL = "kmTotal";
protected static final String FIELD_KM_ONIBUS_PROPRIO = "kmOnibusProprio";
protected static final String FIELD_KM_ONIBUS_ARRENDADOS = "kmOnibusArrendados";
protected static final String FIELD_PASSAGEIROS_TRANSP = "passageirosTransp";
protected static final String FIELD_LINEA = "linea";
protected static final String FIELD_NOMB_EMPRESA = "nombempresa";
protected static final String FIELD_BOLETOS = "boletos";
protected static final String FIELD_ABONOS = "abonos";
protected static final String FIELD_RUTA_ID = "ruta_id";
protected static final String FIELD_DESTINO = "destino";
protected static final String FIELD_ORIGEM = "origem";
protected static final String FIELD_TURNO_ORIGEM = "turnoOrigem";
protected static final String FIELD_DATA_CORRIDA = "dataCorrida";
protected static final String FIELD_CORRIDA_ID = "corrida_id";
protected Logger log = LoggerFactory.getLogger(RelatorioEmpresaCorrida.class);
public RelatorioEmpresaCorrida(Map<String, Object> parametros, Connection conexao) throws Exception {
super(parametros, conexao);
@ -33,8 +50,8 @@ public class RelatorioEmpresaCorrida extends Relatorio {
Map<String, Object> parametros = this.relatorio.getParametros();
String fecInicio = parametros.get("fecInicio").toString() + " 00:00:00";
String fecFinal = parametros.get("fecFinal").toString() + " 23:59:59";
String fecInicio = parametros.get(FILED_FEC_INICIO).toString() + " 00:00:00";
String fecFinal = parametros.get(FIELD_FEC_FINAL).toString() + " 23:59:59";
String empresa = parametros.get("empresa") != null ? parametros.get("empresa").toString() : "";
log.info("empresa:" + empresa + ";fecinicio:" + fecInicio + ";fecFinal:" + fecFinal);
@ -45,10 +62,10 @@ public class RelatorioEmpresaCorrida extends Relatorio {
ResultSet rset = null;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
stmt.setString("fecInicio", fecInicio);
stmt.setString("fecFinal", fecFinal);
stmt.setString(FILED_FEC_INICIO, fecInicio);
stmt.setString(FIELD_FEC_FINAL, fecFinal);
if (empresa != null && !empresa.equals("")) {
stmt.setInt("empresa_id", Integer.parseInt(empresa));
stmt.setInt(FIELD_EMPRESA_ID, Integer.parseInt(empresa));
}
log.info("Antes de enviar consulta para o banco:" + System.currentTimeMillis());
rset = stmt.executeQuery();
@ -71,10 +88,10 @@ public class RelatorioEmpresaCorrida extends Relatorio {
stmt = new NamedParameterStatement(conexao, sqlKm);
rset = null;
stmt.setTimestamp("fecInicio", new java.sql.Timestamp(sdf.parse(fecInicio).getTime()));
stmt.setTimestamp("fecFinal", new java.sql.Timestamp(sdf.parse(fecFinal).getTime()));
stmt.setTimestamp(FILED_FEC_INICIO, new java.sql.Timestamp(sdf.parse(fecInicio).getTime()));
stmt.setTimestamp(FIELD_FEC_FINAL, new java.sql.Timestamp(sdf.parse(fecFinal).getTime()));
if (empresa != null && !empresa.equals("")) {
stmt.setInt("empresa_id", Integer.parseInt(empresa));
stmt.setInt(FIELD_EMPRESA_ID, Integer.parseInt(empresa));
}
List<RelatorioEmpresaCorridaBean> lsAux = new ArrayList<RelatorioEmpresaCorridaBean>();
@ -84,13 +101,11 @@ public class RelatorioEmpresaCorrida extends Relatorio {
log.info("Depois de enviar consulta para o banco:" + System.currentTimeMillis());
while (rset.next()) {
Integer rutaId = rset.getInt("ruta_id");
RelatorioEmpresaCorridaBean rec = buscarRelatorioEmpresaCorrida(lsDadosRelatorio, rutaId);
RelatorioEmpresaCorridaBean rec = buscarRelatorioEmpresaCorrida(lsDadosRelatorio, rset);
if (rec != null) {
rec.setKmOnibusArrendados(rset.getInt("kmOnibusArrendados"));
rec.setKmOnibusProprio(rset.getInt("kmOnibusProprio"));
rec.setKmTotal(rset.getInt("kmTotal"));
rec.setKmOnibusArrendados(rset.getInt(FIELD_KM_ONIBUS_ARRENDADOS));
rec.setKmOnibusProprio(rset.getInt(FIELD_KM_ONIBUS_PROPRIO));
rec.setKmTotal(rset.getInt(FIELD_KM_TOTAL));
lsAux.add(rec);
}
@ -105,12 +120,12 @@ public class RelatorioEmpresaCorrida extends Relatorio {
}
protected void setDadosBean(ResultSet rset, RelatorioEmpresaCorridaBean bean) throws SQLException {
bean.setRutaId(rset.getInt("ruta_id"));
bean.setAbonos(rset.getBigDecimal("abonos"));
bean.setBoletos(rset.getBigDecimal("boletos"));
bean.setEmpresa(rset.getString("nombempresa"));
bean.setLinea(rset.getString("linea"));
bean.setPasajerosTransportados(rset.getInt("passageirosTransp"));
bean.setRutaId(rset.getInt(FIELD_RUTA_ID));
bean.setAbonos(rset.getBigDecimal(FIELD_ABONOS));
bean.setBoletos(rset.getBigDecimal(FIELD_BOLETOS));
bean.setEmpresa(rset.getString(FIELD_NOMB_EMPRESA));
bean.setLinea(rset.getString(FIELD_LINEA));
bean.setPasajerosTransportados(rset.getInt(FIELD_PASSAGEIROS_TRANSP));
}
public void setLsDadosRelatorio(List<RelatorioEmpresaCorridaBean> lsDadosRelatorio) {
@ -121,15 +136,20 @@ public class RelatorioEmpresaCorrida extends Relatorio {
protected void processaParametros() throws Exception {
}
private RelatorioEmpresaCorridaBean buscarRelatorioEmpresaCorrida(List<RelatorioEmpresaCorridaBean> lsDadosRelatorio, Integer rutaId) {
private RelatorioEmpresaCorridaBean buscarRelatorioEmpresaCorrida(
List<RelatorioEmpresaCorridaBean> lsDadosRelatorio, ResultSet rset) throws SQLException {
for (RelatorioEmpresaCorridaBean rec : lsDadosRelatorio) {
if (rec.getRutaId().equals(rutaId)) {
if (filtraEmpresaCorrida(rec, rset)) {
return rec;
}
}
return null;
}
protected boolean filtraEmpresaCorrida(RelatorioEmpresaCorridaBean rec, ResultSet rset) throws SQLException {
return rec.getRutaId().equals(rset.getInt(FIELD_RUTA_ID));
}
protected String getSql(String empresa) {
StringBuilder sql = new StringBuilder();
@ -161,7 +181,7 @@ public class RelatorioEmpresaCorrida extends Relatorio {
return sql.toString();
}
private String getSqlKm(String empresa) {
protected String getSqlKm(String empresa) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT ");

View File

@ -18,10 +18,11 @@ public class RelatorioEmpresaCorridaNovoLayout extends RelatorioEmpresaCorrida {
@Override
protected void setDadosBean(ResultSet rset, RelatorioEmpresaCorridaBean bean) throws SQLException {
super.setDadosBean(rset, bean);
bean.setDataCorrida(StringUtils.defaultString(rset.getString("dataCorrida")));
bean.setTurnoOrigem(StringUtils.defaultString(rset.getString("turnoOrigem")));
bean.setOrigem(StringUtils.defaultString(rset.getString("origem")));
bean.setDestino(StringUtils.defaultString(rset.getString("destino")));
bean.setCorridaId(rset.getInt(FIELD_CORRIDA_ID));
bean.setDataCorrida(StringUtils.defaultString(rset.getString(FIELD_DATA_CORRIDA)));
bean.setTurnoOrigem(StringUtils.defaultString(rset.getString(FIELD_TURNO_ORIGEM)));
bean.setOrigem(StringUtils.defaultString(rset.getString(FIELD_ORIGEM)));
bean.setDestino(StringUtils.defaultString(rset.getString(FIELD_DESTINO)));
}
@Override
@ -36,17 +37,18 @@ public class RelatorioEmpresaCorridaNovoLayout extends RelatorioEmpresaCorrida {
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(" TO_CHAR(c.feccorrida, 'dd/mm/yyyy') dataCorrida, ");
sql.append(" TO_CHAR(b.fechorviaje, 'hh24:mi') turnoOrigem, ");
sql.append(" TO_CHAR(c.fechorsalida, 'hh24:mi') turnoOrigem, ");
sql.append(" po.descparada origem, ");
sql.append(" pd.descparada destino ");
sql.append(" pd.descparada destino, ");
sql.append(" c.corrida_id ");
sql.append("FROM ruta r ");
sql.append("LEFT JOIN corrida c ON c.ruta_id = r.ruta_id ");
sql.append("INNER JOIN marca m ON m.marca_id = c.marca_id ");
sql.append("INNER JOIN empresa e ON e.empresa_id = m.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("LEFT JOIN parada po ON po.parada_id = b.origen_id ");
sql.append("LEFT JOIN parada pd ON pd.parada_id = b.destino_id ");
sql.append("LEFT JOIN parada po ON po.parada_id = c.origen_id ");
sql.append("LEFT JOIN parada pd ON pd.parada_id = c.destino_id ");
sql.append("WHERE c.activo <> 0 ");
sql.append("AND r.activo = 1 ");
sql.append(StringUtils.isBlank(empresa) ? "" : "AND e.empresa_id = :empresa_id ");
@ -56,13 +58,47 @@ public class RelatorioEmpresaCorridaNovoLayout extends RelatorioEmpresaCorrida {
sql.append(" e.nombempresa, ");
sql.append(" r.ruta_id, ");
sql.append(" r.descruta, ");
sql.append(" c.feccorrida, ");
sql.append(" TO_CHAR(c.feccorrida, 'dd/mm/yyyy'), ");
sql.append(" po.descparada, ");
sql.append(" pd.descparada, ");
sql.append(" b.fechorviaje ");
sql.append(" TO_CHAR(c.fechorsalida, 'hh24:mi'), ");
sql.append(" c.corrida_id ");
sql.append("ORDER BY r.ruta_id ");
return sql.toString();
}
@Override
protected String getSqlKm(String empresa) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT ");
sql.append("c.ruta_id ruta_id, ");
sql.append("c.corrida_id, ");
sql.append("COALESCE(SUM(t.cantkmreal), 0) kmtotal, ");
sql.append("COALESCE(SUM(CASE WHEN a.empresa_id = c.empresacorrida_id THEN t.cantkmreal ELSE 0 END), 0) kmOnibusProprio, ");
sql.append("COALESCE(SUM(CASE WHEN a.empresa_id <> c.empresacorrida_id THEN t.cantkmreal ELSE 0 END), 0) kmOnibusArrendados, ");
sql.append("TO_CHAR(c.feccorrida,'dd/mm/yyyy') datacorrida ");
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 autobus a ON a.autobus_id = ct.autobus_id ");
sql.append("INNER JOIN marca m ON m.marca_id = c.marca_id ");
sql.append("INNER JOIN empresa e ON e.empresa_id = m.empresa_id ");
sql.append("WHERE c.activo <> 0 ");
sql.append("AND ct.activo = 1 ");
sql.append(StringUtils.isBlank(empresa) ? "" : "AND e.empresa_id = :empresa_id ");
sql.append("AND c.FECCORRIDA BETWEEN :fecInicio AND :fecFinal ");
sql.append("GROUP BY c.ruta_id, ");
sql.append("c.corrida_id, ");
sql.append("TO_CHAR(c.feccorrida,'dd/mm/yyyy') ");
sql.append("ORDER BY c.ruta_id ");
return sql.toString();
}
@Override
protected boolean filtraEmpresaCorrida(RelatorioEmpresaCorridaBean rec, ResultSet rset) throws SQLException {
return rec.getCorridaId().equals(rset.getInt(FIELD_CORRIDA_ID));
}
}

View File

@ -5,6 +5,7 @@ import java.math.BigDecimal;
public class RelatorioEmpresaCorridaBean {
private Integer rutaId;
private Integer corridaId;
private String empresa;
private String linea;
private BigDecimal boletos;
@ -147,4 +148,12 @@ public class RelatorioEmpresaCorridaBean {
this.turnoOrigem = turnoOrigem;
}
public Integer getCorridaId() {
return corridaId;
}
public void setCorridaId(Integer corridaId) {
this.corridaId = corridaId;
}
}