frederico 2016-08-08 19:18:54 +00:00
parent fa8b4a6617
commit 3464537754
3 changed files with 102 additions and 85 deletions

View File

@ -3,11 +3,14 @@ package com.rjconsultores.ventaboletos.dao.hibernate;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -17,7 +20,8 @@ import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.TarifaOficialDAO;
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.entidad.TarifaOficial;
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
@ -25,7 +29,7 @@ import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial, Integer> implements TarifaOficialDAO {
private static Logger log = LoggerFactory.getLogger(TarifaOficialHibernateDAO.class);
@Autowired
private SQLBuilder sqlBuilder;
@ -43,7 +47,7 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
return qtd;
}
@Override
public Integer gerarTarifaArtesp(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId, List<Integer> idsEmpresas) {
@ -53,7 +57,7 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
return qtd;
}
@Override
public Integer gerarTabelaZerada(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId, List<Integer> idsEmpresas) {
@ -106,28 +110,28 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
sb.append(" and tar.orgaoConcedente=tao.orgaoConcedente ");
sb.append(" and tar.ruta=tao.ruta ");
sb.append(" and tar.vigenciaTarifa.vigenciatarifaId = :vigenciaId ");
if (orgao != null) {
sb.append(" and tar.orgaoConcedente = :orgao ");
}
if (empresa != null) {
sb.append(" and tar.marca.empresa = :empresa ");
}
Query query = getSession().createQuery("DELETE FROM TarifaTipoptovta WHERE tarifa.tarifaId in (" + sb.toString()+ ")");
Query query = getSession().createQuery("DELETE FROM TarifaTipoptovta WHERE tarifa.tarifaId in (" + sb.toString() + ")");
query.setParameter("vigenciaId", vigenciaTarifa.getVigenciatarifaId());
if (orgao != null) {
query.setParameter("orgao", orgao);
}
if (empresa != null) {
query.setParameter("empresa", empresa);
}
int qtd = query.executeUpdate();
log.info("qtd TarifaTipoptovta apagada = " + qtd);
query = getSession().createQuery("DELETE FROM TarifaCategoria WHERE tarifa.tarifaId in (" + sb.toString()+ ")");
query = getSession().createQuery("DELETE FROM TarifaCategoria WHERE tarifa.tarifaId in (" + sb.toString() + ")");
query.setParameter("vigenciaId", vigenciaTarifa.getVigenciatarifaId());
if (orgao != null) {
query.setParameter("orgao", orgao);
@ -135,11 +139,11 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
if (empresa != null) {
query.setParameter("empresa", empresa);
}
qtd = query.executeUpdate();
log.info("qtd TarifaCategoria apagada = " + qtd);
query = getSession().createQuery("DELETE FROM Tarifa WHERE activo = 0 and tarifaId in (" + sb.toString()+ ")");
query = getSession().createQuery("DELETE FROM Tarifa WHERE activo = 0 and tarifaId in (" + sb.toString() + ")");
query.setParameter("vigenciaId", vigenciaTarifa.getVigenciatarifaId());
if (orgao != null) {
query.setParameter("orgao", orgao);
@ -147,11 +151,11 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
if (empresa != null) {
query.setParameter("empresa", empresa);
}
qtd = query.executeUpdate();
log.info("qtd Tarifa apagada = " + qtd);
}
@Override
public void copiarParaTarifa(VigenciaTarifa vigenciaTarifa, Integer usuarioId, Boolean calculaPegagio, Boolean calculaTarifa, Boolean calculaTaxaEmbarque, Boolean calculaSeguro, Empresa empresa, OrgaoConcedente orgaoConcedente) {
//Apago antes as tarifas que podem estar como activo =0
@ -161,27 +165,31 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
SQLQuery querySQL = getSession().createSQLQuery(sqlBuilder.getSQLInserirTarifaPelaTarifaOficial(vigenciaTarifa.getVigenciatarifaId(), usuarioId, empresa, orgaoConcedente));
querySQL.executeUpdate();
// Atualizo o preço e o componente dos preços que já existem
querySQL = getSession().createSQLQuery(sqlBuilder.getSQLAtualizarTarifaPorTarifaOfical(vigenciaTarifa.getVigenciatarifaId(), usuarioId, calculaPegagio, calculaTarifa, calculaTaxaEmbarque, calculaSeguro, empresa, orgaoConcedente));
querySQL.executeUpdate();
querySQL = getSession().createSQLQuery(sqlBuilder.getSQLSelecionarTarifaPorTarifaOficalParaAtualizar(vigenciaTarifa.getVigenciatarifaId(), empresa, orgaoConcedente));
querySQL.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> dados = querySQL.list();
for (Map<String, Object> dado : dados) {
querySQL = getSession().createSQLQuery(sqlBuilder.getSQLAtualizarTarifaPorTarifaOfical(dado, usuarioId, calculaPegagio, calculaTarifa, calculaTaxaEmbarque, calculaSeguro));
querySQL.executeUpdate();
}
}
@Override
public void atualizarTaxaEmbarque(List<Ruta> lsRuta, Integer usuarioId, Integer orgaoConcedenteId, List<Integer> idsEmpresas) {
int x = 0;
if(lsRuta != null && !lsRuta.isEmpty()){
x=lsRuta.size();
if (lsRuta != null && !lsRuta.isEmpty()) {
x = lsRuta.size();
}
do{
Integer rutaId = null ;
if(lsRuta != null && !lsRuta.isEmpty()){
rutaId = lsRuta.get(x-1).getRutaId();
do {
Integer rutaId = null;
if (lsRuta != null && !lsRuta.isEmpty()) {
rutaId = lsRuta.get(x - 1).getRutaId();
}
// Atualizo a taxa de embarque de acordo a parada e km
SQLQuery query = getSession().createSQLQuery(sqlBuilder.getAtualizarTaxaEmbarquePorKmParada(rutaId, usuarioId, orgaoConcedenteId, idsEmpresas));
query.executeUpdate();
@ -194,7 +202,7 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
query = getSession().createSQLQuery(sqlBuilder.getSQLAtualizarTaxaEmbarquePorParadaFixo(rutaId, usuarioId, orgaoConcedenteId, idsEmpresas));
query.executeUpdate();
x--;
}while(x > 0);
} while (x > 0);
}
@Override
@ -208,14 +216,14 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
SQLQuery query = getSession().createSQLQuery(sqlBuilder.getSQLAtualizarSeguroPorTarifa(rutaId, usuarioId, orgaoId));
query.executeUpdate();
}
@Override
public long obtenerCount(){
String sql = " select count(*) from TarifaOficial ";
public long obtenerCount() {
String sql = " select count(*) from TarifaOficial ";
Query query = getSession().createQuery(sql.toString());
long qtd =0;
long qtd = 0;
qtd = (Long) query.list().get(0);
return qtd;
}
@ -237,10 +245,10 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
query.setParameter("orgao", orgaoConcedenteId);
}
query.setInteger("txEmbarque", taxaEmbarque ? 1 : 0);
query.setParameter("usuarioId", usuarioId);
query.setParameter("usuarioId", usuarioId);
query.executeUpdate();
}
public void atualizarPedagio() {
StringBuilder sql = new StringBuilder();
sql.append(" merge into tarifa_oficial ");
@ -261,7 +269,7 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
sql.append(" when matched then ");
sql.append(" update set ");
sql.append(" importepedagio = tarifa_importe.soma ");
Connection conn = getSession().connection();
Statement stmt;
try {

View File

@ -2,6 +2,7 @@ package com.rjconsultores.ventaboletos.dao.sqlbuilder;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
@ -39,8 +40,10 @@ public interface SQLBuilder {
public String getSQLAtualizarSeguroPorTarifa(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLAtualizarTarifaPorTarifaOfical(Integer vigenciaTarifaId, Integer usuarioId, Boolean calculaPegagio, Boolean calculaTarifa, Boolean calculaTaxaEmbarque, Boolean calculaSeguro, Empresa empresa, OrgaoConcedente orgao);
public String getSQLSelecionarTarifaPorTarifaOficalParaAtualizar(Integer vigenciaTarifaId, Empresa empresa, OrgaoConcedente orgao);
public String getSQLAtualizarTarifaPorTarifaOfical(Map<String,Object> dados, Integer usuarioId, Boolean calculaPegagio, Boolean calculaTarifa, Boolean calculaTaxaEmbarque, Boolean calculaSeguro);
public String getSQLInserirTarifaPelaTarifaOficial(Integer vigenciaTarifaId, Integer usuarioId, Empresa empresa, OrgaoConcedente orgao);
public String getSQLActualizarCorridaFecHusoFecVerano();

View File

@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.dao.sqlbuilder.impl;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
import com.rjconsultores.ventaboletos.dao.util.DBUtil;
@ -659,59 +660,64 @@ public class SQLBuilderOracle implements SQLBuilder {
}
@Override
public String getSQLAtualizarTarifaPorTarifaOfical(final Integer vigenciaTarifaId, final Integer usuarioId, final Boolean calculaPegagio, final Boolean calculaTarifa, final Boolean calculaTaxaEmbarque, final Boolean calculaSeguro, Empresa empresa, OrgaoConcedente orgao) {
public String getSQLSelecionarTarifaPorTarifaOficalParaAtualizar(final Integer vigenciaTarifaId, Empresa empresa, OrgaoConcedente orgao) {
StringBuilder sb = new StringBuilder("");
sb.append("update ( ");
sb.append(" ");
sb.append("select ");
sb.append(" ta.precio as taprecio, ");
sb.append(" ta.preciooriginal as tapreciooriginal, ");
sb.append(" ta.importetaxaembarque as taimportetaxaembarque, ");
sb.append(" ta.importepedagio as taimportepedagio, ");
sb.append(" ta.importeoutros as taimporteoutros, ");
sb.append(" ta.importeseguro as taimporteseguro, ");
sb.append(" tao.precio as taoprecio, ");
sb.append(" tao.preciooriginal as taopreciooriginal, ");
sb.append(" tao.importetaxaembarque as taoimportetaxaembarque, ");
sb.append(" tao.importepedagio as taoimportepedagio, ");
sb.append(" tao.importeoutros as taoimporteoutros, ");
sb.append(" tao.importeseguro as taoimporteseguro, ");
sb.append(" ta.fecmodif as tafecmodif,ta.usuario_id as tausuario_id ");
sb.append("from ");
sb.append(" tarifa_oficial tao ");
sb.append(" inner join tarifa ta on ");
sb.append(" tao.marca_id = ta.marca_id ");
sb.append(" and tao.claseservicio_id = ta.claseservicio_id ");
sb.append(" and tao.tramo_id = ta.tramo_id ");
sb.append(" and tao.moneda_id = ta.moneda_id ");
sb.append(" and tao.ruta_id = ta.ruta_id ");
sb.append(" and tao.orgaoconcedente_id = ta.orgaoconcedente_id ");
sb.append(" inner join marca m ON tao.marca_id = m.marca_id ");
sb.append("where ");
sb.append(" ta.vigenciatarifa_id = ").append(vigenciaTarifaId);
sb.append("SELECT tao.IMPORTEPEDAGIO AS \"taoimportepedagio\", ");
sb.append(" tao.PRECIO AS \"taoprecio\", ");
sb.append(" tao.PRECIOORIGINAL AS \"taopreciooriginal\", ");
sb.append(" tao.IMPORTETAXAEMBARQUE AS \"taoimportetaxaembarque\", ");
sb.append(" tao.IMPORTESEGURO AS \"taoimporteseguro\", ");
sb.append(" tao.IMPORTEOUTROS AS \"taoimporteoutros\", ");
sb.append(" ta.TARIFA_ID AS \"tarifaId\" ");
sb.append("FROM TARIFA_OFICIAL tao " );
sb.append("INNER JOIN TARIFA ta ON (tao.MARCA_ID = ta.MARCA_ID ");
sb.append(" AND tao.CLASESERVICIO_ID = ta.CLASESERVICIO_ID ");
sb.append(" AND tao.TRAMO_ID = ta.TRAMO_ID ");
sb.append(" AND tao.MONEDA_ID = ta.MONEDA_ID ");
sb.append(" AND tao.RUTA_ID = ta.RUTA_ID ");
sb.append(" AND tao.ORGAOCONCEDENTE_ID = ta.ORGAOCONCEDENTE_ID ");
sb.append(" )");
sb.append("INNER JOIN MARCA mTa ON tao.MARCA_ID = mTa.MARCA_ID ");
sb.append("INNER JOIN MARCA mTao ON ta.MARCA_ID = mTao.MARCA_ID ");
sb.append("WHERE ta.VIGENCIATARIFA_ID = ").append(vigenciaTarifaId);
if(orgao != null){
sb.append(" and tao.orgaoconcedente_id = ").append(orgao.getOrgaoConcedenteId());
sb.append(" AND tao.ORGAOCONCEDENTE_ID = ").append(orgao.getOrgaoConcedenteId());
}
if(empresa != null){
sb.append(" and m.empresa_id = ").append(empresa.getEmpresaId());
sb.append(" AND mTa.EMPRESA_ID = ").append(empresa.getEmpresaId());
sb.append(" AND mTao.EMPRESA_ID = ").append(empresa.getEmpresaId());
}
sb.append(" ) set ");
if (calculaPegagio) {
sb.append(" taimportepedagio = taoimportepedagio,");
return sb.toString();
}
@Override
public String getSQLAtualizarTarifaPorTarifaOfical(Map<String,Object> dados, Integer usuarioId, Boolean calculaPegagio,
Boolean calculaTarifa, Boolean calculaTaxaEmbarque, Boolean calculaSeguro){
StringBuilder sb = new StringBuilder("");
sb.append("UPDATE TARIFA SET ");
if(calculaPegagio){
sb.append("IMPORTEPEDAGIO=").append(dados.get("taimportepedagio")).append(",");
}
if (calculaTarifa) {
sb.append(" taprecio = taoprecio, ");
sb.append(" tapreciooriginal = taopreciooriginal, ");
if(calculaTarifa){
sb.append("PRECIO=").append(dados.get("taoprecio")).append(",PRECIOORIGINAL=").append(dados.get("taopreciooriginal")).append(",");
}
if (calculaTaxaEmbarque) {
sb.append(" taimportetaxaembarque = taoimportetaxaembarque, ");
if(calculaTaxaEmbarque){
sb.append("IMPORTETAXAEMBARQUE=").append(dados.get("taoimportetaxaembarque")).append(",");
}
if (calculaSeguro) {
sb.append(" taimporteseguro = taoimporteseguro, ");
}
sb.append(" taimporteoutros = taoimporteoutros, ");
sb.append(" tafecmodif = current_timestamp, tausuario_id = ").append(usuarioId);
if(calculaSeguro){
sb.append("IMPORTESEGURO=").append(dados.get("taoimporteseguro")).append(",");
}
sb.append("IMPORTEOUTROS=").append(dados.get("taoimporteoutros")).append(",");
sb.append("FECMODIF= current_timestamp, USUARIO_ID=").append(usuarioId);
sb.append(" WHERE TARIFA_ID = ").append(dados.get("tarifaId"));
return sb.toString();
}