Export ROTUNNO

This commit is contained in:
2024-07-02 18:34:07 +02:00
parent 2770cac483
commit 43d101719c
3 changed files with 139 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20240702173002 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "ATTIVO", "N", "Inserire S/N per attivare/disattivare il tipo di importazione", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "COD_ANAG", null, "Codice anagrafico del vettore", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "COD_VVET", null, "Codice vettore", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "ELENCO_TIPI_DOC_DA_ESCLUDERE", null, "Elenco documenti da escludere", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "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("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "FILE_FILTER", null, "Inserire il criterio di filtro dei file o il nome del file specifio (seguire la sintassi di java)", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "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("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "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("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "LISTENING", "N", "Se LISTENIG = 'N' la procedura di importazione non si potrà mai mettere in ascolto sulla directory perchè nella procedura vengono prese in considerazione più file.", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "PATH_FILE", null, "Directory contente i file da importare.", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "PATH_FILE_IMPORTED", null, "Directory dove vengono spostati i file dopo l'importazione.", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "SET_COND_ANNO_DOC", "N", "Se attivato nel ricarcare il documento oltre a cercare per data documento cerca anche il documento nell''anno. Possibili valori S/N", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "SET_COND_GESTIONE", "N", "Se impostato nel ricercare il documento viene impostata la condizione sulla gestione specificata in questa confiturazione (possibile valore V e A)", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "SET_COND_SERIE_DOC", "N", "Se impostato nella ricerca del documento viene impostata la condizione anche sul vettore (Attivare solo se il tracciato provedere la colonna della serie) Possibili valori S/N", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "SET_COND_VETTORE", "N", "Se impostato nel ricercare il documento imposta la condizione anche sul vettore, ma in tal caso si deve essere sicuri che tutti i documenti abbiamo il codice vettore associato altrimenti alcuni documenti del file non verrebbero riconosciuti, Possibili valori S/N", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "SET_ESLUDI_ONERI_ZERO", "N", "Se impostato a S, durante l''importazione le righe con oneri pari a zero nel file vengono escluse", false, null, false, false, false, false, false, null, false, null);
createSetup("IMPORT_DOCUMENTI_TRASPORTO", "ROTUNNO", "TIPO_RIPARTIZIONE_COSTI_PER_PEDANA_A", null, "Se il tipo di calcolo è a PEDANA allora si può decidere se la ripartizione dei costi deve essere fatta a pedana, a colli o a pezzi. E'' stato necessario perchè spesso il numero di pedane del vettore è diverso dal numero di pedane che calcoliamo noi nei documenti", false, null, false, false, false, false, false, null, false, null);
}
@Override
public void down() throws Exception {
}
}

View File

