Tracciato §EBC

This commit is contained in:
2024-07-22 09:26:04 +02:00
parent fe84a31f66
commit 45f53d5d80
3 changed files with 174 additions and 15 deletions

View File

@@ -30,7 +30,7 @@ public class DocCostiTrasportoController {
List<ReturnDocCostiTrasportoDTO> docTrasp = new ArrayList<>();
try {
docTrasp = documentService.importDocumentiTrasportoPapagni(requestDataDTO);
docTrasp = documentService.importDocumentiTrasportoPapagni(requestDataDTO, "DOCUMENIT TRASPORTO", "PAPAGNI");
return ServiceRestResponse.createPositiveResponse(docTrasp);
@@ -55,9 +55,10 @@ public class DocCostiTrasportoController {
docTrasp = documentService.importDocumentiTrasportoMirarchi(requestDataDTO, type, format);
break;
case "STEF":
docTrasp = documentService.importDocumentiTrasportoStef(requestDataDTO);
docTrasp = documentService.importDocumentiTrasportoStef(requestDataDTO, type, format);
break;
case "EBC":
docTrasp = documentService.importDocumentiTrasportoEBC(requestDataDTO, type, format);
break;
case "ROTUNNO":
docTrasp = documentService.importDocumentiTrasportoROTUNNO(requestDataDTO, type, format);
@@ -65,9 +66,6 @@ public class DocCostiTrasportoController {
case "DIPA":
docTrasp = documentService.importDocumentiTrasportoDIPA(requestDataDTO, type, format);
break;
case "PAPAGNI":
docTrasp = documentService.importDocumentiTrasportoPapagni(requestDataDTO);
break;
}
return ServiceRestResponse.createPositiveResponse(docTrasp);

View File

@@ -1,2 +1,87 @@
package it.integry.ems.document.CostiTrasporto.dto;public class DocTraspEBCDTO {
}
package it.integry.ems.document.CostiTrasporto.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.models.auth.In;
import java.math.BigDecimal;
import java.util.Date;
public class DocTraspEBCDTO {
@JsonProperty("SUPPLEMENTO P/ASS")
private BigDecimal supplementoPASS;
@JsonProperty("PREAVVISO TELEFONICO")
private BigDecimal preavvisoTelefonico;
@JsonProperty("SUPPLEMENTO CARBURANTE")
private BigDecimal supplementoTelefonico;
@JsonProperty("GESTIONE EPAL")
private BigDecimal gestioneEPAL;
@JsonProperty("SERVIZIO NON STOP")
private BigDecimal servizioNonStop;
@JsonProperty("ASSICURAZIONE")
private BigDecimal assicurazione;
@JsonProperty("SOSTA ALLO SCARICO")
private BigDecimal sostaAlloScarico;
@JsonProperty("DIRITTO FISSO")
private BigDecimal dirittoFisso;
@JsonProperty("RIPREZZAMENTO FUORI SAGOMA")
private BigDecimal riprezzamentoFuoriSagoma;
@JsonProperty("RIPREZZAMENTO FUORI PESO")
private BigDecimal ripressamentoFuoriPeso;
@JsonProperty("ADDEBITO PRENOTAZIONE SU TESI")
private BigDecimal AddebitoPrenotazioneSuTesi;
@JsonProperty("ADD PREN SU MERCAREON/SMARTBAY")
private BigDecimal AddPrenSuMercareonSmartbay;
@JsonProperty("IMPORTO DOCUMENTO")
private BigDecimal importoDocumento;
@JsonProperty("SCARICO COOPERATIVE GDO")
private BigDecimal scaricoCooperativaGDO;
@JsonProperty("ZONA DISAGIATA")
private BigDecimal zonsDisagiata;
@JsonProperty("CODICE CLIENTE")
private String codiceCliente;
@JsonProperty("RAGIONE SOCIALE MITTENTE")
private String ragioneSocialeMittente;
@JsonProperty("LOCALITA")
private String localita;
@JsonProperty("N.DOCUMENTO")
private Integer numDocumento;
@JsonProperty("DATA DOCUMENTO")
private Date dataDocumento;
@JsonProperty("DATA SPEDIZIONE")
private Date dataSpedizione;
@JsonProperty("CONTR.")
private BigDecimal contr;
@JsonProperty("RIF.MITTENTE")
private String rifMittente;
@JsonProperty("TP")
private String tp;
@JsonProperty("NS.RIFERIMENTO")
private String nsRiferimento;
@JsonProperty("TR")
private String tr;
@JsonProperty("RIFERIMENTO OP LOGISTICA")
private String riferimentoOpLogistica;
@JsonProperty("DESTINATARIO/MITTENTE")
private String destinarioMittente;
@JsonProperty("LOCALITA DEST.")
private String localitaDest;
@JsonProperty("PART")
private String part;
@JsonProperty("ARR.")
private String arrotonamento;
@JsonProperty("N.BANCALI")
private Integer numBancali;
@JsonProperty("N.COLLI")
private Integer numColli;
@JsonProperty("PESO")
private BigDecimal peso;
@JsonProperty("VOLUME")
private BigDecimal volume;
@JsonProperty("NOLO")
private BigDecimal nolo;
@JsonProperty("COMMISSIONE CONTRASSEGNO")
private BigDecimal commissioneContrassegno;
@JsonProperty("SUPPLEMENTO ADR")
private BigDecimal supplementoADR;
}

View File

@@ -3,6 +3,7 @@ package it.integry.ems.document.CostiTrasporto.service;
import com.annimon.stream.Stream;
import it.integry.common.var.CommonConstants;
import it.integry.ems.Import.dto.ImportRequestDTO;
import it.integry.ems.document.CostiTrasporto.dto.DocTraspEBCDTO;
import it.integry.ems.document.CostiTrasporto.dto.DocTraspImportDTO;
import it.integry.ems.document.CostiTrasporto.dto.DocTraspStefDTO;
import it.integry.ems.document.CostiTrasporto.dto.ReturnDocCostiTrasportoDTO;
@@ -66,8 +67,6 @@ public class DocCostiTrasporto {
private String sql;
private String STEF = "STEF", PAPAGNI = "PAPAGNI";
private Logger logger = LogManager.getLogger();
@NotNull
@@ -220,7 +219,7 @@ public class DocCostiTrasporto {
/*Se si tratta di STEF è necessario verificare se il cliente è tra quelli gestiti a PALLET ed in tal caso il tipo calcolo andrà cambiato,
purtroppo STEF non fornisce nel file per ogni cliente che tipo di costo è stato associato.
Siamo costretti a fare il controllo qui perchè nel file non abbiamo il codice cliente e solo in questo punto viene identificato*/
if (format.equalsIgnoreCase(STEF)){
if (format.equalsIgnoreCase("STEF")){
if (codAnag != null && elencoClientiTipoCalcPallet != null && elencoClientiTipoCalcPallet.contains(codAnag)){
tipoCalc = "PEDANE";
untMis = getUntMisFromTipoCalc(tipoCalc);
@@ -249,15 +248,15 @@ public class DocCostiTrasporto {
return docCostiTrasp;
}
public List<ReturnDocCostiTrasportoDTO> importDocumentiTrasportoPapagni(ImportRequestDTO requestDataDTO) throws Exception {
public List<ReturnDocCostiTrasportoDTO> importDocumentiTrasportoPapagni(ImportRequestDTO requestDataDTO, String type, String format) throws Exception {
Integer index = 0, numDoc = null;
String serDoc, codAnag, ragSocDB, codDtip, cittaDB, tipoCalc, format = PAPAGNI, type = "DOCUMENTI_TRASPORTO";
String serDoc, codAnag, ragSocDB, codDtip, cittaDB, tipoCalc;
List<ReturnDocCostiTrasportoDTO> docCostiTrasp = new ArrayList<>();
DataFormatter dataFormatter = new DataFormatter();
Date dataDoc;
Connection connect = multiDBTransactionManager.getPrimaryConnection();
String codVvet = UtilityString.emptyStr2Null(setupGest.getImportSetup(connect, type, format, "COD_VVET"));
String codVvet = UtilityString.emptyStr2Null(setupGest.getImportSetup(connect, "DOCUMENTI_TRASPORTO", "PAPAGNI", "COD_VVET"));
if (codVvet == null){
throw new Exception("CODICE VETTORE NON CONFIGURATO");
}
@@ -458,9 +457,8 @@ public class DocCostiTrasporto {
return returns;
}
public List<ReturnDocCostiTrasportoDTO> importDocumentiTrasportoStef(ImportRequestDTO requestDataDTO) throws Exception {
public List<ReturnDocCostiTrasportoDTO> importDocumentiTrasportoStef(ImportRequestDTO requestDataDTO, String type, String format) throws Exception {
Integer idRiga = 0;
String format = STEF, type = "DOCUMENTI_TRASPORTO";
List<ReturnDocCostiTrasportoDTO> docCostiTrasp = new ArrayList<>();
List<DocTraspImportDTO> listDocTrasp = new ArrayList<>();
HashMap<String, String> returns = new HashMap<>();
@@ -793,6 +791,84 @@ 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));
return docCostiTrasp;
}
public List<ReturnDocCostiTrasportoDTO> importDocumentiTrasportoEBC(ImportRequestDTO requestDataDTO, String type, String format) throws Exception {
Integer idRiga = 0;
List<ReturnDocCostiTrasportoDTO> docCostiTrasp = new ArrayList<>();
List<DocTraspImportDTO> listDocTrasp = new ArrayList<>();
HashMap<String, String> returns = new HashMap<>();
BigDecimal tassato = BigDecimal.ZERO;
Connection connect = multiDBTransactionManager.getPrimaryConnection();
String tipoCalc = UtilityString.emptyStr2Null(setupGest.getImportSetup(connect, type, format, "TIPO_CALC"));
if (tipoCalc == null){throw new Exception("E' NECESSARIO DEFINIRE LA TIPOLOGIA DI CALCOLO SE A PESO O A COLLI");}
String untMis = getUntMisFromTipoCalc(tipoCalc);
File tempFile = new File(requestDataDTO.getPathFile());
String csvEBC = FileUtils.readFileToString(tempFile);
CsvMapper<DocTraspEBCDTO> mapper = new CsvMapper<DocTraspEBCDTO>();
List<DocTraspEBCDTO> EBCList = mapper.deserialize(csvEBC, DocTraspEBCDTO.class, ";");
for (DocTraspEBCDTO doc : EBCList) {
/*String rifDoc = doc.gertNSRiferimento
BigDecimal totaleNolo = doc.getNolo().divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP);
BigDecimal tassatoCollo = doc.getNumColli().divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP);
BigDecimal tassatoPeso = doc.getPeso().divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP);
BigDecimal tassatoPallet = doc.getNumeroPallet();
idRiga ++;
returns = getSerNumDoc(rifDoc);
String numDocFile = returns.get("numDoc");
String serDoc = returns.get("serDoc");
Integer numDoc = null;
if (numDocFile != null && UtilityString.isNumber(numDocFile)){
numDoc = Integer.valueOf(numDocFile);
}
Date dataDoc = null;
try {
dataDoc = new SimpleDateFormat("yyyyMMdd").parse(doc.getDataDocumento());
} catch (Exception e){
logger.warn("Data documento non presente o non valida");
}
if (tipoCalc.compareTo("PESO") == 0){
tassato = tassatoPeso;
} else {
tassato = tassatoCollo;
}
String checkSerieDoc = "N";
if (doc.getCategoriaTariffa().compareTo("EM") == 0){
checkSerieDoc = "S";
}
DocTraspImportDTO docTrasp = new DocTraspImportDTO();
docTrasp.setDataDoc(dataDoc);
docTrasp.setNumDoc(numDoc);
docTrasp.setSerDoc(serDoc);
docTrasp.setRagSoc(doc.getRagSc());
docTrasp.setCitta(doc.getCitta());
docTrasp.setNolo(totaleNolo);
docTrasp.setTassato(tassato);
docTrasp.setTipoCalc(tipoCalc);
docTrasp.setUntMis(untMis);
docTrasp.setDataSped(dataDoc);
docTrasp.setRifDoc(rifDoc);
docTrasp.setIdRiga(idRiga);
docTrasp.setCheckSerDoc(checkSerieDoc);
docTrasp.setColli(tassatoCollo);
docTrasp.setPeso(tassatoPeso);
docTrasp.setPallet(tassatoPallet);
listDocTrasp.add(docTrasp);*/
}
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));