package br.com.centralit.citcorpore.integracao; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.PortalDTO; 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.integracao.Order; import br.com.citframework.util.Constantes; @SuppressWarnings({ "unchecked", "rawtypes" }) public class PortalDao extends CrudDaoDefaultImpl { public PortalDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } @Override public Collection getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idPortal", "idPortal", true, true, false, false)); listFields.add(new Field("idItem", "idItem", false, false, false, false)); listFields.add(new Field("posicaoX", "posicaoX", false, false, false, false)); listFields.add(new Field("posicaoY", "posicaoY", false, false, false, false)); listFields.add(new Field("idUsuario", "idUsuario", false, false, false, false)); listFields.add(new Field("coluna", "coluna", false, false, false, false)); listFields.add(new Field("largura", "largura", false, false, false, false)); listFields.add(new Field("altura", "altura", false, false, false, false)); listFields.add(new Field("data", "data", false, false, false, false)); /*listFields.add(new Field("hora", "hora", false, false, false, false));*/ return listFields; } @Override public String getTableName() { return "portal"; } public Collection list() throws PersistenceException { List list = new ArrayList(); list.add(new Order("idUsuario")); return super.list(list); } public Collection listByUsuario(Integer idUsuario) throws Exception { Object[] objs = new Object[] {idUsuario}; String sql = " SELECT idUsuario from portal where idUsuario = ? "; List lista = this.execSQL(sql, objs); List listRetorno = new ArrayList(); listRetorno.add("idUsuario"); return this.engine.listConvertion(getBean(), lista, listRetorno); } public Collection findByCondition(Integer id) throws Exception { List list1 = new ArrayList(); List list2 = new ArrayList(); list1.add(new Condition("idUsuario", "=", id)); list2.add(new Order("idItem")); return super.findByCondition(list1, list2); } public Collection findByCondition(Integer idUsuario, Integer idItem) throws Exception { List list1 = new ArrayList(); List list2 = new ArrayList(); list1.add(new Condition("idUsuario", "=", idUsuario)); list1.add(new Condition("idItem", "=", idItem)); list2.add(new Order("idItem")); return super.findByCondition(list1, list2); } @Override public void update(IDto obj) throws PersistenceException { PortalDTO dto = (PortalDTO) obj; List param = new ArrayList(); param.add(dto.getPosicaoX()); param.add(dto.getPosicaoY()); param.add(dto.getLargura()); param.add(dto.getAltura()); param.add(dto.getData()); /*param.add(dto.getHora());*/ param.add(dto.getIdUsuario()); param.add(dto.getIdItem()); String str = "UPDATE " +getTableName()+ " SET posicaoX = ?, posicaoY = ?, largura=? ,altura =?, data =? WHERE idusuario = ? AND iditem = ?"; super.execUpdate(str, param.toArray()); } @Override public void delete(IDto obj) throws PersistenceException { PortalDTO dto = (PortalDTO) obj; List param = new ArrayList(); param.add(dto.getIdUsuario()); param.add(dto.getIdItem()); String str = "DELETE FROM " +getTableName()+ " WHERE idusuario = ? AND iditem = ?"; super.execUpdate(str, param.toArray()); } public Collection find(IDto obj) throws PersistenceException { List ordem = new ArrayList(); ordem.add(new Order("idUsuario")); return super.find(obj, ordem); } @Override public Class getBean() { return PortalDTO.class; } /** * @param idServico * @return * @throws Exception */ public boolean existeQuestionarioServico(final Integer idServico) throws PersistenceException { try{ Object[] param = new Object[] {idServico}; String query = "SELECT count(*) FROM " + " servico s" + " INNER JOIN" + " servicocontrato sc ON sc.idservico = s.idservico" + " INNER JOIN" + " templatesolicitacaoservico t ON t.idtemplate = s.idtemplatesolicitacao" + " INNER JOIN" + " questionario q ON q.idquestionario = t.idquestionario" + " WHERE" + " s.idservico = ?;"; List lista = this.execSQL(query, param); Object[] row = (Object[]) lista.get(0); return Integer.parseInt(row[0].toString()) > 0; }catch(NumberFormatException ex){ return Boolean.FALSE; } } /** * @param idServico * @return * @throws Exception */ public boolean existeQuestionario(final Integer idServico) throws PersistenceException { try{ Object[] param = new Object[] {idServico}; String query = "SELECT COUNT(idquestionario) FROM servico s " + " INNER JOIN templatesolicitacaoservico t ON t.idtemplate = s.idtemplatesolicitacao " + " WHERE s.idservico=?"; List lista = this.execSQL(query, param); Object[] row = (Object[]) lista.get(0); return Integer.parseInt(row[0].toString()) > 0; }catch(NumberFormatException ex){ return Boolean.FALSE; } } /** * @param idServicoCatalogo * @return */ public Integer obterIdQuestionarioServico(Integer idServicoCatalogo) { Object[] param = new Object[] {idServicoCatalogo}; String query = "select idQuestionario from servico s INNER JOIN templatesolicitacaoservico t ON t.idtemplate = s.idtemplatesolicitacao WHERE s.idservico=?"; List lista; try { lista = this.execSQL(query, param); if (lista != null && lista.size() > 0){ Object[] row = (Object[]) lista.get(0); return Integer.parseInt(row[0].toString()); } } catch (PersistenceException e) { e.printStackTrace(); } return null; } }