package br.com.centralit.citcorpore.integracao;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import br.com.centralit.citcorpore.bean.CausaIncidenteDTO;
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({ "unchecked", "rawtypes" })
public class CausaIncidenteDao extends CrudDaoDefaultImpl {
public CausaIncidenteDao() {
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("idCausaIncidente" ,"idCausaIncidente", true, true, false, false));
listFields.add(new Field("idCausaIncidentePai" ,"idCausaIncidentePai", false, false, false, false));
listFields.add(new Field("descricaoCausa" ,"descricaoCausa", false, false, false, false));
listFields.add(new Field("dataInicio" ,"dataInicio", false, false, false, false));
listFields.add(new Field("dataFim" ,"dataFim", false, false, false, false));
return listFields;
}
public String getTableName() {
return this.getOwner() + "CausaIncidente";
}
public Collection list() throws PersistenceException {
List ordenacao = new ArrayList();
ordenacao.add(new Order("idCausaIncidente"));
return super.list(ordenacao);
}
public Class getBean() {
return CausaIncidenteDTO.class;
}
public Collection find(IDto arg0) throws PersistenceException {
return null;
}
public Collection findSemPai() throws PersistenceException {
String sql = "SELECT idCausaIncidente, idCausaIncidentePai, descricaoCausa, dataInicio, dataFim FROM causaincidente WHERE idCausaIncidentePai IS NULL AND dataFim IS NULL AND ";
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.POSTGRESQL))
sql += "(UPPER(deleted) IS NULL OR UPPER(deleted) = 'N') ";
else if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase(SQLConfig.SQLSERVER))
sql += "(deleted IS NULL OR deleted = 'N') ";
else sql += "(deleted IS NULL OR deleted = 'N') ";
sql += "ORDER BY descricaoCausa ";
List colDados = this.execSQL(sql, null);
if (colDados != null){
List fields = new ArrayList();
fields.add("idCausaIncidente");
fields.add("idCausaIncidentePai");
fields.add("descricaoCausa");
fields.add("dataInicio");
fields.add("dataFim");
return this.listConvertion(CausaIncidenteDTO.class, colDados, fields);
}
return null;
}
public Collection findByIdPai(Integer idCausaIncidentePaiParm) throws PersistenceException {
String sql = "SELECT idCausaIncidente, idCausaIncidentePai, descricaoCausa, dataInicio, dataFim FROM causaincidente " +
"WHERE idCausaIncidentePai = ? AND dataFim IS NULL AND ";
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.POSTGRESQL))
sql += "(UPPER(deleted) IS NULL OR UPPER(deleted) = 'N') ";
else if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase(SQLConfig.SQLSERVER))
sql += "(deleted IS NULL OR deleted = 'N') ";
else sql += "(deleted IS NULL OR deleted = 'N') ";
sql += "ORDER BY descricaoCausa ";
List colDados = this.execSQL(sql, new Object[] {idCausaIncidentePaiParm});
if (colDados != null){
List fields = new ArrayList();
fields.add("idCausaIncidente");
fields.add("idCausaIncidentePai");
fields.add("descricaoCausa");
fields.add("dataInicio");
fields.add("dataFim");
return this.listConvertion(CausaIncidenteDTO.class, colDados, fields);
}
return null;
}
public Collection findByIdCausaIncidentePai(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idCausaIncidentePai", "=", parm));
ordenacao.add(new Order("descricaoCausa"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdCausaIncidentePai(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idCausaIncidentePai", "=", parm));
super.deleteByCondition(condicao);
}
/**
* Retorna uma lista de causa de acordo com o parametro passado
* @param descricaoCausa
* @return
* @throws Exception
* @author thays.araujo
*/
public Collection listaCausaByDescricaoCausa(String descricaoCausa) throws PersistenceException {
List fields = new ArrayList();
if(descricaoCausa == null)
descricaoCausa = "";
String text = descricaoCausa;
text = text.replaceAll("�`^''-+=", "");
descricaoCausa = text;
descricaoCausa = "%" + descricaoCausa + "%";
List parametros = new ArrayList();
parametros.add(descricaoCausa);
StringBuilder sql = new StringBuilder();
sql.append("SELECT idcausaincidente , descricaoCausa");
sql.append( " FROM causaincidente ");
if (CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equals(SQLConfig.POSTGRESQL)){
sql.append("where descricaoCausa ilike ? ");
}else{
sql.append( "where UPPER(descricaoCausa) like UPPER(?) ");
}
sql.append(" ORDER BY descricaoCausa");
List listaR = this.execSQL(sql.toString(), parametros.toArray());
fields.add("idCausaIncidente");
fields.add("descricaoCausa");
return this.listConvertion(CausaIncidenteDTO.class, listaR, fields);
}
public Collection listaCausasAtivas() throws PersistenceException {
List fields = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT idcausaincidente, descricaoCausa FROM causaincidente WHERE datafim is NULL AND (deleted is NULL OR deleted = 'n') ");
List listaR = this.execSQL(sql.toString(), null);
fields.add("idCausaIncidente");
fields.add("descricaoCausa");
return this.listConvertion(CausaIncidenteDTO.class, listaR, fields);
}
}