package br.com.centralit.citcorpore.integracao; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.bean.AuditoriaItemConfigDTO; import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO; import br.com.centralit.citcorpore.util.CITCorporeUtil; 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; import br.com.citframework.util.SQLConfig; @SuppressWarnings({ "rawtypes", "unchecked" }) public class AuditoriaItemConfigDao extends CrudDaoDefaultImpl { public AuditoriaItemConfigDao() { 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("idAuditoriaItemConfig", "idAuditoriaItemConfig", true, true, false, false)); listFields.add(new Field("idItemConfiguracao", "idItemConfiguracao", false, false, false, false)); listFields.add(new Field("idItemConfiguracaoPai", "idItemConfiguracaoPai", false, false, false, false)); listFields.add(new Field("idValor", "idValor", false, false, false, false)); listFields.add(new Field("idHistoricoIC", "idHistoricoIC", false, false, false, false)); listFields.add(new Field("idHistoricoValor", "idHistoricoValor", false, false, false, false)); listFields.add(new Field("idUsuario", "idUsuario", false, false, false, false)); listFields.add(new Field("dataHoraAlteracao", "dataHoraAlteracao", false, false, false, false)); listFields.add(new Field("tipoAlteracao", "tipoAlteracao", false, false, false, false)); return listFields; } @Override public String getTableName() { return "AuditoriaItemConfig"; } @Override public Collection list() throws PersistenceException { List list = new ArrayList(); list.add(new Order("dataHoraAlteracao")); return super.list(list); } @Override public Class getBean() { return AuditoriaItemConfigDTO.class; } public Collection findByIdItemconfiguracaoPai(AuditoriaItemConfigDTO auditoriaItemConfigDTO) throws Exception { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idItemConfiguracaoPai", "=", auditoriaItemConfigDTO.getIdItemConfiguracaoPai())); ordenacao.add(new Order("dataHoraAlteracao")); return super.findByCondition(condicao, ordenacao); } public Collection findByIdItemconfiguracao(AuditoriaItemConfigDTO auditoriaItemConfigDTO) throws Exception { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idItemConfiguracao", "=", auditoriaItemConfigDTO.getIdItemConfiguracao())); ordenacao.add(new Order("dataHoraAlteracao")); return super.findByCondition(condicao, ordenacao); } public Collection findByIdHistoricoIC(AuditoriaItemConfigDTO auditoriaItemConfigDTO) throws Exception { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idHistoricoIC", "=", auditoriaItemConfigDTO.getIdHistoricoIC())); ordenacao.add(new Order("dataHoraAlteracao")); return super.findByCondition(condicao, ordenacao); } public Collection findByIdHistoricoValor(AuditoriaItemConfigDTO auditoriaItemConfigDTO) throws Exception { List condicao = new ArrayList(); List ordenacao = new ArrayList(); condicao.add(new Condition("idHistoricoValor", "=", auditoriaItemConfigDTO.getIdHistoricoValor())); ordenacao.add(new Order("dataHoraAlteracao")); return super.findByCondition(condicao, ordenacao); } public List<AuditoriaItemConfigDTO> historicoAlteracaoItemConfiguracaoByIdItemConfiguracao(ItemConfiguracaoDTO itemConfiguracaoDTO) throws Exception{ List parametro = new ArrayList(); List fields = new ArrayList(); StringBuilder str = new StringBuilder(); str.append(" select it.identificacao, tp.nometipoitemconfiguracao ,au.datahoraalteracao, us.login , au.tipoalteracao FROM itemconfiguracao it " + " inner join auditoriaitemconfig au on it.iditemconfiguracao = au.iditemconfiguracao " + " inner join tipoitemconfiguracao tp on tp.idtipoitemconfiguracao = it.idtipoitemconfiguracao " + " left join usuario us on us.idusuario = au.idusuario " + " where it.iditemconfiguracaopai = ? "); if(itemConfiguracaoDTO.getIdItemConfiguracao() != null && itemConfiguracaoDTO.getIdItemConfiguracaoPai() != null){ str.append(" and it.iditemconfiguracao = ? "); parametro.add(itemConfiguracaoDTO.getIdItemConfiguracaoPai()); parametro.add(itemConfiguracaoDTO.getIdItemConfiguracao()); }else{ parametro.add(itemConfiguracaoDTO.getIdItemConfiguracao()); } if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.ORACLE)) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); str.append(" and au.datahoraalteracao BETWEEN ? and ? "); parametro.add(formatter.format(itemConfiguracaoDTO.getDataInicioHistorico())); parametro.add(formatter.format(itemConfiguracaoDTO.getDataFimHistorico())); } else { str.append(" and au.datahoraalteracao BETWEEN ? and ? "); parametro.add(itemConfiguracaoDTO.getDataInicioHistorico()); parametro.add(transformaHoraFinal(itemConfiguracaoDTO.getDataFimHistorico())); } str.append(" group by au.idauditoriaitemConfig, it.identificacao, tp.nometipoitemconfiguracao, us.login, it.iditemconfiguracao, au.datahoraalteracao order by au.datahoraalteracao desc, it.iditemconfiguracao, au.tipoalteracao "); List dados = execSQL(str.toString(), parametro.toArray()); fields.add("identificacao"); fields.add("tipoItemConfiguracao"); fields.add("dataHoraAlteracao"); fields.add("login"); fields.add("tipoAlteracao"); return listConvertion(AuditoriaItemConfigDTO.class, dados, fields) ; } private Timestamp transformaHoraFinal(Timestamp dataTimestamp) throws ParseException { java.sql.Date data = new java.sql.Date(dataTimestamp.getTime()); String dataHora = data + " 23:59:59"; String pattern = "yyyy-MM-dd hh:mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(pattern); java.util.Date d = sdf.parse(dataHora); java.sql.Timestamp sqlDate = new java.sql.Timestamp(d.getTime()); return sqlDate; } }