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

This commit is contained in:
ialbert 2026-04-27 14:08:48 +03:00
commit 4ddab27d2f
2 changed files with 12 additions and 1 deletions

View file

@ -57,6 +57,8 @@ public class ValidationConfig {
private final Imdg<Market> marketImdg;
private final Imdg<OvernightTypeDictionary> osTypeDictionaryImdg;
private final Imdg<OrderCurrency> orderCurrencyImdg;
private final Imdg<SideDictionary> sideDictionaryImdg;
private final Imdg<OrderStatusDictionary> orderStatusDictionaryImdg;
private final Imdg<Registry> rgsImdg;
private final SecuritySelector<Security> secSelector;
@ -67,6 +69,8 @@ public class ValidationConfig {
this.marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, Market.class);
this.osTypeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_OvernightTypeDictionary, OvernightTypeDictionary.class);
this.orderCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_OrderCurrency, OrderCurrency.class);
this.sideDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SideDictionary, SideDictionary.class);
this.orderStatusDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_OrderStatusDictionary, OrderStatusDictionary.class);
this.tcrImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
this.rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
this.secSelector = new SecuritySelector<>(imdgProvider, Security.class);
@ -196,6 +200,8 @@ public class ValidationConfig {
ctx.setValidatedObject(req);
ctx.setLogPrefix(LogPrefixId.INSTANCE);
ctx.addImdg(IMDGDistributedNames.Map_OrderCurrency, orderCurrencyImdg);
ctx.addImdg(IMDGDistributedNames.Map_SideDictionary, sideDictionaryImdg);
ctx.addImdg(IMDGDistributedNames.Map_OrderStatusDictionary, orderStatusDictionaryImdg);
var orderCurrencyPresentById = PresentByPredicate
.builder(byId(orderCurrencyImdg.predicateBuilder(), req))
@ -208,6 +214,9 @@ public class ValidationConfig {
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<OrderCurrencyUpdateRequest> ctx) {
OrderCurrencyUpdateRequest validatedObject = ctx.getValidatedObject();
if (validatedObject.getSecurityId() == null) {
return empty();
}
Security security = secSelector.selectSecurityById(validatedObject.getSecurityId());
if (security == null) {
return of(DefaultManagementErrors.RecordNotFound, "security.id=" + validatedObject.getSecurityId());

View file

@ -135,7 +135,9 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
return new RequestInfoUpdate(req.getId(), Status.Error, msgResolver.resolve(error.get()));
}
OrderCurrency order = validator.getStored(OrderCurrencyValidationStored.OrderCurrency);
if (payload.getSecurityId() != null) {
order.setSecurityId(payload.getSecurityId());
}
order.setPrice(payload.getPrice());
order.setQuantityLot(BigDecimal.valueOf(payload.getQuantityLot()));
order.setSide(payload.getSide());