0019880: Melhoria Relatório Origem/Destino
bug#19880 dev:valdevir qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@104967 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
5d1e48c0c7
commit
74efcabeab
|
@ -16,10 +16,13 @@ import org.apache.commons.lang.StringUtils;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.rjconsultores.ventaboletos.entidad.Constante;
|
||||
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
|
||||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
|
||||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioOrigemDestinoBean;
|
||||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.beans.PesoOperacional;
|
||||
import com.rjconsultores.ventaboletos.service.ConstanteService;
|
||||
import com.rjconsultores.ventaboletos.service.EsquemaCorridaService;
|
||||
import com.rjconsultores.ventaboletos.service.RutaSecuenciaService;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
|
||||
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
|
||||
|
||||
|
@ -31,10 +34,17 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
|
||||
private static String CONSTANTE_GRATUIDADE_CRIANCA;
|
||||
private List<RelatorioOrigemDestinoBean> listaBean = new ArrayList<RelatorioOrigemDestinoBean>();
|
||||
|
||||
private RutaSecuenciaService rutaSecuenciaService;
|
||||
|
||||
private EsquemaCorridaService esquemaCorridaService;
|
||||
|
||||
public RelatorioOrigemDestino(Map<String, Object> parametros, Connection conexao) throws Exception {
|
||||
public RelatorioOrigemDestino(Map<String, Object> parametros, Connection conexao, RutaSecuenciaService rutaSecuenciaService, EsquemaCorridaService esquemaCorridaService ) throws Exception {
|
||||
super(parametros, conexao);
|
||||
|
||||
this.rutaSecuenciaService = rutaSecuenciaService;
|
||||
this.esquemaCorridaService = esquemaCorridaService;
|
||||
|
||||
// Mantis 15600 - O relatório não tinha um Bean, a consulta SQL era executada dentro do jasper e o relatório não era gerado (ou demorava muito) para o usuário.
|
||||
|
||||
CONSTANTE_GRATUIDADE_CRIANCA = buscarConstante("GRATUIDADE_CRIANCA");
|
||||
|
@ -73,9 +83,15 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
bean.setAbsoluto_total_corrida(rs.getInt("absoluto_total_corrida"));
|
||||
bean.setImportetaxaembarque(rs.getBigDecimal("importetaxaembarque"));
|
||||
bean.setImportepedagio(rs.getBigDecimal("importepedagio"));
|
||||
|
||||
|
||||
bean.setOrigemId(rs.getInt("origen_id"));
|
||||
bean.setDestinoId(rs.getInt("destino_id"));
|
||||
bean.setRutaId(rs.getInt("ruta_id"));
|
||||
|
||||
listaBean.add(bean);
|
||||
}
|
||||
|
||||
ordenarLista(listaBean);
|
||||
|
||||
List<PesoOperacional> listaSqlPesoOperacional = getPesoOperacional(conexao, corridasIds, dataDe, dataAte, bilhetesGratuitos, empresaIds, trechosSemMovimento);
|
||||
|
||||
|
@ -84,6 +100,35 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
this.setCollectionDataSource(new JRBeanCollectionDataSource(listaBean));
|
||||
}
|
||||
|
||||
private void ordenarLista(List<RelatorioOrigemDestinoBean> listaBean2) {
|
||||
try {
|
||||
Integer rutaId = null;
|
||||
Integer numCorrida = null;
|
||||
EsquemaCorrida esquema = null;
|
||||
|
||||
for(RelatorioOrigemDestinoBean listaRel : listaBean2) {
|
||||
|
||||
if((rutaId == null || numCorrida == null)|| (!rutaId.equals(listaRel.getRutaId()) || !numCorrida.equals(listaRel.getCorrida_1().intValue()))) {
|
||||
rutaId = listaRel.getRutaId();
|
||||
numCorrida = listaRel.getCORRIDA_1().intValue();
|
||||
esquema = esquemaCorridaService.buscaEsquemaPorRutaSemVigencia(rutaId, numCorrida);
|
||||
}
|
||||
|
||||
List<Short> numSequencias = rutaSecuenciaService.obtenerNumRutaSecuenciaPorCorridaOrigemDestinoId(esquema, listaRel.getOrigemId(), listaRel.getDestinoId());
|
||||
|
||||
if(numSequencias != null && !numSequencias.isEmpty() ) {
|
||||
|
||||
listaRel.setNumSequencia(new Integer(numSequencias.get(0)));
|
||||
|
||||
listaRel.setNumSequencia2(numSequencias.size() > 1 ? new Integer(numSequencias.get(1)) : 0);
|
||||
}
|
||||
}
|
||||
Collections.sort(listaBean2);
|
||||
} catch (Exception e) {
|
||||
log.error("Erro ao ordenar lista: ", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processaParametros() throws Exception {
|
||||
}
|
||||
|
@ -341,7 +386,9 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" RESULTADO_2.disponibilidade, ");
|
||||
sql.append(" RESULTADO_2.absoluto_total_corrida,");
|
||||
sql.append(" RESULTADO_2.importetaxaembarque, ");
|
||||
sql.append(" RESULTADO_2.importepedagio ");
|
||||
sql.append(" RESULTADO_2.importepedagio, ");
|
||||
sql.append(" RESULTADO_2.origen_id, ");
|
||||
sql.append(" RESULTADO_2.destino_id ");
|
||||
sql.append(" FROM (SELECT RESULTADO.*, ");
|
||||
sql.append(" (SELECT Count(*) ");
|
||||
sql.append(" FROM corrida CO ");
|
||||
|
@ -378,8 +425,8 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" CO.corrida_id CORRIDA_ID, ");
|
||||
sql.append(" Max(CO.fechorsalida) FECHORSALIDA, ");
|
||||
sql.append(" ORI.DESCPARADA ORIGEM, ");
|
||||
sql.append(" CO.origen_id ORIGEN_ID, ");
|
||||
sql.append(" CO.destino_id DESTINO_ID, ");
|
||||
sql.append(" ORI.parada_id ORIGEN_ID, ");
|
||||
sql.append(" DES.parada_id DESTINO_ID, ");
|
||||
sql.append(" DES.DESCPARADA DESTINO, ");
|
||||
sql.append(" CA.numkmviaje KM_TRAMO, ");
|
||||
sql.append(" RU.ruta_id, ");
|
||||
|
@ -411,8 +458,8 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" EM.nombempresa, ");
|
||||
sql.append(" ORI.DESCPARADA, ");
|
||||
sql.append(" DES.DESCPARADA, ");
|
||||
sql.append(" CO.origen_id, ");
|
||||
sql.append(" CO.destino_id, ");
|
||||
sql.append(" ORI.parada_id, ");
|
||||
sql.append(" DES.parada_id, ");
|
||||
sql.append(" CA.numkmviaje, ");
|
||||
sql.append(" CO.corrida_id, ");
|
||||
sql.append(" RU.descruta, ");
|
||||
|
@ -455,7 +502,9 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" RESULTADO_2.disponibilidade, ");
|
||||
sql.append(" RESULTADO_2.absoluto_total_corrida, ");
|
||||
sql.append(" RESULTADO_2.IMPORTETAXAEMBARQUE, ");
|
||||
sql.append(" RESULTADO_2.IMPORTEPEDAGIO ");
|
||||
sql.append(" RESULTADO_2.IMPORTEPEDAGIO, ");
|
||||
sql.append(" RESULTADO_2.origen_id, ");
|
||||
sql.append(" RESULTADO_2.destino_id ");
|
||||
sql.append(" ORDER BY RESULTADO_2.corrida_id) T1 ");
|
||||
sql.append(" INNER JOIN (SELECT RESULTADO_2.corrida_id CORRIDA_2, ");
|
||||
sql.append(" Sum(RESULTADO_2.equivalente) EQUIVALENTE_TOTAL_CORRIDA ");
|
||||
|
|
|
@ -4,7 +4,7 @@ import java.math.BigDecimal;
|
|||
import java.sql.Timestamp;
|
||||
|
||||
//Mantis 15600
|
||||
public class RelatorioOrigemDestinoBean {
|
||||
public class RelatorioOrigemDestinoBean implements Comparable<RelatorioOrigemDestinoBean> {
|
||||
|
||||
private String nombempresa;
|
||||
private BigDecimal corrida_1;
|
||||
|
@ -24,6 +24,11 @@ public class RelatorioOrigemDestinoBean {
|
|||
private Integer absoluto_total_corrida;
|
||||
private BigDecimal importetaxaembarque;
|
||||
private BigDecimal importepedagio;
|
||||
private Integer numSequencia;
|
||||
private Integer numSequencia2;
|
||||
private Integer origemId;
|
||||
private Integer destinoId;
|
||||
private Integer rutaId;
|
||||
|
||||
public String getNombempresa() {
|
||||
return nombempresa;
|
||||
|
@ -242,4 +247,58 @@ public class RelatorioOrigemDestinoBean {
|
|||
public BigDecimal getIMPORTEPEDAGIO() {
|
||||
return getImportepedagio();
|
||||
}
|
||||
|
||||
public Integer getNumSequencia() {
|
||||
return numSequencia == null ? 0 : numSequencia;
|
||||
}
|
||||
|
||||
public void setNumSequencia(Integer numSequencia) {
|
||||
this.numSequencia = numSequencia;
|
||||
}
|
||||
|
||||
public Integer getOrigemId() {
|
||||
return origemId;
|
||||
}
|
||||
|
||||
public void setOrigemId(Integer origemId) {
|
||||
this.origemId = origemId;
|
||||
}
|
||||
|
||||
public Integer getDestinoId() {
|
||||
return destinoId;
|
||||
}
|
||||
|
||||
public void setDestinoId(Integer destinoId) {
|
||||
this.destinoId = destinoId;
|
||||
}
|
||||
|
||||
public Integer getRutaId() {
|
||||
return rutaId;
|
||||
}
|
||||
|
||||
public void setRutaId(Integer rutaId) {
|
||||
this.rutaId = rutaId;
|
||||
}
|
||||
|
||||
public Integer getNumSequencia2() {
|
||||
return numSequencia2 == null ? 0 : numSequencia2;
|
||||
}
|
||||
|
||||
public void setNumSequencia2(Integer numSequencia2) {
|
||||
this.numSequencia2 = numSequencia2 ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(RelatorioOrigemDestinoBean o) {
|
||||
if(this.getCorrida_1().equals(o.getCorrida_1())){
|
||||
if(this.getNumSequencia().equals(o.getNumSequencia())) {
|
||||
return this.getNumSequencia2() - o.getNumSequencia2();
|
||||
} else {
|
||||
return this.getNumSequencia() - o.getNumSequencia();
|
||||
}
|
||||
}else{
|
||||
return this.getCorrida_1().compareTo(o.getCorrida_1());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -33,6 +33,8 @@ import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioOrigemDestino;
|
|||
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
|
||||
import com.rjconsultores.ventaboletos.service.CorridaService;
|
||||
import com.rjconsultores.ventaboletos.service.EmpresaService;
|
||||
import com.rjconsultores.ventaboletos.service.EsquemaCorridaService;
|
||||
import com.rjconsultores.ventaboletos.service.RutaSecuenciaService;
|
||||
import com.rjconsultores.ventaboletos.service.RutaService;
|
||||
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
|
||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||
|
@ -73,6 +75,11 @@ public class RelatorioOrigemDestinoController extends MyGenericForwardComposer {
|
|||
private MyComboboxParadaCve cmbParadaOrigemCve;
|
||||
private MyComboboxParada cmbParadaDestino;
|
||||
private MyComboboxParadaCve cmbParadaDestinoCve;
|
||||
|
||||
@Autowired
|
||||
private RutaSecuenciaService rutaSecuenciaService;
|
||||
@Autowired
|
||||
private EsquemaCorridaService esquemaCorridaService;
|
||||
|
||||
public List<Ruta> getLsRuta() {
|
||||
return lsRuta;
|
||||
|
@ -241,7 +248,7 @@ public class RelatorioOrigemDestinoController extends MyGenericForwardComposer {
|
|||
}
|
||||
parametros.put("CORRIDAS_SELECIONADAS", corridaIds.substring(1, corridaIds.length()));
|
||||
|
||||
Relatorio relatorio = new RelatorioOrigemDestino(parametros, dataSourceRead.getConnection());
|
||||
Relatorio relatorio = new RelatorioOrigemDestino(parametros, dataSourceRead.getConnection(), rutaSecuenciaService, esquemaCorridaService);
|
||||
|
||||
Map<String, Object> args = new HashMap<String, Object>();
|
||||
args.put("relatorio", relatorio);
|
||||
|
|
Loading…
Reference in New Issue