package br.com.centralit.citcorpore.ajaxForms; import java.io.File; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.lang.StringUtils; import br.com.centralit.citajax.html.AjaxFormAction; import br.com.centralit.citajax.html.DocumentHTML; import br.com.centralit.citajax.html.HTMLSelect; import br.com.centralit.citcorpore.bean.CategoriaGaleriaImagemDTO; import br.com.centralit.citcorpore.bean.GaleriaImagensDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.negocio.CategoriaGaleriaImagemService; import br.com.centralit.citcorpore.negocio.GaleriaImagensService; import br.com.centralit.citcorpore.util.CITCorporeUtil; import br.com.centralit.citcorpore.util.CriptoUtils; import br.com.centralit.citcorpore.util.Enumerados; import br.com.centralit.citcorpore.util.ParametroUtil; import br.com.centralit.citcorpore.util.Upload; import br.com.centralit.citcorpore.util.Util; import br.com.centralit.citcorpore.util.WebUtil; import br.com.centralit.citged.bean.ControleGEDDTO; import br.com.centralit.citged.negocio.ControleGEDService; import br.com.citframework.excecao.LogicException; import br.com.citframework.service.ServiceLocator; import br.com.citframework.util.Constantes; import br.com.citframework.util.UtilDatas; import br.com.citframework.util.UtilI18N; import br.com.citframework.util.UtilStrings; import br.com.citframework.util.UtilTratamentoArquivos; public class GaleriaImagens extends AjaxFormAction { @SuppressWarnings("rawtypes") public Class getBeanClass() { return GaleriaImagensDTO.class; } public void listaImagens(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO user = WebUtil.getUsuario(request); String url = ""; if (user == null) { document.alert("O usu�rio n�o est� logado! Favor logar no sistema!"); return; } String DISKFILEUPLOAD_REPOSITORYPATH = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.DISKFILEUPLOAD_REPOSITORYPATH, ""); File pasta = new File(DISKFILEUPLOAD_REPOSITORYPATH); if (StringUtils.isBlank(DISKFILEUPLOAD_REPOSITORYPATH) || !pasta.exists()) { document.alert(UtilI18N.internacionaliza(request, "citcorpore.comum.anexosUploadSemParametro")); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); return; } GaleriaImagensDTO galeriaImagensDTO = (GaleriaImagensDTO) document.getBean(); GaleriaImagensService galeriaImagensService = (GaleriaImagensService) ServiceLocator.getInstance().getService(GaleriaImagensService.class, null); ControleGEDService controleGEDService = (ControleGEDService) ServiceLocator.getInstance().getService(ControleGEDService.class, null); String PRONTUARIO_QTDE_ANEXOS_LADO_LADO = "10"; String PRONTUARIO_WIDTH_IMAGENS_ANEXOS = "100px"; String PRONTUARIO_HEIGTH_IMAGENS_ANEXOS = "100px"; String PRONTUARIO_GED_DIRETORIO = null; try { PRONTUARIO_GED_DIRETORIO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedDiretorio, " "); } catch (Exception e2) { e2.printStackTrace(); } if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.trim().equalsIgnoreCase("")) { PRONTUARIO_GED_DIRETORIO = ""; } if (PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) { PRONTUARIO_GED_DIRETORIO = Constantes.getValue("DIRETORIO_GED"); } if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) { PRONTUARIO_GED_DIRETORIO = "/ged"; } int qtdeImagens = Integer.parseInt(PRONTUARIO_QTDE_ANEXOS_LADO_LADO); boolean booleanBorda = false; Collection col = galeriaImagensService.findByCategoria(galeriaImagensDTO.getIdCategoriaGaleriaImagem()); String strTabela = "<table>"; int iContador = 0; if (col != null) { for (Iterator it = col.iterator(); it.hasNext();) { GaleriaImagensDTO galeriaImagensAux = (GaleriaImagensDTO) it.next(); if (iContador == 0) { strTabela += "<tr>"; } ControleGEDDTO controleGEDDTO = new ControleGEDDTO(); controleGEDDTO.setIdControleGED(new Integer(galeriaImagensAux.getNomeImagem())); controleGEDDTO = (ControleGEDDTO) controleGEDService.restore(controleGEDDTO); if (controleGEDDTO != null) { File fileDir2 = new File(CITCorporeUtil.CAMINHO_REAL_APP + "/galeriaImagens"); if (!fileDir2.exists()) { fileDir2.mkdirs(); } fileDir2 = new File(CITCorporeUtil.CAMINHO_REAL_APP + "/galeriaImagens/" + user.getIdEmpresa()); if (!fileDir2.exists()) { fileDir2.mkdirs(); } fileDir2 = new File(CITCorporeUtil.CAMINHO_REAL_APP + "/galeriaImagens/" + user.getIdEmpresa() + "/" + galeriaImagensAux.getIdCategoriaGaleriaImagem()); if (!fileDir2.exists()) { fileDir2.mkdirs(); } try { CriptoUtils.decryptFile( PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + controleGEDDTO.getPasta() + "/" + controleGEDDTO.getIdControleGED() + ".ged", CITCorporeUtil.CAMINHO_REAL_APP + "/galeriaImagens/" + user.getIdEmpresa() + "/" + galeriaImagensAux.getIdCategoriaGaleriaImagem() + "/" + controleGEDDTO.getIdControleGED() + "." + galeriaImagensAux.getExtensao(), System.getProperties().get("user.dir") + Constantes.getValue("CAMINHO_CHAVE_PRIVADA")); } catch (Exception e) { e.printStackTrace(); } String caminhoAnexoReal = ""; // -- ATENCAO: foi proposital o uso de idControleGED=" + imagemHistoricoDTO.getNomeArquivo()! Pois o GED Interno necessita que seja assim. caminhoAnexoReal = Constantes.getValue("SERVER_ADDRESS") + Constantes.getValue("CONTEXTO_APLICACAO") + "/recuperaFromGed/recuperaFromGed.load?idControleGED=" + galeriaImagensAux.getNomeImagem() + "&nomeArquivo=" + galeriaImagensAux.getNomeImagem(); String borda = ""; if (booleanBorda) { borda = " border=\"1\" "; } String strObs = "N�o h�"; if (galeriaImagensAux.getDetalhamento() != null) { strObs = galeriaImagensAux.getDetalhamento(); } if (strObs != null) { strObs = UtilStrings.decodeCaracteresEspeciais(strObs); } /* Desenvolvedor: Euler.Ramos Data: 29/10/2013 Hor�rio: 17h08min ID Citsmart: 120393 Motivo/Coment�rio: N�o aparecer a imagem nesta tela ou nos relat�rios era um problema * recorrente da forma que estava, a imagem n�o era listada pela url do sistema dependendo da rede.*/ //url = ParametroUtil.getValorParametroCitSmartHashMap(ParametroSistema.URL_Sistema, ""); url = br.com.citframework.util.Constantes.getValue("CONTEXTO_APLICACAO"); String caminhoAnexo = url+"/galeriaImagens/" + user.getIdEmpresa() + "/" + galeriaImagensAux.getIdCategoriaGaleriaImagem() + "/" + controleGEDDTO.getIdControleGED() + "." + galeriaImagensAux.getExtensao(); strTabela += "<td>"; if (galeriaImagensDTO.getSelecaoImagemEdicao() == null || galeriaImagensDTO.getSelecaoImagemEdicao().equalsIgnoreCase("")) { strTabela += "<a href=\"" + caminhoAnexoReal + "\" target=_blank><img " + " style=\"cursor:hand\" src=\"" + caminhoAnexo + "\" width=\"" + PRONTUARIO_WIDTH_IMAGENS_ANEXOS + "\" height=\"" + PRONTUARIO_HEIGTH_IMAGENS_ANEXOS + "\" " + borda + " /></a> <br> "; strTabela += "<button type='button' class='icon_only text_only' name='btnGetEnd" + galeriaImagensAux.getIdImagem() + "' onclick='prompt(\""+UtilI18N.internacionaliza(request, "galeriaImagens.utilizeEnderecoAbaixo")+":\", \"" + caminhoAnexo + "\")'>Url</button>"; strTabela += "<button type='button' class='icon_only text_only' name='btnExcluiImagem" + galeriaImagensAux.getIdImagem() + "' onclick='excluirImagem("+galeriaImagensAux.getIdImagem()+")');'>"+UtilI18N.internacionaliza(request, "carrinho.excluir")+"</button>"; } else { strTabela += "<a href=\"#\" onclick=\"setImagem('" + caminhoAnexo + "');" + galeriaImagensDTO.getSelecaoImagemEdicao() + "\"><img " + " style=\"cursor:hand\" src=\"" + caminhoAnexo + "\" width=\"" + PRONTUARIO_WIDTH_IMAGENS_ANEXOS + "\" height=\"" + PRONTUARIO_HEIGTH_IMAGENS_ANEXOS + "\" " + borda + " /></a> <br> "; strTabela += "<button type='button' class='icon_only text_only' name='btnGetEnd" + galeriaImagensAux.getIdImagem() + "' onclick='prompt(\""+UtilI18N.internacionaliza(request, "galeriaImagens.utilizeEnderecoAbaixo")+":\", \"" + caminhoAnexo + "\")'>Url</button>"; strTabela += "<button type='button' class='icon_only text_only' name='btnExcluiImagem" + galeriaImagensAux.getIdImagem() + "' onclick='excluirImagem("+galeriaImagensAux.getIdImagem()+")');'>"+UtilI18N.internacionaliza(request, "carrinho.excluir")+"</button>"; } strTabela += "</td>"; strTabela += "<td>"; strTabela += " "; strTabela += "</td>"; } iContador++; if (iContador >= qtdeImagens) { iContador = 0; strTabela += "</tr>"; } } } strTabela += "</table>"; document.getElementById("divImagens").setInnerHTML(strTabela); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); } @SuppressWarnings({ "rawtypes", "unchecked" }) public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { UsuarioDTO user = WebUtil.getUsuario(request); if (user == null) { document.alert("O usu�rio n�o est� logado! Favor logar no sistema!"); return; } GaleriaImagensDTO galeriaImagensDTO = new GaleriaImagensDTO(); Upload upload = new Upload(); HashMap hshRetorno[] = null; try { hshRetorno = upload.doUploadAll(request); } catch (Exception e) { } try { CategoriaGaleriaImagemService categoriaGaleriaImagemService = (CategoriaGaleriaImagemService) ServiceLocator.getInstance().getService(CategoriaGaleriaImagemService.class, null); ArrayList<CategoriaGaleriaImagemDTO> cols = (ArrayList) categoriaGaleriaImagemService.list(); ArrayList<CategoriaGaleriaImagemDTO> popular = new ArrayList<CategoriaGaleriaImagemDTO>(); HTMLSelect idCategoriaGaleriaImagemCombo = document.getSelectById("idCategoriaGaleriaImagem"); idCategoriaGaleriaImagemCombo.removeAllOptions(); if (cols != null) { for (CategoriaGaleriaImagemDTO origemAtendimento : cols) if (origemAtendimento.getDataFim() == null) popular.add(origemAtendimento); } idCategoriaGaleriaImagemCombo.addOption("", UtilI18N.internacionaliza(request, "citcorpore.comum.selecione")); idCategoriaGaleriaImagemCombo.addOptions(popular, "idCategoriaGaleriaImagem", "nomeCategoria", null); } catch (Exception e) { } String idCategoriaGaleriaImagemStr = null; int idCategoriaGaleriaImagem = 0; HashMap formItems = null; Collection fileItems = null; try { fileItems = hshRetorno[1].values(); formItems = hshRetorno[0]; idCategoriaGaleriaImagemStr = (String) formItems.get("IDCATEGORIAGALERIAIMAGEM"); idCategoriaGaleriaImagem = Integer.parseInt(idCategoriaGaleriaImagemStr); if (idCategoriaGaleriaImagem == 0) { System.out.println("CATEGORIA VAZIA......"); return; } String descricaoImagem = (String) formItems.get("DESCRICAOIMAGEM"); if (descricaoImagem != null) { descricaoImagem = UtilStrings.decodeCaracteresEspeciais(descricaoImagem); descricaoImagem = descricaoImagem.replaceAll("#10##13#", "\n"); } String detalhamento = (String) formItems.get("DETALHAMENTO"); if (detalhamento != null) { detalhamento = UtilStrings.decodeCaracteresEspeciais(detalhamento); detalhamento = detalhamento.replaceAll("#10##13#", "\n"); } String PRONTUARIO_GED_DIRETORIO = null; try { PRONTUARIO_GED_DIRETORIO = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.GedDiretorio, " "); } catch (Exception e2) { e2.printStackTrace(); } if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.trim().equalsIgnoreCase("")) { PRONTUARIO_GED_DIRETORIO = ""; } if (PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) { PRONTUARIO_GED_DIRETORIO = Constantes.getValue("DIRETORIO_GED"); } if (PRONTUARIO_GED_DIRETORIO == null || PRONTUARIO_GED_DIRETORIO.equalsIgnoreCase("")) { PRONTUARIO_GED_DIRETORIO = "/ged"; } ControleGEDService controleGEDService = (ControleGEDService) ServiceLocator.getInstance().getService(ControleGEDService.class, null); String pasta = ""; pasta = controleGEDService.getProximaPastaArmazenar(); File fileDir = new File(PRONTUARIO_GED_DIRETORIO); if (!fileDir.exists()) { fileDir.mkdirs(); } fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa()); if (!fileDir.exists()) { fileDir.mkdirs(); } fileDir = new File(PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta); if (!fileDir.exists()) { fileDir.mkdirs(); } String prontuarioGedInternoBancoDados = "N"; File fileDir2 = new File(CITCorporeUtil.CAMINHO_REAL_APP + "/galeriaImagens"); if (!fileDir2.exists()) { fileDir2.mkdirs(); } fileDir2 = new File(CITCorporeUtil.CAMINHO_REAL_APP + "/galeriaImagens/" + user.getIdEmpresa()); if (!fileDir2.exists()) { fileDir2.mkdirs(); } fileDir2 = new File(CITCorporeUtil.CAMINHO_REAL_APP + "/galeriaImagens/" + user.getIdEmpresa() + "/" + idCategoriaGaleriaImagem); if (!fileDir2.exists()) { fileDir2.mkdirs(); } String fileName = ""; FileItem fi; if (!fileItems.isEmpty()) { File arquivo; GaleriaImagensService galeriaImagensService = (GaleriaImagensService) ServiceLocator.getInstance().getService(GaleriaImagensService.class, null); Iterator it = fileItems.iterator(); while (it.hasNext()) { fi = (FileItem) it.next(); ControleGEDDTO controleGEDDTO = new ControleGEDDTO(); controleGEDDTO.setIdTabela(ControleGEDDTO.TABELA_GALERIA_IMAGENS); controleGEDDTO.setId(new Integer(0)); controleGEDDTO.setDataHora(UtilDatas.getDataAtual()); controleGEDDTO.setDescricaoArquivo(fi.getName()); controleGEDDTO.setExtensaoArquivo(Util.getFileExtension(fi.getName())); controleGEDDTO.setPasta(pasta); controleGEDDTO.setNomeArquivo(fi.getName()); java.util.Date now = new java.util.Date(); if ("S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { arquivo = new File(PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta + "/TMP_" + now.getTime() + "." + Util.getFileExtension(fi.getName())); fi.write(arquivo); CriptoUtils.encryptFile(PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta + "/TMP_" + now.getTime() + "." + Util.getFileExtension(fi.getName()), PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta + "/TMP_" + now.getTime() + ".ged", this.getClass().getResourceAsStream(Constantes.getValue("CAMINHO_CHAVE_PUBLICA"))); controleGEDDTO.setPathArquivo(PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta + "/TMP_" + now.getTime() + ".ged"); } controleGEDDTO = (ControleGEDDTO) controleGEDService.create(controleGEDDTO); if ("S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { UtilTratamentoArquivos.copyFile( PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta + "/TMP_" + now.getTime() + "." + Util.getFileExtension(fi.getName()), CITCorporeUtil.CAMINHO_REAL_APP + "/galeriaImagens/" + user.getIdEmpresa() + "/" + idCategoriaGaleriaImagem + "/" + controleGEDDTO.getIdControleGED() + "." + Util.getFileExtension(fi.getName())); } if (!"S".equalsIgnoreCase(prontuarioGedInternoBancoDados)) { arquivo = new File(PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + "." + Util.getFileExtension(fi.getName())); fi.write(arquivo); UtilTratamentoArquivos.copyFile( PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + "." + Util.getFileExtension(fi.getName()), CITCorporeUtil.CAMINHO_REAL_APP + "/galeriaImagens/" + user.getIdEmpresa() + "/" + idCategoriaGaleriaImagem + "/" + controleGEDDTO.getIdControleGED() + "." + Util.getFileExtension(fi.getName())); CriptoUtils.encryptFile( PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + "." + Util.getFileExtension(fi.getName()), PRONTUARIO_GED_DIRETORIO + "/" + user.getIdEmpresa() + "/" + pasta + "/" + controleGEDDTO.getIdControleGED() + ".ged", System.getProperties().get("user.dir") + Constantes.getValue("CAMINHO_CHAVE_PUBLICA")); } galeriaImagensDTO = new GaleriaImagensDTO(); galeriaImagensDTO.setIdCategoriaGaleriaImagem(idCategoriaGaleriaImagem); galeriaImagensDTO.setDescricaoImagem(descricaoImagem); galeriaImagensDTO.setDetalhamento(detalhamento); galeriaImagensDTO.setNomeImagem(controleGEDDTO.getIdControleGED().toString()); galeriaImagensDTO.setExtensao(Util.getFileExtension(fi.getName())); galeriaImagensService.create(galeriaImagensDTO); } } } catch (Exception e) { document.executeScript("$('#loading_overlay').hide();"); } document.executeScript("$('#loading_overlay').hide();"); } public void verificarParametroAnexos(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { String DISKFILEUPLOAD_REPOSITORYPATH = ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.DISKFILEUPLOAD_REPOSITORYPATH, ""); if (DISKFILEUPLOAD_REPOSITORYPATH == null) { DISKFILEUPLOAD_REPOSITORYPATH = ""; } if (DISKFILEUPLOAD_REPOSITORYPATH.equals("")) { throw new LogicException(UtilI18N.internacionaliza(request, "citcorpore.comum.anexosUploadSemParametro")); } File pasta = new File(DISKFILEUPLOAD_REPOSITORYPATH); if (!pasta.exists()) { throw new LogicException(UtilI18N.internacionaliza(request, "citcorpore.comum.pastaIndicadaNaoExiste")); } else { document.executeScript("adicionarImagemLiberada();"); } } public void excluirImagem(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception { GaleriaImagensDTO galeriaImagensDTO = (GaleriaImagensDTO) document.getBean(); GaleriaImagensService galeriaImagensService = (GaleriaImagensService) ServiceLocator.getInstance().getService(GaleriaImagensService.class, null); if(galeriaImagensDTO!= null){ galeriaImagensService.delete(galeriaImagensDTO); document.alert(UtilI18N.internacionaliza(request, "MSG07")); } listaImagens(document, request, response); document.getJanelaPopupById("JANELA_AGUARDE_MENU").hide(); } }