Commit d8ad23e3e0b3dc46e6c6c4a69705b0997b004cd0

Authored by erick.sato
1 parent 478c9dca
Exists in master

[Redmine Atendimento #4576]Notificação Ressuprimento

cit-almoxarifado-api/src/main/java/br/com/centralit/api/job/NotificacaoRessuprimentoJob.java
... ... @@ -3,6 +3,7 @@ package br.com.centralit.api.job;
3 3 import java.math.BigDecimal;
4 4 import java.util.Arrays;
5 5 import java.util.Collection;
  6 +import java.util.Date;
6 7 import java.util.List;
7 8  
8 9 import org.apache.commons.logging.Log;
... ... @@ -21,11 +22,13 @@ import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoGrupoSer
21 22 import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoService;
22 23 import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoUsuarioService;
23 24 import br.com.centralit.api.service.MaterialConsumoService;
  25 +import br.com.centralit.api.service.NotificacaoService;
24 26 import br.com.centralit.api.service.NotificacaoUsuarioService;
25 27 import br.com.centralit.api.service.impl.NotificacaoGrupoService;
26 28 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
27 29 import br.com.centralit.framework.mail.HTMLMail;
28 30 import br.com.centralit.framework.model.Filter;
  31 +import br.com.centralit.framework.model.Notificacao;
29 32 import br.com.centralit.framework.model.NotificacaoGrupo;
30 33 import br.com.centralit.framework.model.NotificacaoUsuario;
31 34 import br.com.centralit.framework.model.SearchParams;
... ... @@ -86,6 +89,8 @@ public class NotificacaoRessuprimentoJob implements Job {
86 89  
87 90 /** Atributo notificacaoGrupoService. */
88 91 private NotificacaoGrupoService notificacaoGrupoService;
  92 +
  93 + private NotificacaoService notificacaoService;
89 94  
90 95 /** Atributo urlScheme. */
91 96 String urlScheme;
... ... @@ -126,6 +131,8 @@ public class NotificacaoRessuprimentoJob implements Job {
126 131 this.notificacaoUsuarioService = (NotificacaoUsuarioService) context.getScheduler().getContext().get("notificacaoUsuarioService");
127 132  
128 133 this.notificacaoGrupoService = (NotificacaoGrupoService) context.getScheduler().getContext().get("notificacaoGrupoService");
  134 +
  135 + this.notificacaoService = (NotificacaoService) context.getScheduler().getContext().get("notificacaoService");
129 136  
130 137 } catch (final SchedulerException e) {
131 138 e.printStackTrace();
... ... @@ -176,7 +183,7 @@ public class NotificacaoRessuprimentoJob implements Job {
176 183 params.setStart(0);
177 184 params.setLimit(Integer.MAX_VALUE);
178 185  
179   - params.setFields(Arrays.asList(new String[]{"grupo.email", "grupo.nome", "notificacao.mensagem"}));
  186 + params.setFields(Arrays.asList(new String[]{"grupo.email", "grupo.nome", "notificacao.mensagem", "notificacao.dataVisualizacao"}));
180 187  
181 188 List<Object> search = this.notificacaoGrupoService.search(new SearchSeven(params));
182 189  
... ... @@ -190,6 +197,11 @@ public class NotificacaoRessuprimentoJob implements Job {
190 197  
191 198 }else{
192 199 Object[] values = (Object[]) search.get(0);
  200 +
  201 + if(values[3] != null){
  202 + this.notificacaoService.adiar(configuracao.getNotificacao().getId());
  203 + }
  204 +
193 205 emailDestinatario = (String) values[0];
194 206 nomeDestinatario = (String) values[1];
195 207 mensagem = (String) values[2];
... ... @@ -199,7 +211,7 @@ public class NotificacaoRessuprimentoJob implements Job {
199 211 this.notificacaoUsuarioService.sendNotificacaoEmailGrupo(emailDestinatario, nomeDestinatario, mensagem);
200 212 }
201 213  
202   - NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o grupo: " + configuracaoGrupo.getGrupo().getNome());
  214 + NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o grupo: " + configuracaoGrupo.getGrupo().getNome() + new Date());
203 215 }
204 216  
205 217 }
... ... @@ -212,17 +224,16 @@ public class NotificacaoRessuprimentoJob implements Job {
212 224  
213 225 SearchParams params = new SearchParams();
214 226 params.setFilters(Arrays.asList(new Filter[]{new Filter("notificacao.id", ConstantsQuery.TYPE_NUMERIC,
215   - configuracao.getNotificacao().getId().toString(), ConstantsQuery.COMPARE_EQUALS),
216   - new Filter("notificacao.dataVisualizacao", ConstantsQuery.TYPE_DATE, null, ConstantsQuery.COMPARE_EMPTY),
217   - new Filter("notificacao.mensagem", ConstantsQuery.TYPE_STRING, configuracao.getNotificacao().getMensagem(), ConstantsQuery.COMPARE_EQUALS)}));
  227 + configuracao.getNotificacao().getId().toString(), ConstantsQuery.COMPARE_EQUALS)}));
