Message Boards

Edit document

Eric Ruiz, modified 3 Years ago.

Edit document

New Member Post: 1 Join Date: 5/28/20 Recent Posts
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.
-/documents/542120/790801/RF-INE-ATG-10-2020.pdf/35c47693-d00f-4b8f-8dce-a343a41aac7f-
-1599177600000--/documents/542120/790801/RF-INE-ATG-10-2020.pdf/db25710d-9849-47c0-a87e-e8794303cfe9-
-1599177600000-
That makes whenever I edit, I have to upload my file again


        
        
public void editarEstrado(ActionRequest request, ActionResponse response) throws ExcepcionContenido {        
        uploadRequest = PortalUtil.getUploadPortletRequest(request);
        estradoElectronico = new EstradoElectronico();
        estradoElectronico.setArticleId(uploadRequest.getParameter("articleId"));
        
        String nombreCarpeta = "";
        String nombreFileName = "";
        String nombreFecha = "";
        boolean multiple = false;
        
        Calendar calendario = new GregorianCalendar();
        int hora, minutos, segundos;
        hora = calendario.get(Calendar.HOUR_OF_DAY);
        String horaStr = "";
        minutos = calendario.get(Calendar.MINUTE);
        String minutosStr = "";
        if(minutos<10)
            minutosStr = "0"+minutos;
        else
            minutosStr = ""+minutos;
        
        if(hora<10)
            horaStr = "0"+hora;
        else
            horaStr = ""+hora;
        
        System.out.println("auto: "+uploadRequest.getParameter("auto"));
        
         if(uploadRequest.getParameter("auto") != null) {
             if(uploadRequest.getParameter("auto").equals("Auto")) {    
                 nombreCarpeta = "Auto";
                 estradoElectronico.setTipoAuto(true);
                 estradoElectronico.setTipoResolucionOp(false);
                 estradoElectronico.setTipoOtro(false);                 
                 nombreFileName = "documentoA0";
                  nombreFecha = "fechaAnexoA0"; 
                  multiple = true;
             }
             if(uploadRequest.getParameter("auto").equals("Resolucion")) {
                 nombreCarpeta = "Resolucion";
                 estradoElectronico.setTipoAuto(false);
                 estradoElectronico.setTipoResolucionOp(true);
                 estradoElectronico.setTipoOtro(false);
                 
                 nombreFileName = "documento";
                nombreFecha = "fechaAnexo"; 
                multiple = false;
                
             }
             if(uploadRequest.getParameter("auto").equals("Otro")) {
                 nombreCarpeta = "Otro";
                 estradoElectronico.setTipoAuto(false);
                 estradoElectronico.setTipoResolucionOp(false);
                 estradoElectronico.setTipoOtro(true);
                 
                 nombreFileName = "documentoO0";
                  nombreFecha = "fechaAnexo0"; 
                  multiple = true;
             }
         }
        
        if(nombreCarpeta.equals(tipoEstradoStr)){
         
        //Obtener informacion de los Actor 
        
        List<String> listActor = new ArrayList<String>();
        String actorStr = uploadRequest.getParameter("actor");
         
        if(actorStr!=null && !actorStr.equals(""))
            listActor.add(actorStr);    
        
        for(int i=1;i<=10;i++)
        {
              actorStr = uploadRequest.getParameter("actor"+i+"");
              if(actorStr!=null && !actorStr.equals(""))
                  listActor.add(actorStr); 
        }
        
        String fechaNotificacionInicial =  uploadRequest.getParameter("fechaNotificacionInicial");            
        String fechaNotificacionStr =  uploadRequest.getParameter("fechaNotificacion");    
        
        
        String auxCad = "";
        
        for(int i=0;i<fechaNotificacionStr.length();i++){
          if(fechaNotificacionStr.charAt(i)=='"')    
              continue;
          else
              auxCad+=fechaNotificacionStr.charAt(i);
        }
        fechaNotificacionStr = auxCad;
        
        String cademaStr = "";
        for(int i=0;i<fechaNotificacionStr.length();i++){
            if(!Character.isDigit(fechaNotificacionStr.charAt(i)))
            {
                if(fechaNotificacionStr.charAt(i)!='-' ){
                     break ;
                }else{
                     cademaStr+="/";
                }
            }
            else{
                 cademaStr+=fechaNotificacionStr.charAt(i);
            }
        }
    
        String [] cadenaFecha = EstradosElectronicosHelper.obtenerFechaFormato(cademaStr);
        String cadenaFin = cadenaFecha[2]+"-"+cadenaFecha[1]+"-"+cadenaFecha[0];        estradoElectronico.setHoraNotificacion(uploadRequest.getParameter("fNotificacion"));
        estradoElectronico.setTipoMedio(uploadRequest.getParameter("tipoMedioTxt"));
        estradoElectronico.setActor(listActor);
        estradoElectronico.setOrganoEmiteResolucion(uploadRequest.getParameter("organoTxt"));
        estradoElectronico.setFechaNotificacion(obtenerFechaStr(uploadRequest.getParameter("fechaNotificacion")));    
        estradoElectronico.setActoImpugnado(uploadRequest.getParameter("acto"));
        estradoElectronico.setEjercicio(uploadRequest.getParameter("ejercicioTxt"));
        estradoElectronico.setPeriodoResolucion(uploadRequest.getParameter("periodoTxt"));
        estradoElectronico.setNumeroExpediente(uploadRequest.getParameter("numeroExpediente"));
        estradoElectronico.setMateriaResolucion(uploadRequest.getParameter("materiaResolucionTxt"));
        estradoElectronico.setTipoResolucion(uploadRequest.getParameter("tipoResolucionTxt"));
        estradoElectronico.setFechaResolucion(obtenerFechaStr(uploadRequest.getParameter("fechaResolucion")));
        estradoElectronico.setSentidoResolucion(uploadRequest.getParameter("sentidoResolucionTxt"));
        estradoElectronico.setFechaValidacion(obtenerFechaStr(uploadRequest.getParameter("fechaValidacion")));
        estradoElectronico.setAreaResponsable(uploadRequest.getParameter("areaResponsable"));
        estradoElectronico.setFechaActulizacion(obtenerFechaStr(uploadRequest.getParameter("fechaActualizacion")));
        estradoElectronico.setNota(uploadRequest.getParameter("nota"));
        
        List<Documento> listDocumento = new ArrayList<Documento>();
        Documento documento = null;
        List<AtributoArchivo> listFileEntry = new ArrayList<AtributoArchivo>();        
        List<String> listValidacion = new ArrayList<String>();
    
        String nombreP = null;
        File entrada = null;
        FileEntry fileP = null;
        
        if(estradoElectronico.getTipoAuto() == true || estradoElectronico.isTipoOtro() == true ){
            
            folderEstrados = Filesandfolders.getFolder(nombreCarpeta, themeDisplay, serviceContext, parentFolderId);
            
            if(estradoElectronico.getTipoAuto() == true){
                try {
                    File fileTest = null;
                    
                    try{
                     
                        fileTest =  uploadRequest.getFile("documentoA0");
                     
                    }catch(Exception e){}
                    
                    if(fileTest!=null){
                        
                        nombreP = uploadRequest.getParameter("etiqueta0AutoDoc");
                        
                        try{
                         fileP = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), nombreP);        
                        }catch(Exception e){}
                        
                        if(fileP==null){
                            folderEstrados = Filesandfolders.getFolder(tipoEstradoStr, themeDisplay, serviceContext, parentFolderId);
                            try{
                                 System.out.println("--");
                                 documento = new Documento();
                                 documento.setDocumento(uploadRequest.getFile("documentoA0"));
                                 String nomDocumento = uploadRequest.getParameter("etiqueta0AutoDoc");
                                 if(nomDocumento.equals(""))
                                     nomDocumento = uploadRequest.getFileName("documentoA0");                                 
                                 documento.setNombreDocumento(nomDocumento);    
                                 documento.setFechaDoc(uploadRequest.getParameter("fechaDocumento0"));
                                 listDocumento.add(documento);
                            }catch(Exception e){}
                        }else{                    
                         documento = new Documento();
                         documento.setDocumento(uploadRequest.getFile("documentoA0"));
                         documento.setNombreDocumento(uploadRequest.getParameter("etiqueta0AutoDoc"));        
                         documento.setFechaDoc(uploadRequest.getParameter("fechaDocumento0"));
                         listDocumento.add(documento);
                        }                        
                        listValidacion.add("1");
                    }else{
                        
                        entrada = uploadRequest.getFile("documentoA0");
                        nombreP = uploadRequest.getFileName("documentoA0");
                        String o = uploadRequest.getParameter("etiqueta0AutoDoc");
                        FileEntry fileaux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), o);                        
                        documento = new Documento();
                        documento.setDocumento(uploadRequest.getFile("documentoA0"));
                        documento.setNombreDocumento(uploadRequest.getFileName("documentoA0"));        
                        documento.setFechaDoc(uploadRequest.getParameter("fechaDocumento0"));
                        listDocumento.add(documento);
                        
                        fileP = DLAppLocalServiceUtil.updateFileEntry(userId, fileaux.getFileEntryId(), nombreP, "", nombreP, "", "0.0", true, entrada, serviceContext);
                        listValidacion.add("1");
                    }
                    
                    estradoElectronico.setFechaPrimerDoc(obtenerFechaStr(uploadRequest.getParameter("fechaDocumento0")));
                    
                } catch (PortalException | SystemException e) {
                    listValidacion.add("0");
                }
            }else{
                try {
                    if(uploadRequest.getFile("documentoO0").getTotalSpace() == 0){
                        nombreP = uploadRequest.getParameter("etiqueta0OtroDoc");    
                        fileP = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), nombreP);
                        
                        documento = new Documento();
                        documento.setDocumento(uploadRequest.getFile("documentoO0"));
                        documento.setNombreDocumento(uploadRequest.getParameter("etiqueta0OtroDoc"));        
                        documento.setFechaDoc(uploadRequest.getParameter("fechaAnexo0"));
                        listDocumento.add(documento);
                        
                    }else{
                        entrada = uploadRequest.getFile("documentoO0");
                        nombreP = uploadRequest.getFileName("documentoO0");
                        String o = uploadRequest.getParameter("etiqueta0OtroDoc");
                        //FileEntry fileaux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), o);
                        //fileP = DLAppLocalServiceUtil.updateFileEntry(userId, fileaux.getFileEntryId(), nombreP, "", nombreP, "", "0.0", true, entrada, serviceContext);
//                        listValidacion.add("1");
                        
                        documento = new Documento();
                        documento.setDocumento(uploadRequest.getFile("documentoO0"));
                        documento.setNombreDocumento(uploadRequest.getFileName("documentoO0"));        
                        documento.setFechaDoc(uploadRequest.getParameter("fechaAnexo0"));
                        listDocumento.add(documento);
                    }
                    
                    estradoElectronico.setFechaPrimerDoc(obtenerFechaStr(uploadRequest.getParameter("fechaAnexo0")));
                    
                } catch (PortalException | SystemException e) {
                    listValidacion.add("0");
                }
            }
            
            
            //int tam = Integer.parseInt(uploadRequest.getParameter("tamAnexos"));
            
            for(int i=1;i<15;i++){
                documento = new Documento();
                if(uploadRequest.getFile("documento"+i).getTotalSpace() == 0){
                    String etiquetaStr = uploadRequest.getParameter("etiqueta"+i+"Doc");                    
                    if(!etiquetaStr.equals("")){
                     documento.setDocumento(uploadRequest.getFile("documento"+i));
                     documento.setNombreDocumento(uploadRequest.getParameter("etiqueta"+i+"Doc"));                     
                     documento.setFecha(obtenerFechaStr(uploadRequest.getParameter("fechaAnexo"+i)));    
                     listDocumento.add(documento);
                    }
                }else{
                    String etiquetaStr = uploadRequest.getFileName("documento"+i);
                    if(!etiquetaStr.equals("")){
                     documento.setDocumento(uploadRequest.getFile("documento"+i));
                     documento.setNombreDocumento(uploadRequest.getFileName("documento"+i));                 
                     documento.setFecha(obtenerFechaStr(uploadRequest.getParameter("fechaAnexo"+i)));    
                     listDocumento.add(documento);
                    }    
                }
            }
            
            ////////// validacion para documento editados ////
            
            List<Documento> listDocumentoEditar = new ArrayList<Documento>();
            Documento documentoAux= new Documento();
            boolean insertar = false;
            
            for (Documento doc : listDocumento) {
                for (Documento docEditado : getListaDocumentoValor()) {
                    if (doc.getNombreDocumento().equals(docEditado.getNombreDocumento())) {
                        insertar = true;
                        documentoAux = docEditado;
                        break;
                    } else {
                        insertar = false;
                    }
                }
                if (insertar) {
                    listDocumentoEditar.add(documentoAux);
                }
                 else{
                     listDocumentoEditar.add(doc);
                }
            }
            
            //Elimino documentos Pasados
            
            for(Documento acuerdo : getListaDocumentoValor()){
                    try {                    
                      FileEntry fileEntry = DLAppLocalServiceUtil.getFileEntry(groupId,EstradosElectronicosHelper.obtenerIdDocumento(acuerdo.getNombreDocumento())  , EstradosElectronicosHelper.obtenerNombreDocumento(acuerdo.getNombreDocumento()));
                      if(fileEntry!=null){
                       DLAppLocalServiceUtil.deleteFileEntry(fileEntry.getFileEntryId());
                      }
                  } catch (PortalException e) { 
                       e.printStackTrace();                 
                  
                  } catch (SystemException e) {
                      
                      e.printStackTrace(); 
                  }    
             }
            
            
            /////////////////////////////////////////////            //Guarda el documento
            listFileEntry = new ArrayList<AtributoArchivo>();
            
            //if(15 != 0){
                for(Documento doc :listDocumentoEditar){
                    FileEntry file = null;
                        try {
                            if(doc.getDocumento()!=null && doc.getDocumento().length() == 0){
                                if(doc.getNombreDocumento() != ""){
                                    
                                    file = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), doc.getNombreDocumento());//no lo encuentra
                                    
                                    if(file==null){
                                        folderEstrados = Filesandfolders.getFolder("Auto", themeDisplay, serviceContext, parentFolderId);
                                        file = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), doc.getNombreDocumento());//no lo encuentra
                                        
                                    }
                                    
                                    AtributoArchivo atributoArchivo =  new AtributoArchivo();
                                    atributoArchivo.setFileEntry(file);                     
                                    atributoArchivo.setFechaDocumento(doc.getFecha());
                                    listFileEntry.add(atributoArchivo);
                                }
                            }else{
                                try{
                                    FileEntry aux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), doc.getNombreDocumento());
                                    file = DLAppLocalServiceUtil.updateFileEntry(userId, aux.getFileEntryId(), doc.getNombreDocumento(), "", doc.getNombreDocumento(), "", "0.0", true, doc.getDocumento(), serviceContext);
                                    
                                    AtributoArchivo atributoArchivo =  new AtributoArchivo();
                                    atributoArchivo.setFileEntry(file);                     
                                    atributoArchivo.setFechaDocumento(doc.getFecha());
                                    listFileEntry.add(atributoArchivo);
                                    
                                }catch(PortalException | SystemException e){
                                    file = DLAppLocalServiceUtil.addFileEntry(
                                            userId, themeDisplay.getScopeGroupId(), folderEstrados.getFolderId(), "" , "", 
                                            doc.getNombreDocumento() , "" , "0.0", doc.getDocumento() , serviceContext);
                                    
                                    AtributoArchivo atributoArchivo =  new AtributoArchivo();
                                    atributoArchivo.setFileEntry(file);                     
                                    atributoArchivo.setFechaDocumento(doc.getFecha());
                                    listFileEntry.add(atributoArchivo);
                                }
//                                if(doc.getNombreDocumento() == ""){
//                                    file = DLAppLocalServiceUtil.addFileEntry(
//                                            userId, themeDisplay.getScopeGroupId(), folderEstrados.getFolderId(), "" , "", 
//                                            doc.getNombreDocumento() , "" , "0.0", doc.getDocumento() , serviceContext);
//                                }else if(doc.getNombreDocumento() == ""){
//                                    FileEntry aux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), doc.getNombreDocumento());
//                                    file = DLAppLocalServiceUtil.updateFileEntry(userId, aux.getFileEntryId(), doc.getNombreDocumento(), "", doc.getNombreDocumento(), "", "0.0", true, doc.getDocumento(), serviceContext);
//                                }
                            }
                            
                        
                            listValidacion.add("1");
                            
                        } catch (PortalException | SystemException e) {
                            try {
                                file = DLAppLocalServiceUtil.addFileEntry(
                                        userId, themeDisplay.getScopeGroupId(), folderEstrados.getFolderId(), "" , "", 
                                        doc.getNombreDocumento() , "" , "0.0", doc.getDocumento() , serviceContext);
                                
                                AtributoArchivo atributoArchivo =  new AtributoArchivo();
                                atributoArchivo.setFileEntry(file);                     
                                atributoArchivo.setFechaDocumento(doc.getFecha());
                                listFileEntry.add(atributoArchivo);
                                
                            } catch (PortalException | SystemException e1) {
                                e1.printStackTrace();
                            }
                        }
                }
            //}
        }else{
            
          //Elimino documentos Pasados
            
            for(Documento acuerdo : getListaDocumentoValor()){
                    try {                    
                      FileEntry fileEntry = DLAppLocalServiceUtil.getFileEntry(groupId,EstradosElectronicosHelper.obtenerIdDocumento(acuerdo.getNombreDocumento())  , EstradosElectronicosHelper.obtenerNombreDocumento(acuerdo.getNombreDocumento()));
                      if(fileEntry!=null){
                       DLAppLocalServiceUtil.deleteFileEntry(fileEntry.getFileEntryId());
                      }
                  } catch (PortalException e) { 
                       e.printStackTrace();                 
                  
                  } catch (SystemException e) {
                      
                      e.printStackTrace(); 
                  }    
             }
            
            
            folderEstrados = Filesandfolders.getFolder(nombreCarpeta, themeDisplay, serviceContext, parentFolderId);
            
            if(folderEstrados==null){
                folderEstrados = Filesandfolders.getFolder(tipoEstradoStr, themeDisplay, serviceContext, parentFolderId);
                nombreCarpeta = tipoEstradoStr;
            }
            
            try {
                
                File docFile = null;
                try{
                    docFile = uploadRequest.getFile("documento");
                }catch(Exception e){}
                
                
                if(docFile != null){
                    nombreP = uploadRequest.getParameter("etiquetaDocumento");    
                    fileP = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), nombreP);
                    
                    AtributoArchivo atributoArchivo =  new AtributoArchivo();
                    atributoArchivo.setFileEntry(fileP);                
                    listFileEntry.add(atributoArchivo);
                    
                    listValidacion.add("1");
                }else{
                    entrada = uploadRequest.getFile("documento");
                    nombreP = uploadRequest.getFileName("documento");
                    String o = uploadRequest.getParameter("etiquetaDocumento");    
                    if(o.equals("")){ o = nombreP; }
                    FileEntry fileaux = DLAppLocalServiceUtil.getFileEntry(groupId, folderEstrados.getFolderId(), o);
                    fileP = DLAppLocalServiceUtil.updateFileEntry(userId, fileaux.getFileEntryId(), nombreP, "", nombreP, "", "0.0", true, entrada, serviceContext);                    AtributoArchivo atributoArchivo =  new AtributoArchivo();
                    atributoArchivo.setFileEntry(fileaux);                
                    listFileEntry.add(atributoArchivo);
                    
                    listValidacion.add("1");
                }
            }catch (PortalException | SystemException e) {
                
                entrada = uploadRequest.getFile("documento");
                nombreP = uploadRequest.getFileName("documento");
                String o = uploadRequest.getParameter("etiquetaDocumento");    
                if(o.equals("")){ o = nombreP; }
            
                try {                    FileEntry fileaux = DLAppLocalServiceUtil.addFileEntry(
                                userId, themeDisplay.getScopeGroupId(), folderEstrados.getFolderId(), "" , "" , 
                                o , "" , "0.0", entrada , serviceContext);
                    
                    AtributoArchivo atributoArchivo =  new AtributoArchivo();
                    atributoArchivo.setFileEntry(fileaux);                
                    listFileEntry.add(atributoArchivo);
                    
                } catch (PortalException e1) { e1.printStackTrace(); } catch (SystemException e1) { e1.printStackTrace(); }
                
                listValidacion.add("0");
            }
        }
        
        
        StringBuffer contenido = new StringBuffer();
        JournalArticle journal = findArticle(estradoElectronico.getArticleId());
        Double version = journal.getVersion();
        contenido.append(EstradosElectronicosHelper.editarContenido(estradoElectronico, themeDisplay, folderEstrados, listFileEntry, multiple, journal, fileP));
        Map<Locale, String> titleMap = getNameMap(nombreCarpeta + "_" + estradoElectronico.getNumeroExpediente());
        Map<Locale, String> descripcionMap = getNameMap(nombreCarpeta + "_" + estradoElectronico.getNumeroExpediente());         
        long folderTSesion = Filesandfolders.getJournalFolder(nombreCarpeta, themeDisplay, parentFolderId,serviceContext,userId, groupId ,nombreCarpeta,"");
         
        boolean agregarContenido = false;
         for(String cade : listValidacion){
             if(cade.equals("0")){
                 agregarContenido = false;
                 break;
             }else{
                 agregarContenido=true;
             }
         }
        
          try {
             JournalArticleLocalServiceUtil.updateArticle(userId, groupId, folderTSesion, journal.getArticleId(), version, titleMap, descripcionMap, contenido.toString(), "", serviceContext);
          } catch (PortalException e) { e.printStackTrace(); } catch (SystemException e) { e.printStackTrace(); }        
      
        }
    }