Search in sources :

Example 46 with ProceedingJoinPoint

use of org.aspectj.lang.ProceedingJoinPoint in project trainning by fernandotomasio.

the class AtividadesEnsinoCacheAdvice method findAllTurmasEfetivasMethodInterceptor.

@Around("findAllTurmasEfetivas()")
public Object findAllTurmasEfetivasMethodInterceptor(ProceedingJoinPoint joinPoint) throws Throwable {
    Object result = null;
    CacheManager cacheManager = CacheManager.create(new ClassPathResource("echache.xml").getInputStream());
    Cache cache = cacheManager.getCache("turmas-efetivas-cache");
    Object[] args = joinPoint.getArgs();
    if (args[0] == null || args[4] == null) {
        result = joinPoint.proceed();
        return result;
    }
    SimpleDateFormat df = new SimpleDateFormat("yyyy");
    String exercicio = df.format((Date) args[0]);
    String gestora = ((Long) args[4]).toString();
    String key = exercicio + "-" + gestora;
    Element element = cache.get(key);
    if (element == null) {
        for (int i = 1; i < 3; i++) {
            if (args[i] != null) {
                result = joinPoint.proceed();
                return result;
            }
        }
        result = joinPoint.proceed();
        cache.put(new Element(key, result));
    } else {
        Logger.getLogger(this.getClass().getName()).log(Level.INFO, "Dados presentes no cache, não foi necessário acesso ao banco de dados");
        result = element.getValue();
    }
    return result;
}
Also used : Element(net.sf.ehcache.Element) CacheManager(net.sf.ehcache.CacheManager) SimpleDateFormat(java.text.SimpleDateFormat) ClassPathResource(org.springframework.core.io.ClassPathResource) JoinPoint(org.aspectj.lang.JoinPoint) ProceedingJoinPoint(org.aspectj.lang.ProceedingJoinPoint) Cache(net.sf.ehcache.Cache) Around(org.aspectj.lang.annotation.Around)

Example 47 with ProceedingJoinPoint

use of org.aspectj.lang.ProceedingJoinPoint in project trainning by fernandotomasio.

the class AtividadesEnsinoMailAdvice method createParecerMethodInterceptor.

