Message Boards
Edit document
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(); }
}
}