wilian 2015-02-09 13:28:35 +00:00
parent 6bd1636156
commit 0d62229730
3 changed files with 59 additions and 19 deletions

View File

@ -4,8 +4,12 @@ import java.sql.Connection;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
@ -53,8 +57,10 @@ public class RelatorioEmpresaOnibus extends Relatorio {
rset = stmt.executeQuery();
Map<String, RelatorioEmpresaOnibusBean> mDadosRelatorio = new HashMap<String, RelatorioEmpresaOnibusBean>();
lsDadosRelatorio = new ArrayList<RelatorioEmpresaOnibusBean>();
sdf.applyPattern("dd/MM/yyyy");
while (rset.next()) {
RelatorioEmpresaOnibusBean empresaOnibusBean = new RelatorioEmpresaOnibusBean();
empresaOnibusBean.setCorridaId(rset.getInt("corridaId"));
@ -65,13 +71,39 @@ public class RelatorioEmpresaOnibus extends Relatorio {
empresaOnibusBean.setHora(rset.getString("hora"));
empresaOnibusBean.setKmts(rset.getInt("kmts"));
empresaOnibusBean.setOrigem(rset.getString("origem"));
empresaOnibusBean.setNumsecuencia(rset.getInt("numsecuencia"));
lsDadosRelatorio.add(empresaOnibusBean);
String key = empresaOnibusBean.getCorridaId() + "-" + empresaOnibusBean.getCoche() + "-" + empresaOnibusBean.getHora() + "-" +
sdf.format(empresaOnibusBean.getDia()) + "-" + empresaOnibusBean.getEmpresa();
if(mDadosRelatorio.containsKey(key)) {
RelatorioEmpresaOnibusBean auxEmpresaOnibusBean = mDadosRelatorio.get(key);
empresaOnibusBean.setOrigem(auxEmpresaOnibusBean.getOrigem());
empresaOnibusBean.setKmts(empresaOnibusBean.getKmts() + auxEmpresaOnibusBean.getKmts());
if(empresaOnibusBean.getNumsecuencia() < auxEmpresaOnibusBean.getNumsecuencia()) {
empresaOnibusBean.setDestino(auxEmpresaOnibusBean.getDestino());
}
}
mDadosRelatorio.put(key, empresaOnibusBean);
}
for (Entry<String, RelatorioEmpresaOnibusBean> empresaOnibusBean : mDadosRelatorio.entrySet()) {
lsDadosRelatorio.add(empresaOnibusBean.getValue());
}
if (lsDadosRelatorio.size() > 0) {
Collections.sort(lsDadosRelatorio,new Comparator<RelatorioEmpresaOnibusBean>() {
@Override
public int compare(RelatorioEmpresaOnibusBean o1, RelatorioEmpresaOnibusBean o2) {
return o1.getEmpresa().compareToIgnoreCase(o2.getEmpresa());
}
});
setLsDadosRelatorio(lsDadosRelatorio);
}
}
});
}
@ -90,14 +122,14 @@ public class RelatorioEmpresaOnibus extends Relatorio {
sql.append(" select c.corrida_Id corridaId, e.nombempresa empresa, c.feccorrida dia, a.numautobus coche, ");
sql.append(" o.cveparada origem, d.cveparada destino, ");
sql.append(" to_char(c.fechorsalida, 'HH24:MI') Hora, t.cantkmreal KMTS ");
sql.append(" to_char(c.fechorsalida, 'HH24:MI') Hora, t.cantkmreal KMTS, ct.numsecuencia ");
sql.append(" from corrida c ");
sql.append(" left join ruta_combinacion rc on rc.ruta_id = c.ruta_id ");
sql.append(" left join parada o on o.parada_id = c.origen_id ");
sql.append(" left join parada d on d.parada_id = c.destino_id ");
sql.append(" inner join tramo t on t.origen_id = c.origen_id and t.destino_id = c.destino_id and t.tramo_id = rc.tramo_id ");
sql.append(" inner join autobus a on a.autobus_id = c.autobus_id ");
sql.append(" left join empresa e on e.empresa_id = a.empresa_id ");
sql.append(" inner join corrida_tramo ct on ct.corrida_id = c.corrida_id ");
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 = 1 ");
if (!empresa.isEmpty()){
sql.append(" and e.empresa_id = :empresa_id ");
@ -105,8 +137,9 @@ public class RelatorioEmpresaOnibus extends Relatorio {
if (!autobus.isEmpty()){
sql.append(" and a.autobus_id = :autobus_id ");
}
sql.append(" and rc.activo = 1 and c.feccorrida between :fecInicio and :fecFinal ");
sql.append(" order by e.nombempresa, a.numautobus, c.feccorrida ");
sql.append(" and ct.activo = 1 and c.feccorrida between :fecInicio and :fecFinal ");
sql.append(" and ct.feccorrida between :fecInicio and :fecFinal ");
sql.append(" order by e.nombempresa, a.numautobus, c.feccorrida, ct.numsecuencia ");
return sql.toString();
}

View File

@ -91,23 +91,22 @@ public class RelatorioEmpresaOnibusResumo extends Relatorio {
sql.append(" a.numautobus coche, ");
sql.append(" Sum(t.cantkmreal) KMTS ");
sql.append("FROM corrida c, ");
sql.append(" ruta_combinacion rc, ");
sql.append(" corrida_tramo ct, ");
sql.append(" tramo t, ");
sql.append(" autobus a, ");
sql.append(" empresa e, ");
sql.append(" parada o, ");
sql.append(" parada d ");
sql.append("WHERE c.activo = 1 ");
sql.append(" AND rc.ruta_id = c.ruta_id ");
sql.append(" AND t.origen_id = c.origen_id ");
sql.append(" AND t.destino_id = c.destino_id ");
sql.append(" AND t.tramo_id = rc.tramo_id ");
sql.append(" AND rc.activo = 1 ");
sql.append(" AND ct.corrida_id = c.corrida_id ");
sql.append(" AND t.tramo_id = ct.tramo_id ");
sql.append(" AND ct.activo = 1 ");
sql.append(" AND c.feccorrida BETWEEN :fecInicio and :fecFinal ");
sql.append(" AND a.autobus_id = c.autobus_id ");
sql.append(" AND ct.feccorrida BETWEEN :fecInicio and :fecFinal ");
sql.append(" AND a.autobus_id = ct.autobus_id ");
sql.append(" AND e.empresa_id = a.empresa_id ");
sql.append(" AND o.parada_id = c.origen_id ");
sql.append(" AND d.parada_id = c.destino_id ");
sql.append(" AND o.parada_id = ct.origen_id ");
sql.append(" AND d.parada_id = ct.destino_id ");
if (!empresa.isEmpty()){
sql.append(" AND e.empresa_id = :empresa_id ");
}

View File

@ -11,6 +11,8 @@ public class RelatorioEmpresaOnibusBean {
protected String destino;
protected String hora;
protected Integer kmts;
protected Integer numsecuencia;
public Date getDia() {
return dia;
}
@ -59,4 +61,10 @@ public class RelatorioEmpresaOnibusBean {
public void setCorridaId(Integer corridaId) {
this.corridaId = corridaId;
}
public Integer getNumsecuencia() {
return numsecuencia;
}
public void setNumsecuencia(Integer numsecuencia) {
this.numsecuencia = numsecuencia;
}
}