@Around("createParecer()")
public Object createParecerMethodInterceptor(ProceedingJoinPoint joinPoint) throws Throwable {
    Object[] args = joinPoint.getArgs();
    ParecerDTO parecer = (ParecerDTO) args[0];
    Object result = joinPoint.proceed();
    if (parecer instanceof AprovacaoDTO) {
        IndicacaoDTO indicacao = atividadesEnsinoService.findIndicacao(parecer.getIndicacao().getId());
        TurmaEfetivaDTO turma = atividadesEnsinoService.findTurmaEfetiva(indicacao.getTurma().getId());
        PessoaDTO pessoa = organizationalService.findPessoa(indicacao.getPessoa().getId());
        String to = indicacao.getEmail();
        String subject = "SGC - APROVAÇÃO DE INDICAÇÃO PARA CURSO";
        String textfase = "Fases:\n";
        int countfases = 1;
        for (FaseDTO fase : turma.getFases()) {
            textfase += "" + countfases + " - Modalidade: " + fase.getTipoFase() + " - Descrição: " + fase.getDescricao() + " - Local: " + fase.getLocal().getSigla() + " - Início: " + fase.getDataInicioFormatted() + " - Término: " + fase.getDataTerminoFormatted() + "\n";
            countfases++;
        }
        SimpleDateFormat dfExec = new SimpleDateFormat("yyyy");
        SimpleDateFormat df = new SimpleDateFormat("dd-mm-yyyy");
        String exercicio = dfExec.format(turma.getExercicio());
        Date dtParecer = null;
        try {
            dtParecer = df.parse(df.format(parecer.getData()));
        } catch (ParseException ex) {
            Logger.getLogger(HibernateIndicacaoDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
        OrganizacaoDTO OMGEstor = organizationalService.findOrganizacao(turma.getOrganizacaoGestoraId());
        OrganizacaoDTO OMResp = organizationalService.findOrganizacao(turma.getResponsavelId());
        String text = "Prezado(a), " + pessoa.getTargetaCompletaOM() + "\n\n" + "Sua INDICAÇÃO para participar do " + turma.getCurso().getCodigo() + " foi APROVADA por " + parecer.getOrganizacao().getSigla() + ".\n\n" + "Informações do Curso: \n" + "Curso: " + turma.getCurso().getCodigo() + " - " + turma.getCurso().getDescricao() + "\n" + "Turma: " + turma.getNumeroTurma() + " / " + exercicio + "\n" + "Organização Responsável: " + OMResp.getNome() + " (" + OMResp.getSigla() + ")\n" + "Quantidade de Vagas: " + turma.getQuantidadeVagas() + "\n" + "Data de Início: " + turma.getDataInicioFormatted() + "\n" + "Data de Término: " + turma.getDataTerminoFormatted() + "\n" + "Local: " + turma.getLocal() + "\n" + "Modalidade: " + turma.getTipoTurma() + "\n\n" + textfase + "\nSTATUS DA INDICAÇÃO: " + indicacao.getStatus() + "\n\n" + "Informações do Parecer de Aprovação da Indicação: \n" + "Organização: " + parecer.getOrganizacao().getSigla() + " - Data: " + dtParecer + " - Fundamentação: " + parecer.getTexto() + "\n\n" + "\n\n==> CABE RESSALTAR QUE ESTE E-MAIL POSSUI CARATER MERAMENTE INFORMATIVO. O DOCUMENTO QUE OFICIALIZA A MATRÍCULA NO CURSO É A PUBLICAÇÃO OFICIAL DA OM GESTORA DA CAPACITAÇÃO. <==\n" + "\nAcesse o Portal da Capacitação para mais informações.\n" + "\nEm caso de dúvidas entre em contato com o setor de capacitação de sua OM " + "ou com a Organização Gestora desta capacitação (" + OMGEstor.getSigla() + ") " + "para verificar a veracidade desta informação.\n\n" + "----------------------------------------------------\n" + "Esse e-mail foi enviado de forma automática para " + to + ", NÃO RESPONDA ESTE E-MAIL.\n" + "Este é um serviço prestado pelo SGC - Sistema de Gerenciamento da Capacitação.\n";
        systemService.sendMail(to, subject, text);
    }
    return result;
}
Also used : ParecerDTO(com.tomasio.projects.trainning.dto.ParecerDTO) AprovacaoDTO(com.tomasio.projects.trainning.dto.AprovacaoDTO) ProceedingJoinPoint(org.aspectj.lang.ProceedingJoinPoint) Date(java.util.Date) IndicacaoDTO(com.tomasio.projects.trainning.dto.IndicacaoDTO) FaseDTO(com.tomasio.projects.trainning.dto.FaseDTO) TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) PessoaDTO(com.tomasio.projects.trainning.dto.PessoaDTO) HibernateIndicacaoDAO(com.tomasio.projects.trainning.dao.HibernateIndicacaoDAO) ParseException(java.text.ParseException) OrganizacaoDTO(com.tomasio.projects.trainning.dto.OrganizacaoDTO) SimpleDateFormat(java.text.SimpleDateFormat) Around(org.aspectj.lang.annotation.Around)

Example 48 with ProceedingJoinPoint

use of org.aspectj.lang.ProceedingJoinPoint in project trainning by fernandotomasio.

the class AtividadesEnsinoMailAdvice method createConclusaoMethodInterceptor.

@Around("createConclusao()")
public Object createConclusaoMethodInterceptor(ProceedingJoinPoint joinPoint) throws Throwable {
    Object[] args = joinPoint.getArgs();
    ConclusaoDTO[] conclusoes = (ConclusaoDTO[]) args[0];
    for (ConclusaoDTO conclusao : conclusoes) {
        if (conclusao.getMatricula() != null) {
            MatriculaDTO matricula = atividadesEnsinoService.findMatricula(conclusao.getMatricula().getId());
            PessoaDTO pessoa = organizationalService.findPessoa(matricula.getPessoa().getId());
            String to = matricula.getIndicacao().getEmail();
            String subject = "SGC - CONCLUSÃO DE CURSO - " + conclusao.getPessoa().getTargetaSimples();
            String textfase = "Fases:\n";
            int countfases = 1;
            for (FaseDTO fase : matricula.getTurma().getFases()) {
                textfase += "" + countfases + " - Modalidade: " + fase.getTipoFase() + " - Descrição: " + fase.getDescricao() + " - Local: " + fase.getLocal().getSigla() + " - Início: " + fase.getDataInicioFormatted() + " - Término: " + fase.getDataTerminoFormatted() + "\n";
                countfases++;
            }
            SimpleDateFormat dfExec = new SimpleDateFormat("yyyy");
            String exercicio = dfExec.format(matricula.getTurma().getExercicio());
            OrganizacaoDTO OMGEstor = organizationalService.findOrganizacao(matricula.getTurma().getOrganizacaoGestoraId());
            OrganizacaoDTO OMResp = organizationalService.findOrganizacao(matricula.getTurma().getResponsavelId());
            String text = "Prezado(a), " + pessoa.getTargetaCompletaOM() + "\n\n" + "Foi informada no SGC (Sistema de Gerenciamento do Capacitação) a CONCLUSÃO do seguinte Curso em seu nome:\n\n" + "Curso: " + matricula.getTurma().getCurso().getCodigo() + " - " + matricula.getTurma().getCurso().getDescricao() + "\n" + "Turma: " + matricula.getTurma().getNumeroTurma() + " / " + exercicio + "\n" + "Organização Responsável: " + OMResp.getNome() + " (" + OMResp.getSigla() + ")\n" + "Data de Início: " + matricula.getTurma().getDataInicioFormatted() + "\n" + "Data de Término: " + matricula.getTurma().getDataTerminoFormatted() + "\n" + "Local: " + matricula.getTurma().getLocal() + "\n" + "Modalidade: " + matricula.getTurma().getTipoTurma() + "\n\n" + textfase + "\nAcesse o Portal da Capacitação para mais informações.\n" + "\nEm caso de dúvidas entre em contato com o setor de capacitação de sua OM " + "ou com a Organização Gestora desta capacitação (" + OMGEstor.getSigla() + ") " + "para verificar a veracidade desta informação.\n\n" + "----------------------------------------------------\n" + "Esse e-mail foi enviado de forma automática para " + to + ", NÃO RESPONDA ESTE E-MAIL.\n" + "Este é um serviço prestado pelo SGC - Sistema de Gerenciamento da Capacitação.\n";
            if (conclusao.isComAproveitamento()) {
                systemService.sendMail(to, subject, text);
            }
        }
    // //inserir notificação de matricula
    // NotificacaoMatriculaDTO dto = new NotificacaoMatriculaDTO();
    // dto.setDataNotificacao(new Date());
    // dto.setMatricula(matricula);
    // dto.setDescricao("CONCLUSÃO EMAIL");
    // dto.setDestinatario(to);
    // 
    // try {
    // atividadesEnsinoService.createNotificacaoMatricula(dto);
    // //redirectAttributes.addFlashAttribute("successMessage", "Email enviado com sucesso!");
    // } catch (CoreException e) {
    // //redirectAttributes.addFlashAttribute("errorMessage", e.getMessage());
    // }
    }
    return joinPoint.proceed();
}
Also used : MatriculaDTO(com.tomasio.projects.trainning.dto.MatriculaDTO) CancelamentoMatriculaDTO(com.tomasio.projects.trainning.dto.CancelamentoMatriculaDTO) PessoaDTO(com.tomasio.projects.trainning.dto.PessoaDTO) ConclusaoDTO(com.tomasio.projects.trainning.dto.ConclusaoDTO) OrganizacaoDTO(com.tomasio.projects.trainning.dto.OrganizacaoDTO) SimpleDateFormat(java.text.SimpleDateFormat) ProceedingJoinPoint(org.aspectj.lang.ProceedingJoinPoint) FaseDTO(com.tomasio.projects.trainning.dto.FaseDTO) Around(org.aspectj.lang.annotation.Around)

Example 49 with ProceedingJoinPoint

use of org.aspectj.lang.ProceedingJoinPoint in project trainning by fernandotomasio.

the class AtividadesEnsinoMailAdvice method createIndicacaoMethodInterceptor.

@Around("createIndicacao()")
public Object createIndicacaoMethodInterceptor(ProceedingJoinPoint joinPoint) throws Throwable {
    Object[] args = joinPoint.getArgs();
    IndicacaoDTO indicacao = (IndicacaoDTO) args[0];
    PessoaDTO pessoa = organizationalService.findPessoa(indicacao.getPessoa().getId());
    TurmaEfetivaDTO turma = atividadesEnsinoService.findTurmaEfetiva(indicacao.getTurma().getId());
    String to = indicacao.getEmail();
    String subject = "SGC - INDICAÇÃO PARA CURSO - " + pessoa.getTargetaSimples();
    String textfase = "Fases:\n";
    int countfases = 1;
    for (FaseDTO fase : turma.getFases()) {
        textfase += "" + countfases + " - Modalidade: " + fase.getTipoFase() + " - Descrição: " + fase.getDescricao() + " - Local: " + fase.getLocal().getSigla() + " - Início: " + fase.getDataInicioFormatted() + " - Término: " + fase.getDataTerminoFormatted() + "\n";
        countfases++;
    }
    SimpleDateFormat dfExec = new SimpleDateFormat("yyyy");
    String exercicio = dfExec.format(turma.getExercicio());
    String modalidadeIndicacao = "";
    if (indicacao instanceof IndicacaoInstrutorDTO) {
        modalidadeIndicacao = "como INSTRUTOR";
    } else {
        modalidadeIndicacao = "como ALUNO";
    }
    OrganizacaoDTO OMGEstor = organizationalService.findOrganizacao(turma.getOrganizacaoGestoraId());
    OrganizacaoDTO OMResp = organizationalService.findOrganizacao(turma.getResponsavelId());
    String text = "Prezado(a), " + pessoa.getTargetaCompletaOM() + "\n\n" + "Você foi INDICADO para participar " + modalidadeIndicacao + " do seguinte Curso:\n\n" + "Curso: " + turma.getCurso().getCodigo() + " - " + turma.getCurso().getDescricao() + "\n" + "Turma: " + turma.getNumeroTurma() + " / " + exercicio + "\n" + "Organização Responsável: " + OMResp.getNome() + " (" + OMResp.getSigla() + ")\n" + "Quantidade de Vagas: " + turma.getQuantidadeVagas() + "\n" + "Data de Início: " + turma.getDataInicioFormatted() + "\n" + "Data de Término: " + turma.getDataTerminoFormatted() + "\n" + "Local: " + turma.getLocal() + "\n" + "Modalidade: " + turma.getTipoTurma() + "\n\n" + textfase + "\n\n==> CABE RESSALTAR QUE ESTE E-MAIL POSSUI CARATER MERAMENTE INFORMATIVO. O DOCUMENTO QUE OFICIALIZA A MATRÍCULA NO CURSO É A PUBLICAÇÃO OFICIAL DA OM GESTORA DA CAPACITAÇÃO. <==\n" + "\nAcesse o Portal da Capacitação para mais informações.\n" + "\nEm caso de dúvidas entre em contato com o setor de capacitação de sua OM " + "ou com a Organização Gestora desta capacitação (" + OMGEstor.getSigla() + ") " + "para verificar a veracidade desta informação.\n\n" + "----------------------------------------------------\n" + "Esse e-mail foi enviado de forma automática para " + to + ", NÃO RESPONDA ESTE E-MAIL.\n" + "Este é um serviço prestado pelo SGC - Sistema de Gerenciamento da Capacitação.\n";
    systemService.sendMail(to, subject, text);
    return joinPoint.proceed();
}
Also used : TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) PessoaDTO(com.tomasio.projects.trainning.dto.PessoaDTO) OrganizacaoDTO(com.tomasio.projects.trainning.dto.OrganizacaoDTO) SimpleDateFormat(java.text.SimpleDateFormat) ProceedingJoinPoint(org.aspectj.lang.ProceedingJoinPoint) IndicacaoInstrutorDTO(com.tomasio.projects.trainning.dto.IndicacaoInstrutorDTO) IndicacaoDTO(com.tomasio.projects.trainning.dto.IndicacaoDTO) FaseDTO(com.tomasio.projects.trainning.dto.FaseDTO) Around(org.aspectj.lang.annotation.Around)

