package br.com.centralit.citcorpore.integracao;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import br.com.centralit.citcorpore.bean.ExecucaoAtividadePeriodicaDTO;
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;
public class ExecucaoAtividadePeriodicaDao extends CrudDaoDefaultImpl {
public ExecucaoAtividadePeriodicaDao() {
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("idExecucaoAtividadePeriodica" ,"idExecucaoAtividadePeriodica", true, true, false, false));
listFields.add(new Field("idAtividadePeriodica" ,"idAtividadePeriodica", false, false, false, false));
listFields.add(new Field("idProgramacaoAtividade" ,"idProgramacaoAtividade", false, false, false, false));
listFields.add(new Field("dataProgramada" ,"dataProgramada", false, false, false, false));
listFields.add(new Field("horaProgramada" ,"horaProgramada", false, false, false, false));
listFields.add(new Field("situacao" ,"situacao", false, false, false, false));
listFields.add(new Field("detalhamento" ,"detalhamento", false, false, false, false));
listFields.add(new Field("usuario" ,"usuario", false, false, false, false));
listFields.add(new Field("idEmpregado" ,"idEmpregado", false, false, false, false));
listFields.add(new Field("dataExecucao" ,"dataExecucao", false, false, false, false));
listFields.add(new Field("horaExecucao" ,"horaExecucao", false, false, false, false));
listFields.add(new Field("dataRegistro" ,"dataRegistro", false, false, false, false));
listFields.add(new Field("horaRegistro" ,"horaRegistro", false, false, false, false));
listFields.add(new Field("idMotivoSuspensao" ,"idMotivoSuspensao", false, false, false, false));
listFields.add(new Field("complementoMotivoSuspensao" ,"complementoMotivoSuspensao", false, false, false, false));
return listFields;
}
public String getTableName() {
return this.getOwner() + "ExecucaoAtividadePeriodica";
}
public Collection list() throws PersistenceException {
return null;
}
public Class getBean() {
return ExecucaoAtividadePeriodicaDTO.class;
}
public Collection find(IDto arg0) throws PersistenceException {
return null;
}
public Collection findByAtvDataHora(Integer idAtividadePeriodicaParm, Date dataProgramadaParm, String horaProgramadaParm, Integer idProgramacaoAtividade) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idAtividadePeriodica", "=", idAtividadePeriodicaParm));
condicao.add(new Condition("dataProgramada", "=", dataProgramadaParm));
condicao.add(new Condition("horaProgramada", "=", horaProgramadaParm));
if (idProgramacaoAtividade != null)
condicao.add(new Condition("idProgramacaoAtividade", "=", idProgramacaoAtividade));
ordenacao.add(new Order("idExecucaoAtividadePeriodica"));
return super.findByCondition(condicao, ordenacao);
}
public Collection findByIdAtividadePeriodica(Integer idAtividadePeriodicaParm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idAtividadePeriodica", "=", idAtividadePeriodicaParm));
ordenacao.add(new Order("idExecucaoAtividadePeriodica"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdAtividadePeriodica(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idAtividadePeriodica", "=", parm));
super.deleteByCondition(condicao);
}
public void deleteByIdEmpregado(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idEmpregado", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findBlackoutByIdMudancaAndPeriodo(Integer idMudanca, Date dataInicio, Date dataFim) throws PersistenceException {
String sql = "select " + this.getNamesFieldsStr("ex") + " from " + this.getTableName() + " ex ";
sql += " inner join atividadeperiodica ag on ag.idatividadeperiodica = ex.idatividadeperiodica ";
sql += " where idrequisicaomudanca = ? and dataexecucao between ? and ? and ag.blackout = 'S' order by dataexecucao, horaexecucao";
List parametros = new ArrayList();
parametros.add(idMudanca);
parametros.add(dataInicio);
parametros.add(dataFim);
List lista = this.execSQL(sql, parametros.toArray());
return this.listConvertion(this.getBean(), lista, this.getListNamesFieldClass());
}
}