/* * (non-Javadoc) * * @see * common.bi.GestionUnidadDocumentalBI#modificarSignaturaUDoc(java.lang. * String, java.lang.String) */ public void modificarSignaturaUDoc(UnidadDocumentalVO unidadDocumentalVO, String nuevaSignatura) { // IElementoCuadroClasificacion elementoUDoc = // _elementoCuadroClasificacionDBEntity.getElementoCuadroClasificacion(idUDoc); // ElementoCuadroClasificacionVO elementoPadreUDoc = // elementoUDoc.getParentElement(); // NivelCFVO nivelPadre = // _nivelDBEntity.getNivelCF(elementoPadreUDoc.getIdNivel()); // // String nuevoCodigoReferencia = // _elementoCuadroClasificacionDBEntity.composeCodigoReferencia(nivelPadre, // elementoPadreUDoc // .getFinalCodRefPadre(), elementoPadreUDoc.getCodigo(), // elementoPadreUDoc // .getCodRefFondo(), nuevaSignatura); String antiguoCodigoReferencia = unidadDocumentalVO.getCodReferencia(); String antiguaSignatura = unidadDocumentalVO.getCodigo(); String codigoSinSignatura = antiguoCodigoReferencia.substring( 0, antiguoCodigoReferencia.length() - antiguaSignatura.length()); StringBuffer nuevoCodigo = new StringBuffer(codigoSinSignatura).append(nuevaSignatura); Map colsToUPdate = new HashMap(); colsToUPdate.put(ElementoCuadroClasificacionDBEntityImpl.CODIGO_FIELD, nuevaSignatura); colsToUPdate.put(ElementoCuadroClasificacionDBEntityImpl.CODIGO_REFERENCIA_FIELD, nuevoCodigo); _elementoCuadroClasificacionDBEntity.updateFieldsECF(unidadDocumentalVO.getId(), colsToUPdate); }
/** * Elimina las unidades documentales prestadas que no han sido devueltas tras dos reclamaciones. * * @throws Exception */ public void eliminarUnidadesDocumentalesPrestadasNoDevueltas() throws Exception { // Auditoria LoggingEvent logEvent = getLogginEvent(ArchivoActions.FONDOS_MODULE_BAJA_ELEMENTO); Locale locale = getServiceClient().getLocale(); // Comprobar permisos checkPermission(FondosSecurityManager.ELIMINACION_ELEMENTO_ACTION); // Lista de unidades documentales a publicar List udocs = _unidadDocumentalDBEntity.getUnidadesDocumentalesPrestadasNoDevueltas(); // Eliminar las unidades documentales UnidadDocumentalVO udoc; for (int i = 0; i < udocs.size(); i++) { udoc = (UnidadDocumentalVO) udocs.get(i); iniciarTransaccion(); // Eliminar la unidad documental eliminarUnidadDocumental(udoc, MotivoEliminacionUnidadInstalacion.WS_PRESTADAS_NO_DEVUELTAS); // Auditoría AuditFondos.addDataLogRemove(locale, logEvent, udoc, null); if (logger.isDebugEnabled()) logger.debug("Eliminación de la unidad documental con id: " + udoc.getId()); commit(); } }
/** * Publica las unidades documentales con acceso restringido que han sobrepasado la fecha de * restricción. */ public void publicarUnidadesDocumentales() { // Auditoria LoggingEvent logEvent = getLogginEvent(ArchivoActions.FONDOS_MODULE_PUBLICACION_ELEMENTO); Locale locale = getServiceClient().getLocale(); // Comprobar permisos checkPermission(FondosSecurityManager.PUBLICAR_ELEMENTO_ACTION); // Lista de unidades documentales a publicar List udocs = _unidadDocumentalDBEntity.getUnidadesDocumentalesPublicacion(); UnidadDocumentalVO udoc; for (int i = 0; i < udocs.size(); i++) { udoc = (UnidadDocumentalVO) udocs.get(i); iniciarTransaccion(); // Cambio de nivel de acceso de la unidad documental _elementoCuadroClasificacionDBEntity.updateControlAcceso( udoc.getIdElementocf(), NivelAcceso.PUBLICO, udoc.getIdLCA()); // Auditoría AuditFondos.addDataLogUpdatePublicacionUdoc(locale, logEvent, udoc); if (logger.isDebugEnabled()) logger.debug("Publicación de la unidad documental con id: " + udoc.getId()); commit(); } }
private void eliminarUnidadDocumental(UnidadDocumentalVO udoc, Integer motivo) throws Exception { // Abrimos la transaccion iniciarTransaccion(); // // TODO Incorporar la udoc al histórico // HistoricoUDOCVO historicoUDOC = new HistoricoUDOCVO(); // historicoUDOC.setCodRefUdoc(udoc.getCodReferencia()); // historicoUDOC.setIdEliminacion(null); // Error: NOT NULL // historicoUDOC.setIdUDOC(udoc.getId()); // historicoUDOC.setSignaturaUdoc(udoc.getCodigo()); // historicoUDOC.setTituloUdoc(udoc.getTitulo()); // historicoUDOC.setNumExpUdoc(udoc.getNumExp()); // getGestionEliminacionBI().crearHistoricoUDOC( historicoUDOC ); // Eliminar la descripción if (udoc.tieneDescripcion()) getGestionDescripcionBI().deleteFicha(udoc.getId(), TipoFicha.FICHA_ELEMENTO_CF); // Eliminar los documentos electrónicos GestionDocumentosElectronicosBI serviceDocumentos = getGestionDocumentosElectronicosBI(); serviceDocumentos.deleteDocumentos(udoc.getId(), TipoObjeto.ELEMENTO_CF); // Eliminamos las referencias a documentos vitales getGestionDocumentosVitalesBI() .eliminaVinculosExpediente(udoc.getNumExp(), udoc.getCodSistProductor()); // Eliminar las tareas de captura relacionadas serviceDocumentos.eliminarTareas( udoc.getId(), ElementoCuadroClasificacion.TIPO_UNIDAD_DOCUMENTAL); // Desinstalar la unidad documental List partesUdoc = getUdocsEnUI(udoc.getId()); CollectionUtils.transform( partesUdoc, new Transformer() { public Object transform(Object obj) { return ((UDocEnUiDepositoVO) obj).getIduinstalacion(); } }); desinstalarUnidadDocumental(udoc.getId()); // Eliminar la unidad documental y el elemento del cuadro eliminarUdocBasico(udoc.getId()); // Comprobar las unidades de instalación distintas // y si son vacías las eliminamos. int numUnidadesInstalacion = 0; // int volumenEliminado = 0; double volumenEliminado = 0; GestorEstructuraDepositoBI serviceEstructura = getGestorEstructuraDepositoBI(); for (Iterator itUnidades = partesUdoc.iterator(); itUnidades.hasNext(); ) { String idUnidadInstalacion = (String) itUnidades.next(); List udocsEnUI = getUdocsEnUnidadInstalacion(idUnidadInstalacion); if (CollectionUtils.isEmpty(udocsEnUI)) { UInsDepositoVO unidadInstalacion = serviceEstructura.getUinsEnDeposito(idUnidadInstalacion); FormatoHuecoVO formato = serviceEstructura.getFormatoHueco(unidadInstalacion.getIdformato()); // volumenEliminado += formato.getLongitud().intValue(); if (formato != null) { if (formato.getLongitud() == null || formato.getLongitud().doubleValue() == Double.MIN_VALUE) volumenEliminado += serviceEstructura.getLongitudHuecosIrregularesXIdUInstalacion(idUnidadInstalacion); else volumenEliminado += formato.getLongitud().doubleValue(); } if (unidadInstalacion == null) { unidadInstalacion = new UInsDepositoVO(); unidadInstalacion.setId(idUnidadInstalacion); } // Obtener el idArchivo HuecoVO huecoVO = serviceEstructura.getHuecoUInstalacion(idUnidadInstalacion); String idArchivo = null; if (huecoVO != null) { DepositoVO deposito = serviceEstructura.getUbicacion(huecoVO.getIddeposito()); if (deposito != null) idArchivo = deposito.getIdArchivo(); } serviceEstructura.deleteUInstDeposito(idArchivo, unidadInstalacion, motivo); serviceEstructura.liberaUnidadInstalacion(idUnidadInstalacion); numUnidadesInstalacion++; } } // Actualizar los datos de la serie GestionSeriesBI serieBI = getGestionSeriesBI(); serieBI.updateVolumenSerieNoTransaccional(udoc.getIdSerie()); serieBI.updateContenidoSerieNoTransaccional(udoc.getIdSerie()); // Cerramos la transaccion commit(); }