package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.ExecucaoDemandaDTO; import br.com.citframework.dto.IDto; import br.com.citframework.excecao.PersistenceException; import br.com.citframework.integracao.CrudDaoDefaultImpl; import br.com.citframework.integracao.Field; import br.com.citframework.integracao.Order; import br.com.citframework.util.Constantes; public class ExecucaoDemandaDao extends CrudDaoDefaultImpl { private static final String SQL_GET_ATIVIDADES_PESSOA = "SELECT F.nomeFluxo, " + "E.nomeEtapa, " + "A.nomeAtividade, " + "D.expectativaFim, " + "D.prioridade, " + "TA.DescricaoTipoAtividade, " + "EXD.situacao, " + "EMP.nome, " + "EXD.qtdeHoras, " + "EXD.relato, " + "EXD.idExecucao, " + "D.idFluxo, " + "EXD.idAtividade, " + "EXD.idDemanda, " + "D.idProjeto, " + "P.nomeProjeto, " + "D.idTipoDemanda, " + "D.detalhamento, " + "EXD.terminoPrevisto, " + "O.numero, " + "O.ano " + "FROM EXECUCAODEMANDA EXD " + "INNER JOIN DEMANDAS D ON D.idDemanda = EXD.idDemanda " + "INNER JOIN FLUXOS F ON F.idFluxo = D.idFluxo " + "INNER JOIN ETAPAS E ON E.idFluxo = F.idFluxo " + "INNER JOIN ATIVIDADES A ON A.idAtividade = EXD.idAtividade " + "INNER JOIN TIPOSATIVIDADES TA on TA.idTipoAtividade = A.idTipoAtividade " + "INNER JOIN TIPODEMANDA TD on TD.idTipoDemanda = D.idTipoDemanda " + "LEFT OUTER JOIN PROJETOS P on P.idProjeto = D.idProjeto " + "LEFT OUTER JOIN EMPREGADOS EMP on EMP.idEmpregado = EXD.idEmpregadoExecutor " + "LEFT OUTER JOIN OS O on O.idOS = D.idOS"; public ExecucaoDemandaDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } public Class getBean() { return ExecucaoDemandaDTO.class; } public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idExecucao", "idExecucao", true, true, false, false)); listFields.add(new Field("idDemanda", "idDemanda", false, false, false, false)); listFields.add(new Field("idAtividade", "idAtividade", false, false, false, false)); listFields.add(new Field("idEmpregadoExecutor", "idEmpregadoExecutor", false, false, false, false)); listFields.add(new Field("idEmpregadoReceptor", "idEmpregadoReceptor", false, false, false, false)); listFields.add(new Field("relato", "relato", false, false, false, false)); listFields.add(new Field("qtdeHoras", "qtdeHoras", false, false, false, false)); listFields.add(new Field("situacao", "situacao", false, false, false, false)); listFields.add(new Field("grupoExecutor", "grupoExecutor", false, false, false, false)); listFields.add(new Field("terminoPrevisto", "terminoPrevisto", false, false, false, false)); listFields.add(new Field("terminoReal", "terminoReal", false, false, false, false)); return listFields; } public String getTableName() { return "EXECUCAODEMANDA"; } public Collection find(IDto obj) throws PersistenceException { return null; } public Collection list() throws PersistenceException { List list = new ArrayList(); list.add(new Order("idDemanda")); return super.list(list); } public Collection getAtividadesByGrupoAndPessoa(Integer idEmpregado, String[] grupo) throws PersistenceException { //Object[] objs = new Object[] {idEmpregado}; Object[] objs = null; String sql = SQL_GET_ATIVIDADES_PESSOA; sql += " WHERE ("; /* if (grupo != null && grupo.length > 0){ sql += " (EXD.grupoExecutor IN ("; for (int i = 0; i < grupo.length; i++){ if (i > 0) sql += ","; sql += "'" + grupo[i] + "'"; } sql += ")) OR "; } sql += " (idEmpregadoExecutor = ?) AND "; */ sql += " EXD.situacao <> 'F' AND (D.idSituacaoDemanda <> 0 AND D.idSituacaoDemanda <> 7 AND D.idSituacaoDemanda <> 6) "; sql += ") ORDER BY D.expectativaFim"; List lista = this.execSQL(sql, objs); List listRetorno = new ArrayList(); listRetorno.add("nomeFluxo"); listRetorno.add("nomeEtapa"); listRetorno.add("nomeAtividade"); listRetorno.add("expectativaFim"); listRetorno.add("prioridade"); listRetorno.add("DescricaoTipoAtividade"); listRetorno.add("situacao"); listRetorno.add("nome"); listRetorno.add("qtdeHoras"); listRetorno.add("relato"); listRetorno.add("idExecucao"); listRetorno.add("idFluxo"); listRetorno.add("idAtividade"); listRetorno.add("idDemanda"); listRetorno.add("idProjeto"); listRetorno.add("nomeProjeto"); listRetorno.add("idTipoDemanda"); listRetorno.add("detalhamento"); listRetorno.add("terminoPrevisto"); listRetorno.add("numeroOS"); listRetorno.add("anoOS"); List result = this.engine.listConvertion(getBean(), lista, listRetorno); if (result == null || result.size() == 0) return null; return result; } public void updateAtribuir(IDto obj) throws PersistenceException { ExecucaoDemandaDTO execDemanda = (ExecucaoDemandaDTO)obj; ExecucaoDemandaDTO execDemandaUpdate = new ExecucaoDemandaDTO(); execDemandaUpdate.setIdEmpregadoExecutor(execDemanda.getIdEmpregadoLogado()); execDemandaUpdate.setIdExecucao(execDemanda.getIdExecucaoAtribuir()); execDemandaUpdate.setSituacao("F"); super.updateNotNull(execDemandaUpdate); } public void updateStatus(IDto obj) throws PersistenceException { ExecucaoDemandaDTO execDemanda = (ExecucaoDemandaDTO)obj; ExecucaoDemandaDTO execDemandaUpdate = new ExecucaoDemandaDTO(); execDemandaUpdate.setIdExecucao(execDemanda.getIdExecucao()); execDemandaUpdate.setSituacao(execDemanda.getSituacao()); execDemandaUpdate.setTerminoReal(execDemanda.getTerminoReal()); super.updateNotNull(execDemandaUpdate); } }