Merge pull request 'AL-2734' (!245) from AL-2734 into master
Reviewed-on: adm/VentaBoletosAdm#245 Reviewed-by: Valdir Cordeiro <valdir.cordeiro@totvs.com.br>master 1.11.9
commit
0ff725aef6
2
pom.xml
2
pom.xml
|
@ -4,7 +4,7 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>br.com.rjconsultores</groupId>
|
<groupId>br.com.rjconsultores</groupId>
|
||||||
<artifactId>ventaboletosadm</artifactId>
|
<artifactId>ventaboletosadm</artifactId>
|
||||||
<version>1.11.8</version>
|
<version>1.11.9</version>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|
|
@ -948,65 +948,49 @@ public class EditarCorridaController extends MyGenericForwardComposer {
|
||||||
try {
|
try {
|
||||||
LocalDate inicioLocalDate = dataInicialFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
LocalDate inicioLocalDate = dataInicialFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||||
LocalDate fimLocalDate = dataFinalFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1);
|
LocalDate fimLocalDate = dataFinalFiltroCorridaExistente.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1);
|
||||||
LocalDate currentStart=LocalDate.from(inicioLocalDate);
|
|
||||||
List<TarefaGeracaoCorridaVO> tarefaSucesso = new ArrayList<TarefaGeracaoCorridaVO>();
|
List<TarefaGeracaoCorridaVO> tarefaSucesso = new ArrayList<TarefaGeracaoCorridaVO>();
|
||||||
List<TarefaGeracaoCorridaVO> tarefaErros = new ArrayList<TarefaGeracaoCorridaVO>();
|
List<TarefaGeracaoCorridaVO> tarefaErros = new ArrayList<TarefaGeracaoCorridaVO>();
|
||||||
Date dataIter = Date.from(currentStart.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
||||||
for (LocalDate date = inicioLocalDate; date.isBefore(fimLocalDate); date = date.plusDays(1)) {
|
for (LocalDate date = inicioLocalDate; date.isBefore(fimLocalDate); date = date.plusDays(1)) {
|
||||||
//valida data
|
Date dataIter = Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||||
try {
|
try {
|
||||||
//1 - Validar se corrida existe vendas disponíveis
|
//1 - Validar se corrida existe vendas disponíveis
|
||||||
if(!boletoService.isExisteBoletoPorCorrida(esquemaCorrida.getNumCorrida(), dataIter)) {
|
if(boletoService.isExisteBoletoPorCorrida(esquemaCorrida.getNumCorrida(), dataIter)) {
|
||||||
//2 - Apagar corrida caso não exista venda
|
|
||||||
Corrida.Id id = new Corrida.Id(esquemaCorrida.getNumCorrida(), dataIter);
|
|
||||||
//3 - Gerar nova corrida somente se a corrida estiver ativa
|
|
||||||
Corrida corrida = corridaService.buscarCorridaAtivaPorId(id);
|
|
||||||
if(corrida !=null) {
|
|
||||||
try {
|
|
||||||
corridaService.borrar(corrida);
|
|
||||||
}catch (DataIntegrityViolationException e) {
|
|
||||||
if(e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("SYS_C004956867")) {
|
|
||||||
String msgErro = "Existe uma ocupação para esta corrida nesta data (tabela Disponibilidade). Corrida:" + esquemaCorrida.getNumCorrida() + " data:" + DateUtil.getStringDate(dataIter);
|
|
||||||
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
|
||||||
tarefaErros.add(tarefa);
|
|
||||||
//log.error("Geração de corrida via Conf. " + msgErro, e);
|
|
||||||
}else if (e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("SYS_C004957483")) {
|
|
||||||
String msgErro = "Existe um assento exclusivo para esta corrida nesta data (tabela ASIENTO_EXCLUSIVO). Corrida:" + esquemaCorrida.getNumCorrida() + " data:" + DateUtil.getStringDate(dataIter);
|
|
||||||
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
|
||||||
tarefaErros.add(tarefa);
|
|
||||||
//log.error("Geração de corrida via Conf. " + msgErro, e);
|
|
||||||
|
|
||||||
}else{
|
|
||||||
String msgErro = "Alguma restrição de integridade foi violada. Favor verificar ";
|
|
||||||
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
|
||||||
tarefaErros.add(tarefa);
|
|
||||||
log.error("Geração de corrida via Conf. " + msgErro, e);
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
|
|
||||||
}
|
|
||||||
//4 - Gerar corrida novamente.
|
|
||||||
List<EsquemaCorrida> esquemaCorridaList = new ArrayList<EsquemaCorrida>();
|
|
||||||
esquemaCorridaList.add(esquemaCorrida);
|
|
||||||
corridaService.generarCorrida(dataIter, esquemaCorridaList, false);
|
|
||||||
String msgSucesso = "Corrida parada a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
|
|
||||||
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
|
|
||||||
tarefaSucesso.add(tarefa);
|
|
||||||
}else {
|
|
||||||
String msgErro = "Não econtrado corrida:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter);
|
|
||||||
log.error("Geração de corrida via Conf. " + msgErro);
|
|
||||||
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
|
||||||
tarefaErros.add(tarefa);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}else {
|
|
||||||
String msgErro = "Corrida não será gerada novamente. Existem vendas para a corrida:" + esquemaCorrida.getNumCorrida() + " na data:" + DateUtil.getStringDate(dataIter);
|
String msgErro = "Corrida não será gerada novamente. Existem vendas para a corrida:" + esquemaCorrida.getNumCorrida() + " na data:" + DateUtil.getStringDate(dataIter);
|
||||||
log.error("Geração de corrida via Conf. " + msgErro);
|
log.error("Geração de corrida via Conf. " + msgErro);
|
||||||
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
||||||
tarefaErros.add(tarefa);
|
tarefaErros.add(tarefa);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Valida Pìso Extra tem boletos vendidos
|
||||||
|
if(Boolean.TRUE.equals(esquemaCorrida.getPisoExtra()) && boletoService.isExisteBoletoPorCorrida(esquemaCorrida.getNumCorridaPisoExtra(), dataIter)) {
|
||||||
|
String msgErro = "Não econtrado corrida:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter);
|
||||||
|
log.error("Geração de corrida via Conf. " + msgErro);
|
||||||
|
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
||||||
|
tarefaErros.add(tarefa);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//Valida e apaga corrida caso exista
|
||||||
|
TarefaGeracaoCorridaVO tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorrida(), dataIter);
|
||||||
|
if(tarefaErro !=null) {
|
||||||
|
tarefaErros.add(tarefaErro);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//Valida e apaga corrida piso extra caso exista
|
||||||
|
tarefaErro= validaApagaCorridaAgerar(esquemaCorrida.getNumCorridaPisoExtra(), dataIter);
|
||||||
|
if(tarefaErro !=null) {
|
||||||
|
tarefaErros.add(tarefaErro);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gerar corrida novamente.
|
||||||
|
List<EsquemaCorrida> esquemaCorridaList = new ArrayList<EsquemaCorrida>();
|
||||||
|
esquemaCorridaList.add(esquemaCorrida);
|
||||||
|
corridaService.generarCorrida(dataIter, esquemaCorridaList, false);
|
||||||
|
String msgSucesso = "Corrida para a data " + DateUtil.getStringDate(dataIter) + " gerada com sucesso";
|
||||||
|
TarefaGeracaoCorridaVO tarefa = new TarefaGeracaoCorridaVO(msgSucesso, "OK", "OK" );
|
||||||
|
tarefaSucesso.add(tarefa);
|
||||||
|
|
||||||
}catch (Exception e) {
|
}catch (Exception e) {
|
||||||
String msgErro = "Serviço. Erro ao regerar a corrida:" + esquemaCorrida.getNumCorrida() + "para a data:" + DateUtil.getStringDate(dataIter);
|
String msgErro = "Serviço. Erro ao regerar a corrida:" + esquemaCorrida.getNumCorrida() + "para a data:" + DateUtil.getStringDate(dataIter);
|
||||||
log.error("Geração de corrida via Conf. " + msgErro, e);
|
log.error("Geração de corrida via Conf. " + msgErro, e);
|
||||||
|
@ -1029,6 +1013,40 @@ public class EditarCorridaController extends MyGenericForwardComposer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private TarefaGeracaoCorridaVO validaApagaCorridaAgerar(Integer corridaId, Date dataIter) {
|
||||||
|
|
||||||
|
//2 - Apagar corrida caso não exista venda
|
||||||
|
Corrida.Id id = new Corrida.Id(corridaId, dataIter);
|
||||||
|
//3 - Gerar nova corrida somente se a corrida estiver ativa
|
||||||
|
Corrida corrida = corridaService.buscarCorridaAtivaPorId(id);
|
||||||
|
|
||||||
|
if(corrida==null) {
|
||||||
|
String msgErro = "Não econtrado corrida:" + esquemaCorrida.getNumCorrida() + " para a data:" + DateUtil.getStringDate(dataIter);
|
||||||
|
log.error("Geração de corrida via Conf. " + msgErro);
|
||||||
|
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
corridaService.borrar(corrida);
|
||||||
|
}catch (DataIntegrityViolationException e) {
|
||||||
|
if(e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("SYS_C004956867")) {
|
||||||
|
String msgErro = "Existe uma ocupação para esta corrida nesta data (tabela Disponibilidade). Corrida:" + esquemaCorrida.getNumCorrida() + " data:" + DateUtil.getStringDate(dataIter);
|
||||||
|
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
||||||
|
//log.error("Geração de corrida via Conf. " + msgErro, e);
|
||||||
|
}else if (e.getRootCause()!=null && e.getRootCause().getLocalizedMessage() !=null && e.getRootCause().getLocalizedMessage().contains("SYS_C004957483")) {
|
||||||
|
String msgErro = "Existe um assento exclusivo para esta corrida nesta data (tabela ASIENTO_EXCLUSIVO). Corrida:" + esquemaCorrida.getNumCorrida() + " data:" + DateUtil.getStringDate(dataIter);
|
||||||
|
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
||||||
|
//log.error("Geração de corrida via Conf. " + msgErro, e);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
String msgErro = "Alguma restrição de integridade foi violada. Favor verificar ";
|
||||||
|
log.error("Geração de corrida via Conf. " + msgErro, e);
|
||||||
|
return new TarefaGeracaoCorridaVO(msgErro, "ERRO", "ERRO");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private void salvaNovoEsquemaCorrida(Date dataDeFecInicioVigencia, List<EsquemaCorrida> lsEC)
|
private void salvaNovoEsquemaCorrida(Date dataDeFecInicioVigencia, List<EsquemaCorrida> lsEC)
|
||||||
throws InterruptedException {
|
throws InterruptedException {
|
||||||
Calendar agora = Calendar.getInstance();
|
Calendar agora = Calendar.getInstance();
|
||||||
|
|
Loading…
Reference in New Issue