package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.SolicitacaoServicoDTO; import br.com.centralit.citcorpore.bean.SolicitacaoServicoProblemaDTO; import br.com.citframework.dto.IDto; import br.com.citframework.excecao.PersistenceException; import br.com.citframework.integracao.Condition; import br.com.citframework.integracao.CrudDaoDefaultImpl; import br.com.citframework.integracao.Field; import br.com.citframework.util.Constantes; @SuppressWarnings({ "rawtypes", "unchecked" }) public class SolicitacaoServicoProblemaDao extends CrudDaoDefaultImpl { public SolicitacaoServicoProblemaDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); // TODO Auto-generated constructor stub } /** * */ @Override public Collection find(IDto obj) throws PersistenceException { return null; } @Override public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("IDPROBLEMA", "idProblema", false, false, false, false)); listFields.add(new Field("IDSOLICITACAOSERVICO", "idSolicitacaoServico", false, false, false, false)); return listFields; } @Override public String getTableName() { return "SOLICITACAOSERVICOPROBLEMA"; } @Override public Class getBean() { return SolicitacaoServicoProblemaDTO.class; } @Override public Collection list() throws PersistenceException { return null; } public void deleteByIdProblema(Integer parm) throws PersistenceException { List condicao = new ArrayList(); condicao.add(new Condition("idProblema", "=", parm)); super.deleteByCondition(condicao); } public void deleteByIdSolictacaoServico(Integer parm) throws PersistenceException { List condicao = new ArrayList(); condicao.add(new Condition("idSolicitacaoServico", "=", parm)); super.deleteByCondition(condicao); } public Collection findByIdSolictacaoServico(Integer parm) throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idSolicitacaoServico", "=", parm)); return super.findByCondition(condicao, ordenacao); } public Collection findByIdProblema(Integer parm) throws PersistenceException { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idProblema", "=", parm)); return super.findByCondition(condicao, ordenacao); } public Collection<SolicitacaoServicoDTO> listSolicitacaoServicoByProblema(Integer id) throws PersistenceException { List listRetorno = new ArrayList(); StringBuilder sql = new StringBuilder(); List list = new ArrayList(); List parametro = new ArrayList(); sql.append("select ss.idsolicitacaoservico, s.nomeservico, emp.nome , us.nome , ssp.idproblema, pr.titulo, pr.descricao "); sql.append("from solicitacaoservicoproblema ssp "); sql.append("inner join solicitacaoservico ss on ssp.idsolicitacaoservico = ss.idsolicitacaoservico "); sql.append("inner join empregados emp on emp.idempregado = ss.idsolicitante "); sql.append("inner join usuario us on us.idusuario = ss.idresponsavel "); sql.append("inner join servicocontrato sc on ss.idservicocontrato = sc.idservicocontrato "); sql.append("inner join servico s on sc.idservico = s.idservico "); sql.append("inner join problema pr on pr.idproblema = ssp.idproblema "); sql.append("where ssp.idproblema = ? "); parametro.add(id); sql.append("order by ssp.idproblema asc "); list = this.execSQL(sql.toString(), parametro.toArray()); listRetorno.add("idSolicitacaoServico"); listRetorno.add("nomeServico"); listRetorno.add("solicitante"); listRetorno.add("responsavel"); listRetorno.add("idProblema"); listRetorno.add("tituloProblema"); listRetorno.add("descricaoProblema"); if (list != null && !list.isEmpty()) { Collection<SolicitacaoServicoDTO> listSolicitacaoProblemaByCriterios = this.listConvertion(SolicitacaoServicoDTO.class, list, listRetorno); return listSolicitacaoProblemaByCriterios; } return null; } @SuppressWarnings({ "rawtypes", "unchecked" }) public List<SolicitacaoServicoDTO> listSolicitacaoServicoByIdProblema (Integer idProblema) throws PersistenceException { List parametro = new ArrayList(); List fields = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("select ss.idsolicitacaoservico "); sql.append(" from solicitacaoservico ss "); sql.append(" inner join solicitacaoservicoproblema pm "); sql.append(" on ss.idsolicitacaoservico = pm.idsolicitacaoservico "); sql.append(" where pm.idProblema = ? "); parametro.add(idProblema); fields.add("idSolicitacaoServico"); List dados = this.execSQL(sql.toString(), parametro.toArray()); return (List<SolicitacaoServicoDTO>) this.listConvertion(SolicitacaoServicoDTO.class, dados, fields); } public SolicitacaoServicoProblemaDTO restoreByIdProblema(Integer idProblema) throws PersistenceException { List parametro = new ArrayList(); parametro.add(idProblema); List<String> listRetorno = new ArrayList<String>(); listRetorno.add("idProblema"); listRetorno.add("idSolicitacaoServico"); String sql = " select * from solicitacaoservicoproblema where idproblema = ? "; List lista = this.execSQL(sql.toString(), parametro.toArray()); if (lista != null && !lista.isEmpty()) { List listaResult = this.engine.listConvertion(SolicitacaoServicoProblemaDTO.class, lista, listRetorno); return (SolicitacaoServicoProblemaDTO) listaResult.get(0); } else { return null; } } }