From d8ad23e3e0b3dc46e6c6c4a69705b0997b004cd0 Mon Sep 17 00:00:00 2001 From: erick.sato Date: Wed, 20 Apr 2016 11:01:54 -0300 Subject: [PATCH] [Redmine Atendimento #4576]Notificação Ressuprimento --- cit-almoxarifado-api/src/main/java/br/com/centralit/api/job/NotificacaoRessuprimentoJob.java | 32 ++++++++++++++++++++++++-------- cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/ConfiguracaoNotificacaoRessuprimentoServiceImpl.java | 6 +++++- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/job/NotificacaoRessuprimentoJob.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/job/NotificacaoRessuprimentoJob.java index a5d29f9..949627f 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/job/NotificacaoRessuprimentoJob.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/job/NotificacaoRessuprimentoJob.java @@ -3,6 +3,7 @@ package br.com.centralit.api.job; import java.math.BigDecimal; import java.util.Arrays; import java.util.Collection; +import java.util.Date; import java.util.List; import org.apache.commons.logging.Log; @@ -21,11 +22,13 @@ import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoGrupoSer import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoService; import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoUsuarioService; import br.com.centralit.api.service.MaterialConsumoService; +import br.com.centralit.api.service.NotificacaoService; import br.com.centralit.api.service.NotificacaoUsuarioService; import br.com.centralit.api.service.impl.NotificacaoGrupoService; import br.com.centralit.framework.dao.arquitetura.SearchSeven; import br.com.centralit.framework.mail.HTMLMail; import br.com.centralit.framework.model.Filter; +import br.com.centralit.framework.model.Notificacao; import br.com.centralit.framework.model.NotificacaoGrupo; import br.com.centralit.framework.model.NotificacaoUsuario; import br.com.centralit.framework.model.SearchParams; @@ -86,6 +89,8 @@ public class NotificacaoRessuprimentoJob implements Job { /** Atributo notificacaoGrupoService. */ private NotificacaoGrupoService notificacaoGrupoService; + + private NotificacaoService notificacaoService; /** Atributo urlScheme. */ String urlScheme; @@ -126,6 +131,8 @@ public class NotificacaoRessuprimentoJob implements Job { this.notificacaoUsuarioService = (NotificacaoUsuarioService) context.getScheduler().getContext().get("notificacaoUsuarioService"); this.notificacaoGrupoService = (NotificacaoGrupoService) context.getScheduler().getContext().get("notificacaoGrupoService"); + + this.notificacaoService = (NotificacaoService) context.getScheduler().getContext().get("notificacaoService"); } catch (final SchedulerException e) { e.printStackTrace(); @@ -176,7 +183,7 @@ public class NotificacaoRessuprimentoJob implements Job { params.setStart(0); params.setLimit(Integer.MAX_VALUE); - params.setFields(Arrays.asList(new String[]{"grupo.email", "grupo.nome", "notificacao.mensagem"})); + params.setFields(Arrays.asList(new String[]{"grupo.email", "grupo.nome", "notificacao.mensagem", "notificacao.dataVisualizacao"})); List search = this.notificacaoGrupoService.search(new SearchSeven(params)); @@ -190,6 +197,11 @@ public class NotificacaoRessuprimentoJob implements Job { }else{ Object[] values = (Object[]) search.get(0); + + if(values[3] != null){ + this.notificacaoService.adiar(configuracao.getNotificacao().getId()); + } + emailDestinatario = (String) values[0]; nomeDestinatario = (String) values[1]; mensagem = (String) values[2]; @@ -199,7 +211,7 @@ public class NotificacaoRessuprimentoJob implements Job { this.notificacaoUsuarioService.sendNotificacaoEmailGrupo(emailDestinatario, nomeDestinatario, mensagem); } - NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o grupo: " + configuracaoGrupo.getGrupo().getNome()); + NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o grupo: " + configuracaoGrupo.getGrupo().getNome() + new Date()); } } @@ -212,17 +224,16 @@ public class NotificacaoRessuprimentoJob implements Job { SearchParams params = new SearchParams(); params.setFilters(Arrays.asList(new Filter[]{new Filter("notificacao.id", ConstantsQuery.TYPE_NUMERIC, - configuracao.getNotificacao().getId().toString(), ConstantsQuery.COMPARE_EQUALS), - new Filter("notificacao.dataVisualizacao", ConstantsQuery.TYPE_DATE, null, ConstantsQuery.COMPARE_EMPTY), - new Filter("notificacao.mensagem", ConstantsQuery.TYPE_STRING, configuracao.getNotificacao().getMensagem(), ConstantsQuery.COMPARE_EQUALS)})); + configuracao.getNotificacao().getId().toString(), ConstantsQuery.COMPARE_EQUALS)})); params.setStart(0); params.setLimit(Integer.MAX_VALUE); - params.setFields(Arrays.asList(new String[]{"usuario.email", "usuario.username", "notificacao.mensagem"})); + params.setFields(Arrays.asList(new String[]{"usuario.email", "usuario.username", "notificacao.mensagem", "notificacao.dataVisualizacao"})); List search = this.notificacaoUsuarioService.search(new SearchSeven(params)); if(UtilColecao.isVazio(search)){ - notificacaoUsuario = new NotificacaoUsuario(configuracao.getNotificacao(), configuracaoUsuario.getUsuario()); + + notificacaoUsuario = new NotificacaoUsuario(configuracao.getNotificacao(), configuracaoUsuario.getUsuario()); this.notificacaoUsuarioService.save(notificacaoUsuario); emailDestinatario = notificacaoUsuario.getUsuario().getEmail(); @@ -231,6 +242,11 @@ public class NotificacaoRessuprimentoJob implements Job { }else{ Object[] values = (Object[]) search.get(0); + + if(values[3] != null){ + this.notificacaoService.adiar(configuracao.getNotificacao().getId()); + } + emailDestinatario = (String) values[0]; nomeDestinatario = (String) values[1]; mensagem = (String) values[2]; @@ -240,7 +256,7 @@ public class NotificacaoRessuprimentoJob implements Job { this.notificacaoUsuarioService.sendNotificacaoEmailGrupo(emailDestinatario, nomeDestinatario, mensagem); } - NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o usuario:" + configuracaoUsuario.getUsuario().getUsername()); + NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o usuario:" + configuracaoUsuario.getUsuario().getUsername() + new Date()); } } diff --git a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/ConfiguracaoNotificacaoRessuprimentoServiceImpl.java b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/ConfiguracaoNotificacaoRessuprimentoServiceImpl.java index 048cab9..320f412 100644 --- a/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/ConfiguracaoNotificacaoRessuprimentoServiceImpl.java +++ b/cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/ConfiguracaoNotificacaoRessuprimentoServiceImpl.java @@ -425,8 +425,12 @@ public class ConfiguracaoNotificacaoRessuprimentoServiceImpl extends GenericServ mensagemConfiguracao.append(ESTOQUE).append(config.getLocalEstoque().getAlmoxarifado().getCodigoENome()) .append(MATERIAL).append(config.getMaterialConsumo().getCodigoEDescricao()) - .append(QUANTIDADE).append(qtdMaterialEstoque).append("
"); + .append(QUANTIDADE).append(qtdMaterialEstoque).append("

"); } + + mensagemConfiguracao.append(""); + mensagemConfiguracao.append(config.getNotificacao().getMensagem()); + mensagemConfiguracao.append(""); return mensagemConfiguracao.toString(); } -- libgit2 0.21.2