218 228  
219 229 params.setStart(0);
220 230 params.setLimit(Integer.MAX_VALUE);
221   - params.setFields(Arrays.asList(new String[]{"usuario.email", "usuario.username", "notificacao.mensagem"}));
  231 + params.setFields(Arrays.asList(new String[]{"usuario.email", "usuario.username", "notificacao.mensagem", "notificacao.dataVisualizacao"}));
222 232 List<Object> search = this.notificacaoUsuarioService.search(new SearchSeven(params));
223 233  
224 234 if(UtilColecao.isVazio(search)){
225   - notificacaoUsuario = new NotificacaoUsuario(configuracao.getNotificacao(), configuracaoUsuario.getUsuario());
  235 +
  236 + notificacaoUsuario = new NotificacaoUsuario(configuracao.getNotificacao(), configuracaoUsuario.getUsuario());
226 237 this.notificacaoUsuarioService.save(notificacaoUsuario);
227 238  
228 239 emailDestinatario = notificacaoUsuario.getUsuario().getEmail();
... ... @@ -231,6 +242,11 @@ public class NotificacaoRessuprimentoJob implements Job {
231 242  
232 243 }else{
233 244 Object[] values = (Object[]) search.get(0);
  245 +
  246 + if(values[3] != null){
  247 + this.notificacaoService.adiar(configuracao.getNotificacao().getId());
  248 + }
  249 +
234 250 emailDestinatario = (String) values[0];
235 251 nomeDestinatario = (String) values[1];
236 252 mensagem = (String) values[2];
... ... @@ -240,7 +256,7 @@ public class NotificacaoRessuprimentoJob implements Job {
240 256 this.notificacaoUsuarioService.sendNotificacaoEmailGrupo(emailDestinatario, nomeDestinatario, mensagem);
241 257 }
242 258  
243   - NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o usuario:" + configuracaoUsuario.getUsuario().getUsername());
  259 + NotificacaoRessuprimentoJob.logger.info("Inclusão da Notificação para o usuario:" + configuracaoUsuario.getUsuario().getUsername() + new Date());
244 260 }
245 261 }
246 262  
... ...
cit-almoxarifado-api/src/main/java/br/com/centralit/api/service/impl/ConfiguracaoNotificacaoRessuprimentoServiceImpl.java
... ... @@ -425,8 +425,12 @@ public class ConfiguracaoNotificacaoRessuprimentoServiceImpl extends GenericServ
425 425  
426 426 mensagemConfiguracao.append(ESTOQUE).append(config.getLocalEstoque().getAlmoxarifado().getCodigoENome())
427 427 .append(MATERIAL).append(config.getMaterialConsumo().getCodigoEDescricao())
428   - .append(QUANTIDADE).append(qtdMaterialEstoque).append("<br/>");
  428 + .append(QUANTIDADE).append(qtdMaterialEstoque).append("<br/><br/>");
429 429 }
  430 +
  431 + mensagemConfiguracao.append("<b style='color : red; font-weight : bold;'>");
  432 + mensagemConfiguracao.append(config.getNotificacao().getMensagem());
  433 + mensagemConfiguracao.append("</b>");
430 434  
431 435 return mensagemConfiguracao.toString();
432 436 }
... ...