package br.com.centralit.citcorpore.ajaxForms;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citajax.html.HTMLElement;
import br.com.centralit.citcorpore.bean.InventarioDTO;
import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.NetMapDTO;
import br.com.centralit.citcorpore.comm.server.NetDiscover;
import br.com.centralit.citcorpore.comm.server.Servidor;
import br.com.centralit.citcorpore.negocio.ItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.NetMapService;
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.UtilI18N;
/**
* @author junior
*
*/
public class InventarioNew extends Inventario {
private NetMapDTO netMapDto;
private DocumentHTML documentAux;
private HttpServletRequest requestAux;
private static final String VALUE = "HARDWARE";
private static final List<String> VALUES_ATRIBUTOS = new ArrayList<String>(Arrays.asList(
new String[] {"NAME", "WORKGROUP", "USERDOMAIN", "OSNAME", "OSVERSION", "OSCOMMENTS", "ARCH", "PROCESSORT", "PROCESSORS",
"PROCESSORN", "MEMORY", "SWAP", "IPADDR", "ETIME", "LASTDATE", "USERID", "LASTLOGGEDUSER", "TYPE", "DESCRIPTION", "WINCOMPANY", "WINOWNER", "WINPRODID", "WINPRODKEY",
"UUID", "VMSYSTEM", "CHECKSUM"}
));
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
}
/**
* Preencher tabela IP Formulario Inventario
*
* @param listnetMap
* List NetMapDto
* @param document
* @throws Exception
*/
public void getPreencheTabelaIP(List<NetMapDTO> listnetMap, DocumentHTML document, HttpServletRequest request) throws Exception {
StringBuilder dados = new StringBuilder();
try {
dados.append("<table class='table' width='100%' >");
dados.append("<tr>");
dados.append("<td colspan = 10 style=' width: 100%; border: 1px solid #ddd;padding: 4px 10px; border-left: none; border-right: none; background: #eee; ' > ");
dados.append("</td></tr>");
int cont = 0;
String trAbre = "<tr>";
String trFecha = "</tr>";
if (listnetMap != null) {
for (NetMapDTO netMapDTO : listnetMap) {
String corRetorno = netMapDTO.getCorRetorno();
if (corRetorno == null)
corRetorno = "";
if (cont == 0) {
dados.append(trAbre);
dados.append("<td> ");
dados.append("<label><input type='radio' name='ip' value = '" + netMapDTO.getIp() + "_" + netMapDTO.getMac() + "' " + netMapDTO.getAtivo() + " /> " + corRetorno.replaceAll("null", "--"));
dados.append( netMapDTO.getNome() + "</label></td>");
cont++;
} else if (cont == 5) {
dados.append("<td>");
dados.append("<label><input type='radio' name='ip' value = '" + netMapDTO.getIp() + "_" + netMapDTO.getMac() + "'" + netMapDTO.getAtivo() + " /> " + corRetorno.replaceAll("null", "--"));
dados.append(netMapDTO.getNome() + "</label></td>" + trFecha);
cont = 0;
} else {
dados.append("<td> ");
dados.append("<label><input type='radio' name='ip' value = '" + netMapDTO.getIp() + "_" + netMapDTO.getMac() + "' " + netMapDTO.getAtivo() + " /> " + corRetorno.replaceAll("null", "--"));
dados.append(netMapDTO.getNome() + "</label></td>");
}
cont++;
}
}
dados.append("</table>");
dados.append("<table class='table' width='100%' >");
dados.append("<tr>");
dados.append("<td>");
dados.append("<label class='quantIP'>"+UtilI18N.internacionaliza(request, "inventario.qtdItensConfiguracao")+"</label>");
dados.append("<label style='margin-left: 40px'>");
if (listnetMap != null && listnetMap.size() > 0) {
dados.append(listnetMap.size());
} else {
dados.append(0);
}
dados.append("</label>");
dados.append("</td></tr>");
dados.append("<tr>");
dados.append("<td colspan = 10 style=' border: 1px solid #ddd;padding: 4px 10px; border-left: none; border-right: none; background: #eee; ' > ");
dados.append("<button type='button' name='btnGravar' class='light' onclick='selecionaItemConfiguracao();'>");
dados.append("<img src='" + br.com.citframework.util.Constantes.getValue("CONTEXTO_APLICACAO") + "/template_new/images/icons/small/grey/pencil.png'>");
dados.append("<span>"+UtilI18N.internacionaliza(request, "inventario.selecionarItemConfiguracao")+"</span>");
dados.append("</button>");
dados.append("</td></tr>");
dados.append("</table>");
HTMLElement htmlele = document.getElementById("ipMac");
htmlele.setInnerHTML(dados.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Rotina para verificar ips ativos na rede e preencher tabela de Ips
*
* @param document
* @param request
* @param response
* @throws ServiceException
* @throws Exception
*/
@Override
public void netMapManual(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, LogicException, Exception {
NetDiscover netDiscover = new NetDiscover();
// Pesquisa Ips Ativos na Rede
List<NetMapDTO> lstAtivos = null;
List<NetMapDTO> lstPesquisa = null;
try {
lstAtivos = netDiscover.listaIpsAtivos();
lstPesquisa = getPesquisaListIp();
if((lstAtivos != null && !lstAtivos.isEmpty()) || (lstPesquisa != null && !lstPesquisa.isEmpty() )){
this.getPreencheTabelaIP(this.verificarIpInventarioAtivo(lstPesquisa, lstAtivos),document,request);
} else{
document.alert(UtilI18N.internacionaliza(request, "inventario.validacao.listaAtivos"));
}
} catch (LogicException e) {
document.alert(e.getMessage());
document.executeScript("JANELA_AGUARDE_MENU.hide();$('#loading_overlay').hide();");
}
document.executeScript("JANELA_AGUARDE_MENU.hide();$('#loading_overlay').hide();");
}
public void selecionaItemConfiguracao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
InventarioDTO inventarioDTO = (InventarioDTO) document.getBean();
NetMapService netMapService = (NetMapService) ServiceLocator.getInstance().getService(NetMapService.class, null);
this.documentAux = document;
this.netMapDto = new NetMapDTO();
this.requestAux = request;
String[] ipMac = null;
if (inventarioDTO.getIp() != null && !inventarioDTO.getIp().equals("")) {
netMapDto = new NetMapDTO();
ipMac = inventarioDTO.getIp().split("_");
netMapDto.setIp(ipMac[0]);
if (ipMac.length > 1) {
netMapDto.setMac(ipMac[1]);
}
List<NetMapDTO> lstNetMap = netMapService.verificarExistenciaIp(netMapDto);
if (lstNetMap != null && !lstNetMap.isEmpty()) {
netMapDto.setIcNovo("false");
} else {
netMapDto.setIcNovo("true");
}
String atributos = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.Atributo, " ");
String noPesquisa = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.NoPesquisa, " ");
String[] arr = (String[]) (atributos == null ? "" : atributos.trim().split(","));
if (VALUE.equalsIgnoreCase((noPesquisa == null ? "" : noPesquisa.trim())) && VALUES_ATRIBUTOS.containsAll(Arrays.asList(arr))) {
new Servidor().carregarIP(netMapDto);
Thread messageHandling = new Thread() {
public void run() {
try {
this.restoreItem(netMapDto , documentAux, requestAux);
} catch (Exception e) {
e.printStackTrace();
}
}
private void restoreItem(NetMapDTO netMapDto, DocumentHTML document, HttpServletRequest requestAux) throws Exception {
ItemConfiguracaoService itemConfiguracaoService = (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null) ;
ItemConfiguracaoDTO itemConfiguracaoDTO = new ItemConfiguracaoDTO();
itemConfiguracaoDTO.setIdentificacao(netMapDto.getIp());
itemConfiguracaoDTO = (ItemConfiguracaoDTO) itemConfiguracaoService.findByIdentificacaoItemConfiguracao(itemConfiguracaoDTO);
document.executeScript("JANELA_AGUARDE_MENU.hide();$('#loading_overlay').hide();");
if(itemConfiguracaoDTO != null && itemConfiguracaoDTO.getIdItemConfiguracao() != null){
document.executeScript("parent.LOOKUP_ITEMCONFIGURACAO_select("+itemConfiguracaoDTO.getIdItemConfiguracao()+","+"'')");
document.executeScript("parent.fechaPopupAtivos()");
} else{
document.alert(UtilI18N.internacionaliza(requestAux, "itemConfiguracao.identificacaoNaoEncontrada"));
}
}
};
messageHandling.start();
messageHandling.join();
document.executeScript("JANELA_AGUARDE_MENU.hide();$('#loading_overlay').hide();");
} else {
document.alert(UtilI18N.internacionaliza(request, "inventario.validacao.atributoNoPesquisa"));
document.executeScript("JANELA_AGUARDE_MENU.hide();$('#loading_overlay').hide();");
}
}else{
document.alert(UtilI18N.internacionaliza(request, "itemConfiguracao.opcao"));
document.executeScript("JANELA_AGUARDE_MENU.hide();$('#loading_overlay').hide();");
}
}
}