/** * 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); } }
/** {@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); }