package br.com.centralit.citcorpore.metainfo.ajaxForms; import java.sql.Connection; import java.util.Collection; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citcorpore.metainfo.bean.DataBaseMetaDadosDTO; import br.com.centralit.citcorpore.metainfo.bean.ObjetoNegocioDTO; import br.com.centralit.citcorpore.metainfo.integracao.VisaoDao; import br.com.centralit.citcorpore.metainfo.negocio.CamposObjetoNegocioService; import br.com.centralit.citcorpore.metainfo.negocio.ObjetoNegocioService; import br.com.centralit.citcorpore.metainfo.util.DataBaseMetaDadosUtil; import br.com.centralit.citcorpore.negocio.DataBaseMetaDadosService; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.Enumerados; import br.com.centralit.citcorpore.util.ParametroUtil; import br.com.citframework.excecao.LogicException; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.SQLConfig; import br.com.citframework.util.UtilStrings; public class DataBaseMetaDados extends AjaxFormAction { private ObjetoNegocioService objetoNegocioService; private CamposObjetoNegocioService camposObjetoNegocioService; @Override public Class<DataBaseMetaDadosDTO> getBeanClass() { return DataBaseMetaDadosDTO.class; } @Override public void load(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { } public void carregaMetaDados(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { final DataBaseMetaDadosService data = (DataBaseMetaDadosService) ServiceLocator.getInstance().getService( DataBaseMetaDadosService.class, null); final DataBaseMetaDadosDTO dataBaseMetaDadosDTO = (DataBaseMetaDadosDTO) document.getBean(); final DataBaseMetaDadosUtil dataBaseMetaDadosUtil = new DataBaseMetaDadosUtil(); String carregados = dataBaseMetaDadosUtil.sincronizaObjNegDB(dataBaseMetaDadosDTO.getNomeTabela(), true); carregados = UtilStrings.nullToVazio(carregados).replaceAll(",", "<br>"); data.corrigeTabelaComplexidade(); data.corrigeTabelaSla(); data.corrigeTabelaFluxoServico(); carregados = "<b>Finalizado!</b> <br><b>Tabelas carregadas:</b> <br>" + carregados; document.getElementById("divRetorno").setInnerHTML(carregados); } public void carregaTodosMetaDados(final DocumentHTML document, final HttpServletRequest request, final HttpServletResponse response) throws Exception { final DataBaseMetaDadosService data = (DataBaseMetaDadosService) ServiceLocator.getInstance().getService( DataBaseMetaDadosService.class, null); final DataBaseMetaDadosUtil dataBaseMetaDadosUtil = new DataBaseMetaDadosUtil(); final VisaoDao visaoDao = new VisaoDao(); final Connection con = visaoDao.getTransactionControler().getConnection(); String DB_SCHEMA = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.DB_SCHEMA,""); if(CITCorporeUtil.SGBD_PRINCIPAL.equalsIgnoreCase(SQLConfig.SQLSERVER)) { DB_SCHEMA = null; } else if (DB_SCHEMA == null || DB_SCHEMA.trim().equalsIgnoreCase("")){ DB_SCHEMA = "citsmart"; } //Desabilitando as tabelas para garantir que as que n�o existam mais n�o fiquem ativas desabilitaTabelas(); final Collection colObsNegocio = dataBaseMetaDadosUtil.readTables(con, DB_SCHEMA, DB_SCHEMA, null, true); con.close(); String carregados = ""; for (final Iterator it = colObsNegocio.iterator(); it.hasNext();) { final ObjetoNegocioDTO objetoNegocioDTO = (ObjetoNegocioDTO) it.next(); System.out.println("-----: Objeto de Negocio: " + objetoNegocioDTO.getNomeTabelaDB()); carregados += objetoNegocioDTO.getNomeTabelaDB() + "<br>"; final Collection colObjs = getObjetoNegocioService().findByNomeTabelaDB(objetoNegocioDTO.getNomeTabelaDB()); if (colObjs == null || colObjs.size() == 0){ System.out.println("----------: Criando.... " + objetoNegocioDTO.getNomeTabelaDB()); getObjetoNegocioService().create(objetoNegocioDTO); }else{ final ObjetoNegocioDTO objetoNegocioAux = (ObjetoNegocioDTO) ((List) colObjs).get(0); objetoNegocioDTO.setIdObjetoNegocio(objetoNegocioAux.getIdObjetoNegocio()); System.out.println("----------: Atualizando.... " + objetoNegocioDTO.getNomeTabelaDB() + " Id Interno: " + objetoNegocioAux.getIdObjetoNegocio()); getObjetoNegocioService().update(objetoNegocioDTO); } } data.corrigeTabelaComplexidade(); data.corrigeTabelaSla(); data.corrigeTabelaFluxoServico(); carregados = "<b>Finalizado!</b> <br><b>Tabelas carregadas:</b> <br>" + carregados; document.getElementById("divRetorno").setInnerHTML(carregados); } private void desabilitaTabelas() throws LogicException, ServiceException, Exception{ final Collection<ObjetoNegocioDTO> listObjetoNegocio = getObjetoNegocioService().list(); for (final ObjetoNegocioDTO objetoNegocioDTO : listObjetoNegocio) { objetoNegocioDTO.setSituacao("I"); getObjetoNegocioService().updateDisable(objetoNegocioDTO); } } private ObjetoNegocioService getObjetoNegocioService() throws ServiceException, Exception{ if(objetoNegocioService == null){ return (ObjetoNegocioService) ServiceLocator.getInstance().getService(ObjetoNegocioService.class, null); } return objetoNegocioService; } private CamposObjetoNegocioService getCamposObjetoNegocioService() throws ServiceException, Exception { if(camposObjetoNegocioService == null){ return (CamposObjetoNegocioService) ServiceLocator.getInstance().getService( CamposObjetoNegocioService.class, null); } return camposObjetoNegocioService; } }