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.Iterator;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import br.com.centralit.citcorpore.bean.BaseConhecimentoDTO;
import br.com.centralit.citcorpore.bean.GrupoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.InformacaoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.MidiaSoftwareChaveDTO;
import br.com.centralit.citcorpore.bean.PesquisaItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.SolicitacaoServicoDTO;
import br.com.centralit.citcorpore.util.AdaptacaoBD;
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", "unused" })
public class ItemConfiguracaoDao extends CrudDaoDefaultImpl {
public ItemConfiguracaoDao() {
super(Constantes.getValue("DATABASE_ALIAS"), null);
}
public Collection<Field> getFields() {
Collection<Field> listFields = new ArrayList<>();
listFields.add(new Field("idItemConfiguracao", "idItemConfiguracao", true, true, false, false));
listFields.add(new Field("identificacao", "identificacao", 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("idProprietario", "idProprietario", 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("versao", "versao", 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("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("idProblema", "idProblema", false, false, false, false));
listFields.add(new Field("idIncidente", "idIncidente", false, false, false, false));
listFields.add(new Field("idMudanca", "idMudanca", false, false, false, false));
listFields.add(new Field("dataInicio", "dataInicio", false, false, false, false));
listFields.add(new Field("dataFim", "dataFim", false, false, false, false));
listFields.add(new Field("idMidiaSoftware", "idMidiaSoftware", 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("idbaseconhecimento", "idBaseConhecimento", false, false, false, false));
listFields.add(new Field("dtultimacaptura", "dtUltimaCaptura", false, false, false, false));
listFields.add(new Field("idliberacao", "idLiberacao", false, false, false, false));
listFields.add(new Field("idcontrato", "idContrato", false, false, false, false));
listFields.add(new Field("idresponsavel", "idResponsavel", false, false, false, false));
listFields.add(new Field("ativofixo", "ativoFixo", false, false, false, false));
listFields.add(new Field("datahoradesinstalacao", "datahoradesinstalacao", false, false, false, false));
listFields.add(new Field("nome", "nome", false, false, false, false));
listFields.add(new Field("informacoesAdicionais", "informacoesAdicionais", false, false, false, false));
listFields.add(new Field("idgruporesponsavel", "idGrupoResponsavel", false, false, false, false));
return listFields;
}
public String getTableName() {
return this.getOwner() + "ItemConfiguracao";
}
@Override
public void updateNotNull(IDto obj) throws PersistenceException {
super.updateNotNull(obj);
}
public Collection list() throws PersistenceException {
return null;
}
public Class getBean() {
return ItemConfiguracaoDTO.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 Collection findByIdItemConfiguracaoPai(Integer parm) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sqlItemConfiguracao = new StringBuilder();
sqlItemConfiguracao.append("SELECT itemConfiguracao.identificacao, itemConfiguracao.idItemConfiguracao, itemConfiguracao.status, tipoitemconfiguracao.imagem, itemConfiguracao.nome ");
sqlItemConfiguracao.append("FROM ITEMCONFIGURACAO itemConfiguracao left join tipoitemconfiguracao on itemConfiguracao.idtipoitemconfiguracao = tipoitemconfiguracao.idtipoitemconfiguracao ");
sqlItemConfiguracao.append("WHERE itemConfiguracao.idItemConfiguracaoPai = ? and itemConfiguracao.dataFim is null ");
sqlItemConfiguracao.append("ORDER BY identificacao");
parametro.add(parm);
List lista = this.execSQL(sqlItemConfiguracao.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("identificacao");
listRetorno.add("idItemConfiguracao");
listRetorno.add("status");
listRetorno.add("imagem");
listRetorno.add("nome");
Collection<ItemConfiguracaoDTO> result = this.engine.listConvertion(getBean(), lista, listRetorno);
return result;
}
/**
* Restaura o Item de Configura��o filho de acordo com o idItemConfiguracaoPai, identificacao e idTipoItemConfiguracao.
*
* @param itemConfiguracaoFilho
* - Item de Configura��o Filho.
* @return ItemConfiguracaoDTO - Item de Configura��o encontrado.
* @throws Exception
* @author valdoilo.damasceno
* @since 19.01.2015
*/
public ItemConfiguracaoDTO obterICFilhoPorIdentificacaoIdPaiEIdTipo(ItemConfiguracaoDTO itemConfiguracaoFilho) throws PersistenceException {
ItemConfiguracaoDTO itemEncontrado = null;
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("identificacao", "=", StringUtils.replace(itemConfiguracaoFilho.getIdentificacao(), "\0 ", "")));
if (itemConfiguracaoFilho.getIdItemConfiguracaoPai() != null) {
condicao.add(new Condition("idItemConfiguracaoPai", "=", itemConfiguracaoFilho.getIdItemConfiguracaoPai()));
condicao.add(new Condition("idTipoItemConfiguracao", "=", itemConfiguracaoFilho.getIdTipoItemConfiguracao()));
}
ordenacao.add(new Order("identificacao"));
List result = (List) super.findByCondition(condicao, ordenacao);
if (result != null && !result.isEmpty()) {
itemConfiguracaoFilho = (ItemConfiguracaoDTO) result.get(0);
}
return itemConfiguracaoFilho;
}
public void deleteByIdItemConfiguracaoPai(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idItemConfiguracaoPai", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdTipoItemConfiguracao(String parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idTipoItemConfiguracao", "=", parm));
ordenacao.add(new Order("numero"));
return super.findByCondition(condicao, ordenacao);
}
public void deleteByIdTipoItemConfiguracao(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
condicao.add(new Condition("idTipoItemConfiguracao", "=", parm));
super.deleteByCondition(condicao);
}
public Collection findByIdTipoItemConfiguracao(Integer parm) throws PersistenceException {
List condicao = new ArrayList();
List ordenacao = new ArrayList();
condicao.add(new Condition("idItemConfiguracao", "=", parm));
ordenacao.add(new Order("identificacao"));
return super.findByCondition(condicao, ordenacao);
}
public void updateItemConfiguracaoFilho(Integer idItemConfiguracao, Date data, Timestamp datahoradesinstalacao) throws PersistenceException {
List parametros = new ArrayList();
ItemConfiguracaoDTO bean = new ItemConfiguracaoDTO();
if (data != null) {
parametros.add(data);
} else {
parametros.add(null);
}
if(datahoradesinstalacao != null){
parametros.add(datahoradesinstalacao);
}else{
parametros.add(null);
}
parametros.add(idItemConfiguracao);
String sql = "UPDATE " + getTableName() + " SET dataFim = ?, datahoradesinstalacao = ? WHERE idItemConfiguracaoPai = ? and dataFim is null";
execUpdate(sql, parametros.toArray());
}
private List prepararListaDeRetorno() {
List listRetorno = new ArrayList();
listRetorno.add("idItemConfiguracao");
return listRetorno;
}
public Collection<ItemConfiguracaoDTO> listByIdentificacao(PesquisaItemConfiguracaoDTO pesquisa) throws PersistenceException {
List parametro = new ArrayList();
SolicitacaoServicoDao solicitacaoDao = new SolicitacaoServicoDao();
StringBuilder sqlItemConfiguracao = new StringBuilder();
sqlItemConfiguracao.append("SELECT itemConfiguracao.identificacao, itemConfiguracao.idItemConfiguracao ");
sqlItemConfiguracao.append("FROM ITEMCONFIGURACAO itemConfiguracao ");
sqlItemConfiguracao.append("LEFT JOIN ITEMCONFIGURACAOEVENTO itemConfiguracaoEvento ");
sqlItemConfiguracao.append("ON itemConfiguracaoEvento.IDITEMCONFIGURACAO = itemConfiguracao.IDITEMCONFIGURACAO ");
sqlItemConfiguracao.append("WHERE itemConfiguracao.DATAFIM IS NULL ");
if (pesquisa.getItemRelacionado() != null && pesquisa.getItemRelacionado().equalsIgnoreCase("S")) {
if (pesquisa.getIdItemConfiguracaoFilho() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.idItemConfiguracao = ? ");
parametro.add(pesquisa.getIdItemConfiguracaoFilho());
}
if (pesquisa.getIdItemConfiguracao() != null) {
sqlItemConfiguracao.append(" AND itemConfiguracao.IDITEMCONFIGURACAOPAI = ? ");
parametro.add(pesquisa.getIdItemConfiguracao());
}
} else {
if (pesquisa.getIp() != null && !pesquisa.getIp().equals("")) {
sqlItemConfiguracao.append(" AND itemConfiguracao.identificacao like ? ");
parametro.add("%" + pesquisa.getIp() + "%");
}
if (pesquisa.getIdItemConfiguracao() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.idItemConfiguracao = ? ");
parametro.add(pesquisa.getIdItemConfiguracao());
}
sqlItemConfiguracao.append(" AND itemConfiguracao.IDITEMCONFIGURACAOPAI IS NULL ");
}
if (pesquisa.getIdGrupoItemConfiguracao() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.idGrupoItemConfiguracao = ? ");
parametro.add(pesquisa.getIdGrupoItemConfiguracao());
}
if (pesquisa.getInstalacao() != null & pesquisa.getDesinstalacao() == null) {
sqlItemConfiguracao.append("AND (itemConfiguracaoEvento.tipoexecucao = ? or itemconfiguracaoevento.tipoexecucao is null) ");
parametro.add(pesquisa.getInstalacao());
}
if (pesquisa.getDesinstalacao() != null & pesquisa.getInstalacao() == null) {
sqlItemConfiguracao.append("AND (itemConfiguracaoEvento.tipoexecucao = ? or itemconfiguracaoevento.tipoexecucao is null) ");
parametro.add(pesquisa.getDesinstalacao());
}
/*
* altera��o feita para que os dados com valor igual a null possam vir na pesquisa .
*
* @thays.araujo
*/
if(pesquisa.getDesinstalacao() != null && pesquisa.getInstalacao()!=null){
sqlItemConfiguracao.append("and (itemconfiguracaoevento.tipoexecucao = ? or itemconfiguracaoevento.tipoexecucao = ? or itemconfiguracaoevento.tipoexecucao is null) ");
parametro.add(pesquisa.getDesinstalacao());
parametro.add(pesquisa.getInstalacao());
}
if (pesquisa.getDataInicio() != null) {
if (pesquisa.getInventario() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.datainicio BETWEEN ? AND ? ");
parametro.add(pesquisa.getDataInicio());
parametro.add(pesquisa.getDataFim());
} else {
sqlItemConfiguracao.append("AND itemConfiguracaoEvento.data BETWEEN ? AND ? ");
parametro.add(pesquisa.getDataInicio());
parametro.add(pesquisa.getDataFim());
}
}
if(CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equalsIgnoreCase(SQLConfig.SQLSERVER)){
sqlItemConfiguracao.append("ORDER BY len(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}else{
sqlItemConfiguracao.append("ORDER BY length(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}
List lista = this.execSQL(sqlItemConfiguracao.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("identificacao");
listRetorno.add("idItemConfiguracao");
Collection<ItemConfiguracaoDTO> result = this.engine.listConvertion(getBean(), lista, listRetorno);
return result;
}
public Collection<ItemConfiguracaoDTO> listByIdentificacaoNaoDesativados(PesquisaItemConfiguracaoDTO pesquisa) throws PersistenceException {
List parametro = new ArrayList();
SolicitacaoServicoDao solicitacaoDao = new SolicitacaoServicoDao();
StringBuilder sqlItemConfiguracao = new StringBuilder();
sqlItemConfiguracao.append("SELECT itemConfiguracao.identificacao, itemConfiguracao.idItemConfiguracao ");
sqlItemConfiguracao.append("FROM ITEMCONFIGURACAO itemConfiguracao ");
sqlItemConfiguracao.append("LEFT JOIN ITEMCONFIGURACAOEVENTO itemConfiguracaoEvento ");
sqlItemConfiguracao.append("ON itemConfiguracaoEvento.IDITEMCONFIGURACAO = itemConfiguracao.IDITEMCONFIGURACAO ");
sqlItemConfiguracao.append("WHERE itemConfiguracao.DATAFIM IS NULL and itemConfiguracao.STATUS <> 2");
if (pesquisa.getItemRelacionado() != null && pesquisa.getItemRelacionado().equalsIgnoreCase("S")) {
if (pesquisa.getIdItemConfiguracaoFilho() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.idItemConfiguracao = ? ");
parametro.add(pesquisa.getIdItemConfiguracaoFilho());
}
if (pesquisa.getIdItemConfiguracao() != null) {
sqlItemConfiguracao.append(" AND itemConfiguracao.IDITEMCONFIGURACAOPAI = ? ");
parametro.add(pesquisa.getIdItemConfiguracao());
}
} else {
if (pesquisa.getIp() != null && !pesquisa.getIp().equals("")) {
sqlItemConfiguracao.append(" AND itemConfiguracao.identificacao like ? ");
parametro.add("%" + pesquisa.getIp() + "%");
}
if (pesquisa.getIdItemConfiguracao() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.idItemConfiguracao = ? ");
parametro.add(pesquisa.getIdItemConfiguracao());
}
sqlItemConfiguracao.append(" AND itemConfiguracao.IDITEMCONFIGURACAOPAI IS NULL ");
}
if (pesquisa.getIdGrupoItemConfiguracao() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.idGrupoItemConfiguracao = ? ");
parametro.add(pesquisa.getIdGrupoItemConfiguracao());
}
if (pesquisa.getInstalacao() != null & pesquisa.getDesinstalacao() == null) {
sqlItemConfiguracao.append("AND (itemConfiguracaoEvento.tipoexecucao = ? or itemconfiguracaoevento.tipoexecucao is null) ");
parametro.add(pesquisa.getInstalacao());
}
if (pesquisa.getDesinstalacao() != null & pesquisa.getInstalacao() == null) {
sqlItemConfiguracao.append("AND (itemConfiguracaoEvento.tipoexecucao = ? or itemconfiguracaoevento.tipoexecucao is null) ");
parametro.add(pesquisa.getDesinstalacao());
}
/*
* altera��o feita para que os dados com valor igual a null possam vir na pesquisa .
*
* @thays.araujo
*/
if(pesquisa.getDesinstalacao() != null && pesquisa.getInstalacao()!=null){
sqlItemConfiguracao.append("and (itemconfiguracaoevento.tipoexecucao = ? or itemconfiguracaoevento.tipoexecucao = ? or itemconfiguracaoevento.tipoexecucao is null) ");
parametro.add(pesquisa.getDesinstalacao());
parametro.add(pesquisa.getInstalacao());
}
if (pesquisa.getDataInicio() != null) {
if (pesquisa.getInventario() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.datainicio BETWEEN ? AND ? ");
parametro.add(pesquisa.getDataInicio());
parametro.add(pesquisa.getDataFim());
} else {
sqlItemConfiguracao.append("AND itemConfiguracaoEvento.data BETWEEN ? AND ? ");
parametro.add(pesquisa.getDataInicio());
parametro.add(pesquisa.getDataFim());
}
}
if(CITCorporeUtil.SGBD_PRINCIPAL.toUpperCase().equalsIgnoreCase(SQLConfig.SQLSERVER)){
sqlItemConfiguracao.append("ORDER BY len(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}else{
sqlItemConfiguracao.append("ORDER BY length(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}
List lista = this.execSQL(sqlItemConfiguracao.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("identificacao");
listRetorno.add("idItemConfiguracao");
Collection<ItemConfiguracaoDTO> result = this.engine.listConvertion(getBean(), lista, listRetorno);
return result;
}
public Collection<ItemConfiguracaoDTO> pesquisaDataExpiracao(java.util.Date data) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("SELECT ic.iditemconfiguracao, ic.identificacao, ic.idgrupoitemconfiguracao, ");
sql.append("ic.idproprietario, gic.nomegrupoitemconfiguracao, gic.emailGrupoItemConfiguracao, ic.dataexpiracao ");
sql.append("FROM itemconfiguracao ic, grupoitemconfiguracao gic ");
sql.append("WHERE ic.idgrupoitemconfiguracao = gic.idgrupoitemconfiguracao AND dataexpiracao = ? AND ic.datafim IS NULL");
parametro.add(data);
List lista = this.execSQL(sql.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("idItemConfiguracao");
listRetorno.add("identificacao");
listRetorno.add("idGrupoItemConfiguracao");
listRetorno.add("idProprietario");
listRetorno.add("nomeGrupoItemConfiguracao");
listRetorno.add("emailGrupoItemConfiguracao");
listRetorno.add("dataExpiracao");
List result = this.engine.listConvertion(ItemConfiguracaoDTO.class, lista, listRetorno);
return (Collection<ItemConfiguracaoDTO>) result;
}
public InformacaoItemConfiguracaoDTO listByInformacao(ItemConfiguracaoDTO itemConfiguracao) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sb = new StringBuilder();
sb.append("SELECT itemConfiguracao.idItemConfiguracao ");
sb.append("FROM ITEMCONFIGURACAO itemConfiguracao ");
sb.append("Where itemConfiguracao.iditemconfiguracao = ? ");
parametro.add(itemConfiguracao.getIdItemConfiguracao());
List lista = this.execSQL(sb.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("idItemConfiguracao");
List result = this.engine.listConvertion(InformacaoItemConfiguracaoDTO.class, lista, listRetorno);
return (InformacaoItemConfiguracaoDTO) result.get(0);
}
public Collection<ItemConfiguracaoDTO> listItemConfiguracaoFilho(ItemConfiguracaoDTO itemConfiguracao) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sb = new StringBuilder();
sb.append("SELECT idItemConfiguracao, idTipoItemConfiguracao ");
sb.append("FROM " + getTableName() + " itemConfiguracao ");
sb.append("Where iditemconfiguracaopai = ? ");
parametro.add(itemConfiguracao.getIdItemConfiguracao());
List lista = this.execSQL(sb.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("idItemConfiguracao");
listRetorno.add("idTipoItemConfiguracao");
List result = this.engine.listConvertion(ItemConfiguracaoDTO.class, lista, listRetorno);
if (result != null) {
return (Collection<ItemConfiguracaoDTO>) result;
} else {
return null;
}
}
public ItemConfiguracaoDTO listIdUsuario(String obj) throws PersistenceException {
List parametro = new ArrayList();
List fields = new ArrayList();
List list = new ArrayList();
String sql = "select idusuario from Usuario where Login = ? ";
parametro.add(obj);
list = this.execSQL(sql, parametro.toArray());
if (list.isEmpty()) {
return null;
} else {
return (ItemConfiguracaoDTO) this.listConvertion(getBean(), list, fields).get(0);
}
}
/**
* Busca os itens de configuracao relacionados ao grupo passado como parametro.
*
* @param grupoICDto
* GrupoItemConfiguracaoDTO
* @return Lista de itens relacionados aos grupos passados.
* @throws Exception
* Excecao generica.
*/
public Collection<ItemConfiguracaoDTO> listByGrupo(GrupoItemConfiguracaoDTO grupoICDto, String criticidade, String status) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sqlItemConfiguracao = new StringBuilder();
sqlItemConfiguracao.append("SELECT itemConfiguracao.identificacao, itemConfiguracao.idItemConfiguracao, itemConfiguracao.status, tipoitemconfiguracao.imagem, itemConfiguracao.nome ");
sqlItemConfiguracao.append("FROM ITEMCONFIGURACAO itemConfiguracao left join tipoitemconfiguracao on itemConfiguracao.idtipoitemconfiguracao = tipoitemconfiguracao.idtipoitemconfiguracao ");
sqlItemConfiguracao.append("INNER JOIN GRUPOITEMCONFIGURACAO grupoItemConfiguracao ");
sqlItemConfiguracao.append("ON grupoItemConfiguracao.IDGRUPOITEMCONFIGURACAO = itemConfiguracao.IDGRUPOITEMCONFIGURACAO ");
sqlItemConfiguracao.append("WHERE itemConfiguracao.IDITEMCONFIGURACAOPAI IS NULL AND itemConfiguracao.DATAFIM IS NULL ");
if (grupoICDto.getIdGrupoItemConfiguracao() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.idGrupoItemConfiguracao = ? ");
parametro.add(grupoICDto.getIdGrupoItemConfiguracao());
}
if(!criticidade.equals("") ){
sqlItemConfiguracao.append("AND itemConfiguracao.criticidade = ? ");
parametro.add(criticidade);
}
if(!status.equals("")){
sqlItemConfiguracao.append("AND itemConfiguracao.status = ? ");
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("POSTGRES")){
parametro.add(new Integer(status));
}else{
parametro.add(status);
}
}
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("SQLSERVER")){
sqlItemConfiguracao.append("ORDER BY LEN(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}else{
sqlItemConfiguracao.append("ORDER BY length(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}
List lista = this.execSQL(sqlItemConfiguracao.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("identificacao");
listRetorno.add("idItemConfiguracao");
listRetorno.add("status");
listRetorno.add("imagem");
listRetorno.add("nome");
Collection<ItemConfiguracaoDTO> result = this.engine.listConvertion(getBean(), lista, listRetorno);
return result;
}
public Collection<ItemConfiguracaoDTO> listAtivos() throws PersistenceException {
String sql = "SELECT itemConfiguracao.identificacao, itemConfiguracao.idItemConfiguracao, itemConfiguracao.status, tipoitemconfiguracao.imagem, itemConfiguracao.dtultimacaptura, "
+ "itemConfiguracao.nome FROM ITEMCONFIGURACAO itemConfiguracao "
+ " left join tipoitemconfiguracao on itemConfiguracao.idtipoitemconfiguracao = tipoitemconfiguracao.idtipoitemconfiguracao "
+ " WHERE itemConfiguracao.IDITEMCONFIGURACAOPAI IS NULL " + " AND itemConfiguracao.DATAFIM IS NULL ";
if (CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("SQLSERVER")) {
sql += " ORDER BY len(itemConfiguracao.identificacao), itemConfiguracao.identificacao";
} else {
sql += " ORDER BY length(itemConfiguracao.identificacao), itemConfiguracao.identificacao";
}
List lista = this.execSQL(sql, null);
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("identificacao");
listRetorno.add("idItemConfiguracao");
listRetorno.add("status");
listRetorno.add("imagem");
listRetorno.add("dtUltimaCaptura");
listRetorno.add("nome");
Collection<ItemConfiguracaoDTO> result = this.engine.listConvertion(getBean(), lista, listRetorno);
return result;
}
/**
* Busca os itens de configuracao relacionados ao grupo passado como parametro.
*
* @param grupoICDto
* GrupoItemConfiguracaoDTO
* @return Lista de itens relacionados aos grupos passados.
* @throws Exception
* Excecao generica.
*/
public Collection<ItemConfiguracaoDTO> listByGrupo(GrupoItemConfiguracaoDTO grupoICDto, ItemConfiguracaoDTO itemConfiguracaoDTO) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sqlItemConfiguracao = new StringBuilder();
sqlItemConfiguracao.append("SELECT itemConfiguracao.identificacao, itemConfiguracao.idItemConfiguracao, itemConfiguracao.status, tipoitemconfiguracao.imagem, itemconfiguracao.nome ");
sqlItemConfiguracao.append("FROM ITEMCONFIGURACAO itemConfiguracao left join tipoitemconfiguracao on itemConfiguracao.idtipoitemconfiguracao = tipoitemconfiguracao.idtipoitemconfiguracao ");
sqlItemConfiguracao.append("INNER JOIN GRUPOITEMCONFIGURACAO grupoItemConfiguracao ");
sqlItemConfiguracao.append("ON grupoItemConfiguracao.IDGRUPOITEMCONFIGURACAO = itemConfiguracao.IDGRUPOITEMCONFIGURACAO ");
sqlItemConfiguracao.append("WHERE itemConfiguracao.IDITEMCONFIGURACAOPAI IS NULL AND itemConfiguracao.DATAFIM IS NULL ");
if (grupoICDto.getIdGrupoItemConfiguracao() != null) {
sqlItemConfiguracao.append("AND itemConfiguracao.idGrupoItemConfiguracao = ? ");
parametro.add(grupoICDto.getIdGrupoItemConfiguracao());
}
if(itemConfiguracaoDTO.getCriticidade() != null ){
sqlItemConfiguracao.append("AND itemConfiguracao.criticidade = ? ");
parametro.add(itemConfiguracaoDTO.getCriticidade());
}
if(itemConfiguracaoDTO.getStatus() != null ){
sqlItemConfiguracao.append("AND itemConfiguracao.status = ? ");
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("POSTGRES")){
parametro.add(new Integer(itemConfiguracaoDTO.getStatus()));
}else{
parametro.add(itemConfiguracaoDTO.getStatus());
}
}
if(itemConfiguracaoDTO.getIdentificacao() != null ) {
sqlItemConfiguracao.append("AND itemConfiguracao.identificacao like '%"+itemConfiguracaoDTO.getIdentificacao()+"%' ");
}
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("SQLSERVER")){
sqlItemConfiguracao.append("ORDER BY LEN(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}else{
sqlItemConfiguracao.append("ORDER BY length(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}
List lista = this.execSQL(sqlItemConfiguracao.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("identificacao");
listRetorno.add("idItemConfiguracao");
listRetorno.add("status");
listRetorno.add("imagem");
listRetorno.add("nome");
Collection<ItemConfiguracaoDTO> result = this.engine.listConvertion(getBean(), lista, listRetorno);
return result;
}
/**
* Busca a lista de itens que nao estao relacionados aos grupos.
*
* @return lista de ItemConfiguracaoDTO.
* @throws Exception
* Excecao generica.
*/
public Collection<ItemConfiguracaoDTO> listItensSemGrupo(String criticidade, String status) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sqlItemConfiguracao = new StringBuilder();
sqlItemConfiguracao.append("SELECT itemConfiguracao.identificacao, itemConfiguracao.idItemConfiguracao, itemConfiguracao.status, tipoitemconfiguracao.imagem, itemConfiguracao.nome ");
sqlItemConfiguracao.append("FROM ITEMCONFIGURACAO itemConfiguracao left join tipoitemconfiguracao on itemConfiguracao.idtipoitemconfiguracao = tipoitemconfiguracao.idtipoitemconfiguracao ");
sqlItemConfiguracao.append("WHERE itemConfiguracao.IDITEMCONFIGURACAOPAI IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracao.DATAFIM IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracao.idgrupoitemconfiguracao IS NULL ");
if(!criticidade.equals("") ){
sqlItemConfiguracao.append("AND itemConfiguracao.criticidade = ? ");
parametro.add(criticidade);
}
if(!status.equals("")){
sqlItemConfiguracao.append("AND itemConfiguracao.status = ? ");
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("POSTGRES")){
parametro.add(new Integer(status));
}else{
parametro.add(status);
}
}
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("SQLSERVER")){
sqlItemConfiguracao.append("ORDER BY LEN(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}else{
sqlItemConfiguracao.append("ORDER BY length(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}
List lista = this.execSQL(sqlItemConfiguracao.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("identificacao");
listRetorno.add("idItemConfiguracao");
listRetorno.add("status");
listRetorno.add("imagem");
listRetorno.add("nome");
Collection<ItemConfiguracaoDTO> result = this.engine.listConvertion(getBean(), lista, listRetorno);
return result;
}
/**
* Busca a lista de itens que nao estao relacionados aos grupos.
*
* @return lista de ItemConfiguracaoDTO.
* @throws Exception
* Excecao generica.
*/
public Collection<ItemConfiguracaoDTO> listItensSemGrupo(String criticidade, String status, String sistemaOperacional, String grupoTrabalho, String tipoMembroDominio, String usuario,
String processador, List softwares) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sqlItemConfiguracao = new StringBuilder();
sqlItemConfiguracao.append("SELECT itemConfiguracao.identificacao, itemConfiguracao.idItemConfiguracao, itemConfiguracao.status, tipoitemconfiguracao.imagem, itemconfiguracao.nome ");
sqlItemConfiguracao.append("FROM ITEMCONFIGURACAO itemConfiguracao left join tipoitemconfiguracao on itemConfiguracao.idtipoitemconfiguracao = tipoitemconfiguracao.idtipoitemconfiguracao ");
sqlItemConfiguracao.append("WHERE itemConfiguracao.IDITEMCONFIGURACAOPAI IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracao.DATAFIM IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracao.idgrupoitemconfiguracao IS NULL ");
if(criticidade != null && !criticidade.equals("") && !criticidade.equals("0")){
sqlItemConfiguracao.append("AND itemConfiguracao.criticidade = ? ");
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("POSTGRES")){
parametro.add(new Integer(criticidade));
}else{
parametro.add(criticidade);
}
}
if(status != null && !status.equals("") && !status.equals("0")){
sqlItemConfiguracao.append("AND itemConfiguracao.status = ? ");
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("POSTGRES")){
parametro.add(new Integer(status));
}else{
parametro.add(status);
}
}
if(sistemaOperacional != null && !sistemaOperacional.equals("")){
String itemStr = sistemaOperacional.replaceAll("'", "");
sqlItemConfiguracao.append(" AND itemConfiguracao.iditemconfiguracao IN ");
sqlItemConfiguracao.append("(");
sqlItemConfiguracao.append("SELECT itemConfiguracaoAux.IDITEMCONFIGURACAOPAI FROM ITEMCONFIGURACAO itemConfiguracaoAux ");
sqlItemConfiguracao.append("WHERE itemConfiguracaoAux.DATAFIM IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracaoAux.iditemconfiguracao IN ");
sqlItemConfiguracao
.append("(SELECT iditemconfiguracao FROM valor INNER JOIN caracteristica ON valor.idcaracteristica = caracteristica.idcaracteristica where datafim is null AND tagcaracteristica = 'OSNAME' AND valorstr like '"
+ itemStr + "%') ");
sqlItemConfiguracao.append(") ");
}
if(grupoTrabalho != null && !grupoTrabalho.equals("")){
String itemStr = grupoTrabalho.replaceAll("'", "");
sqlItemConfiguracao.append(" AND itemConfiguracao.iditemconfiguracao IN ");
sqlItemConfiguracao.append("(");
sqlItemConfiguracao.append("SELECT itemConfiguracaoAux.IDITEMCONFIGURACAOPAI FROM ITEMCONFIGURACAO itemConfiguracaoAux ");
sqlItemConfiguracao.append("WHERE itemConfiguracaoAux.DATAFIM IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracaoAux.iditemconfiguracao IN ");
sqlItemConfiguracao
.append("(SELECT iditemconfiguracao FROM valor INNER JOIN caracteristica ON valor.idcaracteristica = caracteristica.idcaracteristica where datafim is null AND tagcaracteristica = 'WORKGROUP' AND valorstr like '"
+ itemStr + "%') ");
sqlItemConfiguracao.append(") ");
}
if(tipoMembroDominio != null && !tipoMembroDominio.equals("")){
String itemStr = tipoMembroDominio.replaceAll("'", "");
sqlItemConfiguracao.append(" AND itemConfiguracao.iditemconfiguracao IN ");
sqlItemConfiguracao.append("(");
sqlItemConfiguracao.append("SELECT itemConfiguracaoAux.IDITEMCONFIGURACAOPAI FROM ITEMCONFIGURACAO itemConfiguracaoAux ");
sqlItemConfiguracao.append("WHERE itemConfiguracaoAux.DATAFIM IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracaoAux.iditemconfiguracao IN ");
sqlItemConfiguracao
.append("(SELECT iditemconfiguracao FROM valor INNER JOIN caracteristica ON valor.idcaracteristica = caracteristica.idcaracteristica where datafim is null AND tagcaracteristica = 'DESCDOMAINROLE' AND valorstr like '"
+ itemStr + "%') ");
sqlItemConfiguracao.append(") ");
}
if(usuario != null && !usuario.equals("")){
String itemStr = usuario.replaceAll("'", "");
sqlItemConfiguracao.append(" AND itemConfiguracao.iditemconfiguracao IN ");
sqlItemConfiguracao.append("(");
sqlItemConfiguracao.append("SELECT itemConfiguracaoAux.IDITEMCONFIGURACAOPAI FROM ITEMCONFIGURACAO itemConfiguracaoAux ");
sqlItemConfiguracao.append("WHERE itemConfiguracaoAux.DATAFIM IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracaoAux.iditemconfiguracao IN ");
sqlItemConfiguracao
.append("(SELECT iditemconfiguracao FROM valor INNER JOIN caracteristica ON valor.idcaracteristica = caracteristica.idcaracteristica where datafim is null AND tagcaracteristica = 'USERID' AND valorstr like '%"
+ itemStr.trim() + "%') ");
sqlItemConfiguracao.append(") ");
}
if(processador != null && !processador.equals("")){
String itemStr = processador.replaceAll("'", "");
itemStr = processador.replaceAll("\"", "");
sqlItemConfiguracao.append(" AND itemConfiguracao.iditemconfiguracao IN ");
sqlItemConfiguracao.append("(");
sqlItemConfiguracao.append("SELECT itemConfiguracaoAux.IDITEMCONFIGURACAOPAI FROM ITEMCONFIGURACAO itemConfiguracaoAux ");
sqlItemConfiguracao.append("WHERE itemConfiguracaoAux.DATAFIM IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracaoAux.iditemconfiguracao IN ");
sqlItemConfiguracao
.append("(SELECT iditemconfiguracao FROM valor INNER JOIN caracteristica ON valor.idcaracteristica = caracteristica.idcaracteristica where datafim is null AND tagcaracteristica = 'PROCESSORT' AND valorstr like '%"
+ itemStr.trim() + "%') ");
sqlItemConfiguracao.append(") ");
}
if (softwares != null && softwares.size() > 0){
String uppFieldFunction = AdaptacaoBD.getUpperFunction("valorstr");
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("SQLSERVER")){
uppFieldFunction = uppFieldFunction.toUpperCase();
}
for (Iterator it = softwares.iterator(); it.hasNext();){
String soft = (String)it.next();
if (soft != null && !soft.trim().equalsIgnoreCase("")){
String itemStr = soft.replaceAll("'", "");
sqlItemConfiguracao.append(" AND itemConfiguracao.iditemconfiguracao IN ");
sqlItemConfiguracao.append("(");
sqlItemConfiguracao.append("SELECT itemConfiguracaoAux.IDITEMCONFIGURACAOPAI FROM ITEMCONFIGURACAO itemConfiguracaoAux ");
sqlItemConfiguracao.append("WHERE itemConfiguracaoAux.DATAFIM IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracaoAux.iditemconfiguracao IN ");
sqlItemConfiguracao
.append("(SELECT iditemconfiguracao FROM valor INNER JOIN caracteristica ON valor.idcaracteristica = caracteristica.idcaracteristica where datafim is null AND tagcaracteristica = 'PUBLISHER' AND "
+ uppFieldFunction + " like '%" + itemStr.trim().toUpperCase() + "%') ");
sqlItemConfiguracao.append(") ");
}
}
}
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("SQLSERVER")){
sqlItemConfiguracao.append(" ORDER BY LEN(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}else{
sqlItemConfiguracao.append(" ORDER BY length(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}
List lista = this.execSQL(sqlItemConfiguracao.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("identificacao");
listRetorno.add("idItemConfiguracao");
listRetorno.add("status");
listRetorno.add("imagem");
listRetorno.add("nome");
Collection<ItemConfiguracaoDTO> result = this.engine.listConvertion(getBean(), lista, listRetorno);
return result;
}
/**
* Busca a lista de itens que nao estao relacionados aos grupos.
*
* @return lista de ItemConfiguracaoDTO.
* @throws Exception
* Excecao generica.
*/
public Collection<ItemConfiguracaoDTO> listItensSemGrupo(ItemConfiguracaoDTO itemConfiguracaoDTO) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sqlItemConfiguracao = new StringBuilder();
sqlItemConfiguracao.append("SELECT itemConfiguracao.identificacao, itemConfiguracao.idItemConfiguracao, itemConfiguracao.status, tipoitemconfiguracao.imagem, itemconfiguracao.nome ");
sqlItemConfiguracao.append("FROM ITEMCONFIGURACAO itemConfiguracao left join tipoitemconfiguracao on itemConfiguracao.idtipoitemconfiguracao = tipoitemconfiguracao.idtipoitemconfiguracao ");
sqlItemConfiguracao.append("WHERE itemConfiguracao.IDITEMCONFIGURACAOPAI IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracao.DATAFIM IS NULL ");
sqlItemConfiguracao.append("AND itemConfiguracao.idgrupoitemconfiguracao IS NULL ");
if(itemConfiguracaoDTO.getCriticidade() != null ){
sqlItemConfiguracao.append("AND itemConfiguracao.criticidade = ? ");
parametro.add(itemConfiguracaoDTO.getCriticidade());
}
if(itemConfiguracaoDTO.getStatus() != null ){
sqlItemConfiguracao.append("AND itemConfiguracao.status = ? ");
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("POSTGRES")){
parametro.add(new Integer(itemConfiguracaoDTO.getStatus()));
}else{
parametro.add(itemConfiguracaoDTO.getStatus());
}
}
if(itemConfiguracaoDTO.getIdentificacao() != null ){
sqlItemConfiguracao.append("AND itemConfiguracao.identificacao like '%"+itemConfiguracaoDTO.getIdentificacao()+"%' ");
}
if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase("SQLSERVER")){
sqlItemConfiguracao.append("ORDER BY LEN(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}else{
sqlItemConfiguracao.append("ORDER BY length(itemConfiguracao.identificacao), itemConfiguracao.identificacao");
}
List lista = this.execSQL(sqlItemConfiguracao.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("identificacao");
listRetorno.add("idItemConfiguracao");
listRetorno.add("status");
listRetorno.add("imagem");
listRetorno.add("nome");
Collection<ItemConfiguracaoDTO> result = this.engine.listConvertion(getBean(), lista, listRetorno);
return result;
}
public void atualizaGrupo(ItemConfiguracaoDTO itemConfiguracaoDTO) throws PersistenceException {
List parametros = new ArrayList();
StringBuilder sqlItemConfiguracao = new StringBuilder();
if (itemConfiguracaoDTO != null) {
if (itemConfiguracaoDTO.getIdGrupoItemConfiguracao() != null && itemConfiguracaoDTO.getIdGrupoItemConfiguracao() > 0) {
parametros.add(itemConfiguracaoDTO.getIdGrupoItemConfiguracao());
} else {
parametros.add(null);
}
if (itemConfiguracaoDTO.getIdItemConfiguracao() != null && itemConfiguracaoDTO.getIdItemConfiguracao() > 0) {
parametros.add(itemConfiguracaoDTO.getIdItemConfiguracao());
} else {
parametros.add(null);
}
} else {
parametros.add(null);
parametros.add(null);
}
sqlItemConfiguracao.append("UPDATE " + getTableName() + " SET idGrupoItemConfiguracao = ? WHERE idItemConfiguracao = ?");
execUpdate(sqlItemConfiguracao.toString(), parametros.toArray());
}
/**
* M�todo que lista os Itens de configura��o associado com o evento passado como par�metro
*
* @param idEvento
* @return Collection<ItemConfiguracaoDTO> relacionados ao evento
* @throws Exception
*/
public Collection<ItemConfiguracaoDTO> listByEvento(Integer idEvento) throws PersistenceException {
String sql = "SELECT ic.iditemconfiguracao, ic.identificacao, ic.nome FROM " + getTableName()
+ " AS ic INNER JOIN eventoitemconfiguracao AS eic ON eic.iditemconfiguracao = ic.iditemconfiguracao WHERE eic.idevento = ?";
List<?> dados = this.execSQL(sql, new Object[] { idEvento });
List<String> fields = new ArrayList<String>();
fields.add("idItemConfiguracao");
fields.add("identificacao");
fields.add("nome");
return this.listConvertion(getBean(), dados, fields);
}
/**
* Verifica se existe midia vinculada. Se existir retorna 'true', senao retorna 'false';
*
* @param itemConfiguracao
* @return exists
* @throws Exception
*/
public boolean verificaMidiaSoftware(Integer idMidiaSoftware) throws PersistenceException {
boolean exists;
List parametro = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select idItemConfiguracao from " + getTableName() + " where idMidiaSoftware = ? and datafim is null ");
parametro.add(idMidiaSoftware);
list = this.execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
exists = true;
} else {
exists = false;
}
return exists;
}
/**
* Verifica quantidade de midias. Retorna quantidade
*
* @param idMidiaSoftware
* @return exists
* @throws Exception
*/
public Integer quantidadeMidiaSoftware(ItemConfiguracaoDTO itemDTO) throws PersistenceException {
boolean exists;
List parametro = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select *from " + getTableName() + " itemConfiguracao inner join midiasoftware midiaSoftware "
+ " on midiaSoftware.idMidiaSoftware = itemConfiguracao.idMidiaSoftware where midiaSoftware.idMidiaSoftware = ? and midiaSoftware.datafim is null ");
parametro.add(itemDTO.getIdMidiaSoftware());
if(itemDTO.getIdItemConfiguracao()!=null) {
sql.append(" and itemconfiguracao.iditemconfiguracao not in (select idItemConfiguracao from " + getTableName() + " where idItemConfiguracao = ?) ");
parametro.add(itemDTO.getIdItemConfiguracao());
}
list = this.execSQL(sql.toString(), parametro.toArray());
return list.size();
}
/**
* Verifica se existe outro item igual criado. Se existir retorna 'true', senao retorna 'false';
*
* @param itemConfiguracao
* @return estaCadastrado
* @throws Exception
*/
public boolean VerificaSeCadastrado(ItemConfiguracaoDTO itemDTO) throws PersistenceException {
boolean estaCadastrado;
List parametro = new ArrayList();
List list = new ArrayList();
List fields = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select idItemConfiguracao from " + getTableName() + " where ( LOWER(identificacao) = LOWER(?) ");
parametro.add(itemDTO.getIdentificacao());
sql.append("or LOWER(nome) = LOWER(?) ) ");
parametro.add(itemDTO.getNome());
sql.append("and datafim is null ");
sql.append("and iditemconfiguracaopai is null ");
if(itemDTO.getIdItemConfiguracao() != null){
sql.append("and idItemConfiguracao <> ? ");
parametro.add(itemDTO.getIdItemConfiguracao());
}
list = this.execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
estaCadastrado = true;
} else {
estaCadastrado = false;
}
return estaCadastrado;
}
/**
* Verifica duplicidade de um item de configura��o com o mesmo nome e se o item retornado na lista n�o � o pr�prio item que est� sendo consultado para permitir altera��o. Caso exista retorna TRUE.
* Caso n�o exista retorna FALSE;
*
* @author cleziomar.egidio 25/11/2014
*/
public boolean validaDuplicidadeItemConfiguracao(ItemConfiguracaoDTO bean) throws PersistenceException {
List condicao = new ArrayList();
List result = null;
if(bean != null){
condicao.add(new Condition("identificacao", "=", bean.getIdentificacao()));
}
if (bean != null && bean.getIdItemConfiguracaoPai() != null) {
condicao.add(new Condition("idItemConfiguracaoPai", "=", bean.getIdItemConfiguracaoPai()));
result = (List) super.findByCondition(condicao, null);
} else {
if(bean != null){
condicao.add(new Condition("idItemConfiguracao", "=", bean.getIdItemConfiguracao()));
}
condicao.add(new Condition("idItemConfiguracaoPai", "=", "is null"));
result = (List) super.findByCondition(condicao, null);
}
if (result != null && result.size() > 0) {
if (result.size() == 1) {
try{
ItemConfiguracaoDTO itemCorrente = (ItemConfiguracaoDTO) result.get(0);
if (itemCorrente.getIdItemConfiguracao().intValue() == bean.getIdItemConfiguracao().intValue()) {
return false;
} else
return true;
} catch (Exception e) {
e.printStackTrace();
return true;
}
} else
return true;
}
return false;
}
// bruno.aquino
public Collection listItemConfiguracaoPorSolicitacaoServicoEmAndamento(int idSolicitante, String situacao, String idservico) throws PersistenceException {
List fields = new ArrayList();
String sql = null;
List parametros = new ArrayList();
List resultado;
if(idservico.equalsIgnoreCase("")){
sql = "select idSolicitacaoServico,DescricaoSemFormatacao,idItemConfiguracao from solicitacaoservico where iditemconfiguracao is not null and situacao = ? and idsolicitante = ?";
parametros.add(situacao);
parametros.add(idSolicitante);
}else{
sql = "select idSolicitacaoServico,DescricaoSemFormatacao,idItemConfiguracao from solicitacaoservico where iditemconfiguracao is not null and situacao = ? and idsolicitante = ? and idsolicitacaoservico = ?";
parametros.add(situacao);
parametros.add(idSolicitante);
parametros.add(idservico);
}
resultado = this.execSQL(sql, parametros.toArray());
fields.add("idSolicitacaoServico");
fields.add("DescricaoSemFormatacao");
fields.add("idItemConfiguracao");
return (Collection<SolicitacaoServicoDTO>) listConvertion(SolicitacaoServicoDTO.class, resultado, fields);
}
public Collection<ItemConfiguracaoDTO> listItemConfiguracaoByIdMudanca(Integer idMudanca) throws PersistenceException {
String sql = "SELECT ic.identificacao, ic.familia, ic.classe, ic.localidade FROM " + getTableName()
+ " AS ic INNER JOIN requisicaomudancaitemconfiguracao AS eic ON eic.iditemconfiguracao = ic.iditemconfiguracao "
+ "INNER JOIN requisicaomudanca AS rq ON rq.idrequisicaomudanca = eic.idrequisicaomudanca WHERE rq.idrequisicaomudanca = ?";
List<?> dados = this.execSQL(sql, new Object[] { idMudanca });
List<String> fields = new ArrayList<String>();
fields.add("identificacao");
fields.add("familia");
fields.add("classe");
fields.add("localidade");
return this.listConvertion(getBean(), dados, fields);
}
public Collection<ItemConfiguracaoDTO> listItemConfiguracaoByIdProblema(Integer problema) throws PersistenceException {
String sql = "SELECT ic.identificacao, ic.familia, ic.classe, ic.localidade FROM " + getTableName()
+ " AS ic INNER JOIN problemaitemconfiguracao AS eic ON eic.iditemconfiguracao = ic.iditemconfiguracao "
+ "INNER JOIN problema AS rq ON rq.idproblema = eic.idproblema WHERE rq.idproblema = ?";
List<?> dados = this.execSQL(sql, new Object[] { problema });
List<String> fields = new ArrayList<String>();
fields.add("identificacao");
fields.add("familia");
fields.add("classe");
fields.add("localidade");
return this.listConvertion(getBean(), dados, fields);
}
public Collection<ItemConfiguracaoDTO> listItemConfiguracaoByIdIncidente(Integer idIncidente) throws PersistenceException {
String sql = "SELECT ic.identificacao, ic.familia, ic.classe, ic.localidade FROM " + getTableName()
+ " AS ic INNER JOIN itemcfgsolicitacaoserv AS eic ON eic.iditemconfiguracao = ic.iditemconfiguracao "
+ "INNER JOIN solicitacaoServico AS rq ON rq.idsolicitacaoservico = eic.idsolicitacaoservico WHERE rq.idsolicitacaoservico = ?";
List<?> dados = this.execSQL(sql, new Object[] { idIncidente });
List<String> fields = new ArrayList<String>();
fields.add("identificacao");
fields.add("familia");
fields.add("classe");
fields.add("localidade");
return this.listConvertion(getBean(), dados, fields);
}
public Collection<ItemConfiguracaoDTO> quantidadeItemConfiguracaoPorBaseConhecimento(ItemConfiguracaoDTO itemConfiguracao) throws PersistenceException {
StringBuilder sql = new StringBuilder();
List parametro = new ArrayList();
List listRetorno = new ArrayList();
sql.append("select idbaseconhecimento,count(idbaseconhecimento) from ITEMCONFIGURACAO where idbaseconhecimento = ? group by idbaseconhecimento");
parametro.add(itemConfiguracao.getIdBaseConhecimento());
listRetorno.add("idBaseConhecimento");
listRetorno.add("quantidade");
List list = execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
Collection<ItemConfiguracaoDTO> listaQuantidadeItemConfiguracaoPorBaseConhecimento = this.listConvertion(ItemConfiguracaoDTO.class, list, listRetorno);
return listaQuantidadeItemConfiguracaoPorBaseConhecimento;
}
return null;
}
public Collection<ItemConfiguracaoDTO> listaItemConfiguracaoPorBaseConhecimento(ItemConfiguracaoDTO itemConfiguracao) throws PersistenceException {
StringBuilder sql = new StringBuilder();
List parametro = new ArrayList();
List listRetorno = new ArrayList();
sql.append("SELECT ic.identificacao, ic.datainicio, ic.versao, ic.familia, ic.dataexpiracao ");
sql.append("FROM ITEMCONFIGURACAO ic where ic.idbaseconhecimento = ?");
parametro.add(itemConfiguracao.getIdBaseConhecimento());
listRetorno.add("identificacao");
listRetorno.add("dataInicio");
listRetorno.add("versao");
listRetorno.add("familia");
listRetorno.add("dataExpiracao");
List list = execSQL(sql.toString(), parametro.toArray());
if (list != null && !list.isEmpty()) {
Collection<ItemConfiguracaoDTO> listaItemConfiguracaoPorBaseConhecimento = this.listConvertion(ItemConfiguracaoDTO.class, list, listRetorno);
return listaItemConfiguracaoPorBaseConhecimento;
}
return null;
}
/**
* Retorna Itens de Configura��o associadas a Base de Conhecimento.
*
* @param baseConhecimentoDto
* @return List<ItemConfiguracaoDTO>
* @throws Exception
* @author Vadoilo Damasceno
*/
public List<ItemConfiguracaoDTO> findByConhecimento(BaseConhecimentoDTO baseConhecimentoDto) throws PersistenceException {
List parametro = new ArrayList();
List listRetorno = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select itemconfiguracao.idItemConfiguracao, itemconfiguracao.identificacao from itemconfiguracao ");
sql.append("inner join conhecimentoic on itemconfiguracao.iditemconfiguracao = conhecimentoic.iditemconfiguracao ");
sql.append("where conhecimentoic.idbaseconhecimento = ? ");
parametro.add(baseConhecimentoDto.getIdBaseConhecimento());
list = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idItemConfiguracao");
listRetorno.add("identificacao");
if (list != null && !list.isEmpty()) {
return (List<ItemConfiguracaoDTO>) this.listConvertion(getBean(), list, listRetorno);
} else {
return null;
}
}
/**
* Retorna os itens de configura��o que possuem o pacote office
*
* @throws Exception
*/
public List<ItemConfiguracaoDTO> listaItemConfiguracaoOfficePak(ItemConfiguracaoDTO itemConfiguracaoDTO) throws PersistenceException {
List parametro = new ArrayList();
List listRetorno = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select distinct itemconfiguracao.idItemConfiguracao, itemconfiguracao.idTipoItemConfiguracao, itemconfiguracao.identificacao, ");
sql.append("(select identificacao from itemconfiguracao itemconfiguracaopai where itemconfiguracaopai.iditemconfiguracao = itemconfiguracao.iditemconfiguracaopai) identificacaoPai, ");
sql.append("(select dtultimacaptura from itemconfiguracao itemconfiguracaopai where itemconfiguracaopai.iditemconfiguracao = itemconfiguracao.iditemconfiguracaopai) dtultimacaptura ");
sql.append("from itemconfiguracao ");
sql.append("inner join valor valor on valor.iditemconfiguracao = itemconfiguracao.iditemconfiguracao ");
sql.append("inner join caracteristica caracteristica on caracteristica.idcaracteristica = valor.idcaracteristica ");
sql.append("where caracteristica.nomecaracteristica = 'OFFICEKEY' ");
if(itemConfiguracaoDTO.getMidiaSoftwareChaves() != null) {
if(itemConfiguracaoDTO.getContem() != null && itemConfiguracaoDTO.getContem().equals("S"))
sql.append("and valor.valorstr in( ");
else
sql.append("and valor.valorstr not in( ");
boolean flag = false;
for (MidiaSoftwareChaveDTO object : itemConfiguracaoDTO.getMidiaSoftwareChaves()) {
if(!flag) {
sql.append(" '" + object.getChave() + "' ");
flag = true;
} else {
sql.append(" , '" + object.getChave() + "' ");
}
}
sql.append(")");
}
list = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idItemConfiguracao");
listRetorno.add("idTipoItemConfiguracao");
listRetorno.add("identificacao");
listRetorno.add("identificacaoPai");
listRetorno.add("dtUltimaCaptura");
if (list != null && !list.isEmpty()) {
return (List<ItemConfiguracaoDTO>) this.listConvertion(getBean(), list, listRetorno);
} else {
return null;
}
}
/**
* Retorna os itens de configura��o que possuem o pacote office
*
* @throws Exception
*/
public List<ItemConfiguracaoDTO> listaItemConfiguracaoOfficePak(ItemConfiguracaoDTO itemConfiguracaoDTO, String chave) throws PersistenceException {
List parametro = new ArrayList();
List listRetorno = new ArrayList();
List list = new ArrayList();
StringBuilder sql = new StringBuilder();
sql.append("select distinct itemconfiguracao.idItemConfiguracao, itemconfiguracao.idTipoItemConfiguracao, itemconfiguracao.identificacao, ");
sql.append("(select identificacao from itemconfiguracao itemconfiguracaopai where itemconfiguracaopai.iditemconfiguracao = itemconfiguracao.iditemconfiguracaopai) identificacaoPai, ");
sql.append("(select dtultimacaptura from itemconfiguracao itemconfiguracaopai where itemconfiguracaopai.iditemconfiguracao = itemconfiguracao.iditemconfiguracaopai) dtultimacaptura ");
sql.append("from itemconfiguracao ");
sql.append("inner join valor valor on valor.iditemconfiguracao = itemconfiguracao.iditemconfiguracao ");
sql.append("inner join caracteristica caracteristica on caracteristica.idcaracteristica = valor.idcaracteristica ");
sql.append("where caracteristica.nomecaracteristica = 'OFFICEKEY' ");
sql.append("and valor.valorstr = '" + chave + "'");
list = this.execSQL(sql.toString(), parametro.toArray());
listRetorno.add("idItemConfiguracao");
listRetorno.add("idTipoItemConfiguracao");
listRetorno.add("identificacao");
listRetorno.add("identificacaoPai");
listRetorno.add("dtUltimaCaptura");
if (list != null && !list.isEmpty()) {
return (List<ItemConfiguracaoDTO>) this.listConvertion(getBean(), list, listRetorno);
} else {
return null;
}
}
public boolean atualizaIdGrupoPadrao(ItemConfiguracaoDTO ic, int id){
String sql = "update " + getTableName() + " set idGrupoItemConfiguracao = ? where idItemConfiguracao = ? ";
Object[] parametros = {id, ic.getIdItemConfiguracao()};
try {
this.execUpdate(sql, parametros);
return true;
} catch (PersistenceException e) {
return false;
}
}
public Collection<ItemConfiguracaoDTO> listItemConfiguracaoByIdLiberacao(Integer idLiberacao) throws PersistenceException {
String sql = "SELECT ic.identificacao, ic.familia, ic.classe, ic.localidade FROM " + getTableName()
+ " AS ic INNER JOIN requisicaoliberacaoitemconfiguracao AS eic ON eic.iditemconfiguracao = ic.iditemconfiguracao "
+ "INNER JOIN liberacao AS rq ON rq.idliberacao = eic.idrequisicaoliberacao WHERE rq.idliberacao = ?";
List<?> dados = this.execSQL(sql, new Object[] { idLiberacao });
List<String> fields = new ArrayList<String>();
fields.add("identificacao");
fields.add("familia");
fields.add("classe");
fields.add("localidade");
return this.listConvertion(getBean(), dados, fields);
}
public boolean atualizaStatus(Integer item, Integer status){
String sql = "update " + getTableName() + " set status = ? where idItemConfiguracao = ? ";
Object[] parametros = {status, item};
try {
this.execUpdate(sql, parametros);
return true;
} catch (PersistenceException e) {
return false;
}
}
/**
* Para finalizar O Item Configura��o � necess�rio adicionar Data Fim
*
* @param itemConfiguracaoDTO
* @author maycon.silva
*/
public void finalizarItemConfiguracao(ItemConfiguracaoDTO itemConfiguracaoDTO) {
try {
updateNotNull(itemConfiguracaoDTO);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public List<ItemConfiguracaoDTO> listItemConfiguracaoFinalizadosByIdItemconfiguracao(ItemConfiguracaoDTO itemConfiguracaoDto) throws PersistenceException {
List parametro = new ArrayList();
String sql = " select idItemConfiguracao ,identificacao ,familia ,classe ,idProprietario ,localidade ,status ,versao ,criticidade ,numeroSerie ,dataExpiracao ,idItemConfiguracaoPai ,idTipoItemConfiguracao ,idGrupoItemConfiguracao ,idProblema "
+ " ,idIncidente ,idMudanca ,dataInicio ,dataFim ,idMidiaSoftware ,impacto ,urgencia ,idbaseconhecimento ,dtultimacaptura ,idliberacao ,idcontrato ,idresponsavel , ativofixo from itemconfiguracao where iditemconfiguracaoPai = ? ";
if(itemConfiguracaoDto != null){
parametro.add(itemConfiguracaoDto.getIdItemConfiguracao());
}
if(itemConfiguracaoDto != null && itemConfiguracaoDto.getDataFim() != null){
sql += " and dataFim = ? ";
parametro.add(itemConfiguracaoDto.getDataFim());
}
if(itemConfiguracaoDto != null && itemConfiguracaoDto.getDatahoradesinstalacao() != null){
sql += " and datahoradesinstalacao = ? ";
parametro.add(itemConfiguracaoDto.getDatahoradesinstalacao());
}else{
return null;
}
List dados = execSQL(sql, parametro.toArray());
return (List<ItemConfiguracaoDTO>) listConvertion (getBean(), dados, this.getField()) ;
}
public ItemConfiguracaoDTO findByIdentificacaoItemConfiguracao(ItemConfiguracaoDTO itemConfiguracaoDTO) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sqlItemConfiguracao = new StringBuilder();
sqlItemConfiguracao.append("SELECT idItemConfiguracao, identificacao ");
sqlItemConfiguracao.append("FROM itemConfiguracao WHERE dataFim IS NULL ");
sqlItemConfiguracao.append("AND identificacao = ?");
parametro.add(itemConfiguracaoDTO.getIdentificacao());
List lista = this.execSQL(sqlItemConfiguracao.toString(), parametro.toArray());
List<String> listRetorno = new ArrayList<String>();
listRetorno.add("idItemConfiguracao");
listRetorno.add("identificacao");
if (lista != null && !lista.isEmpty()) {
return (ItemConfiguracaoDTO) this.engine.listConvertion(getBean(), lista, listRetorno).get(0);
} else {
return null;
}
}
public List getField() {
List listFields = new ArrayList<>();
listFields.add("idItemConfiguracao");
listFields.add("identificacao");
listFields.add("familia");
listFields.add("classe");
listFields.add("idProprietario");
listFields.add("localidade");
listFields.add("status");
listFields.add("versao");
listFields.add("criticidade");
listFields.add("numeroSerie");
listFields.add("dataExpiracao");
listFields.add("idItemConfiguracaoPai");
listFields.add("idTipoItemConfiguracao");
listFields.add("idGrupoItemConfiguracao");
listFields.add("idProblema");
listFields.add("idIncidente");
listFields.add("idMudanca");
listFields.add("dataInicio");
listFields.add("dataFim");
listFields.add("idMidiaSoftware");
listFields.add("impacto");
listFields.add("urgencia");
listFields.add("idbaseconhecimento");
listFields.add("dtultimacaptura");
listFields.add("idliberacao");
listFields.add("idcontrato");
listFields.add("idresponsavel");
listFields.add("ativofixo");
return listFields;
}
public Collection<ItemConfiguracaoDTO> listByIdGrupoAndTipoItemAndIdItemPaiAtivos(Integer idGrupo, Integer idTipo, Integer idPai) throws PersistenceException {
List parametro = new ArrayList();
StringBuilder sb = new StringBuilder();
sb.append("SELECT " + this.getNamesFieldsStr());
sb.append("FROM " + getTableName() + " ");
if (idGrupo == null){
sb.append("Where idgrupoitemconfiguracao is null ");
}else{
sb.append("Where idgrupoitemconfiguracao = ? ");
parametro.add(idGrupo);
}
sb.append(" and datafim is null ");
sb.append(" and and idtipoitemconfiguracao = ? ");
parametro.add(idTipo);
sb.append(" and and iditemconfiguracaopai = ? ");
parametro.add(idPai);
sb.append(" order by iditemconfiguracao ");
List lista = this.execSQL(sb.toString(), parametro.toArray());
List<String> listRetorno = this.getListNamesFieldClass();
List result = this.engine.listConvertion(ItemConfiguracaoDTO.class, lista, listRetorno);
if (result != null) {
return (Collection<ItemConfiguracaoDTO>) result;
} else {
return null;
}
}
public Collection<ItemConfiguracaoDTO> listByIdItemPaiAndTagTipoItemCfg(Integer idItemConfiguracaoPai, String tagTipoCfg) throws PersistenceException {
String sql = "SELECT " + this.getNamesFieldsStr() + " " + "FROM itemconfiguracao where iditemconfiguracaopai = ? AND idtipoitemconfiguracao IN "
+ "(SELECT idtipoitemconfiguracao FROM tipoitemconfiguracao where tagtipoitemconfiguracao = ?) " + "AND datafim IS NULL";
List<?> dados = this.execSQL(sql, new Object[] { idItemConfiguracaoPai, tagTipoCfg });
List<String> fields = this.getListNamesFieldClass();
return this.listConvertion(getBean(), dados, fields);
}
public ItemConfiguracaoDTO findByIdItemConfiguracaoWithIdentificacaoPai(Integer idItemConfiguracao) throws PersistenceException {
StringBuilder sql = new StringBuilder();
List parametros = new ArrayList();
List listRetorno = new ArrayList();
sql.append("SELECT ic.identificacao, icp.identificacao ");
sql.append("FROM itemconfiguracao ic ");
sql.append("JOIN itemconfiguracao icp ON icp.iditemconfiguracao = ic.iditemconfiguracaopai ");
sql.append("WHERE ic.iditemconfiguracao = ? ");
parametros.add(idItemConfiguracao);
List retorno = this.execSQL(sql.toString(), parametros.toArray());
listRetorno.add("identificacao");
listRetorno.add("identificacaoPai");
List result = this.engine.listConvertion(ItemConfiguracaoDTO.class, retorno, listRetorno);
if (result != null && !result.isEmpty())
return (ItemConfiguracaoDTO) result.get(0);
else
return null;
}
}