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;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
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.DepoAccount;
|
||||
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.spcex.clearing.account.model.TrkCreationResult;
|
||||
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.imdg.api.Imdg;
|
||||
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.validation.IValidator;
|
||||
|
||||
|
|
@ -211,6 +215,7 @@ public class ClientCodeMessageListener extends QueueConsumer implements Initiali
|
|||
}
|
||||
|
||||
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()) {
|
||||
TkrAccount tkrAccount = entry.getKey();
|
||||
ValidationResult validationResult = entry.getValue();
|
||||
|
|
@ -225,6 +230,20 @@ public class ClientCodeMessageListener extends QueueConsumer implements Initiali
|
|||
tcrListNew.setTradingClearingRegistryId(tradingClearingRegistry.getId());
|
||||
tcrListNew.setCurrencyAccountList(accIds);
|
||||
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);
|
||||
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.platform.enumeration.AccountType;
|
||||
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.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
|
|
@ -30,7 +31,10 @@ public enum GatewayUpdateEksClientCodeValidationRule implements IValidationRule<
|
|||
ImdgPredicateBuilder predicate = tkrImdg.predicateBuilder();
|
||||
String trkCode = validatedObject.getTkrCode();
|
||||
TradingClearingRegistry existTkr = tkrImdg.getSingleObjectByPredicate(
|
||||
predicate.equals("code", trkCode)
|
||||
predicate.and(
|
||||
predicate.equals("code", trkCode),
|
||||
predicate.equals("status", Status.Active.getKey())
|
||||
)
|
||||
);
|
||||
if (existTkr == null) {
|
||||
return of(AccountError.TradingClearingRegistryNotFound, trkCode);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue