conclusão mantis 6895

fixes bug 6895

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@50816 d1611594-4594-4d17-8e1d-87c2c4800839
master
thiago.penido 2015-12-01 18:24:23 +00:00
parent e9f5b3d878
commit 5ffbd2aba5
2 changed files with 83 additions and 108 deletions

View File

@ -1,5 +1,6 @@
package com.rjconsultores.ventaboletos.dao.hibernate;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
@ -8,6 +9,11 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.lang.math.NumberUtils;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
@ -25,14 +31,12 @@ import com.rjconsultores.ventaboletos.relatorios.MovimentoSecoes;
import com.rjconsultores.ventaboletos.relatorios.PrefixoAntt;
@Repository("sisdapDAO")
public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO {
public class SisdapHibernateDAO implements SisdapDAO {
private static String HYPHEN = "-";
@Autowired
public SisdapHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
private DataSource dataSourceRead;
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
@ -140,30 +144,25 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
sb.append(" left join corrida c on c.ruta_id = r.ruta_id ");
sb.append(" left outer join rol_operativo ro on c.roloperativo_id = ro.roloperativo_id ");
sb.append(" left outer join diagrama_autobus da on da.diagramaautobus_id = ro.diagramaautobus_id ");
sb.append("where m.marca_id = :empresaId and re.activo = 1 and r.activo = 1 ");
sb.append("where m.marca_id = ? and re.activo = 1 and r.activo = 1 ");
sb.append(" and r.orgaoconcedente_id = 3 and e.codantt is not null ");
sb.append(" and c.feccorrida between to_date(:fecInicio, 'DD/MM/YYYY') and ");
sb.append(" to_date(:fecFinal, 'DD/MM/YYYY') ");
sb.append(" and c.feccorrida between to_date(?, 'DD/MM/YYYY') and ");
sb.append(" to_date(?, 'DD/MM/YYYY') ");
sb.append("group by e.codantt, r.prefixo, r.indsentidoida, ");
sb.append(" to_char(c.feccorrida, 'MM'), to_char(c.feccorrida, 'yyyy') ");
sb.append("order by mes, ano, e.codantt, r.prefixo, viagensida, viagensvolta ");
Query query = getSession().createSQLQuery(sb.toString())
.addScalar("antt", StringType.INSTANCE)
.addScalar("prefixo", StringType.INSTANCE)
.addScalar("mes", IntegerType.INSTANCE)
.addScalar("ano", IntegerType.INSTANCE)
.addScalar("viagensIda", IntegerType.INSTANCE)
.addScalar("viagensVolta", IntegerType.INSTANCE)
.addScalar("lugaresIda", IntegerType.INSTANCE)
.addScalar("lugaresVolta", IntegerType.INSTANCE);
query.setResultTransformer(new AliasToBeanResultTransformer(MovimentoLinha.class));
QueryRunner queryRunner = new QueryRunner(dataSourceRead);
ResultSetHandler<List<MovimentoLinha>> handler = new BeanListHandler<MovimentoLinha>(MovimentoLinha.class);
List<MovimentoLinha> returnedList = null;
query.setParameter("fecInicio", sdf.format(fecInicio));
query.setParameter("fecFinal", sdf.format(fecFinal));
query.setParameter("empresaId", empresaId);
try {
returnedList = queryRunner.query(sb.toString(), handler, empresaId, sdf.format(fecInicio), sdf.format(fecFinal));
} catch (SQLException e) {
e.printStackTrace();
}
return query.list();
return returnedList;
}
private List<PrefixoAntt> buscaPrefixoEmpresa(Integer empresaId) {
@ -174,19 +173,23 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
sb.append(" left join marca m on m.marca_id = re.empresa_id ");
sb.append(" left join empresa e on m.empresa_id = e.empresa_id ");
sb.append(" left join ruta r on re.ruta_id = r.ruta_id ");
sb.append(" where re.empresa_id = :empresaId and r.orgaoconcedente_id = 3 ");
sb.append(" where re.empresa_id = ? and r.orgaoconcedente_id = 3 ");
sb.append(" and re.activo = 1 and r.activo = 1 ");
sb.append(" group by e.codantt, r.prefixo ");
sb.append(" order by e.codantt, r.prefixo ");
Query query = getSession().createSQLQuery(sb.toString())
.addScalar("antt", StringType.INSTANCE)
.addScalar("prefixo", StringType.INSTANCE);
query.setResultTransformer(new AliasToBeanResultTransformer(PrefixoAntt.class));
query.setParameter("empresaId", empresaId);
QueryRunner queryRunner = new QueryRunner(dataSourceRead);
ResultSetHandler<List<PrefixoAntt>> handler = new BeanListHandler<PrefixoAntt>(PrefixoAntt.class);
List<PrefixoAntt> returnedList = null;
return query.list();
try {
returnedList = queryRunner.query(sb.toString(), handler, empresaId);
} catch (SQLException e) {
e.printStackTrace();
}
return returnedList;
}
private boolean agrupaMovimentoLinhas(List<MovimentoLinha> resul, MovimentoLinha movimentoLinha) {
@ -218,7 +221,6 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public List<String> getMovimentoSecoes(Date fecInicio, Date fecFinal, Integer empresaId) {
List<MovimentoSecoes> listResultConsulta = consultaMovimentoSecoes(fecInicio, fecFinal, empresaId);
List<MovimentoSecoes> listResultIdaVoltaInvertida = new ArrayList<MovimentoSecoes>();
List<MovimentoSecoes> listVoltasSemIda = new ArrayList<MovimentoSecoes>();
@ -261,8 +263,23 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
String origem = volta.getLocalOrigem();
String destino = volta.getLocalDestino();
Integer idosoGratuidade = volta.getGratuidadeIdosoIda();
Integer idosoDesconto = volta.getDescontoIdosoIda();
Integer passeLivre = volta.getGratuidadePasseLivreIda();
Integer passageiros = volta.getPassageirosIda();
volta.setGratuidadeIdosoVolta(idosoGratuidade);
volta.setDescontoIdosoVolta(idosoDesconto);
volta.setGratuidadePasseLivreVolta(passeLivre);
volta.setPassageirosVolta(passageiros);
volta.setGratuidadeIdosoIda(0);
volta.setDescontoIdosoIda(0);
volta.setGratuidadePasseLivreIda(0);
volta.setPassageirosIda(0);
volta.setLocalDestino(origem);
volta.setLocalOrige(destino);
volta.setLocalOrigem(destino);
listResultIdaVoltaInvertida.add(volta);
}
}
@ -309,7 +326,7 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
ms.setAntt(prefixoAntt.getAntt());
ms.setPrefixo(prefixoAntt.getPrefixo());
ms.setLocalDestino(prefixoAntt.getLocalDestino());
ms.setLocalOrige(prefixoAntt.getLocalOrigem());
ms.setLocalOrigem(prefixoAntt.getLocalOrigem());
ms.setDescontoIdosoIda(NumberUtils.INTEGER_ZERO);
ms.setDescontoIdosoVolta(NumberUtils.INTEGER_ZERO);
@ -442,14 +459,14 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
sb.append(" left outer join parada po ON po.parada_id = b.origen_id ");
sb.append(" left outer join parada pd ON pd.parada_id = b.destino_id ");
sb.append(" WHERE m.marca_id = :empresaId ");
sb.append(" WHERE m.marca_id = ? ");
sb.append(" AND re.activo = 1 ");
sb.append(" AND r.activo = 1 ");
sb.append(" AND r.orgaoconcedente_id = 3 ");
sb.append(" AND b.numasiento IS NOT NULL ");
sb.append(" AND b.motivocancelacion_id IS NULL ");
sb.append(" AND e.codantt IS NOT NULL ");
sb.append(" AND c.feccorrida BETWEEN To_date(:fecInicio, 'DD/MM/YYYY') AND To_date (:fecFinal, 'DD/MM/YYYY') ");
sb.append(" AND c.feccorrida BETWEEN To_date(?, 'DD/MM/YYYY') AND To_date (?, 'DD/MM/YYYY') ");
sb.append(" AND b.categoria_id <> (select valorconstante from constante where NOMBCONSTANTE = 'GRATUIDADE_CRIANCA')");
sb.append(" GROUP BY e.codantt, ");
sb.append(" r.prefixo, ");
@ -486,29 +503,18 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
sb.append(" localOrigem, ");
sb.append(" localDestino ");
Query query = getSession().createSQLQuery(sb.toString())
.addScalar("antt", StringType.INSTANCE)
.addScalar("prefixo", StringType.INSTANCE)
.addScalar("mes", IntegerType.INSTANCE)
.addScalar("ano", IntegerType.INSTANCE)
.addScalar("localOrigem", StringType.INSTANCE)
.addScalar("localDestino", StringType.INSTANCE)
.addScalar("passageirosIda", IntegerType.INSTANCE)
.addScalar("passageirosVolta", IntegerType.INSTANCE)
.addScalar("gratuidadePasseLivreIda", IntegerType.INSTANCE)
.addScalar("gratuidadePasseLivreVolta", IntegerType.INSTANCE)
.addScalar("gratuidadeIdosoIda", IntegerType.INSTANCE)
.addScalar("gratuidadeIdosoVolta", IntegerType.INSTANCE)
.addScalar("descontoIdosoIda", IntegerType.INSTANCE)
.addScalar("descontoIdosoVolta", IntegerType.INSTANCE);
QueryRunner queryRunner = new QueryRunner(dataSourceRead);
ResultSetHandler<List<MovimentoSecoes>> handler = new BeanListHandler<MovimentoSecoes>(MovimentoSecoes.class);
List<MovimentoSecoes> returnedList = null;
query.setResultTransformer(new AliasToBeanResultTransformer(MovimentoSecoes.class));
try {
returnedList = queryRunner.query(sb.toString(), handler, empresaId, sdf.format(fecInicio), sdf.format(fecFinal));
query.setParameter("fecInicio", sdf.format(fecInicio));
query.setParameter("fecFinal", sdf.format(fecFinal));
query.setParameter("empresaId", empresaId);
} catch (SQLException e) {
e.printStackTrace();
}
return query.list();
return returnedList;
}
private List<PrefixoAntt> buscaPrefixoEmpresaOrigenDestino(Integer empresaId) {
@ -544,7 +550,7 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
sb.append(" ON re.ruta_id = ru.ruta_id, ");
sb.append(" parada po, ");
sb.append(" parada pd ");
sb.append(" WHERE re.empresa_id = :empresaId ");
sb.append(" WHERE re.empresa_id = ? ");
sb.append(" AND ru.orgaoconcedente_id = 3 ");
sb.append(" AND re.activo = 1 ");
sb.append(" AND ru.activo = 1 ");
@ -635,47 +641,16 @@ public class SisdapHibernateDAO extends HibernateDaoSupport implements SisdapDAO
sb.append(" po.codantt, ");
sb.append(" pd.codantt ");
Query query = getSession().createSQLQuery(sb.toString())
.addScalar("antt", StringType.INSTANCE)
.addScalar("prefixo", StringType.INSTANCE)
.addScalar("localOrigem", StringType.INSTANCE)
.addScalar("localDestino", StringType.INSTANCE);
query.setResultTransformer(new AliasToBeanResultTransformer(PrefixoAntt.class));
QueryRunner queryRunner = new QueryRunner(dataSourceRead);
ResultSetHandler<List<PrefixoAntt>> handler = new BeanListHandler<PrefixoAntt>(PrefixoAntt.class);
query.setParameter("empresaId", empresaId);
return query.list();
List<PrefixoAntt> returnedList = null;
try {
returnedList = queryRunner.query(sb.toString(), handler, empresaId);
} catch (SQLException e) {
e.printStackTrace();
}
return returnedList;
}
// private boolean agrupaMovimentoSecoes(List<MovimentoSecoes> resul, MovimentoSecoes movimentoSecao) {
//
// if (resul.isEmpty()) {
// return true;
// } else {
// for (MovimentoSecoes ms : resul) {
// if (ms.getPrefixo().equals(movimentoSecao.getPrefixo()) && ms.getMes().equals(movimentoSecao.getMes())
// && ms.getAno().equals(movimentoSecao.getAno()) && ms.getLocalOrigem().equals(movimentoSecao.getLocalOrigem())
// && ms.getLocalDestino().equals(movimentoSecao.getLocalDestino())) {
//
// ms.setDescontoIdosoIda(ms.getDescontoIdosoIda() + movimentoSecao.getDescontoIdosoIda());
// ms.setDescontoIdosoVolta(ms.getDescontoIdosoVolta() + movimentoSecao.getDescontoIdosoVolta());
//
// ms.setGratuidadeIdosoIda(ms.getGratuidadeIdosoIda() + movimentoSecao.getGratuidadeIdosoIda());
// ms.setGratuidadeIdosoVolta(ms.getGratuidadeIdosoVolta() + movimentoSecao.getGratuidadeIdosoVolta());
//
// ms.setGratuidadePasseLivreIda(ms.getGratuidadePasseLivreIda() + movimentoSecao.getGratuidadePasseLivreIda());
// ms.setGratuidadePasseLivreVolta(ms.getGratuidadePasseLivreVolta() + movimentoSecao.getGratuidadePasseLivreVolta());
//
// ms.setPassageirosIda(ms.getPassageirosIda() + movimentoSecao.getPassageirosIda());
// ms.setPassageirosVolta(ms.getPassageirosVolta() + movimentoSecao.getPassageirosVolta());
//
// return false;
// }
// }
// }
//
// return true;
// }
}

View File

@ -53,8 +53,8 @@ public class MovimentoSecoes {
return localOrigem;
}
public void setLocalOrige(String localOrige) {
this.localOrigem = localOrige;
public void setLocalOrigem(String localOrigem) {
this.localOrigem = localOrigem;
}
public String getLocalDestino() {