Verificar a possibilidade de melhorar o tempo de sincronismo do Operador na Embarcada

bug#14740
dev:trevezani
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@94877 d1611594-4594-4d17-8e1d-87c2c4800839
master
alberto 2019-06-21 20:45:39 +00:00
parent a033f594c9
commit c71e52ad7f
2 changed files with 111 additions and 11 deletions

View File

@ -20,11 +20,9 @@ import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.constantes.Constantes;
import com.rjconsultores.ventaboletos.dao.CategoriaDescuentoDAO; import com.rjconsultores.ventaboletos.dao.CategoriaDescuentoDAO;
import com.rjconsultores.ventaboletos.dao.MarcaDAO;
import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO; import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO;
import com.rjconsultores.ventaboletos.dao.util.DBUtil; import com.rjconsultores.ventaboletos.dao.util.DBUtil;
import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento; import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento;
import com.rjconsultores.ventaboletos.entidad.Marca;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
@ -43,8 +41,8 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
@Autowired @Autowired
private CategoriaDescuentoDAO categoriaDescuentoDAO; private CategoriaDescuentoDAO categoriaDescuentoDAO;
@Autowired // @Autowired
private MarcaDAO marcaDAO; // private MarcaDAO marcaDAO;
@Autowired @Autowired
public OperadorEmbarcadaServicoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { public OperadorEmbarcadaServicoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
@ -324,7 +322,82 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" TA.IMPORTEPEDAGIO AS importePedagio,"); sb.append(" TA.IMPORTEPEDAGIO AS importePedagio,");
sb.append(" TA.IMPORTEOUTROS AS importeOutros,"); sb.append(" TA.IMPORTEOUTROS AS importeOutros,");
sb.append(" TA.IMPORTESEGURO AS importeSeguro,"); sb.append(" TA.IMPORTESEGURO AS importeSeguro,");
sb.append(" TA.PRECIO AS precio"); sb.append(" TA.PRECIO AS precio,");
sb.append(" TA.RUTA_ID as rutaId,");
sb.append(" (");
sb.append(" select IMPORTETARIFA");
sb.append(" from (");
sb.append(" select");
sb.append(" tmx.TARIFAMINIMA_ID as TARIFAMINIMA_ID,");
sb.append(" tmx.ACTIVO as ACTIVO,");
sb.append(" tmx.CLASESERVICIO_ID as CLASESERVICIO_ID,");
sb.append(" tmx.COEFICIENTETARIFA_ID as COEFICIENTETARIFA_ID,");
sb.append(" tmx.DESTINO_ID as DESTINO_ID,");
sb.append(" tmx.FECMODIF as FECMODIF,");
sb.append(" tmx.IMPORTETARIFA as IMPORTETARIFA,");
sb.append(" tmx.MARCA_ID as MARCA_ID,");
sb.append(" tmx.MONEDA_ID as MONEDA_ID,");
sb.append(" tmx.ORGAOCONCEDENTE_ID as ORGAOCONCEDENTE_ID,");
sb.append(" tmx.ORIGEN_ID as ORIGEN_ID,");
sb.append(" tmx.PLAZA_ID as PLAZA_ID,");
sb.append(" tmx.REGIONMETROPOLITANA_ID as REGIONMETROPOLITANA_ID,");
sb.append(" tmx.RUTA_ID as RUTA_ID,");
sb.append(" tmx.USUARIO_ID as USUARIO_ID,");
sb.append(" tmx.VIGENCIATARIFA_ID as VIGENCIATARIFA_ID,");
sb.append(" ocx.ORGAOCONCEDENTE_ID as orgaoConcedenteId,");
sb.append(" paradaOrigem.PARADA_ID as paradaOrigemId,");
sb.append(" paradaDestino.PARADA_ID as paradaDestinoId,");
sb.append(" ruta.ruta_id as rutaId");
sb.append(" from TARIFA_MINIMA tmx");
sb.append(" join PARADA paradaOrigem on paradaOrigem.activo = 1");
sb.append(" join PARADA paradaDestino on paradaDestino.activo = 1");
sb.append(" join RUTA ruta on ruta.activo = 1");
sb.append(" left outer join ORGAO_CONCEDENTE ocx on tmx.ORGAOCONCEDENTE_ID=ocx.ORGAOCONCEDENTE_ID ");
sb.append(" left outer join TARIFA_MINIMA_CATEGORIA tmcx on tmx.TARIFAMINIMA_ID=tmcx.TARIFAMINIMA_ID and tmcx.ACTIVO = 1 ");
sb.append(" left outer join VIGENCIA_TARIFA vtx on tmx.VIGENCIATARIFA_ID=vtx.VIGENCIATARIFA_ID ");
sb.append(" left outer join REGION_METROPOLITANA rmx on tmx.REGIONMETROPOLITANA_ID=rmx.REGIONMETROPOLITANA_ID ");
sb.append(" left outer join PARADA prmox on rmx.REGIONMETROPOLITANA_ID=prmox.REGIONMETROPOLITANA_ID ");
sb.append(" left outer join PARADA prmdx on rmx.REGIONMETROPOLITANA_ID=prmdx.REGIONMETROPOLITANA_ID ");
sb.append(" where tmx.ACTIVO=1 ");
sb.append(" and (prmox.PARADA_ID in (paradaOrigem.PARADA_ID, -1) or prmox.PARADA_ID is null) ");
sb.append(" and (prmdx.PARADA_ID in (paradaDestino.PARADA_ID, -1) or prmdx.PARADA_ID is null) ");
sb.append(" and (tmx.ORIGEN_ID in (paradaOrigem.PARADA_ID, -1) or tmx.ORIGEN_ID is null) ");
sb.append(" and (tmx.DESTINO_ID in (paradaDestino.PARADA_ID, -1) or tmx.DESTINO_ID is null) ");
sb.append(" and (tmx.PLAZA_ID in (:plazaId, -1)) ");
sb.append(" and (tmx.CLASESERVICIO_ID in (:claseservicioId, -1)) ");
sb.append(" and (tmx.MARCA_ID in (:marcaId, -1)) ");
sb.append(" and (tmcx.TARIFAMINIMACATEGORIA_ID is null or tmcx.CATEGORIA_ID in (:categoriaId, -1)) ");
sb.append(" and tmx.MONEDA_ID=:moneda");
sb.append(" and (ocx.ORGAOCONCEDENTE_ID is null or ocx.ORGAOCONCEDENTE_ID=-1 or ocx.ORGAOCONCEDENTE_ID=(");
sb.append(" select distinct rx.ORGAOCONCEDENTE_ID");
sb.append(" from RUTA rx ");
sb.append(" left outer join RUTA_COMBINACION rcx on rx.RUTA_ID=rcx.RUTA_ID ");
sb.append(" left outer join TRAMO tx on rcx.TRAMO_ID=tx.TRAMO_ID ");
sb.append(" left outer join ORGAO_TRAMO otx on tx.TRAMO_ID=otx.TRAMO_ID ");
sb.append(" where");
sb.append(" rcx.RUTA_ID=ruta.RUTA_ID");
sb.append(" and (");
sb.append(" (tmx.COEFICIENTETARIFA_ID in (otx.COEFICIENTETARIFA1_ID,otx.COEFICIENTETARIFA2_ID,otx.COEFICIENTETARIFA3_ID))");
sb.append(" and tx.ORIGEN_ID=paradaOrigem.parada_id ");
sb.append(" and tx.DESTINO_ID=paradaDestino.parada_id");
sb.append(" or tmx.COEFICIENTETARIFA_ID is null");
sb.append(" )");
sb.append(" )");
sb.append(" )");
sb.append(" and (SYSDATE between vtx.FECINICIOVIGENCIA and vtx.FECFINVIGENCIA)");
sb.append(" order by");
sb.append(" tmx.PLAZA_ID desc,");
sb.append(" tmx.ORIGEN_ID desc,");
sb.append(" tmx.DESTINO_ID desc,");
sb.append(" tmx.CLASESERVICIO_ID desc,");
sb.append(" tmx.MARCA_ID desc");
sb.append(" )");
sb.append(" where");
sb.append(" paradaOrigemId = TRM.ORIGEN_ID");
sb.append(" and paradaDestinoId = TRM.DESTINO_ID");
sb.append(" and rutaId = TA.RUTA_ID");
sb.append(" and rownum = 1");
sb.append(" ) as tarifaMinima");
sb.append(" FROM RUTA_COMBINACION RC"); sb.append(" FROM RUTA_COMBINACION RC");
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_ID"); sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_ID");
sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.DESTINO_ID = TRM.DESTINO_ID AND CRT.CORRIDA_ID = :corridaId AND CRT.FECCORRIDA = TO_DATE(:feccorrida,'DD/MM/YYYY HH24:MI:SS')"); sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.DESTINO_ID = TRM.DESTINO_ID AND CRT.CORRIDA_ID = :corridaId AND CRT.FECCORRIDA = TO_DATE(:feccorrida,'DD/MM/YYYY HH24:MI:SS')");
@ -373,7 +446,8 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" TA.IMPORTEPEDAGIO,"); sb.append(" TA.IMPORTEPEDAGIO,");
sb.append(" TA.IMPORTEOUTROS,"); sb.append(" TA.IMPORTEOUTROS,");
sb.append(" TA.IMPORTESEGURO,"); sb.append(" TA.IMPORTESEGURO,");
sb.append(" TA.PRECIO"); sb.append(" TA.PRECIO,");
sb.append(" TA.RUTA_ID");
sb.append(" ORDER BY"); sb.append(" ORDER BY");
sb.append(" CRT.NUMSECUENCIA"); sb.append(" CRT.NUMSECUENCIA");
@ -402,15 +476,22 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
.addScalar("importeOutros", BigDecimalType.INSTANCE) .addScalar("importeOutros", BigDecimalType.INSTANCE)
.addScalar("importeSeguro", BigDecimalType.INSTANCE) .addScalar("importeSeguro", BigDecimalType.INSTANCE)
.addScalar("precio", BigDecimalType.INSTANCE) .addScalar("precio", BigDecimalType.INSTANCE)
.addScalar("tarifaMinima", BigDecimalType.INSTANCE)
.setResultTransformer(Transformers.aliasToBean(TramoSequenciaVO.class)); .setResultTransformer(Transformers.aliasToBean(TramoSequenciaVO.class));
query.setParameter("marcaId", corrida.getMarcaId()); query.setParameter("marcaId", corrida.getMarcaId());
query.setParameter("rutaId", corrida.getRutaId()); query.setParameter("rutaId", corrida.getRutaId());
query.setParameter("corridaId", corrida.getCorridaId()); query.setParameter("corridaId", corrida.getCorridaId());
query.setParameter("feccorrida", corrida.getFeccorrida() + " 00:00:00"); query.setParameter("feccorrida", corrida.getFeccorrida() + " 00:00:00");
query.setParameter("plazaId", puntoVenta.getColonia().getCiudad().getPlaza().getPlazaId());
query.setParameter("claseservicioId", corrida.getClaseServicioId());
query.setParameter("categoriaId", Constantes.CATEGORIA_NORMAL);
query.setParameter("moneda", puntoVenta.getMoneda().getMonedaId());
List<TramoSequenciaVO> tramosequencia = query.list(); List<TramoSequenciaVO> tramosequencia = query.list();
CategoriaDescuento categoriaDescuento = categoriaDescuentoDAO.pesquisarPorCategoriaEmpresa(Constantes.CATEGORIA_NORMAL, corrida.getMarcaId());
List<TramoVO> lsTramo = new ArrayList<TramoVO>(); List<TramoVO> lsTramo = new ArrayList<TramoVO>();
for (TramoSequenciaVO ts : tramosequencia) { for (TramoSequenciaVO ts : tramosequencia) {
@ -436,10 +517,20 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
ts.getViaId(), ts.getViaId(),
ts.getNomeVia()); ts.getNomeVia());
Marca marca = marcaDAO.obtenerID(corrida.getMarcaId().shortValue()); // Marca marca = marcaDAO.obtenerID(corrida.getMarcaId().shortValue());
CategoriaDescuento catdesc = categoriaDescuentoDAO.pesquisarPorCategoriaEmpresa(Constantes.CATEGORIA_NORMAL, marca.getEmpresa().getEmpresaId()); // CategoriaDescuento catdesc = categoriaDescuentoDAO.pesquisarPorCategoriaEmpresa(Constantes.CATEGORIA_NORMAL, marca.getEmpresa().getEmpresaId());
BigDecimal tarifaMinima = obtenerTarifaMinima(corrida.getClaseServicioId(), corrida.getMarcaId(), origem.getParadaId(), destino.getParadaId(), // BigDecimal tarifaMinima = obtenerTarifaMinima(corrida.getClaseServicioId(), corrida.getMarcaId(), origem.getParadaId(), destino.getParadaId(),
puntoVenta, corrida.getRutaId(), Constantes.CATEGORIA_NORMAL, catdesc.getIndnaoaplicatarifaminima()); // puntoVenta, corrida.getRutaId(), Constantes.CATEGORIA_NORMAL, catdesc.getIndnaoaplicatarifaminima());
BigDecimal tarifaMinima = ts.getTarifaMinima();
/*
* Não aplica tarifa minina quando configurado no tipo de passagem
* Mantis #10704
*/
if (tarifaMinima == null || (categoriaDescuento.getIndnaoaplicatarifaminima() != null && categoriaDescuento.getIndnaoaplicatarifaminima())) {
tarifaMinima = BigDecimal.ZERO;
}
TramoVO tramo = new TramoVO( TramoVO tramo = new TramoVO(
ts.getTramoId(), ts.getTramoId(),

View File

@ -27,6 +27,7 @@ public class TramoSequenciaVO {
private BigDecimal importeOutros; private BigDecimal importeOutros;
private BigDecimal importeSeguro; private BigDecimal importeSeguro;
private BigDecimal precio; private BigDecimal precio;
private BigDecimal tarifaMinima;
public TramoSequenciaVO() { public TramoSequenciaVO() {
@ -223,4 +224,12 @@ public class TramoSequenciaVO {
public void setPrecio(BigDecimal precio) { public void setPrecio(BigDecimal precio) {
this.precio = precio; this.precio = precio;
} }
public BigDecimal getTarifaMinima() {
return tarifaMinima;
}
public void setTarifaMinima(BigDecimal tarifaMinima) {
this.tarifaMinima = tarifaMinima;
}
} }