This commit is contained in:
parent
0aa623836f
commit
c7644bc07e
2 changed files with 24 additions and 1 deletions
|
|
@ -1,6 +1,8 @@
|
||||||
package ru.spcex.clearing.account.service.v2.listeners;
|
package ru.spcex.clearing.account.service.v2.listeners;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -16,6 +18,7 @@ import org.springframework.util.StringUtils;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
import ru.clearing.classes.statics.data.account.DepoAccount;
|
import ru.clearing.classes.statics.data.account.DepoAccount;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||||
import ru.spcex.clearing.account.model.TrkCreationResult;
|
import ru.spcex.clearing.account.model.TrkCreationResult;
|
||||||
import ru.spcex.clearing.account.model.ValidationResult;
|
import ru.spcex.clearing.account.model.ValidationResult;
|
||||||
|
|
@ -45,6 +48,7 @@ import ru.spcex.platform.enumeration.CurrencyCode;
|
||||||
import ru.spcex.platform.enumeration.TradingClearingRegistryType;
|
import ru.spcex.platform.enumeration.TradingClearingRegistryType;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
import ru.spcex.platform.utils.collection.Pair;
|
import ru.spcex.platform.utils.collection.Pair;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
|
|
@ -211,6 +215,7 @@ public class ClientCodeMessageListener extends QueueConsumer implements Initiali
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processUpdateEksAccount(Map<TkrAccount, ValidationResult> accountsAfterValidation, SendTkrRequest tkrRequest) {
|
private void processUpdateEksAccount(Map<TkrAccount, ValidationResult> accountsAfterValidation, SendTkrRequest tkrRequest) {
|
||||||
|
Imdg<Registry> registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||||
for (Map.Entry<TkrAccount, ValidationResult> entry : accountsAfterValidation.entrySet()) {
|
for (Map.Entry<TkrAccount, ValidationResult> entry : accountsAfterValidation.entrySet()) {
|
||||||
TkrAccount tkrAccount = entry.getKey();
|
TkrAccount tkrAccount = entry.getKey();
|
||||||
ValidationResult validationResult = entry.getValue();
|
ValidationResult validationResult = entry.getValue();
|
||||||
|
|
@ -225,6 +230,20 @@ public class ClientCodeMessageListener extends QueueConsumer implements Initiali
|
||||||
tcrListNew.setTradingClearingRegistryId(tradingClearingRegistry.getId());
|
tcrListNew.setTradingClearingRegistryId(tradingClearingRegistry.getId());
|
||||||
tcrListNew.setCurrencyAccountList(accIds);
|
tcrListNew.setCurrencyAccountList(accIds);
|
||||||
List<Long> tkrListIds = tradingClearingRegistryListFacade.createTradingClearingRegistryList(tcrListNew, null);
|
List<Long> tkrListIds = tradingClearingRegistryListFacade.createTradingClearingRegistryList(tcrListNew, null);
|
||||||
|
|
||||||
|
for (Long accId : accIds) {
|
||||||
|
log.debug("Registries updated for account {}", accId);
|
||||||
|
ImdgPredicateBuilder predicateBuilder = registryImdg.predicateBuilder();
|
||||||
|
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(
|
||||||
|
predicateBuilder.equals("accountId", accId)
|
||||||
|
);
|
||||||
|
registries.forEach(registry -> {
|
||||||
|
registry.setTradingClearingRegistryId(tradingClearingRegistry.getId());
|
||||||
|
registry.setTradingClearingRegistry(tradingClearingRegistry.getCode());
|
||||||
|
registry.setUpdated(Instant.now());
|
||||||
|
registryImdg.update(registry);
|
||||||
|
});
|
||||||
|
}
|
||||||
Optional<Tkr> tkrReq = gatewayRequestCreator.createTkrGatewayReq(tradingClearingRegistry);
|
Optional<Tkr> tkrReq = gatewayRequestCreator.createTkrGatewayReq(tradingClearingRegistry);
|
||||||
tkrReq.ifPresent(tkr -> tkrRequest.getTkrs().add(tkr));
|
tkrReq.ifPresent(tkr -> tkrRequest.getTkrs().add(tkr));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.TkrAccount;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.gateway.MoneyAccountMsgRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.gateway.MoneyAccountMsgRequest;
|
||||||
import ru.spcex.platform.enumeration.AccountType;
|
import ru.spcex.platform.enumeration.AccountType;
|
||||||
import ru.spcex.platform.enumeration.CurrencyCode;
|
import ru.spcex.platform.enumeration.CurrencyCode;
|
||||||
|
import ru.spcex.platform.enumeration.Status;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
|
|
@ -30,7 +31,10 @@ public enum GatewayUpdateEksClientCodeValidationRule implements IValidationRule<
|
||||||
ImdgPredicateBuilder predicate = tkrImdg.predicateBuilder();
|
ImdgPredicateBuilder predicate = tkrImdg.predicateBuilder();
|
||||||
String trkCode = validatedObject.getTkrCode();
|
String trkCode = validatedObject.getTkrCode();
|
||||||
TradingClearingRegistry existTkr = tkrImdg.getSingleObjectByPredicate(
|
TradingClearingRegistry existTkr = tkrImdg.getSingleObjectByPredicate(
|
||||||
predicate.equals("code", trkCode)
|
predicate.and(
|
||||||
|
predicate.equals("code", trkCode),
|
||||||
|
predicate.equals("status", Status.Active.getKey())
|
||||||
|
)
|
||||||
);
|
);
|
||||||
if (existTkr == null) {
|
if (existTkr == null) {
|
||||||
return of(AccountError.TradingClearingRegistryNotFound, trkCode);
|
return of(AccountError.TradingClearingRegistryNotFound, trkCode);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue