diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/settings/ExportXMLServiceSettings.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/settings/ExportXMLServiceSettings.java index eaf22daeb..c7dd58726 100644 --- a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/settings/ExportXMLServiceSettings.java +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/config/settings/ExportXMLServiceSettings.java @@ -26,6 +26,8 @@ public class ExportXMLServiceSettings { private Cron cron; private String section; + private String sender; + private String receiver; public HazelcastClientParams getHazelcast() { return hazelcast; @@ -82,4 +84,20 @@ public class ExportXMLServiceSettings { public void setSection(String section) { this.section = section; } + + public String getSender() { + return sender; + } + + public void setSender(String sender) { + this.sender = sender; + } + + public String getReceiver() { + return receiver; + } + + public void setReceiver(String receiver) { + this.receiver = receiver; + } } diff --git a/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/enums/Sender.java b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/enums/Sender.java new file mode 100644 index 000000000..319ae9bf7 --- /dev/null +++ b/clearing-parent/xml-exporter/src/main/java/ru/spcex/clearing/xml/exporter/logic/data/enums/Sender.java @@ -0,0 +1,16 @@ +package ru.spcex.clearing.xml.exporter.logic.data.enums; + +public enum Sender { + LCC("ЛЦК"), + SPVB("СПВБ"); + + Sender(String text) { + this.text = text; + } + + private String text; + + public String getText() { + return text; + } +} 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 db11b0543..d0253c084 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 @@ -23,6 +23,7 @@ import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.xml.exporter.config.SFTPConfig; import ru.spcex.clearing.xml.exporter.config.settings.ExportXMLServiceSettings; import ru.spcex.clearing.xml.exporter.logic.data.ResultContainer; +import ru.spcex.clearing.xml.exporter.logic.data.enums.Sender; import ru.spcex.clearing.xml.exporter.logic.data.enums.StageResult; import ru.spcex.clearing.xml.exporter.logic.data.enums.Table; import ru.spcex.clearing.xml.exporter.logic.data.tags.DocumentTag; @@ -59,17 +60,25 @@ public class ExportFromHazelcast { Table table = Objects.requireNonNull(resultContainer.getTableForExport()); File xmlFile = Objects.requireNonNull(resultContainer.getFileForExport()); + String path; + String currency = ruCurrency; //todo: rewrite currency logic + if (CurrencyCode.isRub(currency)) { + path = settings.getStore().getOutPayValDir().get(ruCurrency); + } else { + path = settings.getStore().getOutPayValDir().get(currency); + } + DocumentTag documentTag = new DocumentTag(); ParentDocTag parentDocTag = new ParentDocTag(); parentDocTag.setParentId(""); // todo: Добавить данные DocumentTag'а - documentTag.setMessageId(""); + documentTag.setMessageId(String.valueOf(resultContainer.getGroupId())); documentTag.setMessageType(table.getFilePrefix().replace("-", "")); documentTag.setMessageName(""); documentTag.setMessageDate(LocalDate.now()); documentTag.setMessageTime(LocalTime.now()); - documentTag.setSender(""); - documentTag.setReceiver(""); + documentTag.setSender(settings.getSender() != null ? Sender.valueOf(settings.getSender().toUpperCase()).getText() : ""); + documentTag.setReceiver(settings.getReceiver() != null ? settings.getReceiver() : ""); documentTag.setParentDoc(parentDocTag); Imdg map = imdgProvider.getImdg(table.getHazelcastMapName(), table.getEntityClass()); @@ -83,7 +92,12 @@ public class ExportFromHazelcast { } if (tableRows.isEmpty()) { log.info("uuid {}. Map {} is empty, generationId {}", resultContainer.getUuid(), resultContainer.getTableForExport().getHazelcastMapName(), resultContainer.getGroupId()); - return StageResult.COMPLETE; + log.debug("uuid {}, send to SFTP path \"{}\"", resultContainer.getUuid(), path); + + documentTag.setObjects(List.of()); + resultContainer.setDocumentTag(documentTag); + gateway.sendToSftp(xmlFile, path); + return StageResult.OK; } else { log.debug("uuid {}. Selected {} records from map {}, generationId {}", resultContainer.getUuid(), tableRows.size(), resultContainer.getTableForExport().getHazelcastMapName(), resultContainer.getGroupId()); @@ -97,27 +111,10 @@ public class ExportFromHazelcast { documentTag.setObjects(addObjectTags(tableRows, table)); resultContainer.setDocumentTag(documentTag); - boolean emptyMap = tableRows.isEmpty(); - String path; - String currency = ruCurrency; //todo: rewrite currency logic - if (CurrencyCode.isRub(currency)) { - path = settings.getStore().getOutPayValDir().get(ruCurrency); - } else { - path = settings.getStore().getOutPayValDir().get(currency); - } - - if (emptyMap) { - log.debug("Delete empty XML temp file \"{}\"", resultContainer.getFileForExport()); - boolean deleteOk = resultContainer.getFileForExport().delete(); - if (!deleteOk) { - log.warn("Can't delete file {}", resultContainer.getFileForExport().getName()); - } - } else { - log.debug("uuid {}, send to SFTP path \"{}\"", resultContainer.getUuid(), path); - gateway.sendToSftp(xmlFile, path); - if (Table.S_DF02.equals(resultContainer.getTableForExport())) { - sendPairSdfRequest(resultContainer); - } + log.debug("uuid {}, send to SFTP path \"{}\"", resultContainer.getUuid(), path); + gateway.sendToSftp(xmlFile, path); + if (Table.S_DF02.equals(resultContainer.getTableForExport())) { + sendPairSdfRequest(resultContainer); } return StageResult.OK; diff --git a/clearing-parent/xml-exporter/src/main/resources/application.properties b/clearing-parent/xml-exporter/src/main/resources/application.properties index a8def90af..87f754e52 100644 --- a/clearing-parent/xml-exporter/src/main/resources/application.properties +++ b/clearing-parent/xml-exporter/src/main/resources/application.properties @@ -8,7 +8,7 @@ export-xml-service.common.encoding=cp866 export-xml-service.common.threads-count=10 export-xml-service.store.local-temp-dir=D:\\docs and T3\\clearing\\xml\\ -# код валюты должен быть в верхнем регистре, например для рублей - "RUB" (*.RUB=export/rub/).RUB=export/rub/ +# \u043A\u043E\u0434 \u0432\u0430\u043B\u044E\u0442\u044B \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u0432 \u0432\u0435\u0440\u0445\u043D\u0435\u043C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \u0434\u043B\u044F \u0440\u0443\u0431\u043B\u0435\u0439 - "RUB" (*.RUB=export/rub/).RUB=export/rub/ export-xml-service.store.out-pay-val-dir.RUB=export/rub/ export-xml-service.store.out-pay-val-dir.EUR=export/eur/ export-xml-service.store.user:tester @@ -32,3 +32,5 @@ export-xml-service.kafka-producer.linger-ms=1 export-xml-service.kafka-producer.buffer-memory=33554432 export-xml-service.section=S +export-xml-service.sender=LCC +export-xml-service.receiver=\u0422\u0435\u0441\u0442 diff --git a/clearing-parent/xml-exporter/src/test/resources/application.properties b/clearing-parent/xml-exporter/src/test/resources/application.properties index ed48caa14..0202082f0 100644 --- a/clearing-parent/xml-exporter/src/test/resources/application.properties +++ b/clearing-parent/xml-exporter/src/test/resources/application.properties @@ -8,7 +8,7 @@ export-xml-service.common.encoding=cp866 export-xml-service.common.threads-count=10 export-xml-service.store.local-temp-dir=D:\\docs and T3\\clearing\\xml\\ -# код валюты должен быть в верхнем регистре, например для рублей - "RUB" (*.RUB=export/rub/).RUB=export/rub/ +# \u043A\u043E\u0434 \u0432\u0430\u043B\u044E\u0442\u044B \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u0432 \u0432\u0435\u0440\u0445\u043D\u0435\u043C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 \u0434\u043B\u044F \u0440\u0443\u0431\u043B\u0435\u0439 - "RUB" (*.RUB=export/rub/).RUB=export/rub/ export-xml-service.store.out-pay-val-dir.RUB=export/rub/ export-xml-service.store.out-pay-val-dir.EUR=export/eur/ export-xml-service.store.user:tester @@ -30,3 +30,7 @@ export-xml-service.kafka-producer.retries=0 export-xml-service.kafka-producer.batch-size=16384 export-xml-service.kafka-producer.linger-ms=1 export-xml-service.kafka-producer.buffer-memory=33554432 + +export-xml-service.section=S +export-xml-service.sender=LCC +export-xml-service.receiver=\u0439\u0439\u0439 \u0446\u0446\u0446 \ No newline at end of file