Edit document
Edit document
https://liferay.dev/en/c/message_boards/find_thread?p_l_id=119785333&threadId=119920404
2024-03-29T15:49:47Z
2024-03-29T15:49:47Z
Edit document
Eric Ruiz
https://liferay.dev/en/c/message_boards/find_message?p_l_id=119785333&messageId=119920403
2020-09-08T19:14:52Z
2020-09-08T19:14:52Z
<html><head></head><body><pre><code>When I try to edit my form of an article that contains fields and files, even if I don't modify my file, the hash changes and I can't find it with the URL since it is still the previous one but the reference is updated automatically.</code></pre>-/documents/542120/790801/RF-INE-ATG-10-2020.pdf/35c47693-d00f-4b8f-8dce-a343a41aac7f-<br>-1599177600000--/documents/542120/790801/RF-INE-ATG-10-2020.pdf/db25710d-9849-47c0-a87e-e8794303cfe9-<br>-1599177600000-<pre><code>That makes whenever I edit, I have to upload my file again</code></pre><br><br> <br> <br>public void editarEstrado(ActionRequest request, ActionResponse response) throws ExcepcionContenido { <br> uploadRequest = PortalUtil.getUploadPortletRequest(request);<br> estradoElectronico = new EstradoElectronico();<br> estradoElectronico.setArticleId(uploadRequest.getParameter("articleId"));<br> <br> String nombreCarpeta = "";<br> String nombreFileName = "";<br> String nombreFecha = "";<br> boolean multiple = false;<br> <br> Calendar calendario = new GregorianCalendar();<br> int hora, minutos, segundos;<br> hora = calendario.get(Calendar.HOUR_OF_DAY);<br> String horaStr = "";<br> minutos = calendario.get(Calendar.MINUTE);<br> String minutosStr = "";<br> if(minutos<10)<br> minutosStr = "0"+minutos;<br> else<br> minutosStr = ""+minutos;<br> <br> if(hora<10)<br> horaStr = "0"+hora;<br> else<br> horaStr = ""+hora;<br> <br> System.out.println("auto: "+uploadRequest.getParameter("auto"));<br> <br> if(uploadRequest.getParameter("auto") != null) {<br> if(uploadRequest.getParameter("auto").equals("Auto")) { <br> nombreCarpeta = "Auto";<br> estradoElectronico.setTipoAuto(true);<br> estradoElectronico.setTipoResolucionOp(false);<br> estradoElectronico.setTipoOtro(false); <br> nombreFileName = "documentoA0";<br> nombreFecha = "fechaAnexoA0"; <br> multiple = true;<br> }<br> if(uploadRequest.getParameter("auto").equals("Resolucion")) {<br> nombreCarpeta = "Resolucion";<br> estradoElectronico.setTipoAuto(false);<br> estradoElectronico.setTipoResolucionOp(true);<br> estradoElectronico.setTipoOtro(false);<br> <br> nombreFileName = "documento";<br> nombreFecha = "fechaAnexo"; <br> multiple = false;<br> <br> }<br> if(uploadRequest.getParameter("auto").equals("Otro")) {<br> nombreCarpeta = "Otro";<br> estradoElectronico.setTipoAuto(false);<br> estradoElectronico.setTipoResolucionOp(false);<br> estradoElectronico.setTipoOtro(true);<br> <br> nombreFileName = "documentoO0";<br> nombreFecha = "fechaAnexo0"; <br> multiple = true;<br> }<br> }<br> <br> if(nombreCarpeta.equals(tipoEstradoStr)){<br> <br> //Obtener informacion de los Actor <br> <br> List<String> listActor = new ArrayList<String>();<br> String actorStr = uploadRequest.getParameter("actor");<br> <br> if(actorStr!=null && !actorStr.equals(""))<br> listActor.add(actorStr); <br> <br> for(int i=1;i<=10;i++)<br> {<br> actorStr = uploadRequest.getParameter("actor"+i+"");<br> if(actorStr!=null && !actorStr.equals(""))<br> listActor.add(actorStr); <br> }<br> <br> String fechaNotificacionInicial = uploadRequest.getParameter("fechaNotificacionInicial"); <br> String fechaNotificacionStr = uploadRequest.getParameter("fechaNotificacion"); <br> <br> <br> String auxCad = "";<br> <br> for(int i=0;i<fechaNotificacionStr.length();i++){<br> if(fechaNotificacionStr.charAt(i)=='"') <br> continue;<br> else<br> auxCad+=fechaNotificacionStr.charAt(i);<br> }<br> fechaNotificacionStr = auxCad;<br> <br> String cademaStr = "";<br> for(int i=0;i<fechaNotificacionStr.length();i++){<br> if(!Character.isDigit(fechaNotificacionStr.charAt(i)))<br> {<br> if(fechaNotificacionStr.charAt(i)!='-' ){<br> break ;<br> }else{<br> cademaStr+="/";<br> }<br> }<br> else{<br> cademaStr+=fechaNotificacionStr.charAt(i);<br> }<br> }<br> <br> String [] cadenaFecha = EstradosElectronicosHelper.obtenerFechaFormato(cademaStr);<br> String cadenaFin = cadenaFecha[2]+"-"+cadenaFecha[1]+"-"+cadenaFecha[0]; estradoElectronico.setHoraNotificacion(uploadRequest.getParameter("fNotificacion"));<br> estradoElectronico.setTipoMedio(uploadRequest.getParameter("tipoMedioTxt"));<br> estradoElectronico.setActor(listActor);<br> estradoElectronico.setOrganoEmiteResolucion(uploadRequest.getParameter("organoTxt"));<br> estradoElectronico.setFechaNotificacion(obtenerFechaStr(uploadRequest.getParameter("fechaNotificacion"))); <br> estradoElectronico.setActoImpugnado(uploadRequest.getParameter("acto"));<br> estradoElectronico.setEjercicio(uploadRequest.getParameter("ejercicioTxt"));<br> estradoElectronico.setPeriodoResolucion(uploadRequest.getParameter("periodoTxt"));<br> estradoElectronico.setNumeroExpediente(uploadRequest.getParameter("numeroExpediente"));<br> estradoElectronico.setMateriaResolucion(uploadRequest.getParameter("materiaResolucionTxt"));<br> estradoElectronico.setTipoResolucion(uploadRequest.getParameter("tipoResolucionTxt"));<br> estradoElectronico.setFechaResolucion(obtenerFechaStr(uploadRequest.getParameter("fechaResolucion")));<br> estradoElectronico.setSentidoResolucion(uploadRequest.getParameter("sentidoResolucionTxt"));<br> estradoElectronico.setFechaValidacion(obtenerFechaStr(uploadRequest.getParameter("fechaValidacion")));<br> estradoElectronico.setAreaResponsable(uploadRequest.getParameter("areaResponsable"));<br> estradoElectronico.setFechaActulizacion(obtenerFechaStr(uploadRequest.getParameter("fechaActualizacion")));<br> estradoElectronico.setNota(uploadRequest.getParameter("nota"));<br> <br> List<Documento> listDocumento = new ArrayList<Documento>();<br> Documento documento = null;<br> List<AtributoArchivo> listFileEntry = new ArrayList<AtributoArchivo>(); <br> List<String> listValidacion = new ArrayList<String>();<br> <br> String nombreP = null;<br> File entrada = null;<br> FileEntry fileP = null;<br> <br> if(estradoElectronico.getTipoAuto() == true || estradoElectronico.isTipoOtro() == true ){<br> <br> folderEstrados = Filesandfolders.getFolder(nombreCarpeta, themeDisplay, serviceContext, parentFolderId);<br> <br> if(estradoElectronico.getTipoAuto() == true){<br> try {<br> File fileTest = null;<br> <br> try{<br> <br> fileTest = uploadRequest.getFile("documentoA0");<br> <br> }catch(Exception e){}<br> <br> if(fileTest!=null){<br> <br> nombreP = uploadRequest.getParameter("etiqueta0AutoDoc");<br> <br> try{<br> fileP = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), nombreP); <br> }catch(Exception e){}<br> <br> if(fileP==null){<br> folderEstrados = Filesandfolders.getFolder(tipoEstradoStr, themeDisplay, serviceContext, parentFolderId);<br> try{<br> System.out.println("--");<br> documento = new Documento();<br> documento.setDocumento(uploadRequest.getFile("documentoA0"));<br> String nomDocumento = uploadRequest.getParameter("etiqueta0AutoDoc");<br> if(nomDocumento.equals(""))<br> nomDocumento = uploadRequest.getFileName("documentoA0"); <br> documento.setNombreDocumento(nomDocumento); <br> documento.setFechaDoc(uploadRequest.getParameter("fechaDocumento0"));<br> listDocumento.add(documento);<br> }catch(Exception e){}<br> }else{ <br> documento = new Documento();<br> documento.setDocumento(uploadRequest.getFile("documentoA0"));<br> documento.setNombreDocumento(uploadRequest.getParameter("etiqueta0AutoDoc")); <br> documento.setFechaDoc(uploadRequest.getParameter("fechaDocumento0"));<br> listDocumento.add(documento);<br> } <br> listValidacion.add("1");<br> }else{<br> <br> entrada = uploadRequest.getFile("documentoA0");<br> nombreP = uploadRequest.getFileName("documentoA0");<br> String o = uploadRequest.getParameter("etiqueta0AutoDoc");<br> FileEntry fileaux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), o); <br> documento = new Documento();<br> documento.setDocumento(uploadRequest.getFile("documentoA0"));<br> documento.setNombreDocumento(uploadRequest.getFileName("documentoA0")); <br> documento.setFechaDoc(uploadRequest.getParameter("fechaDocumento0"));<br> listDocumento.add(documento);<br> <br> fileP = DLAppLocalServiceUtil.updateFileEntry(userId, fileaux.getFileEntryId(), nombreP, "", nombreP, "", "0.0", true, entrada, serviceContext);<br> listValidacion.add("1");<br> }<br> <br> estradoElectronico.setFechaPrimerDoc(obtenerFechaStr(uploadRequest.getParameter("fechaDocumento0")));<br> <br> } catch (PortalException | SystemException e) {<br> listValidacion.add("0");<br> }<br> }else{<br> try {<br> if(uploadRequest.getFile("documentoO0").getTotalSpace() == 0){<br> nombreP = uploadRequest.getParameter("etiqueta0OtroDoc"); <br> fileP = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), nombreP);<br> <br> documento = new Documento();<br> documento.setDocumento(uploadRequest.getFile("documentoO0"));<br> documento.setNombreDocumento(uploadRequest.getParameter("etiqueta0OtroDoc")); <br> documento.setFechaDoc(uploadRequest.getParameter("fechaAnexo0"));<br> listDocumento.add(documento);<br> <br> }else{<br> entrada = uploadRequest.getFile("documentoO0");<br> nombreP = uploadRequest.getFileName("documentoO0");<br> String o = uploadRequest.getParameter("etiqueta0OtroDoc");<br> //FileEntry fileaux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), o);<br> //fileP = DLAppLocalServiceUtil.updateFileEntry(userId, fileaux.getFileEntryId(), nombreP, "", nombreP, "", "0.0", true, entrada, serviceContext);<br>// listValidacion.add("1");<br> <br> documento = new Documento();<br> documento.setDocumento(uploadRequest.getFile("documentoO0"));<br> documento.setNombreDocumento(uploadRequest.getFileName("documentoO0")); <br> documento.setFechaDoc(uploadRequest.getParameter("fechaAnexo0"));<br> listDocumento.add(documento);<br> }<br> <br> estradoElectronico.setFechaPrimerDoc(obtenerFechaStr(uploadRequest.getParameter("fechaAnexo0")));<br> <br> } catch (PortalException | SystemException e) {<br> listValidacion.add("0");<br> }<br> }<br> <br> <br> //int tam = Integer.parseInt(uploadRequest.getParameter("tamAnexos"));<br> <br> for(int i=1;i<15;i++){<br> documento = new Documento();<br> if(uploadRequest.getFile("documento"+i).getTotalSpace() == 0){<br> String etiquetaStr = uploadRequest.getParameter("etiqueta"+i+"Doc"); <br> if(!etiquetaStr.equals("")){<br> documento.setDocumento(uploadRequest.getFile("documento"+i));<br> documento.setNombreDocumento(uploadRequest.getParameter("etiqueta"+i+"Doc")); <br> documento.setFecha(obtenerFechaStr(uploadRequest.getParameter("fechaAnexo"+i))); <br> listDocumento.add(documento);<br> }<br> }else{<br> String etiquetaStr = uploadRequest.getFileName("documento"+i);<br> if(!etiquetaStr.equals("")){<br> documento.setDocumento(uploadRequest.getFile("documento"+i));<br> documento.setNombreDocumento(uploadRequest.getFileName("documento"+i)); <br> documento.setFecha(obtenerFechaStr(uploadRequest.getParameter("fechaAnexo"+i))); <br> listDocumento.add(documento);<br> } <br> }<br> }<br> <br> ////////// validacion para documento editados ////<br> <br> List<Documento> listDocumentoEditar = new ArrayList<Documento>();<br> Documento documentoAux= new Documento();<br> boolean insertar = false;<br> <br> for (Documento doc : listDocumento) {<br> for (Documento docEditado : getListaDocumentoValor()) {<br> if (doc.getNombreDocumento().equals(docEditado.getNombreDocumento())) {<br> insertar = true;<br> documentoAux = docEditado;<br> break;<br> } else {<br> insertar = false;<br> }<br> }<br> if (insertar) {<br> listDocumentoEditar.add(documentoAux);<br> }<br> else{<br> listDocumentoEditar.add(doc);<br> }<br> }<br> <br> //Elimino documentos Pasados<br> <br> for(Documento acuerdo : getListaDocumentoValor()){<br> try { <br> FileEntry fileEntry = DLAppLocalServiceUtil.getFileEntry(groupId,EstradosElectronicosHelper.obtenerIdDocumento(acuerdo.getNombreDocumento()) , EstradosElectronicosHelper.obtenerNombreDocumento(acuerdo.getNombreDocumento()));<br> if(fileEntry!=null){<br> DLAppLocalServiceUtil.deleteFileEntry(fileEntry.getFileEntryId());<br> }<br> } catch (PortalException e) { <br> e.printStackTrace(); <br> <br> } catch (SystemException e) {<br> <br> e.printStackTrace(); <br> } <br> }<br> <br> <br> ///////////////////////////////////////////// //Guarda el documento<br> listFileEntry = new ArrayList<AtributoArchivo>();<br> <br> //if(15 != 0){<br> for(Documento doc :listDocumentoEditar){<br> FileEntry file = null;<br> try {<br> if(doc.getDocumento()!=null && doc.getDocumento().length() == 0){<br> if(doc.getNombreDocumento() != ""){<br> <br> file = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), doc.getNombreDocumento());//no lo encuentra<br> <br> if(file==null){<br> folderEstrados = Filesandfolders.getFolder("Auto", themeDisplay, serviceContext, parentFolderId);<br> file = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), doc.getNombreDocumento());//no lo encuentra<br> <br> }<br> <br> AtributoArchivo atributoArchivo = new AtributoArchivo();<br> atributoArchivo.setFileEntry(file); <br> atributoArchivo.setFechaDocumento(doc.getFecha());<br> listFileEntry.add(atributoArchivo);<br> }<br> }else{<br> try{<br> FileEntry aux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), doc.getNombreDocumento());<br> file = DLAppLocalServiceUtil.updateFileEntry(userId, aux.getFileEntryId(), doc.getNombreDocumento(), "", doc.getNombreDocumento(), "", "0.0", true, doc.getDocumento(), serviceContext);<br> <br> AtributoArchivo atributoArchivo = new AtributoArchivo();<br> atributoArchivo.setFileEntry(file); <br> atributoArchivo.setFechaDocumento(doc.getFecha());<br> listFileEntry.add(atributoArchivo);<br> <br> }catch(PortalException | SystemException e){<br> file = DLAppLocalServiceUtil.addFileEntry(<br> userId, themeDisplay.getScopeGroupId(), folderEstrados.getFolderId(), "" , "", <br> doc.getNombreDocumento() , "" , "0.0", doc.getDocumento() , serviceContext);<br> <br> AtributoArchivo atributoArchivo = new AtributoArchivo();<br> atributoArchivo.setFileEntry(file); <br> atributoArchivo.setFechaDocumento(doc.getFecha());<br> listFileEntry.add(atributoArchivo);<br> }<br>// if(doc.getNombreDocumento() == ""){<br>// file = DLAppLocalServiceUtil.addFileEntry(<br>// userId, themeDisplay.getScopeGroupId(), folderEstrados.getFolderId(), "" , "", <br>// doc.getNombreDocumento() , "" , "0.0", doc.getDocumento() , serviceContext);<br>// }else if(doc.getNombreDocumento() == ""){<br>// FileEntry aux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), doc.getNombreDocumento());<br>// file = DLAppLocalServiceUtil.updateFileEntry(userId, aux.getFileEntryId(), doc.getNombreDocumento(), "", doc.getNombreDocumento(), "", "0.0", true, doc.getDocumento(), serviceContext);<br>// }<br> }<br> <br> <br> listValidacion.add("1");<br> <br> } catch (PortalException | SystemException e) {<br> try {<br> file = DLAppLocalServiceUtil.addFileEntry(<br> userId, themeDisplay.getScopeGroupId(), folderEstrados.getFolderId(), "" , "", <br> doc.getNombreDocumento() , "" , "0.0", doc.getDocumento() , serviceContext);<br> <br> AtributoArchivo atributoArchivo = new AtributoArchivo();<br> atributoArchivo.setFileEntry(file); <br> atributoArchivo.setFechaDocumento(doc.getFecha());<br> listFileEntry.add(atributoArchivo);<br> <br> } catch (PortalException | SystemException e1) {<br> e1.printStackTrace();<br> }<br> }<br> }<br> //}<br> }else{<br> <br> //Elimino documentos Pasados<br> <br> for(Documento acuerdo : getListaDocumentoValor()){<br> try { <br> FileEntry fileEntry = DLAppLocalServiceUtil.getFileEntry(groupId,EstradosElectronicosHelper.obtenerIdDocumento(acuerdo.getNombreDocumento()) , EstradosElectronicosHelper.obtenerNombreDocumento(acuerdo.getNombreDocumento()));<br> if(fileEntry!=null){<br> DLAppLocalServiceUtil.deleteFileEntry(fileEntry.getFileEntryId());<br> }<br> } catch (PortalException e) { <br> e.printStackTrace(); <br> <br> } catch (SystemException e) {<br> <br> e.printStackTrace(); <br> } <br> }<br> <br> <br> folderEstrados = Filesandfolders.getFolder(nombreCarpeta, themeDisplay, serviceContext, parentFolderId);<br> <br> if(folderEstrados==null){<br> folderEstrados = Filesandfolders.getFolder(tipoEstradoStr, themeDisplay, serviceContext, parentFolderId);<br> nombreCarpeta = tipoEstradoStr;<br> }<br> <br> try {<br> <br> File docFile = null;<br> try{<br> docFile = uploadRequest.getFile("documento");<br> }catch(Exception e){}<br> <br> <br> if(docFile != null){<br> nombreP = uploadRequest.getParameter("etiquetaDocumento"); <br> fileP = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), nombreP);<br> <br> AtributoArchivo atributoArchivo = new AtributoArchivo();<br> atributoArchivo.setFileEntry(fileP); <br> listFileEntry.add(atributoArchivo);<br> <br> listValidacion.add("1");<br> }else{<br> entrada = uploadRequest.getFile("documento");<br> nombreP = uploadRequest.getFileName("documento");<br> String o = uploadRequest.getParameter("etiquetaDocumento"); <br> if(o.equals("")){ o = nombreP; }<br> FileEntry fileaux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), o);<br> fileP = DLAppLocalServiceUtil.updateFileEntry(userId, fileaux.getFileEntryId(), nombreP, "", nombreP, "", "0.0", true, entrada, serviceContext); AtributoArchivo atributoArchivo = new AtributoArchivo();<br> atributoArchivo.setFileEntry(fileaux); <br> listFileEntry.add(atributoArchivo);<br> <br> listValidacion.add("1");<br> }<br> }catch (PortalException | SystemException e) {<br> <br> entrada = uploadRequest.getFile("documento");<br> nombreP = uploadRequest.getFileName("documento");<br> String o = uploadRequest.getParameter("etiquetaDocumento"); <br> if(o.equals("")){ o = nombreP; }<br> <br> try { FileEntry fileaux = DLAppLocalServiceUtil.addFileEntry(<br> userId, themeDisplay.getScopeGroupId(), folderEstrados.getFolderId(), "" , "" , <br> o , "" , "0.0", entrada , serviceContext);<br> <br> AtributoArchivo atributoArchivo = new AtributoArchivo();<br> atributoArchivo.setFileEntry(fileaux); <br> listFileEntry.add(atributoArchivo);<br> <br> } catch (PortalException e1) { e1.printStackTrace(); } catch (SystemException e1) { e1.printStackTrace(); }<br> <br> listValidacion.add("0");<br> }<br> }<br> <br> <br> StringBuffer contenido = new StringBuffer();<br> JournalArticle journal = findArticle(estradoElectronico.getArticleId());<br> Double version = journal.getVersion();<br> contenido.append(EstradosElectronicosHelper.editarContenido(estradoElectronico, themeDisplay, folderEstrados, listFileEntry, multiple, journal, fileP));<br> Map<Locale, String> titleMap = getNameMap(nombreCarpeta + "_" + estradoElectronico.getNumeroExpediente());<br> Map<Locale, String> descripcionMap = getNameMap(nombreCarpeta + "_" + estradoElectronico.getNumeroExpediente()); <br> long folderTSesion = Filesandfolders.getJournalFolder(nombreCarpeta, themeDisplay, parentFolderId,serviceContext,userId, groupId ,nombreCarpeta,"");<br> <br> boolean agregarContenido = false;<br> for(String cade : listValidacion){<br> if(cade.equals("0")){<br> agregarContenido = false;<br> break;<br> }else{<br> agregarContenido=true;<br> }<br> }<br> <br> try {<br> JournalArticleLocalServiceUtil.updateArticle(userId, groupId, folderTSesion, journal.getArticleId(), version, titleMap, descripcionMap, contenido.toString(), "", serviceContext);<br> } catch (PortalException e) { e.printStackTrace(); } catch (SystemException e) { e.printStackTrace(); } <br> <br> }<br> }</body>