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-87c2c4800839master
parent
93486c36a3
commit
2e83c4cb8e
|
@ -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 ");
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue