use of it.cnr.si.spring.storage.StorageObject in project sigla-main by consiglionazionaledellericerche.
the class AbstractFirmaDigitaleDocContBP method addToZip.
private void addToZip(DocumentiContabiliService documentiContabiliService, ZipOutputStream zos, String path, StatoTrasmissione statoTrasmissione) {
documentiContabiliService.getChildren(documentiContabiliService.getStorageObjectByPath(path).getKey()).stream().forEach(storageObject -> {
try {
if (!Optional.ofNullable(storageObject.getPropertyValue(StoragePropertyNames.BASE_TYPE_ID.value())).map(String.class::cast).filter(s -> s.equals(StoragePropertyNames.CMIS_FOLDER.value())).isPresent()) {
ZipEntry zipEntryChild = new ZipEntry(statoTrasmissione.getCMISFolderName().concat(Optional.ofNullable(storageObject.getPath()).map(s -> s.substring(statoTrasmissione.getStorePath().length())).orElse(StorageDriver.SUFFIX)));
zos.putNextEntry(zipEntryChild);
IOUtils.copyLarge(documentiContabiliService.getResource(storageObject), zos);
} else {
addToZip(documentiContabiliService, zos, storageObject.getPath(), statoTrasmissione);
}
} catch (IOException e) {
throw new DetailedRuntimeException(e);
}
});
}
use of it.cnr.si.spring.storage.StorageObject in project sigla-main by consiglionazionaledellericerche.
the class AllegatiDocContBP method scaricaAllegatoAmministrativo.
public void scaricaAllegatoAmministrativo(ActionContext actioncontext) throws IOException, ServletException, ApplicationException {
AllegatoGenericoBulk allegato = (AllegatoGenericoBulk) getDettaglioAllegati().getModel();
StorageObject storageObject = storeService.getStorageObjectBykey(allegato.getStorageKey());
InputStream is = storeService.getResource(allegato.getStorageKey());
((HttpActionContext) actioncontext).getResponse().setContentLength((storageObject.<BigInteger>getPropertyValue(StoragePropertyNames.CONTENT_STREAM_LENGTH.value())).intValue());
((HttpActionContext) actioncontext).getResponse().setContentType((String) storageObject.getPropertyValue(StoragePropertyNames.CONTENT_STREAM_MIME_TYPE.value()));
OutputStream os = ((HttpActionContext) actioncontext).getResponse().getOutputStream();
((HttpActionContext) actioncontext).getResponse().setDateHeader("Expires", 0);
byte[] buffer = new byte[((HttpActionContext) actioncontext).getResponse().getBufferSize()];
int buflength;
while ((buflength = is.read(buffer)) > 0) {
os.write(buffer, 0, buflength);
}
is.close();
os.flush();
}
use of it.cnr.si.spring.storage.StorageObject in project sigla-main by consiglionazionaledellericerche.
the class AllegatiDocContBP method aggiungiAllegati.
public void aggiungiAllegati(ActionContext actioncontext, List<UploadedFile> uploadedFiles) throws BusinessProcessException {
final V_mandato_reversaleBulk v_mandato_reversaleBulk = Optional.ofNullable(getModel()).filter(V_mandato_reversaleBulk.class::isInstance).map(V_mandato_reversaleBulk.class::cast).orElseThrow(() -> handleException(new ApplicationException("Modello non trovato!")));
for (UploadedFile uploadedFile : uploadedFiles) {
AllegatoGenericoBulk allegato = new AllegatoGenericoBulk();
allegato.setContentType(Optional.ofNullable(uploadedFile).flatMap(uploadedFile1 -> Optional.ofNullable(uploadedFile1.getContentType())).orElseThrow(() -> handleException(new ApplicationException("Non è stato possibile determinare il tipo di file!"))));
allegato.setNome(Optional.ofNullable(uploadedFile).flatMap(uploadedFile1 -> Optional.ofNullable(uploadedFile1.getName())).orElseThrow(() -> handleException(new ApplicationException("Non è stato possibile determinare il nome del file!"))));
allegato.setFile(Optional.ofNullable(uploadedFile).flatMap(uploadedFile1 -> Optional.ofNullable(uploadedFile1.getFile())).orElseThrow(() -> handleException(new ApplicationException("File non presente!"))));
try {
final Optional<StorageObject> parentFolder = Optional.ofNullable(storeService.getStorageObjectByPath(v_mandato_reversaleBulk.getStorePath()));
if (parentFolder.isPresent()) {
try {
storeService.storeSimpleDocument(allegato, new FileInputStream(allegato.getFile()), allegato.getContentType(), allegato.getNome(), Optional.ofNullable(uploadedFile.getFilePath()).map(s -> s.substring(s.indexOf(File.separator), s.indexOf(uploadedFile.getName()))).map(s -> v_mandato_reversaleBulk.getStorePath().concat(s)).orElse(v_mandato_reversaleBulk.getStorePath()));
} catch (StringIndexOutOfBoundsException _ex) {
logger.warn("File non caricato path locale {}", uploadedFile.getFilePath());
throw handleException(new ApplicationMessageFormatException("Il caricamento è stato interrotto verificare il file [{0}]", uploadedFile.getFilePath()));
}
} else {
throw handleException(new ApplicationException("La Cartella di destinazione non esiste!"));
}
} catch (FileNotFoundException e) {
throw handleException(e);
} catch (StorageException e) {
if (e.getType().equals(StorageException.Type.CONSTRAINT_VIOLATED))
throw handleException(new ApplicationException("File [" + allegato.getNome() + "] gia' presente. Inserimento non possibile!"));
throw handleException(e);
}
}
edit(actioncontext, v_mandato_reversaleBulk);
setMessage(FormBP.INFO_MESSAGE, "Allegati inseriti correttamente al documento.");
}
use of it.cnr.si.spring.storage.StorageObject in project sigla-main by consiglionazionaledellericerche.
the class CRUDConfigAnagContrattoBP method initializeModelForEdit.
@Override
public OggettoBulk initializeModelForEdit(ActionContext actioncontext, OggettoBulk oggettobulk) throws BusinessProcessException {
ContrattoBulk contratto = (ContrattoBulk) super.initializeModelForEdit(actioncontext, oggettobulk);
try {
Optional.ofNullable(contrattoService.getFolderContratto(contratto)).map(storageObject -> contrattoService.getChildren(storageObject.getKey())).map(storageObjects -> storageObjects.stream()).orElse(Stream.empty()).filter(storageObject -> Optional.ofNullable(storageObject.getKey()).isPresent()).forEach(child -> {
contratto.setAllegatoFlusso(false);
if (contratto.isFromFlussoAcquisti()) {
AllegatoContrattoFlussoDocumentBulk allegato = AllegatoContrattoFlussoDocumentBulk.construct(child);
Optional.ofNullable(child.<List<String>>getPropertyValue(StoragePropertyNames.SECONDARY_OBJECT_TYPE_IDS.value())).map(strings -> strings.stream()).ifPresent(stringStream -> {
stringStream.filter(s -> AllegatoContrattoFlussoDocumentBulk.ti_allegatoFlussoKeys.get(s) != null).findFirst().ifPresent(s -> allegato.setType(s));
if (allegato.getType() != null) {
allegato.setContentType(child.getPropertyValue(StoragePropertyNames.CONTENT_STREAM_MIME_TYPE.value()));
allegato.setDescrizione(child.getPropertyValue(StoragePropertyNames.DESCRIPTION.value()));
allegato.setTitolo(child.getPropertyValue(StoragePropertyNames.TITLE.value()));
allegato.setNome(allegato.getTitolo());
allegato.setCrudStatus(OggettoBulk.NORMAL);
contratto.addToArchivioAllegatiFlusso(allegato);
contratto.setAllegatoFlusso(true);
if (!allegato.isContentStreamPresent())
setMessage(ERROR_MESSAGE, "Attenzione l'allegato [" + allegato.getName() + "] risulta privo di contenuto!");
}
});
}
if (contratto.getAllegatoFlusso() == false) {
AllegatoContrattoDocumentBulk allegato = AllegatoContrattoDocumentBulk.construct(child);
allegato.setContentType(child.getPropertyValue(StoragePropertyNames.CONTENT_STREAM_MIME_TYPE.value()));
allegato.setDescrizione(child.getPropertyValue(StoragePropertyNames.DESCRIPTION.value()));
allegato.setTitolo(child.getPropertyValue(StoragePropertyNames.TITLE.value()));
allegato.setNome(child.getPropertyValue("sigla_contratti_attachment:original_name"));
allegato.setType(child.getPropertyValue(StoragePropertyNames.OBJECT_TYPE_ID.value()));
allegato.setLink(child.<String>getPropertyValue("sigla_contratti_aspect_link:url"));
allegato.setCrudStatus(OggettoBulk.NORMAL);
contratto.addToArchivioAllegati(allegato);
if (!allegato.isContentStreamPresent())
setMessage(ERROR_MESSAGE, "Attenzione l'allegato [" + allegato.getName() + "] risulta privo di contenuto!");
}
});
} catch (ApplicationException e) {
throw handleException(e);
}
return contratto;
}
use of it.cnr.si.spring.storage.StorageObject in project sigla-main by consiglionazionaledellericerche.
the class CRUDConfigAnagContrattoBP method pubblicaContratto.
@Deprecated
public void pubblicaContratto(ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
ContrattoBulk contratto = (ContrattoBulk) getModel();
try {
archiviaAllegati(context, contratto);
} catch (ApplicationException e) {
throw handleException(e);
}
try {
StorageObject folder = contrattoService.getFolderContratto((ContrattoBulk) getModel());
if (!contratto.isAllegatoContrattoPresent())
throw handleException(new ApplicationException("Bisogna allegare il file del Contratto!"));
contratto.setFl_pubblica_contratto(Boolean.TRUE);
contratto.setToBeUpdated();
ContrattoComponentSession comp = (ContrattoComponentSession) createComponentSession();
comp.modificaConBulk(context.getUserContext(), contratto);
if (folder != null) {
contrattoService.updateProperties(contratto, folder);
contrattoService.addAspect(folder, "P:sigla_contratti_aspect:stato_definitivo");
contrattoService.addConsumer(folder, SIGLAGroups.GROUP_CONTRATTI.name());
contrattoService.setInheritedPermission(contrattoService.getStorageObjectByPath(contrattoService.getCMISPathFolderContratto(contratto)), Boolean.FALSE);
}
edit(context, contratto);
} catch (it.cnr.jada.comp.ComponentException ex) {
throw handleException(ex);
} catch (java.rmi.RemoteException ex) {
throw handleException(ex);
}
}
Aggregations