fix df service

This commit is contained in:
etreschenkov 2026-04-28 13:02:44 +03:00
parent 7ba03b3bdf
commit 4166d7f685

View file

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