@@ -60,6 +60,7 @@ public class DocCostiTrasportoController {
case "EBC":
break;
case "ROTUNNO":
docTrasp = documentService.importDocumentiTrasportoROTUNNO(requestDataDTO, type, format);
break;
case "DIPA":
docTrasp = documentService.importDocumentiTrasportoDIPA(requestDataDTO, type, format);

View File

@@ -532,6 +532,7 @@ public class DocCostiTrasporto {
}
docCostiTrasp = checkAndImportDoc(listDocTrasp, format);
String pathFileImported = UtilityString.replaceSubString(requestDataDTO.getPathFile(), format, format + "\\imported");
UtilityFile.fileDelete(pathFileImported);
FileUtils.moveFile(new File(requestDataDTO.getPathFile()), new File(pathFileImported));
@@ -588,6 +589,8 @@ public class DocCostiTrasporto {
docTrasp.setIdRiga(idRiga);
listDocTrasp.add(docTrasp);
}
fis.close();
docCostiTrasp = checkAndImportDoc(listDocTrasp, format);
String pathFileImported = UtilityString.replaceSubString(requestDataDTO.getPathFile(), format, format + "\\imported");
@@ -685,11 +688,108 @@ public class DocCostiTrasporto {
}
} while (rifDocOld.compareTo(rifDoc) == 0);
}
fis.close();
docCostiTrasp = checkAndImportDoc(listDocTrasp, format);
String pathFileImported = UtilityString.replaceSubString(requestDataDTO.getPathFile(), format, format + "\\imported");
UtilityFile.fileDelete(pathFileImported);
FileUtils.moveFile(new File(requestDataDTO.getPathFile()), new File(pathFileImported));
return docCostiTrasp;
}
public List<ReturnDocCostiTrasportoDTO> importDocumentiTrasportoROTUNNO(ImportRequestDTO requestDataDTO, String type, String format) throws Exception {
int idRiga = 0;
String rifDocOld = "", rifDoc = "";
List<ReturnDocCostiTrasportoDTO> docCostiTrasp = new ArrayList<>();
List<DocTraspImportDTO> listDocTrasp = new ArrayList<>();
DocTraspImportDTO docTrasp = new DocTraspImportDTO();
DataFormatter dataFormatter = new DataFormatter();
Connection connect = multiDBTransactionManager.getPrimaryConnection();
String tipoCalc = UtilityString.emptyStr2Null(setupGest.getImportSetup(connect, type, format, "TIPO_CALC"));
String untMis = getUntMisFromTipoCalc(tipoCalc);
File tempFile = new File(requestDataDTO.getPathFile());
FileInputStream fis = new FileInputStream(tempFile);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet mySheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = mySheet.iterator();
Row row = null;
while (rowIterator.hasNext()) {
if (idRiga <= 1){
row = rowIterator.next();
idRiga++;
if (idRiga == 1){
continue;
}
}
int index = 0;
do {
String dataSpedizione = String.valueOf(row.getCell(2));
rifDoc = dataFormatter.formatCellValue(row.getCell(0));
String ragSoc = dataFormatter.formatCellValue(row.getCell(3));
String citta = dataFormatter.formatCellValue(row.getCell(4)).toUpperCase();
BigDecimal tassato = new BigDecimal(String.valueOf(row.getCell(5)));
String descrizioneList = dataFormatter.formatCellValue(row.getCell(6));
BigDecimal nolo = new BigDecimal(String.valueOf(row.getCell(8)));
Date dataDoc = new SimpleDateFormat("dd/MM/yyyy").parse(dataSpedizione);
index++;
// Le informazioni relativa agli estremi del documento vengono presi dalla prima riga, mentre dalle atre righe vengono solo sommati i singoli importi di spedizione più diritti fissi e contrassegno
if (index == 1){
Integer numDoc = null;
String serDoc = UtilityString.right(rifDoc,2);
String numero = rifDoc.substring(0, rifDoc.length() -2);
if (UtilityString.isNumber(numero)) {
numDoc = Integer.valueOf(numero);
}
docTrasp = new DocTraspImportDTO();
docTrasp.setDataDoc(dataDoc);
docTrasp.setSerDoc(serDoc);
docTrasp.setNumDoc(numDoc);
docTrasp.setRagSoc(ragSoc);
docTrasp.setNolo(nolo);
docTrasp.setDataSped(dataDoc);
docTrasp.setRifDoc(rifDoc);
docTrasp.setIdRiga(idRiga);
docTrasp.setCitta(citta);
docTrasp.setTipoCalc(tipoCalc);
docTrasp.setUntMis(untMis);
docTrasp.setTassato(BigDecimal.ZERO);
if (UtilityString.left(descrizioneList, 2).trim().equals("BA")){
docTrasp.setTassato(tassato);
}
listDocTrasp.add(docTrasp);
} else {
if (UtilityString.left(descrizioneList, 2).trim().equals("BA")){
docTrasp.setTassato(docTrasp.getTassato().add(tassato));
}
docTrasp.setNolo(docTrasp.getNolo().add(nolo));
}
rifDocOld = rifDoc;
if (rowIterator.hasNext()){
idRiga++;
row = rowIterator.next();
rifDoc = dataFormatter.formatCellValue(row.getCell(1));
if (rifDoc.isEmpty()){
if (rowIterator.hasNext()){
row = rowIterator.next();
}
}
}
} while (rifDocOld.compareTo(rifDoc) == 0);
}
fis.close();
docCostiTrasp = checkAndImportDoc(listDocTrasp, format);
String pathFileImported = UtilityString.replaceSubString(requestDataDTO.getPathFile(), format, format + "\\imported");
UtilityFile.fileDelete(pathFileImported);
FileUtils.moveFile(new File(requestDataDTO.getPathFile()), new File(pathFileImported));