package br.com.centralit.citcorpore.negocio; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.ExecucaoDemandaDTO; import br.com.centralit.citcorpore.bean.HistoricoExecucaoDTO; import br.com.centralit.citcorpore.integracao.ExecucaoDemandaDao; import br.com.centralit.citcorpore.integracao.HistoricoExecucaoDao; import br.com.citframework.dto.IDto; import br.com.citframework.excecao.LogicException; import br.com.citframework.excecao.ServiceException; import br.com.citframework.integracao.TransactionControler; import br.com.citframework.integracao.TransactionControlerImpl; import br.com.citframework.service.CrudServiceImpl; import br.com.citframework.util.UtilDatas; public class ExecucaoDemandaServiceEjb extends CrudServiceImpl implements ExecucaoDemandaService { private ExecucaoDemandaDao dao; @Override protected ExecucaoDemandaDao getDao() { if (dao == null) { dao = new ExecucaoDemandaDao(); } return dao; } public Collection list(final List ordenacao) throws LogicException, ServiceException { return null; } public Collection list(final String ordenacao) throws LogicException, ServiceException { return null; } @Override public Collection getAtividadesByGrupoAndPessoa(final Integer idEmpregado, final String[] grupo) throws LogicException, ServiceException { try { final List lst = (List) this.getDao().getAtividadesByGrupoAndPessoa(idEmpregado, grupo); final Collection colRetorno = new ArrayList(); ExecucaoDemandaDTO exec = new ExecucaoDemandaDTO(); if (lst != null) { for (int i = 0; i < lst.size(); i++) { exec = (ExecucaoDemandaDTO) lst.get(i); if (!exec.getSituacao().equalsIgnoreCase("F")) { colRetorno.add(lst.get(i)); } } } return colRetorno; } catch (final Exception e) { throw new ServiceException(e); } } @Override public boolean temAtividadeNaSequencia(final IDto bean) throws LogicException, ServiceException { /* * FluxoDao fluxoDao = new FluxoDao(); * ExecucaoDemandaDTO execDemandaBean = (ExecucaoDemandaDTO)bean; * FluxoDTO fluxo = null; * try { * fluxo = fluxoDao.getNextAtividadeByFluxo(execDemandaBean.getIdFluxo(), execDemandaBean.getIdAtividade()); * } catch (Exception e1) { * e1.printStackTrace(); * throw new ServiceException(e1); * } * if (fluxo == null){ * return false; * } */ return true; } @Override public void updateAtribuir(final IDto bean) throws LogicException, ServiceException { /* * //Instancia Objeto controlador de transacao * ExecucaoDemandaDao crudDao = (ExecucaoDemandaDao)getDao(); * HistoricoExecucaoDao historicoExecucaoDao = new HistoricoExecucaoDao(); * FluxoDao fluxoDao = new FluxoDao(); * TransactionControler tc = new TransactionControlerImpl(crudDao.getAliasDB()); * ExecucaoDemandaDTO execDemandaBean = (ExecucaoDemandaDTO)bean; * FluxoDTO fluxo = null; * try { * fluxo = fluxoDao.getNextAtividadeByFluxo(execDemandaBean.getIdFluxo(), execDemandaBean.getIdAtividade()); * } catch (Exception e1) { * e1.printStackTrace(); * throw new ServiceException(e1); * } * if (fluxo == null){ * throw new LogicException("N�o existe Atividade na Sequencia para este Fluxo! N�o � poss�vel efetuar atribui��o!"); * } * try{ * //Seta o TransactionController para os DAOs * crudDao.setTransactionControler(tc); * historicoExecucaoDao.setTransactionControler(tc); * //Inicia transacao * tc.start(); * //Executa operacoes pertinentes ao negocio. * crudDao.updateAtribuir(bean); * HistoricoExecucaoDTO historicoExecucaoBean = new HistoricoExecucaoDTO(); * historicoExecucaoBean.setData(UtilDatas.getDataAtual()); * historicoExecucaoBean.setHora(new Long(UtilDatas.getDataHoraAtual().getTime())); * historicoExecucaoBean.setIdExecucao(execDemandaBean.getIdExecucaoAtribuir()); * historicoExecucaoBean.setSituacao("N"); * historicoExecucaoBean.setIdEmpregadoExecutor(execDemandaBean.getIdEmpregadoLogado()); * historicoExecucaoBean.setDetalhamento("Atribui��o da demanda"); * historicoExecucaoDao.create(historicoExecucaoBean); * ExecucaoDemandaDTO execucaoDemanda = new ExecucaoDemandaDTO(); * execucaoDemanda.setIdAtividade(fluxo.getIdAtividade()); * execucaoDemanda.setIdDemanda(execDemandaBean.getIdDemanda()); * execucaoDemanda.setSituacao("N"); * execucaoDemanda.setGrupoExecutor(fluxo.getGrupoExecutor()); * execucaoDemanda.setIdEmpregadoExecutor(execDemandaBean.getIdEmpregadoExecutor()); * execucaoDemanda.setQtdeHoras(execDemandaBean.getQtdeHoras()); * execucaoDemanda.setTerminoPrevisto(execDemandaBean.getTerminoPrevisto()); * execucaoDemanda = (ExecucaoDemandaDTO) crudDao.create(execucaoDemanda); * AtividadeFluxoDao atividadeFluxoDao = new AtividadeFluxoDao(); * AtividadeFluxoDTO atividadeFluxo = new AtividadeFluxoDTO(); * atividadeFluxo.setIdAtividade(execDemandaBean.getIdAtividade()); * List colFluxosCriarDemanda = (List) atividadeFluxoDao.find(atividadeFluxo); * if (colFluxosCriarDemanda != null){ * for (int i = 0; i < colFluxosCriarDemanda.size(); i++){ * atividadeFluxo = (AtividadeFluxoDTO)colFluxosCriarDemanda.get(i); * fluxo = fluxoDao.getNextAtividadeByFluxo(atividadeFluxo.getIdFluxo(), new Integer(0)); * execucaoDemanda = new ExecucaoDemandaDTO(); * execucaoDemanda.setIdAtividade(fluxo.getIdAtividade()); * execucaoDemanda.setIdDemanda(execDemandaBean.getIdDemanda()); * execucaoDemanda.setSituacao("N"); * execucaoDemanda.setGrupoExecutor(fluxo.getGrupoExecutor()); * execucaoDemanda.setIdEmpregadoExecutor(null); * execucaoDemanda.setQtdeHoras(null); * execucaoDemanda = (ExecucaoDemandaDTO) crudDao.create(execucaoDemanda); * } * } * //Faz commit e fecha a transacao. * tc.commit(); * tc.close(); * }catch(Exception e){ * this.rollbackTransaction(tc, e); * } */ } @Override public void updateStatus(final IDto bean) throws LogicException, ServiceException { // Instancia Objeto controlador de transacao final ExecucaoDemandaDao crudDao = this.getDao(); final HistoricoExecucaoDao historicoExecucaoDao = new HistoricoExecucaoDao(); final TransactionControler tc = new TransactionControlerImpl(crudDao.getAliasDB()); final ExecucaoDemandaDTO execDemandaBean = (ExecucaoDemandaDTO) bean; try { // Seta o TransactionController para os DAOs crudDao.setTransactionControler(tc); historicoExecucaoDao.setTransactionControler(tc); // Inicia transacao tc.start(); // Executa operacoes pertinentes ao negocio. crudDao.updateStatus(bean); final HistoricoExecucaoDTO historicoExecucaoBean = new HistoricoExecucaoDTO(); historicoExecucaoBean.setData(UtilDatas.getDataAtual()); historicoExecucaoBean.setHora(new Long(UtilDatas.getDataHoraAtual().getTime())); historicoExecucaoBean.setIdExecucao(execDemandaBean.getIdExecucao()); historicoExecucaoBean.setSituacao(execDemandaBean.getSituacao()); historicoExecucaoBean.setIdEmpregadoExecutor(execDemandaBean.getIdEmpregadoLogado()); historicoExecucaoBean.setDetalhamento("Altera��o de Situa��o"); historicoExecucaoDao.create(historicoExecucaoBean); // Faz commit e fecha a transacao. tc.commit(); } catch (final Exception e) { this.rollbackTransaction(tc, e); } finally { tc.closeQuietly(); } } @Override public void updateFinalizar(final IDto bean) throws LogicException, ServiceException { /* * //Instancia Objeto controlador de transacao * ExecucaoDemandaDao crudDao = (ExecucaoDemandaDao)getDao(); * HistoricoExecucaoDao historicoExecucaoDao = new HistoricoExecucaoDao(); * DemandaDao demandaDao = new DemandaDao(); * FluxoDao fluxoDao = new FluxoDao(); * OSDao osDao = new OSDao(); * TransactionControler tc = new TransactionControlerImpl(crudDao.getAliasDB()); * ExecucaoDemandaDTO execDemandaBean = (ExecucaoDemandaDTO)bean; * try{ * //Seta o TransactionController para os DAOs * crudDao.setTransactionControler(tc); * historicoExecucaoDao.setTransactionControler(tc); * demandaDao.setTransactionControler(tc); * osDao.setTransactionControler(tc); * //Inicia transacao * tc.start(); * //Executa operacoes pertinentes ao negocio. * crudDao.updateStatus(bean); * HistoricoExecucaoDTO historicoExecucaoBean = new HistoricoExecucaoDTO(); * historicoExecucaoBean.setData(UtilDatas.getDataAtual()); * historicoExecucaoBean.setHora(new Long(UtilDatas.getDataHoraAtual().getTime())); * historicoExecucaoBean.setIdExecucao(execDemandaBean.getIdExecucao()); * historicoExecucaoBean.setSituacao(execDemandaBean.getSituacao()); * historicoExecucaoBean.setIdEmpregadoExecutor(execDemandaBean.getIdEmpregadoLogado()); * historicoExecucaoBean.setDetalhamento("Altera��o de Situa��o"); * historicoExecucaoDao.create(historicoExecucaoBean); * FluxoDTO fluxo = fluxoDao.getNextAtividadeByFluxo(execDemandaBean.getIdFluxo(), execDemandaBean.getIdAtividade()); * if (fluxo == null){ //Nao ha mais atividades no fluxo, entao finaliza. * DemandaDTO demandaDTO = new DemandaDTO(); * demandaDTO.setIdDemanda(execDemandaBean.getIdDemanda()); * demandaDTO.setIdSituacaoDemanda(DemandaDTO.SITUACAO_FINALIZADA); * demandaDao.updateStatus(demandaDTO); * demandaDTO = (DemandaDTO) demandaDao.restore(demandaDTO); * if (demandaDTO != null){ * if (demandaDTO.getIdOS() != null){ * Collection colDemandas = demandaDao.findByIdOS(demandaDTO.getIdOS()); * if (colDemandas != null){ * boolean bTodasFechadas = true; * for(Iterator it = colDemandas.iterator(); it.hasNext();){ * DemandaDTO demandaAux = (DemandaDTO)it.next(); * if (demandaAux.getIdSituacaoDemanda().intValue() != DemandaDTO.SITUACAO_FINALIZADA.intValue()){ * bTodasFechadas = false; * } * } * if (bTodasFechadas){ * OSDTO osDto = new OSDTO(); * osDto.setIdOS(demandaDTO.getIdOS()); * osDto.setSituacaoOS(5); * osDao.updateNotNull(osDto); * } * } * } * } * }else{ * ExecucaoDemandaDTO execucaoDemanda = new ExecucaoDemandaDTO(); * execucaoDemanda.setIdAtividade(fluxo.getIdAtividade()); * execucaoDemanda.setIdDemanda(execDemandaBean.getIdDemanda()); * execucaoDemanda.setSituacao("N"); * execucaoDemanda.setGrupoExecutor(fluxo.getGrupoExecutor()); * execucaoDemanda.setIdEmpregadoExecutor(null); * execucaoDemanda.setQtdeHoras(null); * execucaoDemanda = (ExecucaoDemandaDTO) crudDao.create(execucaoDemanda); * } * AtividadeFluxoDao atividadeFluxoDao = new AtividadeFluxoDao(); * AtividadeFluxoDTO atividadeFluxo = new AtividadeFluxoDTO(); * atividadeFluxo.setIdAtividade(execDemandaBean.getIdAtividade()); * List colFluxosCriarDemanda = (List) atividadeFluxoDao.find(atividadeFluxo); * if (colFluxosCriarDemanda != null){ * for (int i = 0; i < colFluxosCriarDemanda.size(); i++){ * atividadeFluxo = (AtividadeFluxoDTO)colFluxosCriarDemanda.get(i); * fluxo = fluxoDao.getNextAtividadeByFluxo(atividadeFluxo.getIdFluxo(), new Integer(0)); * ExecucaoDemandaDTO execucaoDemanda = new ExecucaoDemandaDTO(); * execucaoDemanda = new ExecucaoDemandaDTO(); * execucaoDemanda.setIdAtividade(fluxo.getIdAtividade()); * execucaoDemanda.setIdDemanda(execDemandaBean.getIdDemanda()); * execucaoDemanda.setSituacao("N"); * execucaoDemanda.setGrupoExecutor(fluxo.getGrupoExecutor()); * execucaoDemanda.setIdEmpregadoExecutor(null); * execucaoDemanda.setQtdeHoras(null); * execucaoDemanda = (ExecucaoDemandaDTO) crudDao.create(execucaoDemanda); * } * } * //Faz commit e fecha a transacao. * tc.commit(); * tc.close(); * }catch(Exception e){ * this.rollbackTransaction(tc, e); * } */ } }