public void execute(JobExecutionContext arg) throws JobExecutionException {
    logger.entering(new Object[0]);

    WebApplicationContext context = QuartzServletContextListener.getSpringApplicationContext();
    AtendimentoFacade atendimentoFacade = (AtendimentoFacade) context.getBean("atendimentoFacade");
    AlertaFacade alertaFacade = (AlertaFacade) context.getBean("alertaFacade");
    Alerta alerta = (Alerta) arg.getJobDetail().getJobDataMap().get("alerta");
    alerta = alertaFacade.get(alerta.getId(), true);
    List<Atendimento> atendimentos = new ArrayList();
    if ((alerta.getEscalonamentos() != null) && (!alerta.getEscalonamentos().isEmpty())) {
      for (Escalonamento es : alerta.getEscalonamentos()) {
        atendimentos =
            atendimentoFacade.getAtendimentoPorTempo(
                es.getTempo(), es.getUnidade(), alerta.getProblemas());
        List emails = null;
        if ((atendimentos != null) && (!atendimentos.isEmpty())) {
          StringBuilder sb = new StringBuilder();
          sb.append("<br />");
          for (Atendimento atn : atendimentos) {
            sb.append(montaMsg(atn));
            sb.append("<br />");
            emails = recuperaEmail(es, atn);
          }
          String msg =
              MessagesUtil.matchAndReplace(
                  MessagesUtil.getMessage("MessageResources", "msg.alertas.atrasados"),
                  new Object[] {es.getTempo().toString(), es.getUnidade(), sb.toString()});
          enviaEmails(emails, msg);
        }
      }
    }
    logger.exiting(new Object[0]);
  }
 private String montaMsg(Atendimento atn) {
   logger.entering(new Object[0]);
   logger.exiting(new Object[0]);
   return MessagesUtil.matchAndReplace(
       MessagesUtil.getMessage("MessageResources", "msg.alertas.atrasados.info.atendimento"),
       new Object[] {
         atn.getCliente() == null ? "" : atn.getCliente().getNome(),
         atn.getProblemaInicial() == null ? "" : atn.getProblemaInicial().getDescricao(),
         atn.getDtAbertura() == null
             ? ""
             : MyToolkit.formaterData(atn.getDtAbertura(), "dd/MM/yyyy HH:mm"),
         atn.getStatus() != null ? atn.getStatus().getNome() : "",
         atn.getTempoPercorrido()
             + " "
             + MessagesUtil.getMessage("MessageResources", "view.alerta.tempo.minutos")
       });
 }
  private void enviaEmails(List<String> emails, String msg) {
    logger.entering(new Object[0]);

    if ((emails != null) && (!emails.isEmpty())) {
      for (String email : emails) {
        try {
          MessageUtil.enviaEmail(
              email,
              MessagesUtil.getMessage("MessageResources", "ass.alertas.atrasados"),
              msg,
              null);
        } catch (EmailException e) {
          logger.exception(e.getMessage(), e);
        }
      }
    }

    logger.exiting(new Object[0]);
  }
Example #4
0
  public ActionForward processar(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    logger.entering(new Object[0]);

    UsuarioForm myForm = (UsuarioForm) form;
    Usuario usuario = this.usuarioFacade.getUsuarioLogin(myForm.getLogin());
    Integer nrTentativasMax =
        Integer.valueOf(MessagesUtil.getInt("MessageResources", "numero.max.tentativas"));
    if (usuario != null) {
      if (usuario.getBloqueado().booleanValue()) {
        addMensagem(
            request,
            new ActionMessage("msg.usuario.bloqueado", new String[] {usuario.getNome()}),
            "mensagemNegativa");
        return mapping.findForward("principal");
      }
      if (usuario.getTentativas().intValue() >= nrTentativasMax.intValue()) {
        addMensagem(
            request, new ActionMessage("msg.usuario.bloqueado", new String[0]), "mensagemNegativa");
        return mapping.findForward("principal");
      }
      if (!Cryptex.decrypt(usuario.getSenha()).equals(myForm.getSenha())) {
        usuario.setTentativas(Integer.valueOf(usuario.getTentativas().intValue() + 1));
        if (usuario.getTentativas().intValue() >= nrTentativasMax.intValue()) {
          usuario.setBloqueado(Boolean.valueOf(true));

          this.usuarioFacade.atualizar(usuario);
          addMensagem(request, new ActionMessage("msg.usuario.bloquear"), "mensagemNegativa");
          return mapping.findForward("principal");
        }
        this.usuarioFacade.atualizar(usuario);
        addMensagem(
            request,
            new ActionMessage(
                "msg.senha.invalida",
                new Object[] {
                  Integer.valueOf(usuario.getTentativas().intValue()),
                  Integer.valueOf(nrTentativasMax.intValue()),
                  Integer.valueOf(nrTentativasMax.intValue())
                }),
            "mensagemAdvertencia");
        return mapping.findForward("principal");
      }

      usuario.setTentativas(Integer.valueOf(0));
      this.usuarioFacade.atualizar(usuario);
    } else {
      addMensagem(request, new ActionMessage("msg.usuario.inexistente"), "mensagemNegativa");
      return mapping.findForward("principal");
    }
    controlAcesso(request, usuario);

    ContextoUsuario contextoUsuario = new ContextoUsuario();
    contextoUsuario.setUsuarioLogado(usuario);
    registrarContextoUsuario(contextoUsuario, request.getSession());
    ActionUtil.getInstance().montarMenu(contextoUsuario, request.getSession());

    montaHome(request, usuario);
    adicionaMotivos(request.getSession());

    logger.exiting(new Object[0]);
    return mapping.findForward("home");
  }