From 38ac634f582a552194ae71a210e2476c72c1c366 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 23 Apr 2026 16:03:22 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-959 --- .../SendOrdersTypeConverter.java | 21 +++++++++++++++++++ .../settings/DefaultManagementSettings.java | 10 +++++++++ .../management/enums/SendOrdersTypes.java | 18 ++++++++++++++++ .../management/listener/TaskListener.java | 7 ++++++- .../src/main/resources/application.properties | 3 ++- 5 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/deserializers/SendOrdersTypeConverter.java create mode 100644 clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/enums/SendOrdersTypes.java diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/deserializers/SendOrdersTypeConverter.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/deserializers/SendOrdersTypeConverter.java new file mode 100644 index 000000000..d52a20447 --- /dev/null +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/deserializers/SendOrdersTypeConverter.java @@ -0,0 +1,21 @@ +package ru.spcex.clearing.dflt.management.config.deserializers; + +import java.util.Arrays; +import org.springframework.boot.context.properties.ConfigurationPropertiesBinding; +import org.springframework.core.convert.converter.Converter; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.dflt.management.enums.SendOrdersTypes; + +@Component +@ConfigurationPropertiesBinding +public class SendOrdersTypeConverter implements Converter { + @Override + public SendOrdersTypes convert(String source) { + String normalized = source.trim(); + + return Arrays.stream(SendOrdersTypes.values()) + .filter(v -> v.name().equalsIgnoreCase(normalized)) + .findFirst() + .orElse(SendOrdersTypes.FIX); + } +} diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/settings/DefaultManagementSettings.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/settings/DefaultManagementSettings.java index c15ec86e2..af5ef4f12 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/settings/DefaultManagementSettings.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/config/settings/DefaultManagementSettings.java @@ -3,6 +3,7 @@ package ru.spcex.clearing.dflt.management.config.settings; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; +import ru.spcex.clearing.dflt.management.enums.SendOrdersTypes; import ru.spcex.clearing.platform.messaging.config.element.KafkaConsumerSettings; import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings; import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; @@ -15,6 +16,7 @@ public class DefaultManagementSettings { private KafkaConsumerSettings kafkaConsumer; private KafkaProducerSettings kafkaProducer; private String fileStoragePath; + private SendOrdersTypes sendOrdersType; public HazelcastClientParams getHazelcast() { return hazelcast; @@ -47,4 +49,12 @@ public class DefaultManagementSettings { public void setFileStoragePath(String fileStoragePath) { this.fileStoragePath = fileStoragePath; } + + public SendOrdersTypes getSendOrdersType() { + return sendOrdersType; + } + + public void setSendOrdersType(SendOrdersTypes sendOrdersType) { + this.sendOrdersType = sendOrdersType; + } } diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/enums/SendOrdersTypes.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/enums/SendOrdersTypes.java new file mode 100644 index 000000000..8fc1513cf --- /dev/null +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/enums/SendOrdersTypes.java @@ -0,0 +1,18 @@ +package ru.spcex.clearing.dflt.management.enums; + +import ru.spcex.platform.utils.enumeration.IEnumKey; + +public enum SendOrdersTypes implements IEnumKey { + FIX("fix"), + FILE("file"); + private final String name; + + SendOrdersTypes(String name) { + this.name = name; + } + + @Override + public String getKey() { + return this.getKey(); + } +} diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/TaskListener.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/TaskListener.java index 8b3afb4dd..4e61ccdcd 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/TaskListener.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/listener/TaskListener.java @@ -26,6 +26,7 @@ import ru.clearing.classes.statics.data.misc.OvernightSettings; import ru.clearing.classes.statics.data.misc.SCrossRate; import ru.clearing.classes.statics.data.registry.Registry; import ru.spcex.clearing.dflt.management.config.settings.DefaultManagementSettings; +import ru.spcex.clearing.dflt.management.enums.SendOrdersTypes; import ru.spcex.clearing.dflt.management.service.ImdgQueryService; import ru.spcex.clearing.dflt.management.service.OrderCurrencyTriExportService; import ru.spcex.clearing.dflt.management.service.SpotOvernightOrderService; @@ -58,6 +59,7 @@ public class TaskListener extends QueueConsumer implements InitializingBean { private final KafkaSender kafkaSender; private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyymmddHHmmssSSS"); private final Path storagePath; + private final SendOrdersTypes sendOrdersTypes; @Autowired public TaskListener(Consumer kafkaQueue, @@ -77,6 +79,7 @@ public class TaskListener extends QueueConsumer implements InitializingBean { this.orderCurrencyTriExportService = orderCurrencyTriExportService; this.kafkaSender = kafkaSender; this.storagePath = Path.of(defaultManagementSettings.getFileStoragePath()); + this.sendOrdersTypes = defaultManagementSettings.getSendOrdersType(); } @Override @@ -152,7 +155,9 @@ public class TaskListener extends QueueConsumer implements InitializingBean { Path fileName = storagePath.resolve(String.format("KS_TS_ORDERS_%s.tri", LocalDateTime.now().format(formatter))); Files.writeString(fileName, content, StandardCharsets.UTF_8); - kafkaSender.sendRequestToQueue(Consts.SDOR_FIX_TASK, req.getRequestPayload()); + if (SendOrdersTypes.FIX == sendOrdersTypes) { + kafkaSender.sendRequestToQueue(Consts.SDOR_FIX_TASK, req.getRequestPayload()); + } } catch (IOException e) { log.error("Error while import order currency to tri file: {}", ExceptionUtils.getStackTrace(e)); } diff --git a/clearing-parent/default-management/src/main/resources/application.properties b/clearing-parent/default-management/src/main/resources/application.properties index 0cc34e726..49db2e46a 100644 --- a/clearing-parent/default-management/src/main/resources/application.properties +++ b/clearing-parent/default-management/src/main/resources/application.properties @@ -1,5 +1,6 @@ spring.main.web-application-type=none -default-management.file-storage-path=/opt/storage/csv-impoter/ +default-management.file-storage-path=/opt/storage/csv-importer/ +default-management.send-orders-type=FILE default-management.hazelcast.cluster-members=127.0.0.1:5701 default-management.hazelcast.login=dev