Example 50 with ProceedingJoinPoint

use of org.aspectj.lang.ProceedingJoinPoint in project nextprot-api by calipho-sib.

the class ServiceEntryValidation method checkValidEntry.

@Around("execution(* org.nextprot.api.*.service.*.*(..))")
public // @Around("execution(* org.nextprot.api.*.service.*.*(.., @aspects.ValidEntry (*), ..))")
Object checkValidEntry(ProceedingJoinPoint pjp) throws Throwable {
    Object[] arguments = pjp.getArgs();
    for (Object arg : arguments) {
        if ((arg != null) && EntryConfig.class.isAssignableFrom(arg.getClass())) {
            String argument = ((EntryConfig) arg).getEntryName();
            String entryAccession = EntryUtils.getEntryName(argument);
            if (!uniqueNames.contains(entryAccession)) {
                LOGGER.error("neXtProt entry " + argument + " was not found, throwing EntryNotFoundException");
                throw new EntryNotFoundException(argument);
            }
        }
    }
    MethodSignature ms = (MethodSignature) pjp.getSignature();
    Annotation[][] annotations = ms.getMethod().getParameterAnnotations();
    int i = 0;
    for (Annotation[] paramAnnotations : annotations) {
        for (Annotation annotation : paramAnnotations) {
            if (ValidEntry.class.isAssignableFrom(annotation.getClass())) {
                if (!uniqueNames.contains(arguments[i])) {
                    LOGGER.error("neXtProt entry " + arguments[i] + " was not found, throwing EntryNotFoundException");
                    throw new EntryNotFoundException((String) arguments[i]);
                }
                break;
            }
        }
        i++;
    }
    return pjp.proceed();
}
Also used : MethodSignature(org.aspectj.lang.reflect.MethodSignature) EntryConfig(org.nextprot.api.core.service.fluent.EntryConfig) EntryNotFoundException(org.nextprot.api.commons.exception.EntryNotFoundException) ProceedingJoinPoint(org.aspectj.lang.ProceedingJoinPoint) Annotation(java.lang.annotation.Annotation) Around(org.aspectj.lang.annotation.Around)

