diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java index 8f9461b86..ebad3e196 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java @@ -371,9 +371,16 @@ public class RegistryService { IValidator validator = identificationFundsVal.apply(payload); Optional err = validator.tillFirstError(); if (err.isPresent()) { - log.error("IdentificationFundsRequest.id={} validation error: {}", - req.getId(), - msgResolver.resolve(err.get())); + log.error("IdentificationFundsRequest.id={} " + + "balance={} " + + "tradingClearingRegistryId={} " + + "companyId={} " + + "validation error: {}", + req.getId(), + payload != null ? payload.getBalance() : null, + payload != null ? payload.getTradingClearingRegistryId() : null, + payload != null ? payload.getCompanyId() : null, + msgResolver.resolve(err.get())); return reqHelp.error(req.getId(), err.get()); } Registry dmau = validator.getStored(Stored.PresentById); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java index 66d720dc3..4efe72984 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java @@ -18,6 +18,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.service.AssetTrio; import ru.spcex.clearing.session.stage.util.RegistryUtil; import ru.spcex.platform.enumeration.BalanceDimension; +import ru.spcex.platform.enumeration.CurrencyCode; import ru.spcex.platform.enumeration.RegistryDesignation; import ru.spcex.platform.enumeration.RegistryInstrumentType; import ru.spcex.platform.enumeration.RegistryStatus; @@ -30,6 +31,7 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder; import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; +import ru.spcex.platform.utils.text.TextUtil; @Service public class AssetTBFProcessing { @@ -282,12 +284,18 @@ public class AssetTBFProcessing { log.error("company.id={}, account.id={} - account not found", companyId, accountId); return Optional.empty(); } + String currency; + if (TextUtil.isEmpty(account.getCurrency())) { + currency = CurrencyCode.RUB.getKey(); + } else { + currency = account.getCurrency(); + } ImdgPredicateBuilder pb = rgsImdg.predicateBuilder(); Function prdct = rgsCode -> pb.and( pb.sql(RegistryCodeSqlBuilder.getInstance(rgsCode).build()), pb.equals("companyId", companyId), pb.equals("accountId", accountId), - pb.equals("securitySymbol", account.getCurrency()) + pb.equals("securitySymbol", currency) ); Registry amf = rgsImdg.getFirstObjectByPredicate(prdct.apply(AM_F)); Registry amb = rgsImdg.getFirstObjectByPredicate(prdct.apply(AM_B));