From 491577b6f81169c2cd6c7905b5f884b396f682dc Mon Sep 17 00:00:00 2001 From: Ivan Nikolaev-Axenov Date: Mon, 27 May 2024 18:45:02 +0300 Subject: [PATCH] SFTP connection mocked, currency logic fixed --- .../xml/exporter/config/SFTPConfig.java | 2 ++ .../xml/exporter/config/SFTPTestConfig.java | 33 +++++++++++++++++++ .../data/tags/objects/DF02ObjectTag.java | 4 +-- .../data/tags/objects/DF03ObjectTag.java | 4 +-- .../data/tags/objects/DF05ObjectTag.java | 2 +- .../data/tags/objects/DF07ObjectTag.java | 4 +-- .../data/tags/objects/DF51ObjectTag.java | 2 +- .../data/tags/objects/DF53ObjectTag.java | 2 +- .../data/tags/objects/DF54ObjectTag.java | 4 +-- .../data/tags/objects/DF56ObjectTag.java | 2 +- .../logic/data/tags/objects/ObjectTag.java | 4 ++- .../logic/stages/ExportFromHazelcast.java | 10 ++++-- .../exporter/logic/stages/PrepareXMLFile.java | 13 +++++--- 13 files changed, 66 insertions(+), 20 deletions(-) create mode 100644 clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/SFTPTestConfig.java diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/SFTPConfig.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/SFTPConfig.java index 04fe0a895..09fa8a572 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/SFTPConfig.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/SFTPConfig.java @@ -9,6 +9,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.integration.annotation.Gateway; @@ -29,6 +30,7 @@ import org.springframework.messaging.handler.annotation.Payload; import ru.spcex.clearing.xml.exporter.config.settings.ExportXMLServiceSettings; @Configuration +@Profile("!test") public class SFTPConfig { protected Logger log = LoggerFactory.getLogger(getClass()); protected static final ExpressionParser EXPRESSION_PARSER = new SpelExpressionParser(); diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/SFTPTestConfig.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/SFTPTestConfig.java new file mode 100644 index 000000000..64d096f4a --- /dev/null +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/SFTPTestConfig.java @@ -0,0 +1,33 @@ +package ru.spcex.clearing.xml.exporter.config; + +import java.io.File; +import java.util.List; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.integration.sftp.session.SftpFileInfo; + +@Configuration +@Profile("test") +public class SFTPTestConfig { + @Bean + @Qualifier("mockSFTP") + public SFTPConfig.XmlGateway xmlGateway(){ + return new XGateway(); + } + + public static class XGateway implements SFTPConfig.XmlGateway{ + + @Override + public void sendToSftp(File file, String path) { + + } + + @Override + public List listFiles(String dir) { + return null; + } + } + +} diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF02ObjectTag.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF02ObjectTag.java index 8518e0956..a7172b800 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF02ObjectTag.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF02ObjectTag.java @@ -71,8 +71,8 @@ public class DF02ObjectTag extends ObjectTag { } @Override - public String getCurrency(SDf02 entity) { - return entity.getCurr_code(); + public String getCurrency() { + return this.currCode; } public String getCurrCode() { diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF03ObjectTag.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF03ObjectTag.java index cd19dd693..d2b5d7fcf 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF03ObjectTag.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF03ObjectTag.java @@ -88,8 +88,8 @@ public class DF03ObjectTag extends ObjectTag { } @Override - public String getCurrency(SDf03 entity) { - return entity.getPay_val(); + public String getCurrency() { + return this.payVal; } public String getSegType() { diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF05ObjectTag.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF05ObjectTag.java index 2b608adf1..47944d53b 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF05ObjectTag.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF05ObjectTag.java @@ -38,7 +38,7 @@ public class DF05ObjectTag extends ObjectTag { } @Override - public String getCurrency(SDf05 entity) { + public String getCurrency() { return ruCurrency; } diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF07ObjectTag.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF07ObjectTag.java index 111eeaa5b..9a508deca 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF07ObjectTag.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF07ObjectTag.java @@ -77,8 +77,8 @@ public class DF07ObjectTag extends ObjectTag { } @Override - public String getCurrency(SDf07 entity) { - return entity.getPay_val(); + public String getCurrency() { + return this.payVal; } public String getAccount() { diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF51ObjectTag.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF51ObjectTag.java index da78b6b2b..db8fe292a 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF51ObjectTag.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF51ObjectTag.java @@ -35,7 +35,7 @@ public class DF51ObjectTag extends ObjectTag { } @Override - public String getCurrency(SDf51 entity) { + public String getCurrency() { return ruCurrency; } diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF53ObjectTag.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF53ObjectTag.java index baf19116e..7fb5275c7 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF53ObjectTag.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF53ObjectTag.java @@ -48,7 +48,7 @@ public class DF53ObjectTag extends ObjectTag { } @Override - public String getCurrency(SDf53 entity) { + public String getCurrency() { return ruCurrency; } diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF54ObjectTag.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF54ObjectTag.java index 081161e5e..a1619dd77 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF54ObjectTag.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF54ObjectTag.java @@ -174,8 +174,8 @@ public class DF54ObjectTag extends ObjectTag { } @Override - public String getCurrency(SDf54 entity) { - return entity.getPay_val(); + public String getCurrency() { + return this.payVal; } public String getSegType() { diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF56ObjectTag.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF56ObjectTag.java index 53980025c..7247e0238 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF56ObjectTag.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/DF56ObjectTag.java @@ -56,7 +56,7 @@ public class DF56ObjectTag extends ObjectTag { } @Override - public String getCurrency(SDf56 entity) { + public String getCurrency() { return ruCurrency; } diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/ObjectTag.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/ObjectTag.java index d29abcddf..1953b99d7 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/ObjectTag.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/tags/objects/ObjectTag.java @@ -1,5 +1,6 @@ package ru.spcex.clearing.xml.exporter.logic.data.tags.objects; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -16,6 +17,7 @@ import ru.spcex.platform.enumeration.CurrencyCode; @JsonSubTypes.Type(DF54ObjectTag.class), @JsonSubTypes.Type(DF56ObjectTag.class), }) +@JsonIgnoreProperties(value = { "clazz", "currency" }) public abstract class ObjectTag { public final static String ruCurrency = CurrencyCode.RUB.getKey(); public Class clazz; @@ -26,5 +28,5 @@ public abstract class ObjectTag { public abstract void setData(T1 entity); - public abstract String getCurrency(T1 entity); + public abstract String getCurrency(); } diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcast.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcast.java index bec280aac..3faf2d06a 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcast.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/ExportFromHazelcast.java @@ -43,7 +43,7 @@ public class ExportFromHazelcast extends Stage { public ExportFromHazelcast(ExportXMLServiceSettings settings, ImdgProvider imdgProvider, - SFTPConfig.XmlGateway gateway, + @Qualifier("mockSFTP") SFTPConfig.XmlGateway gateway, @Qualifier("xmlMapper") XmlMapper xmlMapper, @Qualifier("mapOfTable") Map> objectTagMap, Supplier kafkaSender) { @@ -103,6 +103,9 @@ public class ExportFromHazelcast extends Stage { } documentTag.setObjects(addObjectTags(tableRows, table)); + + //todo: rewrite currency logic + currency = ruCurrency; log.info("DOCUMENT TAG = {}", documentTag); xmlMapper.writeValue(xmlFile, documentTag); @@ -110,6 +113,9 @@ public class ExportFromHazelcast extends Stage { path = settings.getStore().getOutPayValDir().get(ruCurrency); else path = settings.getStore().getOutPayValDir().get(currency); + log.info("settings.getStore().getOutPayValDir().get(ruCurrency): {}", settings.getStore().getOutPayValDir().get(ruCurrency)); + log.info("settings.getStore().getOutPayValDir().get(currency): {}", settings.getStore().getOutPayValDir().get(currency)); + if (path == null) throw new Exception("Get unknown currency=" + currency + ", need will be adding settings like 'export-xml-service.store.out-pay-val-dir.RUB=/RUB' and restart app"); writeOk = true; @@ -129,7 +135,7 @@ public class ExportFromHazelcast extends Stage { } } else { log.debug("uuid {}, send to SFTP path \"{}\"", resultContainer.getUuid(), path); - //gateway.sendToSftp(xmlFile, path); + gateway.sendToSftp(xmlFile, path); if (Table.S_DF02.equals(resultContainer.getTableForExport())) { sendPairSdfRequest(resultContainer); } diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/PrepareXMLFile.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/PrepareXMLFile.java index 64b4c1144..ad0a6d4da 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/PrepareXMLFile.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/stages/PrepareXMLFile.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.integration.sftp.session.SftpFileInfo; import org.springframework.stereotype.Component; import ru.spcex.clearing.xml.exporter.config.SFTPConfig; @@ -27,7 +28,8 @@ public class PrepareXMLFile extends Stage implements InitializingBean { public static String outDir; private final SFTPConfig.XmlGateway gateway; - public PrepareXMLFile(ExportXMLServiceSettings settings, SFTPConfig.XmlGateway gateway) { + public PrepareXMLFile(ExportXMLServiceSettings settings, + @Qualifier("mockSFTP") SFTPConfig.XmlGateway gateway) { this.settings = settings; this.gateway = gateway; } @@ -41,14 +43,15 @@ public class PrepareXMLFile extends Stage implements InitializingBean { } List files = new ArrayList<>(); log.trace("Get files from SFTP paths: {}", settings.getStore().getOutPayValDir().values()); - for (String path : settings.getStore().getOutPayValDir().values()) { - files.addAll(gateway.listFiles(path)); - } - log.info("There are {} files on the sFTP server in the search directories.", files.size()); +// for (String path : settings.getStore().getOutPayValDir().values()) { +// files.addAll(gateway.listFiles(path)); +// } +// log.info("There are {} files on the sFTP server in the search directories.", files.size()); Table table = resultContainer.getTableForExport(); LocalDateTime currentDateTime = LocalDateTime.now(); resultContainer.setRegistrationDateTime(currentDateTime); File xmlFile = new File(nameTemplates.get(table).getFileName(resultContainer, files)); + log.info("XML FILE = {}", xmlFile.toPath()); try { Path xmlFilePath = xmlFile.toPath(); Files.deleteIfExists(xmlFilePath);