package br.com.centralit.citcorpore.rh.integracao; import java.sql.Date; import java.util.ArrayList; import java.util.Collection; import java.util.List; import br.com.centralit.citcorpore.rh.bean.HistoricoFuncionalDTO; 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; /** * @author david.silva * */ public class HistoricoFuncionalDao extends CrudDaoDefaultImpl { private static final String TABLE_NAME = "rh_historicofuncional"; public HistoricoFuncionalDao() { super(Constantes.getValue("DATABASE_ALIAS"), null); } @Override public Class getBean() { return HistoricoFuncionalDTO.class; } @Override public Collection find(final IDto obj) throws PersistenceException { return null; } @Override public Collection<Field> getFields() { final Collection<Field> listFields = new ArrayList<>(); listFields.add(new Field("IDHISTORICOFUNCIONAL", "idHistoricoFuncional", true, true, false, false)); listFields.add(new Field("IDCANDIDATO", "idCandidato", false, false, false, false)); listFields.add(new Field("IDCURRICULO", "idCurriculo", false, false, false, false)); listFields.add(new Field("DTCRIACAO", "dtCriacao", false, false, false, false)); return listFields; } @Override public String getTableName() { return TABLE_NAME; } @Override public Collection list() throws PersistenceException { final List list = new ArrayList(); list.add(new Order("idHistoricoFuncional")); return super.list(list); } public Collection<HistoricoFuncionalDTO> findByidCandidato(final Integer idCandidato) throws PersistenceException { final List condicao = new ArrayList(); final List ordenacao = new ArrayList(); condicao.add(new Condition("idCandidato", "=", idCandidato)); ordenacao.add(new Order("idCandidato")); return super.findByCondition(condicao, ordenacao); } public HistoricoFuncionalDTO restoreByIdCandidato(final Integer idCandidato) throws PersistenceException { final List<HistoricoFuncionalDTO> lista = (List<HistoricoFuncionalDTO>) this.findByidCandidato(idCandidato); return lista != null ? lista.get(0) : null; } public Collection<HistoricoFuncionalDTO> findByidCurriculo(final Integer idCurriculo) throws PersistenceException { final List condicao = new ArrayList(); final List ordenacao = new ArrayList(); condicao.add(new Condition("idCurriculo", "=", idCurriculo)); ordenacao.add(new Order("idCurriculo")); return super.findByCondition(condicao, ordenacao); } public HistoricoFuncionalDTO restoreByIdCurriculo(final Integer idCurriculo) throws PersistenceException { final List<HistoricoFuncionalDTO> lista = (List<HistoricoFuncionalDTO>) this.findByidCurriculo(idCurriculo); return lista != null ? lista.get(0) : null; } public Date getUltimaAtualizacao(final Integer idCurriculo) throws PersistenceException { final List parametro = new ArrayList(); final List fields = new ArrayList(); List list = new ArrayList(); final StringBuilder sql = new StringBuilder(); sql.append("SELECT MAX(ihf.dtcriacao) dtCriacao "); sql.append("FROM rh_historicofuncional hf LEFT JOIN rh_itemhistoricofuncional ihf ON ihf.idhistoricofuncional=hf.idhistoricofuncional "); sql.append("WHERE hf.idcurriculo=?"); parametro.add(idCurriculo); list = this.execSQL(sql.toString(), parametro.toArray()); fields.add("dtCriacao"); if (list != null && !list.isEmpty()) { return ((List<HistoricoFuncionalDTO>) this.listConvertion(this.getBean(), list, fields)).get(0).getDtCriacao(); } return null; } }