Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
ialbert 2026-04-23 17:49:21 +03:00
commit b9c90d7c28
5 changed files with 57 additions and 2 deletions

View file

@ -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<String, SendOrdersTypes> {
@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);
}
}

View file

@ -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;
}
}

View file

@ -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();
}
}

View file

@ -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<String, Object> 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));
}

View file

@ -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