This commit is contained in:
parent
2f645ceb67
commit
703ecf967b
1 changed files with 19 additions and 12 deletions
|
|
@ -38,7 +38,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCurrencyUpdate
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.platform.messaging.service.Status;
|
import ru.spcex.clearing.platform.messaging.service.Status;
|
||||||
import ru.spcex.platform.enumeration.MarketType;
|
|
||||||
import ru.spcex.platform.enumeration.OrderStatus;
|
import ru.spcex.platform.enumeration.OrderStatus;
|
||||||
import ru.spcex.platform.enumeration.OvernightType;
|
import ru.spcex.platform.enumeration.OvernightType;
|
||||||
import ru.spcex.platform.enumeration.SettleCode;
|
import ru.spcex.platform.enumeration.SettleCode;
|
||||||
|
|
@ -216,26 +215,34 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
||||||
}
|
}
|
||||||
|
|
||||||
Market market = imdgQueryService.getSpotMarket();
|
Market market = imdgQueryService.getSpotMarket();
|
||||||
Listing listing = imdgQueryService.findListing(rgs, market.getCode());
|
Listing listingT0 = imdgQueryService.findListing(rgs, market.getCode(), SettleCode.T0.getKey());
|
||||||
|
Listing listingT1 = imdgQueryService.findListing(rgs, market.getCode(), SettleCode.T1.getKey());
|
||||||
//мб возвращать вместе с листингом?
|
//мб возвращать вместе с листингом?
|
||||||
CurrencyPairDictionary currPair = imdgQueryService.getCurrencyPairDictionaryBySecurityId(listing.getSecurityId());
|
CurrencyPairDictionary currPairT0 = imdgQueryService.getCurrencyPairDictionaryBySecurityId(listingT0.getSecurityId());
|
||||||
SCrossRate rate = imdgQueryService.getSCrossRates(currPair.getBaseCurrency(), LocalDate.now());
|
SCrossRate rateT0 = imdgQueryService.getSCrossRates(currPairT0.getBaseCurrency(), LocalDate.now());
|
||||||
|
CurrencyPairDictionary currPairT1 = imdgQueryService.getCurrencyPairDictionaryBySecurityId(listingT1.getSecurityId());
|
||||||
|
SCrossRate rateT1 = imdgQueryService.getSCrossRates(currPairT1.getBaseCurrency(), LocalDate.now());
|
||||||
|
|
||||||
var pair = new Pair<>(orderT0, orderT1);
|
var pair = new Pair<>(orderT0, orderT1);
|
||||||
Pair.forEach(pair, o -> {
|
Pair.forEach(pair, o -> {
|
||||||
copyCommonFields(swap, o);
|
copyCommonFields(swap, o);
|
||||||
o.setSecurityId(listing.getSecurityId());
|
|
||||||
o.setSecuritySymbol(listing.getSymbolCode());
|
|
||||||
o.setListingId(listing.getId());
|
|
||||||
o.setOvernightType(OvernightType.SPOT.getKey());
|
o.setOvernightType(OvernightType.SPOT.getKey());
|
||||||
o.setMarket(MarketType.SCSP.getKey());
|
o.setMarket(market.getCode());
|
||||||
o.setCreated(Instant.now());
|
o.setCreated(Instant.now());
|
||||||
});
|
});
|
||||||
orderT0.setPrice(rate.getUnitRate());
|
updateOrderFieldsByListing(orderT0, listingT0);
|
||||||
orderT1.setPrice(BigDecimalUtil.safeSumBD(swap.getPrice(), rate.getUnitRate()));
|
updateOrderFieldsByListing(orderT1, listingT1);
|
||||||
|
orderT0.setPrice(rateT0.getUnitRate());
|
||||||
|
orderT1.setPrice(BigDecimalUtil.safeSumBD(swap.getPrice(), rateT1.getUnitRate()));
|
||||||
return pair;
|
return pair;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateOrderFieldsByListing(OrderCurrency order, Listing listing) {
|
||||||
|
order.setSecurityId(listing.getSecurityId());
|
||||||
|
order.setSecuritySymbol(listing.getSymbolCode());
|
||||||
|
order.setListingId(listing.getId());
|
||||||
|
}
|
||||||
|
|
||||||
private OrderCurrency spotToSwap(OrderCurrency order1, OrderCurrency order2, Registry rgs) {
|
private OrderCurrency spotToSwap(OrderCurrency order1, OrderCurrency order2, Registry rgs) {
|
||||||
OrderCurrency spotT0;
|
OrderCurrency spotT0;
|
||||||
OrderCurrency spotT1;
|
OrderCurrency spotT1;
|
||||||
|
|
@ -257,14 +264,14 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
||||||
}
|
}
|
||||||
|
|
||||||
Market market = imdgQueryService.getSwapMarket();
|
Market market = imdgQueryService.getSwapMarket();
|
||||||
Listing listing = imdgQueryService.findListing(rgs, market.getCode());
|
Listing listing = imdgQueryService.findListing(rgs, market.getCode(), SettleCode.T1.getKey());
|
||||||
|
|
||||||
copyCommonFields(order1, swap);
|
copyCommonFields(order1, swap);
|
||||||
swap.setSecurityId(listing.getSecurityId());
|
swap.setSecurityId(listing.getSecurityId());
|
||||||
swap.setSecuritySymbol(listing.getSymbolCode());
|
swap.setSecuritySymbol(listing.getSymbolCode());
|
||||||
swap.setListingId(listing.getId());
|
swap.setListingId(listing.getId());
|
||||||
swap.setOvernightType(OvernightType.SWAP.getKey());
|
swap.setOvernightType(OvernightType.SWAP.getKey());
|
||||||
swap.setMarket(MarketType.SCSW.getKey());
|
swap.setMarket(market.getCode());
|
||||||
swap.setPrice(safeBD(spotT1.getPrice()).subtract(safeBD(spotT0.getPrice())));
|
swap.setPrice(safeBD(spotT1.getPrice()).subtract(safeBD(spotT0.getPrice())));
|
||||||
swap.setCreated(Instant.now());
|
swap.setCreated(Instant.now());
|
||||||
return swap;
|
return swap;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue