package br.com.centralit.citcorpore.integracao; import java.sql.Date; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.HistoricoItemConfiguracaoDTO; import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO; 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.util.Constantes; import br.com.citframework.util.UtilDatas; @SuppressWarnings({ "rawtypes", "unchecked", "unused" }) public class HistoricoItemConfiguracaoDAO extends CrudDaoDefaultImpl { public HistoricoItemConfiguracaoDAO() { super(Constantes.getValue("DATABASE_ALIAS"), null); } public Collection<Field> getFields() { Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("idHistoricoIC", "idHistoricoIC", true, true, false, false)); listFields.add(new Field("idItemConfiguracao", "idItemConfiguracao", false, false, false, false)); listFields.add(new Field("identificacao", "identificacao", false, false, false, false)); listFields.add(new Field("idItemConfiguracaoPai", "idItemConfiguracaoPai", false, false, false, false)); listFields.add(new Field("idTipoItemConfiguracao", "idTipoItemConfiguracao", false, false, false, false)); listFields.add(new Field("idGrupoItemConfiguracao", "idGrupoItemConfiguracao", false, false, false, false)); listFields.add(new Field("idProprietario", "idProprietario", false, false, false, false)); listFields.add(new Field("versao", "versao", false, false, false, false)); listFields.add(new Field("familia", "familia", false, false, false, false)); listFields.add(new Field("classe", "classe", false, false, false, false)); listFields.add(new Field("localidade", "localidade", false, false, false, false)); listFields.add(new Field("status", "status", false, false, false, false)); listFields.add(new Field("criticidade", "criticidade", false, false, false, false)); listFields.add(new Field("numeroSerie", "numeroSerie", false, false, false, false)); listFields.add(new Field("dataExpiracao", "dataExpiracao", false, false, false, false)); listFields.add(new Field("idMudanca", "idMudanca", false, false, false, false)); listFields.add(new Field("idProblema", "idProblema", false, false, false, false)); listFields.add(new Field("idIncidente", "idIncidente", false, false, false, false)); listFields.add(new Field("idAutorAlteracao", "idAutorAlteracao", false, false, false, false)); listFields.add(new Field("dataHoraAlteracao", "dataHoraAlteracao", false, false, false, false)); listFields.add(new Field("baseLine", "baseLine", false, false, false, false)); listFields.add(new Field("restauracao", "restauracao", false, false, false, false)); listFields.add(new Field("idMidiaSoftware", "idMidiaSoftware", false, false, false, false)); listFields.add(new Field("historicoVersao", "historicoVersao", false, false, false, false)); listFields.add(new Field("impacto", "impacto", false, false, false, false)); listFields.add(new Field("urgencia", "urgencia", false, false, false, false)); listFields.add(new Field("dtultimacaptura", "dtUltimaCaptura", false, false, false, false)); listFields.add(new Field("origemmodificacao", "origem", false, false, false, false)); listFields.add(new Field("idmodificacao", "idOrigemModificacao", false, false, false, false)); listFields.add(new Field("idcontrato", "idContrato", false, false, false, false)); listFields.add(new Field("idliberacao", "idLiberacao", false, false, false, false)); listFields.add(new Field("idresponsavel", "idResponsavel", false, false, false, false)); listFields.add(new Field("ativofixo", "ativoFixo", false, false, false, false)); return listFields; } public String getTableName() { return this.getOwner() + "HistoricoIC"; } public Collection list() throws PersistenceException { return null; } public Class getBean() { return HistoricoItemConfiguracaoDTO.class; } public Collection find(IDto arg0) throws PersistenceException { return null; } @Override public Collection findByCondition(List condicao, List ordenacao) throws PersistenceException { return super.findByCondition(condicao, ordenacao); } public HistoricoItemConfiguracaoDTO maxIdHistorico(ItemConfiguracaoDTO itemConfiguracao) throws PersistenceException { List parametro = new ArrayList(); List listRetorno = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.append("SELECT MAX(idhistoricoic) AS idhistoricoic FROM " + getTableName() + " WHERE iditemconfiguracao = ?"); parametro.add(itemConfiguracao.getIdItemConfiguracao()); List resultado = this.execSQL(sql.toString(), parametro.toArray()); listRetorno.add("idHistoricoIC"); List result = listConvertion(HistoricoItemConfiguracaoDTO.class , resultado, listRetorno); return (HistoricoItemConfiguracaoDTO) result.get(0); } public List<HistoricoItemConfiguracaoDTO> listHistoricoItemByIditemconfiguracao(Integer idItemconfiguracao) throws PersistenceException { List listRetorno = new ArrayList(); List parametro = new ArrayList(); String sql = "select hic.idHistoricoIC, hic.idItemConfiguracao, "+ " hic.identificacao, hic.idItemConfiguracaoPai, hic.idTipoItemConfiguracao, hic.idGrupoItemConfiguracao, hic.idProprietario, hic.versao, hic.familia, hic.classe, hic.localidade, "+ " hic.status, hic.criticidade, hic.numeroSerie, hic.dataExpiracao, hic.idMudanca, hic.idProblema, hic.idIncidente, hic.idAutorAlteracao, hic.dataHoraAlteracao, hic.baseLine, hic.restauracao , "+ " emp.nome , tipo.nometipoitemconfiguracao , hic.historicoVersao , hic.origemmodificacao, hic.idmodificacao "+ " from historicoic hic " + " left join tipoitemconfiguracao tipo on hic.idtipoitemconfiguracao = tipo.idtipoitemconfiguracao " + " left join empregados emp on emp.idempregado = hic.idproprietario where hic.iditemconfiguracao = ? order by hic.idHistoricoIC desc"; parametro.add(idItemconfiguracao); List resultado = execSQL(sql, parametro.toArray()); listRetorno = getListRetorno(); listRetorno.add("nomeProprietario"); listRetorno.add("nomeTipoItemConfiguracao"); listRetorno.add("historicoVersao"); listRetorno.add("origem"); listRetorno.add("idOrigemModificacao"); return listConvertion(HistoricoItemConfiguracaoDTO.class , resultado, listRetorno); } public List<HistoricoItemConfiguracaoDTO> listHistoricoItemCfValorByIdHistoricoIC(Integer idHistoricoIC) throws PersistenceException { List listRetorno = new ArrayList(); List parametro = new ArrayList(); String sql = " select hic.idHistoricoIC, hic.idItemConfiguracao, "+ " hic.identificacao, hic.idItemConfiguracaoPai, hic.idTipoItemConfiguracao, hic.idGrupoItemConfiguracao, hic.idProprietario, hic.versao, hic.familia, hic.classe, hic.localidade, "+ " hic.status, hic.criticidade, hic.numeroSerie, hic.dataExpiracao, hic.idMudanca, hic.idProblema, hic.idIncidente, hic.idAutorAlteracao, hic.dataHoraAlteracao, hic.baseLine, hic.restauracao, "+ " emp.nome , tipo.nometipoitemconfiguracao, car.nomecaracteristica, hicvalor.valorstr "+ " from historicoic hic "+ " inner join historicovalor hisval on hic.idhistoricoic = hisval.idhistoricoic "+ " inner join tipoitemconfiguracao tipo on tipo.idtipoitemconfiguracao = hic.idtipoitemconfiguracao "+ " inner join caracteristica car on car.idcaracteristica = hisval.idcaracteristica "+ " inner join historicovalor hicvalor on hicvalor.idhistoricoic = hic.idhistoricoic "+ " inner join empregados emp on emp.idempregado = hic.idproprietario "+ " where hic.idhistoricoic = ? "; parametro.add(idHistoricoIC); List resultado = execSQL(sql, parametro.toArray()); listRetorno = getListRetorno(); listRetorno.add("nomeProprietario"); listRetorno.add("nomeTipoItemConfiguracao"); listRetorno.add("nomeCaracteristica"); listRetorno.add("valorstr"); return listConvertion(HistoricoItemConfiguracaoDTO.class , resultado, listRetorno); } public List getListRetorno(){ List retorno = new ArrayList(); retorno.add("idHistoricoIC"); retorno.add("idItemConfiguracao"); retorno.add("identificacao" ); retorno.add("idItemConfiguracaoPai"); retorno.add("idTipoItemConfiguracao" ); retorno.add("idGrupoItemConfiguracao"); retorno.add("idProprietario"); retorno.add("versao"); retorno.add("familia"); retorno.add("classe"); retorno.add("localidade"); retorno.add("status"); retorno.add("criticidade"); retorno.add("numeroSerie"); retorno.add("dataExpiracao"); retorno.add("idMudanca"); retorno.add("idProblema"); retorno.add("idIncidente"); retorno.add("idAutorAlteracao"); retorno.add("dataHoraAlteracao"); retorno.add("baseLine"); retorno.add("restauracao"); return retorno; } @Override public void updateNotNull(IDto obj) throws PersistenceException { super.updateNotNull(obj); } public List<HistoricoItemConfiguracaoDTO> listHistoricoSemIdMudanca(Date dataInicio, Date dataFim) throws PersistenceException { List listRetorno = new ArrayList(); List parametro = new ArrayList(); String sql = "select hic.idHistoricoIC, hic.idItemConfiguracao, "+ " hic.identificacao, hic.idItemConfiguracaoPai, hic.idTipoItemConfiguracao, hic.idGrupoItemConfiguracao, hic.idProprietario, hic.versao, hic.familia, hic.classe, hic.localidade, "+ " hic.status, hic.criticidade, hic.numeroSerie, hic.dataExpiracao, hic.idMudanca, hic.idProblema, hic.idIncidente, hic.idAutorAlteracao, hic.dataHoraAlteracao, hic.baseLine, hic.restauracao , "+ " emp.nome , tipo.nometipoitemconfiguracao , hic.historicoVersao "+ " from historicoic hic " + " inner join tipoitemconfiguracao tipo on hic.idtipoitemconfiguracao = tipo.idtipoitemconfiguracao " + " inner join empregados emp on emp.idempregado = hic.idproprietario " + "where idMudanca is null "; sql += "AND dataHoraAlteracao BETWEEN ? AND ? "; parametro.add(Timestamp.valueOf(UtilDatas.dateToSTRWithFormat(dataInicio, "yyyy-MM-dd") + " 00:00:00")); parametro.add(Timestamp.valueOf(UtilDatas.dateToSTRWithFormat(dataFim, "yyyy-MM-dd") + " 23:59:59")); sql += "order by hic.dataHoraAlteracao desc, hic.idHistoricoIC "; List resultado = execSQL(sql, parametro.toArray()); listRetorno = getListRetorno(); listRetorno.add("nomeProprietario"); listRetorno.add("nomeTipoItemConfiguracao"); listRetorno.add("historicoVersao"); return listConvertion(HistoricoItemConfiguracaoDTO.class , resultado, listRetorno); } }