Aggregations

ProceedingJoinPoint (org.aspectj.lang.ProceedingJoinPoint)77 Around (org.aspectj.lang.annotation.Around)32 MethodSignature (org.aspectj.lang.reflect.MethodSignature)16 Method (java.lang.reflect.Method)14 Test (org.junit.Test)14 AbstractServiceTest (org.finra.herd.service.AbstractServiceTest)10 SimpleDateFormat (java.text.SimpleDateFormat)8 ArrayList (java.util.ArrayList)8 JoinPoint (org.aspectj.lang.JoinPoint)8 FaseDTO (com.tomasio.projects.trainning.dto.FaseDTO)7 OrganizacaoDTO (com.tomasio.projects.trainning.dto.OrganizacaoDTO)7 PessoaDTO (com.tomasio.projects.trainning.dto.PessoaDTO)7 MockProceedingJoinPoint (org.finra.herd.core.MockProceedingJoinPoint)7 Annotation (java.lang.annotation.Annotation)5 CancelamentoMatriculaDTO (com.tomasio.projects.trainning.dto.CancelamentoMatriculaDTO)4 MatriculaDTO (com.tomasio.projects.trainning.dto.MatriculaDTO)4 Date (java.util.Date)4 AtomicReference (java.util.concurrent.atomic.AtomicReference)4 Action (org.apache.nifi.action.Action)4 MessageHeader (org.finra.herd.model.dto.MessageHeader)4