コード例 #1
0
  /** {@inheritDoc} */
  @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  public void atualizarTransacoes(Integer idProcesso, String[] fluxos, String[] posicoes)
      throws NegocioException {
    Workflow workflow = this.getProcessoBO().obter(idProcesso).getWorkflow();
    this.validarSePodeAlterarWorkflow(workflow);

    List<TransacaoAtividade> transacoes = this.getTransacoes(fluxos);
    this.validarFluxo(transacoes, idProcesso);

    List<TransacaoAtividade> atual = this.atividadeDAO.recuperarTransacoesDoProcesso(idProcesso);

    if (atual != null) {
      // excluindo as transações atuais
      for (TransacaoAtividade transacao : atual) {
        this.atividadeDAO.excluirTransacao(transacao);
      }
      this.flush();
    }
    // inserindo as transações enviadas
    for (TransacaoAtividade transacao : transacoes) {
      this.atividadeDAO.salvarTransacao(transacao);
    }

    // Salvando as novas posições dos processos
    Atividade atividade;
    String[] atividades;
    for (String posicao : posicoes) {
      atividades = posicao.split(","); // Formato: <id>,<left>,<top>
      atividade = this.atividadeDAO.obter(Integer.valueOf(atividades[0]));

      atividade.setLeft(Integer.valueOf(atividades[1]));
      atividade.setTop(Integer.valueOf(atividades[2]));

      this.atividadeDAO.atualizar(atividade);
    }
  }