use of it.cnr.si.spring.storage.StorageException in project sigla-main by consiglionazionaledellericerche.
the class CRUDRichiestaUopBP method archiviaAllegatiDettaglio.
private void archiviaAllegatiDettaglio() throws ApplicationException, BusinessProcessException {
RichiestaUopBulk richiesta = (RichiestaUopBulk) getModel();
for (Object oggetto : richiesta.getRigheRichiestaColl()) {
RichiestaUopRigaBulk dettaglio = (RichiestaUopRigaBulk) oggetto;
for (AllegatoRichiestaDettaglioBulk allegato : dettaglio.getDettaglioAllegati()) {
if (allegato.isToBeCreated()) {
try {
storeService.storeSimpleDocument(allegato, new FileInputStream(allegato.getFile()), allegato.getContentType(), allegato.getNome(), richiesteCMISService.getStorePathDettaglio(dettaglio));
allegato.setCrudStatus(OggettoBulk.NORMAL);
} catch (FileNotFoundException e) {
throw handleException(e);
} catch (StorageException e) {
if (e.getType().equals(StorageException.Type.CONSTRAINT_VIOLATED))
throw new ApplicationException("File [" + allegato.getNome() + "] gia' presente. Inserimento non possibile!");
throw handleException(e);
}
} else if (allegato.isToBeUpdated()) {
if (isPossibileModifica(allegato)) {
try {
if (allegato.getFile() != null) {
storeService.updateStream(allegato.getStorageKey(), new FileInputStream(allegato.getFile()), allegato.getContentType());
}
storeService.updateProperties(allegato, storeService.getStorageObjectBykey(allegato.getStorageKey()));
allegato.setCrudStatus(OggettoBulk.NORMAL);
} catch (FileNotFoundException e) {
throw handleException(e);
}
}
}
}
for (Iterator<AllegatoRichiestaDettaglioBulk> iterator = dettaglio.getDettaglioAllegati().deleteIterator(); iterator.hasNext(); ) {
AllegatoRichiestaDettaglioBulk allegato = iterator.next();
if (allegato.isToBeDeleted()) {
storeService.delete(allegato.getStorageKey());
allegato.setCrudStatus(OggettoBulk.NORMAL);
}
}
}
for (Iterator<RichiestaUopRigaBulk> iterator = richiesta.getRigheRichiestaColl().deleteIterator(); iterator.hasNext(); ) {
RichiestaUopRigaBulk dettaglio = iterator.next();
for (Iterator<AllegatoRichiestaDettaglioBulk> iteratorAll = dettaglio.getDettaglioAllegati().iterator(); iteratorAll.hasNext(); ) {
AllegatoRichiestaDettaglioBulk allegato = iteratorAll.next();
if (allegato.isToBeDeleted()) {
storeService.delete(allegato.getStorageKey());
allegato.setCrudStatus(OggettoBulk.NORMAL);
}
}
}
}
use of it.cnr.si.spring.storage.StorageException in project sigla-main by consiglionazionaledellericerche.
the class RicezioneFatture method saveNotifica.
private void saveNotifica(final DataHandler data, String nomeFile, String nodeRef, StorageDocAmmAspect aspect) throws ComponentException {
StoreService storeService = SpringUtil.getBean("storeService", StoreService.class);
Map<String, Object> metadataProperties = new HashMap<String, Object>();
metadataProperties.put(StoragePropertyNames.OBJECT_TYPE_ID.value(), "D:sigla_fatture_attachment:document");
metadataProperties.put(StoragePropertyNames.NAME.value(), nomeFile);
metadataProperties.put(StoragePropertyNames.SECONDARY_OBJECT_TYPE_IDS.value(), Arrays.asList("P:sigla_commons_aspect:utente_applicativo_sigla", aspect.value()));
metadataProperties.put("sigla_commons_aspect:utente_applicativo", "SDI");
try {
Optional.ofNullable(storeService.getStorageObjectBykey(nodeRef)).ifPresent(storageObject -> {
try {
storeService.storeSimpleDocument(data.getInputStream(), data.getContentType(), storageObject.getPath(), metadataProperties);
} catch (IOException e) {
throw new StorageException(StorageException.Type.GENERIC, e);
}
});
} catch (StorageException e) {
LOGGER.warn("PEC File " + nomeFile + " alredy store!");
}
}
use of it.cnr.si.spring.storage.StorageException in project sigla-main by consiglionazionaledellericerche.
the class TrasmissioneFatture method salvaFileSuDocumentale.
private void salvaFileSuDocumentale(DataHandler data, String nomeFile, Fattura_attivaBulk fattura, StorageDocAmmAspect aspect) throws IOException, ApplicationException {
logger.info("Inizio Salvataggio sul Documentale");
DocumentiCollegatiDocAmmService documentiCollegatiDocAmmService = SpringUtil.getBean("documentiCollegatiDocAmmService", DocumentiCollegatiDocAmmService.class);
StorageFile storageFile = new StorageFileFatturaAttiva(data.getInputStream(), data.getContentType(), nomeFile, fattura);
if (storageFile != null) {
String path = storageFile.getStorageParentPath();
try {
StorageObject storageObject = documentiCollegatiDocAmmService.restoreSimpleDocument(storageFile, storageFile.getInputStream(), storageFile.getContentType(), storageFile.getFileName(), path, true);
documentiCollegatiDocAmmService.addAspect(storageObject, aspect.value());
storageFile.setStorageObject(storageObject);
logger.info("Salvato file sul Documentale");
} catch (StorageException e) {
if (e.getType().equals(StorageException.Type.CONSTRAINT_VIOLATED))
throw new ApplicationException("CMIS - File Ricevuta Consegna [" + storageFile.getFileName() + "] già presente o non completo di tutte le proprietà obbligatorie. Inserimento non possibile!");
throw new ApplicationException("CMIS - Errore nella registrazione del file Ricevuta Consegna sul Documentale (" + e.getMessage() + ")");
}
}
}
use of it.cnr.si.spring.storage.StorageException in project sigla-main by consiglionazionaledellericerche.
the class DocumentoEleTestataHome method storeEsitoDocument.
public void storeEsitoDocument(DocumentoEleTestataBulk documentoEleTestata, ByteArrayInputStream byteArrayInputStream, String aspect) throws ApplicationException {
StoreService storeService = SpringUtil.getBean("storeService", StoreService.class);
Map<String, Object> metadataProperties = new HashMap<String, Object>();
metadataProperties.put(StoragePropertyNames.OBJECT_TYPE_ID.value(), "D:sigla_fatture_attachment:document");
metadataProperties.put(StoragePropertyNames.NAME.value(), documentoEleTestata.getNomeFile("EC"));
metadataProperties.put(StoragePropertyNames.SECONDARY_OBJECT_TYPE_IDS.value(), Arrays.asList("P:sigla_commons_aspect:utente_applicativo_sigla", aspect));
metadataProperties.put("sigla_commons_aspect:utente_applicativo", "SDI");
try {
storeService.storeSimpleDocument(byteArrayInputStream, "text/xml", storeService.getStorageObjectBykey(documentoEleTestata.getDocumentoEleTrasmissione().getCmisNodeRef()).getPath(), metadataProperties);
} catch (StorageException _ex) {
logger.error("storeEsitoDocument", _ex);
}
}
use of it.cnr.si.spring.storage.StorageException in project sigla-main by consiglionazionaledellericerche.
the class CRUDDistintaCassiereBP method invia.
public void invia(ActionContext context, FirmaOTPBulk firmaOTPBulk) throws Exception {
Map<String, String> subjectDN = Optional.ofNullable(SpringUtil.getBean("documentiContabiliService", DocumentiContabiliService.class).getCertSubjectDN(firmaOTPBulk.getUserName(), firmaOTPBulk.getPassword())).orElseThrow(() -> new ApplicationException("Errore nella lettura dei certificati!\nVerificare Nome Utente e Password!"));
if (Optional.ofNullable(controlloCodiceFiscale).filter(s -> s.equalsIgnoreCase("Y")).isPresent()) {
SpringUtil.getBean("documentiContabiliService", DocumentiContabiliService.class).controllaCodiceFiscale(subjectDN, ((CNRUserInfo) context.getUserInfo()).getUtente());
}
if (!this.isFlusso() && !this.isAnnulli() && isAttivoSiopeplus()) {
Distinta_cassiereBulk distintaProvvisoria = (Distinta_cassiereBulk) getModel();
// spostato nel salva definitivo anche in questo caso
StorageObject distintaStorageObject = Optional.ofNullable(distintaProvvisoria.getPg_distinta_def()).map(paDistintaDef -> documentiContabiliService.getStorageObjectByPath(distintaProvvisoria.getStorePath().concat(StorageDriver.SUFFIX).concat(distintaProvvisoria.getCMISName()))).orElse(inviaDistinta(context, distintaProvvisoria));
Distinta_cassiereBulk distinta = (Distinta_cassiereBulk) getModel();
List<String> nodes = new ArrayList<String>();
nodes.add(distintaStorageObject.getPropertyValue(StoragePropertyNames.ALFCMIS_NODEREF.value()));
List<V_mandato_reversaleBulk> dettagliRev = ((DistintaCassiereComponentSession) createComponentSession()).dettagliDistinta(context.getUserContext(), distinta, it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk.TIPO_REV);
dettagliRev.stream().map(v_mandato_reversaleBulk -> documentiContabiliService.getDocumentKey(v_mandato_reversaleBulk, true)).filter(s -> s != null).forEach(s -> nodes.add(s));
List<V_mandato_reversaleBulk> dettagliMan = ((DistintaCassiereComponentSession) createComponentSession()).dettagliDistinta(context.getUserContext(), distinta, it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk.TIPO_MAN);
dettagliMan.stream().map(v_mandato_reversaleBulk -> documentiContabiliService.getDocumentKey(v_mandato_reversaleBulk, true)).filter(s -> s != null).forEach(s -> nodes.add(s));
PdfSignApparence pdfSignApparence = new PdfSignApparence();
pdfSignApparence.setNodes(nodes);
pdfSignApparence.setUsername(firmaOTPBulk.getUserName());
pdfSignApparence.setPassword(firmaOTPBulk.getPassword());
pdfSignApparence.setOtp(firmaOTPBulk.getOtp());
Apparence apparence = new Apparence(null, "Rome", "Firma ", "per invio all'Istituto cassiere\nFirmato dal " + getTitolo() + "\n" + subjectDN.get("GIVENNAME") + " " + subjectDN.get("SURNAME"), 400, 120, 1, 550, 80);
// 300, 40, 1, 550, 80);
pdfSignApparence.setApparence(apparence);
try {
documentiContabiliService.signDocuments(pdfSignApparence, "service/sigla/firma/doccont");
} catch (StorageException _ex) {
throw new ApplicationException(FirmaOTPBulk.errorMessage(_ex.getMessage()));
}
try {
if (!this.isAnnulli()) {
if (distinta.getEsercizio() != null && distinta.getPg_distinta_def() != null)
documentiContabiliService.inviaDistintaPEC(nodes, this.isSepa(), distinta.getEsercizio() + "/" + distinta.getPg_distinta_def());
else
documentiContabiliService.inviaDistintaPEC(nodes, this.isSepa(), null);
}
distinta.setDt_invio_pec(DateServices.getDt_valida(context.getUserContext()));
distinta.setUser(context.getUserContext().getUser());
distinta.setToBeUpdated();
setModel(context, createComponentSession().modificaConBulk(context.getUserContext(), distinta));
commitUserTransaction();
setMessage("Invio effettuato correttamente.");
} catch (IOException e) {
throw new BusinessProcessException(e);
} catch (Exception e) {
throw new BusinessProcessException(e);
}
} else {
Distinta_cassiereBulk distinta = (Distinta_cassiereBulk) getModel();
generaXML(context);
File file = new File(System.getProperty("tmp.dir.SIGLAWeb") + getFile());
StorageFile storageFile = new StorageFile(file, file.getName());
if (storageFile != null) {
// E' previsto solo l'inserimento ma non l'aggiornamento
try {
StorageObject storageObject = documentiContabiliService.restoreSimpleDocument(storageFile, storageFile.getInputStream(), storageFile.getContentType(), storageFile.getFileName(), distinta.getStorePath(), false);
storageFile.setStorageObject(storageObject);
} catch (StorageException e) {
if (e.getType().equals(StorageException.Type.CONSTRAINT_VIOLATED))
throw new ApplicationException("File [" + storageFile.getFileName() + "] già presente o non completo di tutte le proprietà obbligatorie. Inserimento non possibile!");
throw new ApplicationException("Errore nella registrazione del file XML sul Documentale (" + e.getMessage() + ")");
}
if (storageFile.getStorageObject().<BigInteger>getPropertyValue(StoragePropertyNames.CONTENT_STREAM_LENGTH.value()).intValue() > 0) {
Optional.ofNullable(documentiContabiliService.getStorageObjectByPath(distinta.getStorePath().concat(StorageDriver.SUFFIX).concat(String.valueOf(distinta.getEsercizio())).concat("-").concat(distinta.getCd_unita_organizzativa()).concat("-").concat(String.valueOf(distinta.getPg_distinta_def())).concat("-I.").concat(formatoflusso).concat(".p7m"))).ifPresent(storageObject -> documentiContabiliService.delete(storageObject));
String nomeFile = file.getName();
String nomeFileP7m = nomeFile + ".p7m";
SignP7M signP7M = new SignP7M(storageFile.getStorageObject().getPropertyValue(StoragePropertyNames.ALFCMIS_NODEREF.value()), firmaOTPBulk.getUserName(), firmaOTPBulk.getPassword(), firmaOTPBulk.getOtp(), nomeFileP7m);
try {
final String signDocument = documentiContabiliService.signDocuments(signP7M, "service/sigla/firma/p7m", distinta.getStorePath());
documentiContabiliService.inviaDistintaPEC(Arrays.asList(signDocument), this.isSepa(), "<acquisizione_flusso_ordinativi_sepa>");
distinta.setDt_invio_pec(DateServices.getDt_valida(context.getUserContext()));
distinta.setUser(context.getUserContext().getUser());
distinta.setToBeUpdated();
final OggettoBulk oggettoBulk = createComponentSession().modificaConBulk(context.getUserContext(), distinta);
commitUserTransaction();
initializeModelForEdit(context, oggettoBulk);
setMessage("Invio effettuato correttamente.");
} catch (StorageException _ex) {
throw new ApplicationException(FirmaOTPBulk.errorMessage(_ex.getMessage()));
}
} else {
throw new ApplicationException("Errore durante il processo di firma elettronica. Ripetere l'operazione di firma!");
}
}
}
}
Aggregations