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,6 +3,7 @@ package br.com.centralit.api.job;
3 import java.math.BigDecimal; 3 import java.math.BigDecimal;
4 import java.util.Arrays; 4 import java.util.Arrays;
5 import java.util.Collection; 5 import java.util.Collection;
  6 +import java.util.Date;
6 import java.util.List; 7 import java.util.List;
7 8
8 import org.apache.commons.logging.Log; 9 import org.apache.commons.logging.Log;
@@ -21,11 +22,13 @@ import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoGrupoSer @@ -21,11 +22,13 @@ import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoGrupoSer
21 import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoService; 22 import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoService;
22 import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoUsuarioService; 23 import br.com.centralit.api.service.ConfiguracaoNotificacaoRessuprimentoUsuarioService;
23 import br.com.centralit.api.service.MaterialConsumoService; 24 import br.com.centralit.api.service.MaterialConsumoService;
  25 +import br.com.centralit.api.service.NotificacaoService;
24 import br.com.centralit.api.service.NotificacaoUsuarioService; 26 import br.com.centralit.api.service.NotificacaoUsuarioService;
25 import br.com.centralit.api.service.impl.NotificacaoGrupoService; 27 import br.com.centralit.api.service.impl.NotificacaoGrupoService;
26 import br.com.centralit.framework.dao.arquitetura.SearchSeven; 28 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
27 import br.com.centralit.framework.mail.HTMLMail; 29 import br.com.centralit.framework.mail.HTMLMail;
28 import br.com.centralit.framework.model.Filter; 30 import br.com.centralit.framework.model.Filter;
  31 +import br.com.centralit.framework.model.Notificacao;
