From 4166d7f68532596436a7aaeece8d73bfd64ca148 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Tue, 28 Apr 2026 13:02:44 +0300 Subject: [PATCH] fix df service --- .../dflt/management/service/OrderCalculationService.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/OrderCalculationService.java b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/OrderCalculationService.java index 3f94dfb8c..17c860266 100644 --- a/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/OrderCalculationService.java +++ b/clearing-parent/default-management/src/main/java/ru/spcex/clearing/dflt/management/service/OrderCalculationService.java @@ -15,6 +15,7 @@ import ru.clearing.classes.statics.data.security.Rates; import ru.clearing.platform.dictionary.CurrencyPairDictionary; import ru.spcex.clearing.dflt.management.model.CalculationResult; import ru.spcex.clearing.dflt.management.model.OrderCurrencyContext; +import ru.spcex.platform.enumeration.CurrencyCode; import ru.spcex.platform.enumeration.SettleCode; @Service @@ -108,11 +109,11 @@ public class OrderCalculationService { private CalculationResult calculationRubSums(Registry registry, Integer lotSize, BigDecimal s, BigDecimal n) { BigDecimal planPosition = registry.getBalance(); - Rates cnyRate = imdgQueryService.getRate(registry.getSecuritySymbol(), LocalDate.now()); - if (cnyRate == null) { - throw new IllegalStateException(String.format("Not fond rate by security symbol: %s", registry.getSecuritySymbol())); + SCrossRate sCrossRates = imdgQueryService.getSCrossRates(CurrencyCode.CNY.getKey(), LocalDate.now()); + if (sCrossRates == null) { + throw new IllegalStateException(String.format("Not fond rate by security symbol: %s", CurrencyCode.CNY.getKey())); } - BigDecimal rateValue = cnyRate.getValue(); + BigDecimal rateValue = sCrossRates.getUnitRate(); BigDecimal sum1 = planPosition.divide(rateValue, MC);