コード例 #1
0
  /**
   * Inicializa os mapas para a validação do fluxo.
   *
   * @param transacoes transações de atividades
   * @param mapAnteriores {@link Map} para armazenar as transações anteriores
   * @param mapPosteriores {@link Map} para armazenar as transações posteriores
   * @param listaAtividades {@link List} com as atividades
   * @throws NegocioException caso não haja fluxo definido
   */
  private void inicializarValidacaoFluxo(
      List<TransacaoAtividade> transacoes,
      Map<Integer, Integer> mapAnteriores,
      Map<Integer, Integer> mapPosteriores,
      List<Atividade> listaAtividades)
      throws NegocioException {
    // Valida para que haja definição de fluxos
    if ((listaAtividades != null)
        && !listaAtividades.isEmpty()
        && ((transacoes != null) && transacoes.isEmpty())) {
      throw new NegocioException("erro.fluxo.definicao.atividade");
    }

    for (Atividade atividade : listaAtividades) {
      mapAnteriores.put(atividade.getId(), null);
      mapPosteriores.put(atividade.getId(), null);
    }

    Integer anterior;
    Integer posterior;
    for (TransacaoAtividade transacaoAtividade : transacoes) {
      anterior = transacaoAtividade.getAnterior().getId();
      posterior = transacaoAtividade.getPosterior().getId();

      mapAnteriores.put(posterior, anterior);
      mapPosteriores.put(anterior, posterior);
    }
  }
コード例 #2
0
 /** {@inheritDoc} */
 @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
 public void atualizar(Atividade atividade) throws NegocioException {
   this.validarSePodeAlterarWorkflow(atividade.getProcesso().getWorkflow());
   Atividade atividadeDesatualizada = this.atividadeDAO.obterAntigo(atividade.getId());
   if (!atividadeDesatualizada.getDepartamento().equals(atividade.getDepartamento())) {
     // caso o departamento foi modificado, os usuários não poderão ser os mesmos
     for (Tarefa tarefa : atividade.getTarefas()) {
       tarefa.setUsuario(null);
       this.getTarefaBO().atualizar(tarefa);
     }
   }
   this.atividadeDAO.atualizar(atividade);
 }