/** * Audita el paso a histórico de un documento vital. * * @param service Servicio a auditar. * @param docVital Documento vital. */ public static void auditaPasoAHistoricoDocumentoVital( Locale locale, IServiceBase service, InfoBDocumentoVitalExtVO docVital) { // Evento de auditoría LoggingEvent event = getLogginEvent(service, ArchivoActions.DOCUMENTOS_VITALES_MODULE_PASO_A_HISTORICO); // Detalle de auditoría DataLoggingEvent data = event.getDataLoggingEvent(ArchivoObjects.OBJECT_DOCUMENTO_VITAL, docVital.getId()); // Detalles de auditoría data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_ID_BD_TERCEROS, docVital.getIdBdTerceros()); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_NUM_IDENTIDAD, docVital.getNumIdentidad()); data.addDetalle(locale, ArchivoDetails.DOCUMENTOS_VITALES_IDENTIDAD, docVital.getIdentidad()); data.addDetalle(locale, ArchivoDetails.DOCUMENTOS_VITALES_ID_TIPO, docVital.getIdTipoDocVit()); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_NOMBRE_TIPO, docVital.getNombreTipoDocVit()); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_FECHA_CAD, TypeConverter.toString(docVital.getFechaCad())); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_ESTADO, Messages.getString( DocumentosVitalesConstants.LABEL_DOCVITALES_ESTADO + "." + docVital.getEstadoDocVit(), locale)); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_FECHA_CR, TypeConverter.toString(docVital.getFechaCr())); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_ID_USUARIO_CR, docVital.getIdUsuarioCr()); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_FECHA_VIG, TypeConverter.toString(docVital.getFechaVig())); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_ID_USUARIO_VIG, docVital.getIdUsuarioVig()); data.addDetalle(locale, ArchivoDetails.DOCUMENTOS_VITALES_ID_FICH, docVital.getIdFich()); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_NOMBRE_FICH, docVital.getNombreOrgFich()); data.addDetalle(locale, ArchivoDetails.DOCUMENTOS_VITALES_EXT_FICH, docVital.getExtFich()); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_TAMANO_FICH, new Double(docVital.getTamanoFich()).toString()); data.addDetalle( locale, ArchivoDetails.DOCUMENTOS_VITALES_OBSERVACIONES, docVital.getObservaciones()); }
/** * Descarga el fichero del documento para mostrarlo en un IFrame. * * @param mapping {@link ActionMapping} con los mapeos asociado. * @param form {@link ActionForm} asociado al action. * @param request {@link HttpServletRequest} * @param response {@link HttpServletResponse} */ public void downloadIFrameExecuteLogic( ActionMapping mappings, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { try { logger.info("Inicio de downloadExecuteLogic"); // Leer el identificador del documento String id = request.getParameter(Constants.ID); if (logger.isInfoEnabled()) logger.info("Id Documento: " + id); // Leer el identificador del objeto String idObjeto = request.getParameter("idObjeto"); if (logger.isInfoEnabled()) logger.info("Id Objeto: " + idObjeto); // Leer el tipo de objeto int tipo = TypeConverter.toInt(request.getParameter("tipoObjeto"), TipoObjeto.DESCRIPTOR); if (logger.isInfoEnabled()) logger.info("Tipo Objeto: " + tipo); DocDocumentoExtVO fichero = null; if (StringUtils.isNotBlank(id)) fichero = getGestionDocumentosElectronicosBI(request).getDocumentoExt(tipo, idObjeto, id); if (fichero != null) downloadIFrame(response, fichero); else { obtenerErrores(request, true) .add( ActionErrors.GLOBAL_MESSAGE, new ActionError( DocumentosConstants.ERROR_DOC_ELECTRONICOS_DOCUMENTO_NO_ENCONTRADO)); setReturnActionFordward(request, mappings.findForward("iframeError")); } } catch (Exception e) { obtenerErrores(request, true) .add( ActionErrors.GLOBAL_MESSAGE, new ActionError( DocumentosConstants.ERROR_DOC_ELECTRONICOS_DOCUMENTO_EXTERNO_NO_ENCONTRADO)); setReturnActionFordward(request, mappings.findForward("iframeError")); } }
/** * Elimina el documento electrónico. * * @param mapping {@link ActionMapping} con los mapeos asociado. * @param form {@link ActionForm} asociado al action. * @param request {@link HttpServletRequest} * @param response {@link HttpServletResponse} */ protected void removeExecuteLogic( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { logger.info("Inicio de removeExecuteLogic"); // Leer el identificador del documento String id = request.getParameter(Constants.ID); if (logger.isInfoEnabled()) logger.info("Id Documento: " + id); // Leer el identificador del objeto String idObjeto = request.getParameter("idObjeto"); if (logger.isInfoEnabled()) logger.info("Id Objeto: " + idObjeto); // Leer el tipo de objeto int tipoObjeto = TypeConverter.toInt(request.getParameter("tipoObjeto"), TipoObjeto.DESCRIPTOR); if (logger.isInfoEnabled()) logger.info("Tipo Objeto: " + tipoObjeto); // Obtener el servicio GestionDocumentosElectronicosBI documentosBI = getGestionDocumentosElectronicosBI(request); // Obtener la información del documento DocDocumentoVO documento = documentosBI.getDocumento(tipoObjeto, idObjeto, id); DataClfDocYRepEcm dataClfDocYRepEcm = null; try { // Información del objeto if (tipoObjeto == TipoObjeto.DESCRIPTOR) { // Obtener el identificador de la ficha de los clasificadores // por defecto dataClfDocYRepEcm = documentosBI.getIdFichaClfDocYRepEcmDescriptor(idObjeto); if (StringUtils.isEmpty(dataClfDocYRepEcm.getIdRepEcm())) throw new DocElectronicosException( DocElectronicosException .XNO_SE_PUEDE_ELIMINAR_DOCUMENTO_XFALTA_REPOSITORIO_ECM_DESCRIPTOR); } else { dataClfDocYRepEcm = documentosBI.getIdFichaClfDocYRepEcmElementoCF(idObjeto); if (StringUtils.isEmpty(dataClfDocYRepEcm.getIdRepEcm())) throw new DocElectronicosException( DocElectronicosException .XNO_SE_PUEDE_ELIMINAR_DOCUMENTO_XFALTA_REPOSITORIO_ECM_ELEMENTO_CUADRO); } // Eliminar el documento documentosBI.removeDocumento(documento); // Actualizar el árbol de documentos request.setAttribute(DocumentosConstants.REFRESH_VIEW_KEY, Boolean.TRUE); // Volver al clasificador padre setReturnActionFordward( request, redirectForwardMethod( request, "/clasificador", "method", "retrieve" + (documento.getIdClfPadre() != null ? "&id=" + documento.getIdClfPadre() : "") + (documento.getIdObjeto() != null ? "&idObjeto=" + documento.getIdObjeto() : "") + "&tipoObjeto=" + tipoObjeto)); } catch (DocElectronicosException e) { guardarError(request, e); setReturnActionFordward( request, redirectForwardMethod( request, "/documento", "method", "retrieve" + (documento.getId() != null ? "&id=" + documento.getId() : "") + (documento.getIdObjeto() != null ? "&idObjeto=" + documento.getIdObjeto() : "") + "&tipoObjeto=" + documento.getTipoObjeto())); } }
/** * Muestra el formulario del documento electrónico. * * @param mapping {@link ActionMapping} con los mapeos asociado. * @param form {@link ActionForm} asociado al action. * @param request {@link HttpServletRequest} * @param response {@link HttpServletResponse} */ protected void formExecuteLogic( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { logger.info("Inicio de formExecuteLogic"); // Leer el identificador del clasificador String id = request.getParameter(Constants.ID); if (logger.isInfoEnabled()) logger.info("Id Clasificador: " + id); // Leer el identificador del objeto String idObjeto = request.getParameter("idObjeto"); if (logger.isInfoEnabled()) logger.info("Id Objeto: " + idObjeto); // Leer el tipo de objeto int tipoObjeto = TypeConverter.toInt(request.getParameter("tipoObjeto"), TipoObjeto.DESCRIPTOR); if (logger.isInfoEnabled()) logger.info("Tipo Objeto: " + tipoObjeto); // Leer el identificador del clasificador String idClfPadre = request.getParameter("idClfPadre"); if (logger.isInfoEnabled()) logger.info("Id Clasificador Padre: " + idClfPadre); if (StringUtils.isNotBlank(id)) { // // Guardar el enlace a la página // saveCurrentInvocation(KeysClientsInvocations.DOCUMENTOS_ELECTRONICOS_DOCUMENTO_EDIT, // request, getCustomConfigureView(request)); saveCurrentInvocation(KeysClientsInvocations.DOCUMENTOS_ELECTRONICOS_DOCUMENTO_EDIT, request); // Leer la información del documento DocDocumentoVO documento = getGestionDocumentosElectronicosBI(request).getDocumento(tipoObjeto, idObjeto, id); if (logger.isInfoEnabled()) logger.info("DocDocumentoVO: " + documento); // Guardar la información del formulario ((DocumentoForm) form).set(documento); } else { // // Guardar el enlace a la página // saveCurrentInvocation(KeysClientsInvocations.DOCUMENTOS_ELECTRONICOS_DOCUMENTO_FORM, // request, getCustomConfigureView(request)); saveCurrentInvocation(KeysClientsInvocations.DOCUMENTOS_ELECTRONICOS_DOCUMENTO_FORM, request); ((DocumentoForm) form).setIdObjeto(idObjeto); ((DocumentoForm) form).setTipoObjeto(tipoObjeto); } try { DataClfDocYRepEcm dataClfDocYRepEcm = null; ServiceRepository services = ServiceRepository.getInstance(getServiceClient(request)); // Información del objeto if (tipoObjeto == TipoObjeto.DESCRIPTOR) { // Obtener el identificador de la ficha de los clasificadores // por defecto dataClfDocYRepEcm = services .lookupGestionDocumentosElectronicosBI() .getIdFichaClfDocYRepEcmDescriptor(idObjeto); if (StringUtils.isEmpty(dataClfDocYRepEcm.getIdRepEcm())) throw new DocElectronicosException( DocElectronicosException .XNO_SE_PUEDE_REALIZAR_OPERACION_FALTA_REPOSITORIO_ECM_DESCRIPTOR); request.setAttribute( DocumentosConstants.DESCRIPTOR_KEY, getGestionDescripcionBI(request).getDescriptorExt(idObjeto)); } else // if (tipoObjeto == TipoObjeto.ELEMENTO_CF) { dataClfDocYRepEcm = getGestionDocumentosElectronicosBI(request).getIdFichaClfDocYRepEcmElementoCF(idObjeto); if (StringUtils.isEmpty(dataClfDocYRepEcm.getIdRepEcm())) throw new DocElectronicosException( DocElectronicosException .XNO_SE_PUEDE_REALIZAR_OPERACION_FALTA_REPOSITORIO_ECM_ELEMENTO_CUADRO); ElementoCuadroClasificacionVO elemento = getGestionCuadroClasificacionBI(request).getElementoCuadroClasificacion(idObjeto); if (elemento != null) { switch (elemento.getTipo()) { case ElementoCuadroClasificacion.TIPO_UNIDAD_DOCUMENTAL: UnidadDocumentalToPO udocTransformer = new UnidadDocumentalToPO(services); UnidadDocumentalVO udoc = getGestionUnidadDocumentalBI(request).getUnidadDocumental(idObjeto); request.setAttribute( DocumentosConstants.UNIDAD_DOCUMENTAL_KEY, udocTransformer.transform(udoc, getAppUser(request))); break; case ElementoCuadroClasificacion.TIPO_SERIE: SerieToPO serieTransformer = SerieToPO.getInstance(services); SerieVO serie = getGestionSeriesBI(request).getSerie(idObjeto); request.setAttribute( DocumentosConstants.SERIE_KEY, serieTransformer.transform(serie, getAppUser(request))); break; } } } setReturnActionFordward(request, mapping.findForward("editar_documento")); } catch (DocElectronicosException e) { guardarError(request, e); goBackExecuteLogic(mapping, form, request, response); } }
public void retrieveCodeLogic( ActionMapping mappings, ActionForm form, HttpServletRequest request, HttpServletResponse response, String idDocumento, String idObjeto, String paramTipoObjeto) { if (logger.isInfoEnabled()) logger.info("Id Documento: " + idDocumento); ActionErrors errors = getErrors(request, true); // Leer el tipo de objeto int tipoObjeto = TypeConverter.toInt(paramTipoObjeto, -1); if (tipoObjeto < 0) { Integer tipoObjetoInteger = (Integer) getFromTemporalSession(request, DocumentosConstants.OBJECT_TYPE_KEY); tipoObjeto = (tipoObjetoInteger != null ? tipoObjetoInteger.intValue() : TipoObjeto.DESCRIPTOR); } if (logger.isInfoEnabled()) logger.info("Tipo Objeto: " + tipoObjeto); // Leo el parametro para saber si estoy en la descripcion de la ficha de // documentos con enlace interno. int descripcion = TypeConverter.toInt(request.getParameter("descripcion"), -1); ServiceRepository services = ServiceRepository.getInstance(getServiceClient(request)); DocDocumentoVO documento = null; if (StringUtils.isNotBlank(idDocumento)) { // Servicio de gestión de documentos GestionDocumentosElectronicosBI docsBI = services.lookupGestionDocumentosElectronicosBI(); // Leer la información del documento if (descripcion > 0) documento = docsBI.getDocumentoByIdInterno(tipoObjeto, idObjeto, idDocumento); else documento = docsBI.getDocumento(tipoObjeto, idObjeto, idDocumento); if (logger.isInfoEnabled()) logger.info("DocDocumentoVO: " + documento); // Guardar la información del documento ((DocumentoForm) form).set(documento); if (documento != null) { List listaDocumentos = getGestionDocumentosElectronicosBI(request) .getDocumentosVisiblesDesdeCuadro( tipoObjeto, documento.getIdObjeto(), documento.getIdClfPadre()); NavegadorElementosVO navegadorVO = new NavegadorElementosVO(listaDocumentos, documento.getId()); request.setAttribute(DocumentosConstants.NAVEGADOR_DOCUMENTOS_KEY, navegadorVO); } else { errors.add( ActionErrors.GLOBAL_MESSAGE, new ActionError(DocumentosConstants.ERROR_DOC_ELECTRONICOS_DOCUMENTO_NO_ENCONTRADO)); } // Carga la información del documento electrónico. request.setAttribute(DocumentosConstants.FILE_INFO_KEY, docsBI.getInfoFichero(documento)); // Obtener la información del clasificador padre if (StringUtils.isNotBlank(documento.getIdClfPadre())) request.setAttribute( DocumentosConstants.FOLDER_KEY, docsBI.getClasificador(tipoObjeto, idObjeto, documento.getIdClfPadre())); } else { ((DocumentoForm) form).setIdObjeto(idObjeto); ((DocumentoForm) form).setTipoObjeto(tipoObjeto); } // Información del objeto if (tipoObjeto == TipoObjeto.DESCRIPTOR) { request.setAttribute( DocumentosConstants.DESCRIPTOR_KEY, getGestionDescripcionBI(request).getDescriptorExt(idObjeto)); } else // if (tipoObjeto == TipoObjeto.ELEMENTO_CF) { ElementoCuadroClasificacionVO elemento = getGestionCuadroClasificacionBI(request) .getElementoCuadroClasificacion(documento.getIdObjeto()); if (elemento != null) { switch (elemento.getTipo()) { case ElementoCuadroClasificacion.TIPO_UNIDAD_DOCUMENTAL: UnidadDocumentalToPO udocTransformer = new UnidadDocumentalToPO(services); UnidadDocumentalVO udoc = getGestionUnidadDocumentalBI(request).getUnidadDocumental(documento.getIdObjeto()); request.setAttribute( DocumentosConstants.UNIDAD_DOCUMENTAL_KEY, udocTransformer.transform(udoc, getAppUser(request))); break; case ElementoCuadroClasificacion.TIPO_SERIE: SerieToPO serieTransformer = SerieToPO.getInstance(services); SerieVO serie = getGestionSeriesBI(request).getSerie(idObjeto); setInTemporalSession( request, DocumentosConstants.SERIE_KEY, serieTransformer.transform(serie, getAppUser(request))); break; } } else { errors.add( ActionErrors.GLOBAL_MESSAGE, new ActionError(DocumentosConstants.ERROR_DOC_ELECTRONICOS_DOCUMENTO_NO_ENCONTRADO)); } } if (errors != null && !errors.isEmpty()) { ErrorsTag.saveErrors(request, errors); goBackExecuteLogic(mappings, form, request, response); } else { setReturnActionFordward(request, mappings.findForward("ver_documento")); } }