This commit is contained in:
parent
2781b29664
commit
a9e4967a25
2 changed files with 12 additions and 6 deletions
|
|
@ -27,9 +27,11 @@ import ru.clearing.classes.statics.data.misc.SCrossRate;
|
|||
import ru.clearing.classes.statics.data.misc.SOrders;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||
import ru.clearing.classes.statics.data.security.Rates;
|
||||
import ru.clearing.platform.dictionary.CurrencyPairDictionary;
|
||||
import ru.spcex.clearing.dflt.management.component.validation.OrderCurrencyValidationStored;
|
||||
import ru.spcex.clearing.dflt.management.service.ImdgQueryService;
|
||||
import ru.spcex.clearing.dflt.management.service.TransferDateService;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
|
|
@ -69,6 +71,7 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
private final Function<CommonDeleteRequest, IValidator> orderCompanyDeleteValidator;
|
||||
private final ImdgQueryService imdgQueryService;
|
||||
private final IMessageResolver msgResolver;
|
||||
private final TransferDateService transferDateService;
|
||||
|
||||
@Autowired
|
||||
public OrderCurrencyListener(Consumer<String, Object> kafkaQueue,
|
||||
|
|
@ -86,7 +89,8 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
Function<OrderCurrencyUpdateRequest, IValidator> orderCurrencyUpdateStatusValidator,
|
||||
Function<CommonDeleteRequest, IValidator> orderCompanyDeleteValidator,
|
||||
ImdgQueryService imdgQueryService,
|
||||
IMessageResolver msgResolver) {
|
||||
IMessageResolver msgResolver,
|
||||
TransferDateService transferDateService) {
|
||||
super(kafkaQueue, kafkaProducer);
|
||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
this.overnightSettingsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_OvernightSettings, OvernightSettings.class);
|
||||
|
|
@ -100,6 +104,7 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
this.imdgQueryService = imdgQueryService;
|
||||
this.msgResolver = msgResolver;
|
||||
this.orderCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_OrderCurrency, OrderCurrency.class);
|
||||
this.transferDateService = transferDateService;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -273,6 +278,10 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
|
||||
Market market = imdgQueryService.getSwapMarket();
|
||||
Listing listing = imdgQueryService.findListing(rgs, market.getCode(), SettleCode.T1.getKey());
|
||||
CurrencyPairDictionary pair = imdgQueryService.getCurrencyPairDictionaryBySecurityId(listing.getSecurityId());
|
||||
BigDecimal n = transferDateService.numberOfDaysOfTransfer();
|
||||
LocalDate searchingValueDate = LocalDate.now().plusDays(n.longValue());
|
||||
Rates rates = imdgQueryService.getRate(pair.getBaseCurrency(), searchingValueDate);
|
||||
|
||||
copyCommonFields(order1, swap);
|
||||
swap.setSecurityId(listing.getSecurityId());
|
||||
|
|
@ -281,7 +290,7 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
swap.setOvernightType(OvernightType.SWAP.getKey());
|
||||
swap.setMarket(market.getCode());
|
||||
swap.setPrice(safeBD(spotT1.getPrice()).subtract(safeBD(spotT0.getPrice())));
|
||||
swap.setBasePrice(safeBD(spotT1.getBasePrice()));
|
||||
swap.setBasePrice(safeBD(rates.getValue()));
|
||||
swap.setCreated(Instant.now());
|
||||
return swap;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,10 +54,7 @@ public class OrderCalculationService {
|
|||
BigDecimal quantityLot = result.sum3().abs();
|
||||
BigDecimal price;
|
||||
long nextWorkDayDelta = n.longValue();
|
||||
LocalDate searchingValueDate = LocalDate.now();
|
||||
if (SettleCode.T1.equals(settleCode)) {
|
||||
searchingValueDate = searchingValueDate.plusDays(nextWorkDayDelta);
|
||||
}
|
||||
LocalDate searchingValueDate = LocalDate.now().plusDays(nextWorkDayDelta);
|
||||
int precision = listing.getPrecision().intValue();
|
||||
Rates rates = imdgQueryService.getRate(pair.getBaseCurrency(), searchingValueDate);
|
||||
price = swapPriceCalc(rates, s, n, precision);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue