Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240927121750 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createSetup("EXPORT_SCADENZE", "DOCFINANCE", "ATTIVO", "N",
|
||||
"Inserire S/N per attivare/disattivare il tipo di importazione", false, null, false, false,
|
||||
false, false, false, null, false, null);
|
||||
createSetup("EXPORT_SCADENZE", "DOCFINANCE", "EMAIL_FOR_LOG", null,
|
||||
"Inserire il file l'indirizzo email per inviare il log dell'importazione", false, null, false, false,
|
||||
false, false, false, null, false, null);
|
||||
createSetup("EXPORT_SCADENZE", "DOCFINANCE", "GG_CANC_FILE", null,
|
||||
"Giorni per la cancellazione dei file dalla cartella di appoggio", false, null, false, false,
|
||||
false, false, false, null, false, null);
|
||||
createSetup("EXPORT_SCADENZE", "DOCFINANCE", "IMPORT_REST", "S",
|
||||
"Inserire S/N per attivare/disattivare il salvataggio con i servizi REST", false, null, false, false,
|
||||
false, false, false, null, false, null);
|
||||
createSetup("EXPORT_SCADENZE", "DOCFINANCE", "PATH_FILE", null,
|
||||
"Directory dove vengono salvati i file temporanei, se non è configurata i file saranno salvati in c:\\mlSetupWS\\TEMP_EXPORT", false, null, false, false,
|
||||
false, false, false, null, false, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -430,6 +430,10 @@ public class UtilityDB {
|
||||
}
|
||||
|
||||
public static void executeStatement(Connection connection, String... sqls) throws SQLException {
|
||||
executeStatement(connection, Arrays.asList(sqls));
|
||||
}
|
||||
|
||||
public static void executeStatement(Connection connection, List<String> sqls) throws SQLException {
|
||||
Statement statement = connection.createStatement();
|
||||
|
||||
for (String sql : sqls) {
|
||||
|
||||
@@ -0,0 +1,565 @@
|
||||
package it.integry.ems.contabil.dto;
|
||||
|
||||
import it.integry.ems_model.annotation.DtoField;
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
|
||||
public class ScadenzeDocFinanceDTO {
|
||||
@SqlField(value = "tipo_pagamento")
|
||||
@DtoField(startPosition = 0, maxLength = 2, fillChar = " ")
|
||||
private String tipoPagamento;
|
||||
|
||||
@SqlField(value = "importo")
|
||||
@DtoField(startPosition = 2, maxLength = 16, fillChar = " ")
|
||||
private String importo;
|
||||
|
||||
@SqlField(value = "divisa_scadenza")
|
||||
@DtoField(startPosition = 18, maxLength = 5, fillChar = " ")
|
||||
private String divisaScadenza;
|
||||
|
||||
@SqlField(value = "cambio")
|
||||
@DtoField(startPosition = 23, maxLength = 9, fillChar = " ")
|
||||
private String cambio;
|
||||
|
||||
@SqlField(value = "controvalore")
|
||||
@DtoField(startPosition = 32, maxLength = 16, fillChar = " ")
|
||||
private String controvalore;
|
||||
|
||||
@SqlField(value = "document_type")
|
||||
@DtoField(startPosition = 48, maxLength = 2, fillChar = " ")
|
||||
private String documentType;
|
||||
|
||||
@SqlField(value = "type")
|
||||
@DtoField(startPosition = 50, maxLength = 5, fillChar = " ")
|
||||
private String type;
|
||||
|
||||
@SqlField(value = "raiting")
|
||||
@DtoField(startPosition = 55, maxLength = 2, fillChar = " ")
|
||||
private String rating;
|
||||
|
||||
@SqlField(value = "data_scadenza")
|
||||
@DtoField(startPosition = 57, maxLength = 8, fillChar = " ")
|
||||
private String dataScadenza;
|
||||
|
||||
@SqlField(value = "data_valuta")
|
||||
@DtoField(startPosition = 65, maxLength = 8, fillChar = " ")
|
||||
private String dataValuta;
|
||||
|
||||
@SqlField(value = "banca")
|
||||
@DtoField(startPosition = 73, maxLength = 8, fillChar = " ")
|
||||
private String banca;
|
||||
|
||||
@SqlField(value = "rbn")
|
||||
@DtoField(startPosition = 81, maxLength = 4, fillChar = " ")
|
||||
private String rbn;
|
||||
|
||||
@SqlField(value = "bloccata")
|
||||
@DtoField(startPosition = 85, maxLength = 1, fillChar = " ")
|
||||
private String bloccata;
|
||||
|
||||
@SqlField(value = "voce")
|
||||
@DtoField(startPosition = 86, maxLength = 6, fillChar = " ")
|
||||
private String voce;
|
||||
|
||||
@SqlField(value = "piano_dei_conti")
|
||||
@DtoField(startPosition = 92, maxLength = 16, fillChar = " ")
|
||||
private String pianoDeiConti;
|
||||
|
||||
@SqlField(value = "descrizione")
|
||||
@DtoField(startPosition = 108, maxLength = 40, fillChar = " ")
|
||||
private String descrizione;
|
||||
|
||||
@SqlField(value = "ABI")
|
||||
@DtoField(startPosition = 148, maxLength = 5, fillChar = " ")
|
||||
private String abi;
|
||||
|
||||
@SqlField(value = "CAB")
|
||||
@DtoField(startPosition = 153, maxLength = 5, fillChar = " ")
|
||||
private String cab;
|
||||
|
||||
@SqlField(value = "blank")
|
||||
@DtoField(startPosition = 158, maxLength = 10, fillChar = " ")
|
||||
private String blank;
|
||||
|
||||
@SqlField(value = "provenienza")
|
||||
@DtoField(startPosition = 168, maxLength = 2, fillChar = " ")
|
||||
private String provenienza;
|
||||
|
||||
@SqlField(value = "sezione")
|
||||
@DtoField(startPosition = 170, maxLength = 6, fillChar = " ")
|
||||
private String sezione;
|
||||
|
||||
@SqlField(value = "cambio_della_gestione")
|
||||
@DtoField(startPosition = 176, maxLength = 9, fillChar = " ")
|
||||
private String cambioDellaGestione;
|
||||
|
||||
@SqlField(value = "numero_doc_origine")
|
||||
@DtoField(startPosition = 185, maxLength = 12, fillChar = " ")
|
||||
private String numeroDocOrigine;
|
||||
|
||||
@SqlField(value = "chiave_coge")
|
||||
@DtoField(startPosition = 197, maxLength = 26, fillChar = " ")
|
||||
private String chiaveCoge;
|
||||
|
||||
@SqlField(value = "azienda")
|
||||
@DtoField(startPosition = 223, maxLength = 10, fillChar = " ")
|
||||
private String azienda;
|
||||
|
||||
@SqlField(value = "fleg_raggruppa_effetti")
|
||||
@DtoField(startPosition = 233, maxLength = 1, fillChar = " ")
|
||||
private String flegRaggruppaEffetti;
|
||||
|
||||
@SqlField(value = "numero_cc")
|
||||
@DtoField(startPosition = 234, maxLength = 12, fillChar = " ")
|
||||
private String numeroCc;
|
||||
|
||||
@SqlField(value = "cin")
|
||||
@DtoField(startPosition = 246, maxLength = 1, fillChar = " ")
|
||||
private String cin;
|
||||
|
||||
@SqlField(value = "piano_dei_conti_di_pagamento")
|
||||
@DtoField(startPosition = 247, maxLength = 16, fillChar = " ")
|
||||
private String pianoDeiContiDiPagamento;
|
||||
|
||||
@SqlField(value = "paese")
|
||||
@DtoField(startPosition = 263, maxLength = 2, fillChar = " ")
|
||||
private String paese;
|
||||
|
||||
@SqlField(value = "chk_paese")
|
||||
@DtoField(startPosition = 265, maxLength = 2, fillChar = " ")
|
||||
private String chkPaese;
|
||||
|
||||
@SqlField(value = "data_documento")
|
||||
@DtoField(startPosition = 267, maxLength = 8, fillChar = " ")
|
||||
private String dataDocumento;
|
||||
|
||||
@SqlField(value = "note")
|
||||
@DtoField(startPosition = 275, maxLength = 80, fillChar = " ")
|
||||
private String note;
|
||||
|
||||
@SqlField(value = "cod_bic")
|
||||
@DtoField(startPosition = 355, maxLength = 11, fillChar = " ")
|
||||
private String codBic;
|
||||
|
||||
@SqlField(value = "iban")
|
||||
@DtoField(startPosition = 366, maxLength = 34, fillChar = " ")
|
||||
private String iban;
|
||||
|
||||
@SqlField(value = "tipo_codice")
|
||||
@DtoField(startPosition = 400, maxLength = 1, fillChar = " ")
|
||||
private String tipoCodice;
|
||||
|
||||
@SqlField(value = "codice_riferimento")
|
||||
@DtoField(startPosition = 401, maxLength = 16, fillChar = " ")
|
||||
private String codiceRiferimento;
|
||||
|
||||
@SqlField(value = "stato_conf")
|
||||
@DtoField(startPosition = 417, maxLength = 1, fillChar = " ")
|
||||
private String stato_conf;
|
||||
|
||||
@SqlField(value = "banca_fin_conf")
|
||||
@DtoField(startPosition = 418, maxLength = 8, fillChar = " ")
|
||||
private String bancaFinConf;
|
||||
|
||||
@SqlField(value = "rbn_fin_conf")
|
||||
@DtoField(startPosition = 426, maxLength = 4, fillChar = " ")
|
||||
private String rbnFinCnf;
|
||||
|
||||
@SqlField(value = "banca_estera")
|
||||
@DtoField(startPosition = 430, maxLength = 35, fillChar = " ")
|
||||
private String bancaEstera;
|
||||
|
||||
@SqlField(value = "sportello_banca_estera")
|
||||
@DtoField(startPosition = 465, maxLength = 35, fillChar = " ")
|
||||
private String sportelloBancaEstera;
|
||||
|
||||
@SqlField(value = "codice_mandato")
|
||||
@DtoField(startPosition = 500, maxLength = 35, fillChar = " ")
|
||||
private String codiceMandato;
|
||||
|
||||
public String getTipoPagamento() {
|
||||
return tipoPagamento;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setTipoPagamento(String tipoPagamento) {
|
||||
this.tipoPagamento = tipoPagamento;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getImporto() {
|
||||
return importo;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setImporto(String importo) {
|
||||
this.importo = importo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDivisaScadenza() {
|
||||
return divisaScadenza;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setDivisaScadenza(String divisaScadenza) {
|
||||
this.divisaScadenza = divisaScadenza;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCambio() {
|
||||
return cambio;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setCambio(String cambio) {
|
||||
this.cambio = cambio;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getControvalore() {
|
||||
return controvalore;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setControvalore(String controvalore) {
|
||||
this.controvalore = controvalore;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDocumentType() {
|
||||
return documentType;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setDocumentType(String documentType) {
|
||||
this.documentType = documentType;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setType(String type) {
|
||||
this.type = type;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRating() {
|
||||
return rating;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setRating(String rating) {
|
||||
this.rating = rating;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDataScadenza() {
|
||||
return dataScadenza;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setDataScadenza(String dataScadenza) {
|
||||
this.dataScadenza = dataScadenza;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDataValuta() {
|
||||
return dataValuta;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setDataValuta(String dataValuta) {
|
||||
this.dataValuta = dataValuta;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBanca() {
|
||||
return banca;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setBanca(String banca) {
|
||||
this.banca = banca;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRbn() {
|
||||
return rbn;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setRbn(String rbn) {
|
||||
this.rbn = rbn;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBloccata() {
|
||||
return bloccata;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setBloccata(String bloccata) {
|
||||
this.bloccata = bloccata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getVoce() {
|
||||
return voce;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setVoce(String voce) {
|
||||
this.voce = voce;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPianoDeiConti() {
|
||||
return pianoDeiConti;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setPianoDeiConti(String pianoDeiConti) {
|
||||
this.pianoDeiConti = pianoDeiConti;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getAbi() {
|
||||
return abi;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setAbi(String abi) {
|
||||
this.abi = abi;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCab() {
|
||||
return cab;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setCab(String cab) {
|
||||
this.cab = cab;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBlank() {
|
||||
return blank;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setBlank(String blank) {
|
||||
this.blank = blank;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getProvenienza() {
|
||||
return provenienza;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setProvenienza(String provenienza) {
|
||||
this.provenienza = provenienza;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSezione() {
|
||||
return sezione;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setSezione(String sezione) {
|
||||
this.sezione = sezione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCambioDellaGestione() {
|
||||
return cambioDellaGestione;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setCambioDellaGestione(String cambioDellaGestione) {
|
||||
this.cambioDellaGestione = cambioDellaGestione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getNumeroDocOrigine() {
|
||||
return numeroDocOrigine;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setNumeroDocOrigine(String numeroDocOrigine) {
|
||||
this.numeroDocOrigine = numeroDocOrigine;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getChiaveCoge() {
|
||||
return chiaveCoge;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setChiaveCoge(String chiaveCoge) {
|
||||
this.chiaveCoge = chiaveCoge;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getAzienda() {
|
||||
return azienda;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setAzienda(String azienda) {
|
||||
this.azienda = azienda;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getFlegRaggruppaEffetti() {
|
||||
return flegRaggruppaEffetti;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setFlegRaggruppaEffetti(String flegRaggruppaEffetti) {
|
||||
this.flegRaggruppaEffetti = flegRaggruppaEffetti;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getNumeroCc() {
|
||||
return numeroCc;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setNumeroCc(String numeroCc) {
|
||||
this.numeroCc = numeroCc;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCin() {
|
||||
return cin;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setCin(String cin) {
|
||||
this.cin = cin;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPianoDeiContiDiPagamento() {
|
||||
return pianoDeiContiDiPagamento;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setPianoDeiContiDiPagamento(String pianoDeiContiDiPagamento) {
|
||||
this.pianoDeiContiDiPagamento = pianoDeiContiDiPagamento;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPaese() {
|
||||
return paese;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setPaese(String paese) {
|
||||
this.paese = paese;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getChkPaese() {
|
||||
return chkPaese;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setChkPaese(String chkPaese) {
|
||||
this.chkPaese = chkPaese;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDataDocumento() {
|
||||
return dataDocumento;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setDataDocumento(String dataDocumento) {
|
||||
this.dataDocumento = dataDocumento;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getNote() {
|
||||
return note;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setNote(String note) {
|
||||
this.note = note;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodBic() {
|
||||
return codBic;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setCodBic(String codBic) {
|
||||
this.codBic = codBic;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getIban() {
|
||||
return iban;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setIban(String iban) {
|
||||
this.iban = iban;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getTipoCodice() {
|
||||
return tipoCodice;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setTipoCodice(String tipoCodice) {
|
||||
this.tipoCodice = tipoCodice;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodiceRiferimento() {
|
||||
return codiceRiferimento;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setCodiceRiferimento(String codiceRiferimento) {
|
||||
this.codiceRiferimento = codiceRiferimento;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getStato_conf() {
|
||||
return stato_conf;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setStato_conf(String stato_conf) {
|
||||
this.stato_conf = stato_conf;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBancaFinConf() {
|
||||
return bancaFinConf;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setBancaFinConf(String bancaFinConf) {
|
||||
this.bancaFinConf = bancaFinConf;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRbnFinCnf() {
|
||||
return rbnFinCnf;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setRbnFinCnf(String rbnFinCnf) {
|
||||
this.rbnFinCnf = rbnFinCnf;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBancaEstera() {
|
||||
return bancaEstera;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setBancaEstera(String bancaEstera) {
|
||||
this.bancaEstera = bancaEstera;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSportelloBancaEstera() {
|
||||
return sportelloBancaEstera;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setSportelloBancaEstera(String sportelloBancaEstera) {
|
||||
this.sportelloBancaEstera = sportelloBancaEstera;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodiceMandato() {
|
||||
return codiceMandato;
|
||||
}
|
||||
|
||||
public ScadenzeDocFinanceDTO setCodiceMandato(String codiceMandato) {
|
||||
this.codiceMandato = codiceMandato;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
package it.integry.ems.contabil.export;
|
||||
|
||||
import it.integry.ems.contabil.export.services.ScadenzeExporterService;
|
||||
import it.integry.ems.export.base.BaseEntityExporter;
|
||||
import it.integry.ems.export.base.EntityExportResponse;
|
||||
import it.integry.ems.export.base.IEntityExporter;
|
||||
import org.springframework.web.context.ContextLoader;
|
||||
|
||||
|
||||
public class ScadenzeExporter extends BaseEntityExporter implements IEntityExporter {
|
||||
@@ -12,10 +14,12 @@ public class ScadenzeExporter extends BaseEntityExporter implements IEntityExpor
|
||||
ScadenzeExporterFormat format = ScadenzeExporterFormat.fromString(super.format);
|
||||
EntityExportResponse entityExportResponse = null;
|
||||
|
||||
ScadenzeExporterService scadenzeExporterService = ContextLoader.getCurrentWebApplicationContext().getBean(ScadenzeExporterService.class);
|
||||
|
||||
if (format != null) {
|
||||
switch (format) {
|
||||
case DOCFINANCE:
|
||||
|
||||
entityExportResponse = scadenzeExporterService.exportDocFinance(super.type, super.format);
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Tipo " + format + " non supportato");
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
package it.integry.ems.contabil.export.services;
|
||||
|
||||
import it.integry.ems.contabil.dto.ScadenzeDocFinanceDTO;
|
||||
import it.integry.ems.export.base.EntityExportResponse;
|
||||
import it.integry.ems.file_formatter.txt.TxtMapper;
|
||||
import it.integry.ems.response.FileItem;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Scope("request")
|
||||
public class ScadenzeExporterService {
|
||||
|
||||
@Autowired
|
||||
private MultiDBTransactionManager multiDBTransactionManager;
|
||||
|
||||
public EntityExportResponse<List<FileItem>> exportDocFinance(String type, String format) throws Exception {
|
||||
EntityExportResponse<List<FileItem>> entityExportResponse = new EntityExportResponse<>();
|
||||
entityExportResponse.setResponse(new ArrayList<>());
|
||||
|
||||
String sql = "SELECT ISNULL(gtb_tipi_paga_intercode.intercode, ctb_scad.cod_paga) /*leggere da tabella di trascodifica*/ AS 'tipo_pagamento'\n" +
|
||||
" , REPLACE(CAST(\n" +
|
||||
" FORMAT(\n" +
|
||||
" (ctb_scad.imp_dare + ctb_scad.imp_avere),\n" +
|
||||
" IIF(ctb_part.tipo_partita = 0, '-', '+') + '00000000000.000'\n" +
|
||||
" ) AS VARCHAR), '.',\n" +
|
||||
" ',') AS 'importo'\n" +
|
||||
" , gtb_divi.cod_divi AS 'divisa_scadenza'\n" +
|
||||
" , REPLACE(CAST(FORMAT(ctb_part.cambio, '00000.000') AS VARCHAR), '.',\n" +
|
||||
" ',') AS 'cambio'\n" +
|
||||
" , REPLACE(CAST(\n" +
|
||||
" FORMAT(\n" +
|
||||
" ((ctb_scad.imp_dare + ctb_scad.imp_avere) / ctb_part.cambio),\n" +
|
||||
" IIF(ctb_part.tipo_partita = 0, '-', '+') + '00000000000.000'\n" +
|
||||
" ) AS VARCHAR), '.',\n" +
|
||||
" ',') AS 'controvalore'\n" +
|
||||
" , '00001' AS 'type'\n" +
|
||||
" , 'N' AS 'raiting'\n" +
|
||||
" , REPLACE(CONVERT(VARCHAR(10), ctb_scad.data_scad, 103), '/', '') AS 'data_scadenza'\n" +
|
||||
" , REPLACE(CONVERT(VARCHAR(10), ctb_scad.data_scad, 103), '/', '') AS 'data_valuta'\n" +
|
||||
" , LEFT(gtb_banc_azi_intercode.intercode, 8) AS 'banca'\n" +
|
||||
" , RIGHT(gtb_banc_azi_intercode.intercode, 4) AS 'rbn'\n" +
|
||||
" , 'N' AS 'bloccata'\n" +
|
||||
" , IIF(ctb_part.tipo_anag = 'F', '0201', '0101') AS 'voce'\n" +
|
||||
" , gtb_anag.diacod AS 'piano_dei_conti'\n" +
|
||||
" , gtb_anag.rag_soc AS 'descrizione'\n" +
|
||||
" , ctb_part.cod_abi AS 'ABI'\n" +
|
||||
" , ctb_part.cod_cab AS 'CAB'\n" +
|
||||
" , '' AS 'blank'\n" +
|
||||
" , 'CO' AS 'provenienza'\n" +
|
||||
" , '' AS 'sezione'\n" +
|
||||
" , '' AS 'cambio_della_gestione'\n" +
|
||||
" , CAST(ctb_part.num_doc AS VARCHAR) AS 'numero_doc_origine'\n" +
|
||||
" , ISNULL(CTB_SCAD.INTERCODE,\n" +
|
||||
" RIGHT(CAST(ctb_part.anno_part AS VARCHAR), 2) +\n" +
|
||||
" IIF(ctb_part.tipo_anag = 'c', FORMAT(ctb_part.num_doc, REPLICATE('0', 5)),\n" +
|
||||
" CAST(ctb_part.num_doc AS VARCHAR) + SPACE(5 - LEN(CAST(ctb_part.num_doc AS VARCHAR)))) +\n" +
|
||||
" FORMAT(ctb_scad.id_riga, '000') +\n" +
|
||||
" FORMAT(DENSE_RANK() OVER (PARTITION BY ctb_part.cod_anag, ctb_part.num_doc ORDER BY ctb_scad.data_doc),\n" +
|
||||
" '000')) AS 'chiave_coge'\n" +
|
||||
" , 'ROSSOGARGA' AS 'azienda'\n" +
|
||||
" , ctb_part.iban AS 'numero_cc'\n" +
|
||||
" , SUBSTRING(ctb_part.iban, 5, 1) AS 'cin'\n" +
|
||||
" , LEFT(ctb_part.iban, 2) AS 'paese'\n" +
|
||||
" , SUBSTRING(ctb_part.iban, 3, 2) AS 'chk_paese'\n" +
|
||||
" , REPLACE(CONVERT(VARCHAR(10), ctb_part.data_doc, 103), '/', '') AS 'data_documento'\n" +
|
||||
" , ctb_parr.des_agg AS 'note'\n" +
|
||||
" , IIF(vtb_clie.cod_anag IS NULL, atb_forn.cod_bic, vtb_clie.cod_bic) AS 'cod_bic'\n" +
|
||||
" , ctb_part.iban\n" +
|
||||
"FROM ctb_part\n" +
|
||||
" INNER JOIN ctb_scad ON ctb_part.tipo_anag = ctb_scad.tipo_anag AND ctb_part.cod_anag = ctb_scad.cod_anag AND\n" +
|
||||
" ctb_part.anno_part = ctb_scad.anno_part AND ctb_part.ser_doc = ctb_scad.ser_doc AND\n" +
|
||||
" ctb_part.num_doc = ctb_scad.num_doc\n" +
|
||||
" INNER JOIN gtb_anag ON ctb_part.cod_anag = gtb_anag.cod_anag\n" +
|
||||
" INNER JOIN gtb_paga ON ctb_scad.cod_paga = gtb_paga.cod_paga\n" +
|
||||
" LEFT OUTER JOIN gtb_tipi_paga_intercode ON gtb_paga.tipo_paga = gtb_tipi_paga_intercode.tipo_paga\n" +
|
||||
" LEFT OUTER JOIN gtb_banc ON ctb_part.cod_banc = gtb_banc.cod_banc\n" +
|
||||
" LEFT OUTER JOIN gtb_banc_azi ON gtb_banc.cod_banc = gtb_banc_azi.cod_banc\n" +
|
||||
" LEFT OUTER JOIN gtb_banc_azi_intercode ON gtb_banc_azi.cod_banc_azi = gtb_banc_azi_intercode.cod_banc_azi AND\n" +
|
||||
" gtb_banc_azi_intercode.formato = 'docfi'\n" +
|
||||
" LEFT OUTER JOIN vtb_clie ON ctb_part.cod_anag = vtb_clie.cod_anag AND ctb_part.tipo_anag = 'C'\n" +
|
||||
" LEFT OUTER JOIN atb_forn ON ctb_part.cod_anag = atb_forn.cod_anag AND ctb_part.tipo_anag = 'F'\n" +
|
||||
" INNER JOIN gtb_divi ON ctb_part.cod_divi = gtb_divi.cod_divi\n" +
|
||||
" OUTER APPLY (SELECT TOP 1 ctb_parr.*\n" +
|
||||
" FROM ctb_parr\n" +
|
||||
" INNER JOIN ctb_caus\n" +
|
||||
" ON ctb_parr.cod_ccau = ctb_caus.cod_ccau AND ctb_caus.azione_su_partita = 0\n" +
|
||||
" WHERE ctb_part.tipo_anag = ctb_parr.tipo_anag\n" +
|
||||
" AND ctb_part.cod_anag = ctb_parr.cod_anag\n" +
|
||||
" AND ctb_part.anno_part = ctb_parr.anno_part\n" +
|
||||
" AND ctb_part.ser_doc = ctb_parr.ser_doc\n" +
|
||||
" AND ctb_part.num_doc = ctb_parr.num_doc\n" +
|
||||
" ORDER BY ctb_parr.data_cmov) ctb_parr\n" +
|
||||
"WHERE ctb_scad.data_pag IS NULL";
|
||||
List<ScadenzeDocFinanceDTO> scadenzeDocFinance = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, ScadenzeDocFinanceDTO.class);
|
||||
|
||||
TxtMapper<ScadenzeDocFinanceDTO> txtMapper = new TxtMapper<ScadenzeDocFinanceDTO>()
|
||||
.setFieldsSplitChar("");
|
||||
String fileContent = txtMapper.serialize(scadenzeDocFinance);
|
||||
|
||||
if (fileContent != null) {
|
||||
String filename = "scadenze.txt";
|
||||
FileItem returnFile = new FileItem(filename, fileContent, "txt");
|
||||
entityExportResponse.getResponse().add(returnFile);
|
||||
|
||||
return entityExportResponse;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -6,9 +6,11 @@ import com.annimon.stream.Stream;
|
||||
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||
import it.integry.ems.production.dto.MRP.*;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.entity.CtbScad;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import it.integry.ems_model.utility.UtilityBigDecimal;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityHashMap;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -104,7 +106,8 @@ public class MrpDailyMaterialReqService {
|
||||
int id = 0;
|
||||
logger.debug(MrpDailyMaterialReqService.class.getSimpleName() + " - articoli caricati: " + datiArt.size());
|
||||
|
||||
Map<String, List<MrpDailyMaterialReqDetDTO>> listArticoli = Stream.of(mrpDailyMaterialReqDetDTO).collect(Collectors.groupingBy(MrpDailyMaterialReqDetDTO::getCodMart));
|
||||
Map<String, List<MrpDailyMaterialReqDetDTO>> listArticoli = Stream.of(mrpDailyMaterialReqDetDTO)
|
||||
.collect(Collectors.groupingBy(MrpDailyMaterialReqDetDTO::getCodMart));
|
||||
|
||||
for (MrpDailyMaterialReqDTO art : datiArt) {
|
||||
boolean inclusiSospesi = getSetupIncluseSospesi(art.getCodMgrp(), setupGruppi);
|
||||
|
||||
@@ -70,7 +70,6 @@ public class ExchangeColliImportService {
|
||||
MultiDBTransactionManager exchangeMultiDb,
|
||||
RequestDataDTO requestDataDTO,
|
||||
ExchangeImportSchemaManagerService.SchemaType colliSchemaType) throws Exception {
|
||||
|
||||
boolean useTempTable = true;
|
||||
|
||||
try {
|
||||
@@ -91,88 +90,108 @@ public class ExchangeColliImportService {
|
||||
testataTableName = null;
|
||||
}
|
||||
|
||||
List<MtbColt> exchangeImportedMtbColts = importColliLavorazione(
|
||||
exchangeMultiDb.getPrimaryConnection(),
|
||||
UtilityLocalDate.getNow().minusWeeks(1),
|
||||
UtilityLocalDate.getNow(),
|
||||
true, false, testataTableName, righeTableName);
|
||||
exchangeImportDataManagerService.prepareData(exchangeMultiDb.getPrimaryConnection(), useTempTable, exchangeImportSchemaManagerService.getTablesBySchemaType(colliSchemaType));
|
||||
|
||||
List<MtbColt> exchangeUpdatedMtbColts = importColliLavorazione(
|
||||
exchangeMultiDb.getPrimaryConnection(),
|
||||
UtilityLocalDate.getNow().minusWeeks(1),
|
||||
UtilityLocalDate.getNow(),
|
||||
false, useTempTable, testataTableName, righeTableName);
|
||||
AtomicInteger dataCount = new AtomicInteger(0);
|
||||
AtomicInteger importedCounter = new AtomicInteger(0);
|
||||
|
||||
List<EquatableEntityInterface> importedMtbColts = exchangeImportedMtbColts.stream()
|
||||
.map(x -> (EquatableEntityInterface) x)
|
||||
.collect(Collectors.toList());
|
||||
LocalDate startDate = LocalDate.of(2024, 7, 1);
|
||||
|
||||
List<EquatableEntityInterface> updatedMtbColts = exchangeUpdatedMtbColts.stream()
|
||||
.map(x -> (EquatableEntityInterface) x)
|
||||
.collect(Collectors.toList());
|
||||
Result<Object> firstErrorObjectIfPresent = null;
|
||||
|
||||
List<EquatableEntityInterface> allMtbColts = exchangeImportDataManagerService
|
||||
.runSync(MtbColt.class, importedMtbColts, updatedMtbColts);
|
||||
while (startDate.isBefore(UtilityLocalDate.getNow())) {
|
||||
|
||||
allMtbColts.forEach(x -> {
|
||||
x.setOperation(x.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : x.getOperation());
|
||||
((MtbColt) x).getMtbColr().forEach(y -> y.setOperation(y.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : y.getOperation()));
|
||||
});
|
||||
final LocalDate tempStartDate = startDate;
|
||||
final LocalDate tempEndDate = startDate;
|
||||
|
||||
startDate = startDate.plusDays(1);
|
||||
|
||||
AtomicInteger importedCounter = new AtomicInteger();
|
||||
List<MtbColt> exchangeImportedMtbColts = importColliLavorazione(
|
||||
exchangeMultiDb.getPrimaryConnection(),
|
||||
tempStartDate,
|
||||
tempEndDate,
|
||||
true, false, testataTableName, righeTableName);
|
||||
|
||||
List<RunnableThrowable> calls = new ArrayList<>();
|
||||
for (EquatableEntityInterface dataToSave : allMtbColts) {
|
||||
List<MtbColt> exchangeUpdatedMtbColts = importColliLavorazione(
|
||||
exchangeMultiDb.getPrimaryConnection(),
|
||||
tempStartDate,
|
||||
tempEndDate,
|
||||
false, useTempTable, testataTableName, righeTableName);
|
||||
|
||||
calls.add(() -> {
|
||||
List<EquatableEntityInterface> importedMtbColts = exchangeImportedMtbColts.stream()
|
||||
.map(x -> (EquatableEntityInterface) x)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
logger.debug("Importati {} colli di {}", importedCounter.incrementAndGet(), allMtbColts.size());
|
||||
try (MultiDBTransactionManager exchangeMultiDbThread = new MultiDBTransactionManager(exchangeMultiDb.getPrimaryDatasource().getProfile(), false);
|
||||
MultiDBTransactionManager internalMultiDbThread = new MultiDBTransactionManager(internalMultiDb.getPrimaryDatasource().getProfile(), false)) {
|
||||
List<EquatableEntityInterface> updatedMtbColts = exchangeUpdatedMtbColts.stream()
|
||||
.map(x -> (EquatableEntityInterface) x)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
MtbColt mtbColtToSave = (MtbColt) dataToSave;
|
||||
if (mtbColtToSave.hasDocument() && mtbColtToSave.getOperation() == OperationType.DELETE) {
|
||||
MtbColt mtbColtRemoveDocument = (MtbColt) mtbColtToSave.clone();
|
||||
mtbColtRemoveDocument.setMtbColr(new ArrayList<>())
|
||||
.setCodDtip(EmsRestConstants.NULL)
|
||||
.setSerDoc(EmsRestConstants.NULL)
|
||||
.setDataDoc(EmsRestConstants.DATE_NULL)
|
||||
.setOperation(OperationType.UPDATE);
|
||||
List<EquatableEntityInterface> allMtbColts = exchangeImportDataManagerService
|
||||
.runSync(MtbColt.class, importedMtbColts, updatedMtbColts);
|
||||
|
||||
entityProcessor.processEntity(mtbColtRemoveDocument, true, true, ROSSOGARGANO_EXCHANGE_USER, internalMultiDbThread, requestDataDTO);
|
||||
dataCount.addAndGet(allMtbColts.size());
|
||||
|
||||
mtbColtToSave.setCodDtip(EmsRestConstants.NULL)
|
||||
.setSerDoc(EmsRestConstants.NULL)
|
||||
.setDataDoc(EmsRestConstants.DATE_NULL);
|
||||
}
|
||||
|
||||
entityProcessor.processEntity(mtbColtToSave, true, true, ROSSOGARGANO_EXCHANGE_USER, internalMultiDbThread, requestDataDTO);
|
||||
singleUpdateImported(exchangeMultiDbThread.getPrimaryConnection(), mtbColtToSave, testataTableName, useTempTable);
|
||||
singleUpdateImported(exchangeMultiDbThread.getPrimaryConnection(), mtbColtToSave, righeTableName, useTempTable);
|
||||
|
||||
internalMultiDbThread.commitAll();
|
||||
exchangeMultiDbThread.commitAll();
|
||||
} catch (Exception ex) {
|
||||
MtbColt collo = (MtbColt) dataToSave;
|
||||
logger.error("Errore durante l'importazione del collo [num: " + collo.getNumCollo() + ", " +
|
||||
"data: " + UtilityLocalDate.formatDate(collo.getDataCollo(), CommonConstants.DATE_FORMAT_DMY) + ", " +
|
||||
"serie: " + collo.getSerCollo() + ", " +
|
||||
"gestione: " + collo.getGestione() + "]",
|
||||
ex);
|
||||
|
||||
throw ex;
|
||||
}
|
||||
allMtbColts.forEach(x -> {
|
||||
x.setOperation(x.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : x.getOperation());
|
||||
((MtbColt) x).getMtbColr().forEach(y -> y.setOperation(y.getOperation() == OperationType.INSERT ? OperationType.INSERT_OR_UPDATE : y.getOperation()));
|
||||
});
|
||||
|
||||
|
||||
List<RunnableThrowable> calls = new ArrayList<>();
|
||||
for (EquatableEntityInterface dataToSave : allMtbColts) {
|
||||
|
||||
calls.add(() -> {
|
||||
|
||||
logger.debug("Importati {} colli di {}", importedCounter.incrementAndGet(), dataCount);
|
||||
try (MultiDBTransactionManager exchangeMultiDbThread = new MultiDBTransactionManager(exchangeMultiDb.getPrimaryDatasource().getProfile(), false);
|
||||
MultiDBTransactionManager internalMultiDbThread = new MultiDBTransactionManager(internalMultiDb.getPrimaryDatasource().getProfile(), false)) {
|
||||
|
||||
MtbColt mtbColtToSave = (MtbColt) dataToSave;
|
||||
if (mtbColtToSave.hasDocument() && mtbColtToSave.getOperation() == OperationType.DELETE) {
|
||||
MtbColt mtbColtRemoveDocument = (MtbColt) mtbColtToSave.clone();
|
||||
mtbColtRemoveDocument.setMtbColr(new ArrayList<>())
|
||||
.setCodDtip(EmsRestConstants.NULL)
|
||||
.setSerDoc(EmsRestConstants.NULL)
|
||||
.setDataDoc(EmsRestConstants.DATE_NULL)
|
||||
.setNumDoc(EmsRestConstants.INTEGER_NULL)
|
||||
.setOperation(OperationType.UPDATE);
|
||||
|
||||
entityProcessor.processEntity(mtbColtRemoveDocument, true, true, ROSSOGARGANO_EXCHANGE_USER, internalMultiDbThread, requestDataDTO);
|
||||
|
||||
mtbColtToSave.setCodDtip(null)
|
||||
.setSerDoc(null)
|
||||
.setDataDoc(null)
|
||||
.setNumDoc(null);
|
||||
}
|
||||
|
||||
entityProcessor.processEntity(mtbColtToSave, true, true, ROSSOGARGANO_EXCHANGE_USER, internalMultiDbThread, requestDataDTO);
|
||||
singleUpdateImported(exchangeMultiDbThread.getPrimaryConnection(), mtbColtToSave, testataTableName, useTempTable);
|
||||
singleUpdateImported(exchangeMultiDbThread.getPrimaryConnection(), mtbColtToSave, righeTableName, useTempTable);
|
||||
|
||||
internalMultiDbThread.commitAll();
|
||||
exchangeMultiDbThread.commitAll();
|
||||
} catch (Exception ex) {
|
||||
MtbColt collo = (MtbColt) dataToSave;
|
||||
logger.error("Errore durante l'importazione del collo [num: " + collo.getNumCollo() + ", " +
|
||||
"data: " + UtilityLocalDate.formatDate(collo.getDataCollo(), CommonConstants.DATE_FORMAT_DMY) + ", " +
|
||||
"serie: " + collo.getSerCollo() + ", " +
|
||||
"gestione: " + collo.getGestione() + "]",
|
||||
ex);
|
||||
|
||||
throw ex;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
final ArrayList<Result<Object>> results = UtilityThread.executeParallel(calls);
|
||||
|
||||
firstErrorObjectIfPresent = results.stream()
|
||||
.filter(x -> x instanceof Result.Error)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
}
|
||||
|
||||
final ArrayList<Result<Object>> results = UtilityThread.executeParallel(calls);
|
||||
|
||||
final Result<Object> firstErrorObjectIfPresent = results.stream()
|
||||
.filter(x -> x instanceof Result.Error)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
if (firstErrorObjectIfPresent != null) throw ((Result.Error) firstErrorObjectIfPresent).getError();
|
||||
} finally {
|
||||
if (useTempTable)
|
||||
@@ -181,7 +200,8 @@ public class ExchangeColliImportService {
|
||||
}
|
||||
|
||||
private List<MtbColt> importColliLavorazione(Connection connection,
|
||||
LocalDate minDate, LocalDate maxDate, boolean retrieveAlreadyImported, boolean useTempTable, String testataTableName, String righeTableName) throws Exception {
|
||||
LocalDate minDate, LocalDate maxDate, boolean retrieveAlreadyImported, boolean useTempTable, String
|
||||
testataTableName, String righeTableName) throws Exception {
|
||||
|
||||
String mtbColtLavOriginalName = testataTableName;
|
||||
String mtbColtLavTableName = mtbColtLavOriginalName + (useTempTable ? "_tmp" : "");
|
||||
@@ -189,16 +209,6 @@ public class ExchangeColliImportService {
|
||||
String mtbColrLavTableName = mtbColrLavOriginalName + (useTempTable ? "_tmp" : "");
|
||||
|
||||
|
||||
if (useTempTable) {
|
||||
UtilityDB.executeStatement(connection,
|
||||
"INSERT INTO " + mtbColtLavTableName +
|
||||
" SELECT * FROM " + mtbColtLavOriginalName,
|
||||
"INSERT INTO " + mtbColrLavTableName +
|
||||
" SELECT * FROM " + mtbColrLavOriginalName
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
final List<MtbColt> mtbColtLav = exchangeImportDataManagerService.retrieveDataFromExchange(connection, MtbColt.class,
|
||||
mtbColtLavTableName, Query.format("data_collo BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
|
||||
|
||||
@@ -222,7 +232,8 @@ public class ExchangeColliImportService {
|
||||
}
|
||||
|
||||
|
||||
private void singleUpdateImported(Connection connection, MtbColt importedDataKey, String tableName, boolean useTempTable) throws Exception {
|
||||
private void singleUpdateImported(Connection connection, MtbColt importedDataKey, String tableName,
|
||||
boolean useTempTable) throws Exception {
|
||||
final HashMap<String, Object> importedKey = new HashMap<String, Object>() {{
|
||||
put("data_collo", importedDataKey.getDataCollo());
|
||||
put("ser_collo", importedDataKey.getSerCollo());
|
||||
@@ -234,7 +245,8 @@ public class ExchangeColliImportService {
|
||||
}
|
||||
|
||||
|
||||
public List<CertificatiSinfoOneDTO> getCertificati(String profileDb, String codAnag, LocalDate dataCert, String codMart, String codVdes, String partitaMag) throws Exception {
|
||||
public List<CertificatiSinfoOneDTO> getCertificati(String profileDb, String codAnag, LocalDate dataCert, String
|
||||
codMart, String codVdes, String partitaMag) throws Exception {
|
||||
|
||||
try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(profileDb)) {
|
||||
|
||||
|
||||
@@ -12,10 +12,8 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.sql.Connection;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
@@ -23,6 +21,20 @@ import java.util.stream.Collectors;
|
||||
public class ExchangeImportDataManagerService {
|
||||
|
||||
|
||||
public void prepareData(Connection connection, boolean useTempTable, String... tables) throws SQLException {
|
||||
prepareData(connection, useTempTable, Arrays.asList(tables));
|
||||
}
|
||||
|
||||
public void prepareData(Connection connection, boolean useTempTable, List<String> tables) throws SQLException {
|
||||
if (useTempTable) {
|
||||
final List<String> sqls = tables.stream()
|
||||
.map(x -> String.format("INSERT INTO %s_tmp SELECT * FROM %s", x, x))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
UtilityDB.executeStatement(connection, sqls);
|
||||
}
|
||||
}
|
||||
|
||||
public <T extends EquatableEntityInterface> List<T> retrieveDataFromExchange(Connection connection,
|
||||
Class<T> clazz,
|
||||
String tableName,
|
||||
|
||||
@@ -73,6 +73,10 @@ public class ExchangeImportSchemaManagerService {
|
||||
put(SchemaType.ValorizzazioneCertificati, Collections.singletonList("valorizzazione_certificati"));
|
||||
}};
|
||||
|
||||
public List<String> getTablesBySchemaType(SchemaType schemaType) {
|
||||
return schemaToTableBinding.get(schemaType);
|
||||
}
|
||||
|
||||
public void syncSchema(Connection connection, SchemaType schemaType, boolean createTempTablesToo) throws Exception {
|
||||
|
||||
SQLServerDBSchemaManager sqlServerDBSchemaManager = new SQLServerDBSchemaManager(connection);
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package it.integry.ems.system.exchange.service;
|
||||
|
||||
import it.integry.ems.expansion.RunnableThrowable;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.production.agribook.AgribookFieldService;
|
||||
import it.integry.ems.production.agribook.model.AgribookNewFieldRequestDTO;
|
||||
@@ -23,7 +22,10 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -50,11 +52,15 @@ public class ExchangeOrdiniImportService {
|
||||
|
||||
public void importOrdiniLavorazione(MultiDBTransactionManager internalMultiDb, MultiDBTransactionManager exchangeMultiDb, RequestDataDTO requestDataDTO) throws Exception {
|
||||
|
||||
ExchangeImportSchemaManagerService.SchemaType schemaType = ExchangeImportSchemaManagerService.SchemaType.OrdiniLavorazione;
|
||||
|
||||
boolean useTempTable = true;
|
||||
|
||||
|
||||
try {
|
||||
exchangeImportSchemaManagerService.syncSchema(exchangeMultiDb.getPrimaryConnection(), ExchangeImportSchemaManagerService.SchemaType.OrdiniLavorazione, useTempTable);
|
||||
exchangeImportSchemaManagerService.syncSchema(exchangeMultiDb.getPrimaryConnection(), schemaType, useTempTable);
|
||||
exchangeImportDataManagerService.prepareData(exchangeMultiDb.getPrimaryConnection(), useTempTable,
|
||||
exchangeImportSchemaManagerService.getTablesBySchemaType(schemaType));
|
||||
|
||||
final List<DtbOrdt> exchangeImportedMtbColts = importOrdiniLavorazione(
|
||||
exchangeMultiDb.getPrimaryConnection(),
|
||||
@@ -93,17 +99,13 @@ public class ExchangeOrdiniImportService {
|
||||
);
|
||||
|
||||
final Exception[] firstExceptionToThrow = {null};
|
||||
|
||||
final AtomicInteger[] importedCounter = {new AtomicInteger()};
|
||||
final AtomicInteger importedCounter = new AtomicInteger();
|
||||
|
||||
for (List<EquatableEntityInterface> listToProcess : splittedOrders) {
|
||||
List<RunnableThrowable> calls = new ArrayList<>();
|
||||
|
||||
|
||||
for (EquatableEntityInterface dataToSave : listToProcess) {
|
||||
//calls.add(() -> {
|
||||
|
||||
logger.debug("Importati {} ordini di {}", importedCounter[0].incrementAndGet(), allData.size());
|
||||
logger.debug("Importati {} ordini di {}", importedCounter.incrementAndGet(), allData.size());
|
||||
try {
|
||||
entityProcessor.processEntity(dataToSave, true, true, ROSSOGARGANO_EXCHANGE_USER, internalMultiDb, requestDataDTO);
|
||||
|
||||
@@ -118,15 +120,12 @@ public class ExchangeOrdiniImportService {
|
||||
logger.error("Errore durante l'importazione dell'ordine [num: " + order.getNumOrd() + "," +
|
||||
"data: " + order.getDataOrd() + "," +
|
||||
"gestione: " + order.getGestione() + "]", ex);
|
||||
|
||||
internalMultiDb.rollbackAll();
|
||||
//throw ex;
|
||||
exchangeMultiDb.rollbackAll();
|
||||
}
|
||||
//});
|
||||
|
||||
}
|
||||
|
||||
|
||||
//UtilityThread.executeParallel(calls);
|
||||
}
|
||||
|
||||
if (firstExceptionToThrow[0] != null) throw firstExceptionToThrow[0];
|
||||
@@ -145,15 +144,6 @@ public class ExchangeOrdiniImportService {
|
||||
String dtbOrdrTableName = dtbOrdrOriginalTableName + (useTempTable ? "_tmp" : "");
|
||||
|
||||
|
||||
if (useTempTable) {
|
||||
UtilityDB.executeStatement(connection,
|
||||
"INSERT INTO " + dtbOrdtTableName +
|
||||
" SELECT * FROM " + dtbOrdtOriginalTableName,
|
||||
"INSERT INTO " + dtbOrdrTableName +
|
||||
" SELECT * FROM " + dtbOrdrOriginalTableName
|
||||
);
|
||||
}
|
||||
|
||||
List<DtbOrdt> dtbOrdtLav = exchangeImportDataManagerService.retrieveDataFromExchange(connection, DtbOrdt.class,
|
||||
dtbOrdtTableName, Query.format("data_ord BETWEEN {} AND {}", minDate, maxDate), retrieveAlreadyImported);
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ public class AnagraficaDocFinanceService {
|
||||
" LEFT OUTER JOIN atb_forn ON gtb_anag.cod_anag = atb_forn.cod_anag\n" +
|
||||
" LEFT OUTER JOIN gtb_banc_azi_intercode ON vtb_clie.cod_banc_azi = gtb_banc_azi_intercode.cod_banc_azi AND\n" +
|
||||
" gtb_banc_azi_intercode.formato = 'DOCFINANCE'\n" +
|
||||
"WHERE (data_ins >= CAST(DATEADD(MONTH, -1, GETDATE()) AS DATE)\n" +
|
||||
"WHERE (data_ins >= CAST(GETDATE() AS DATE)\n" +
|
||||
" OR data_mod = CAST(GETDATE() AS DATE))\n" +
|
||||
"UNION ALL\n" +
|
||||
"SELECT 'ROSSOGARGA' AS azienda,\n" +
|
||||
@@ -91,7 +91,7 @@ public class AnagraficaDocFinanceService {
|
||||
" NULL AS cod_bic,\n" +
|
||||
" NULL AS voce_finanziaria\n" +
|
||||
"FROM ctb_cont\n" +
|
||||
"WHERE (data_ins >= CAST(DATEADD(MONTH, -1, GETDATE()) AS DATE)\n" +
|
||||
"WHERE (data_ins >= CAST(GETDATE() AS DATE)\n" +
|
||||
" OR data_mod = CAST(GETDATE() AS DATE))";
|
||||
List<AnagraficaDocFinanceDTO> anagraficaDocFinance = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, AnagraficaDocFinanceDTO.class);
|
||||
|
||||
@@ -100,7 +100,7 @@ public class AnagraficaDocFinanceService {
|
||||
String fileContent = txtMapper.serialize(anagraficaDocFinance);
|
||||
|
||||
if (fileContent != null) {
|
||||
String filename = String.format("Anagrafiche_%s.txt", UtilityDate.formatDate(new Date(), "ddMMyyyyHHmm"));
|
||||
String filename = "anagrafiche.txt";
|
||||
FileItem returnFile = new FileItem(filename, fileContent, "txt");
|
||||
entityExportResponse.getResponse().add(returnFile);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user