29 import br.com.centralit.framework.model.NotificacaoGrupo; 32 import br.com.centralit.framework.model.NotificacaoGrupo;
30 import br.com.centralit.framework.model.NotificacaoUsuario; 33 import br.com.centralit.framework.model.NotificacaoUsuario;
31 import br.com.centralit.framework.model.SearchParams; 34 import br.com.centralit.framework.model.SearchParams;
@@ -86,6 +89,8 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -86,6 +89,8 @@ public class NotificacaoRessuprimentoJob implements Job {
86 89
87 /** Atributo notificacaoGrupoService. */ 90 /** Atributo notificacaoGrupoService. */
88 private NotificacaoGrupoService notificacaoGrupoService; 91 private NotificacaoGrupoService notificacaoGrupoService;
  92 +
  93 + private NotificacaoService notificacaoService;
89 94
90 /** Atributo urlScheme. */ 95 /** Atributo urlScheme. */
91 String urlScheme; 96 String urlScheme;
@@ -126,6 +131,8 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -126,6 +131,8 @@ public class NotificacaoRessuprimentoJob implements Job {
126 this.notificacaoUsuarioService = (NotificacaoUsuarioService) context.getScheduler().getContext().get("notificacaoUsuarioService"); 131 this.notificacaoUsuarioService = (NotificacaoUsuarioService) context.getScheduler().getContext().get("notificacaoUsuarioService");
127 132
128 this.notificacaoGrupoService = (NotificacaoGrupoService) context.getScheduler().getContext().get("notificacaoGrupoService"); 133 this.notificacaoGrupoService = (NotificacaoGrupoService) context.getScheduler().getContext().get("notificacaoGrupoService");
  134 +
  135 + this.notificacaoService = (NotificacaoService) context.getScheduler().getContext().get("notificacaoService");
129 136
130 } catch (final SchedulerException e) { 137 } catch (final SchedulerException e) {
131 e.printStackTrace(); 138 e.printStackTrace();
@@ -176,7 +183,7 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -176,7 +183,7 @@ public class NotificacaoRessuprimentoJob implements Job {
176 params.setStart(0); 183 params.setStart(0);
177 params.setLimit(Integer.MAX_VALUE); 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 List<Object> search = this.notificacaoGrupoService.search(new SearchSeven(params)); 188 List<Object> search = this.notificacaoGrupoService.search(new SearchSeven(params));
182 189
@@ -190,6 +197,11 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -190,6 +197,11 @@ public class NotificacaoRessuprimentoJob implements Job {
190 197
191 }else{ 198 }else{
192 Object[] values = (Object[]) search.get(0); 199 Object[] values = (Object[]) search.get(0);
  200 +
  201 + if(values[3] != null){
  202 + this.notificacaoService.adiar(configuracao.getNotificacao().getId());
  203 + }
  204 +
193 emailDestinatario = (String) values[0]; 205 emailDestinatario = (String) values[0];
194 nomeDestinatario = (String) values[1]; 206 nomeDestinatario = (String) values[1];
195 mensagem = (String) values[2]; 207 mensagem = (String) values[2];
@@ -199,7 +211,7 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -199,7 +211,7 @@ public class NotificacaoRessuprimentoJob implements Job {
199 this.notificacaoUsuarioService.sendNotificacaoEmailGrupo(emailDestinatario, nomeDestinatario, mensagem); 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,17 +224,16 @@ public class NotificacaoRessuprimentoJob implements Job {
212 224
213 SearchParams params = new SearchParams(); 225 SearchParams params = new SearchParams();
214 params.setFilters(Arrays.asList(new Filter[]{new Filter("notificacao.id", ConstantsQuery.TYPE_NUMERIC, 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 params.setStart(0); 229 params.setStart(0);
220 params.setLimit(Integer.MAX_VALUE); 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 List<Object> search = this.notificacaoUsuarioService.search(new SearchSeven(params)); 232 List<Object> search = this.notificacaoUsuarioService.search(new SearchSeven(params));
223 233
224 if(UtilColecao.isVazio(search)){ 234 if(UtilColecao.isVazio(search)){
225 - notificacaoUsuario = new NotificacaoUsuario(configuracao.getNotificacao(), configuracaoUsuario.getUsuario()); 235 +
  236 + notificacaoUsuario = new NotificacaoUsuario(configuracao.getNotificacao(), configuracaoUsuario.getUsuario());
226 this.notificacaoUsuarioService.save(notificacaoUsuario); 237 this.notificacaoUsuarioService.save(notificacaoUsuario);
227 238
228 emailDestinatario = notificacaoUsuario.getUsuario().getEmail(); 239 emailDestinatario = notificacaoUsuario.getUsuario().getEmail();
@@ -231,6 +242,11 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -231,6 +242,11 @@ public class NotificacaoRessuprimentoJob implements Job {
231 242
232 }else{ 243 }else{
233 Object[] values = (Object[]) search.get(0); 244 Object[] values = (Object[]) search.get(0);
  245 +
  246 + if(values[3] != null){
  247 + this.notificacaoService.adiar(configuracao.getNotificacao().getId());
  248 + }
  249 +
234 emailDestinatario = (String) values[0]; 250 emailDestinatario = (String) values[0];
235 nomeDestinatario = (String) values[1]; 251 nomeDestinatario = (String) values[1];
236 mensagem = (String) values[2]; 252 mensagem = (String) values[2];
@@ -240,7 +256,7 @@ public class NotificacaoRessuprimentoJob implements Job { @@ -240,7 +256,7 @@ public class NotificacaoRessuprimentoJob implements Job {
240 this.notificacaoUsuarioService.sendNotificacaoEmailGrupo(emailDestinatario, nomeDestinatario, mensagem); 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,8 +425,12 @@ public class ConfiguracaoNotificacaoRessuprimentoServiceImpl extends GenericServ
425 425
426 mensagemConfiguracao.append(ESTOQUE).append(config.getLocalEstoque().getAlmoxarifado().getCodigoENome()) 426 mensagemConfiguracao.append(ESTOQUE).append(config.getLocalEstoque().getAlmoxarifado().getCodigoENome())
427 .append(MATERIAL).append(config.getMaterialConsumo().getCodigoEDescricao()) 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 return mensagemConfiguracao.toString(); 435 return mensagemConfiguracao.toString();
432 } 436 }