This commit is contained in:
etreschenkov 2026-04-27 14:07:36 +03:00
parent 5e6ce83584
commit a406b6e540
2 changed files with 12 additions and 1 deletions

View file

@ -58,6 +58,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;
@ -68,6 +70,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);
@ -198,6 +202,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))
@ -210,6 +216,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

@ -133,7 +133,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);
order.setSecurityId(payload.getSecurityId());
if (payload.getSecurityId() != null) {
order.setSecurityId(payload.getSecurityId());
}
order.setPrice(payload.getPrice());
order.setQuantityLot(BigDecimal.valueOf(payload.getQuantityLot()));
order.setSide(payload.getSide());