From d2f7ca572d2997ac232d08da1af41f8e4d116b8f Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 20 Jun 2024 11:49:32 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-690 --- ...radingClearingRegistryListValidationConfig.java | 14 ++++++++++++-- .../clearing/account/errors/AccountError.java | 4 +--- .../BackendClientCodeValidationRule.java | 4 ++-- .../GatewayClientCodeValidationRule.java | 6 +++--- .../db-scripts/src/main/resources/db/DATA.sql | 3 ++- 5 files changed, 20 insertions(+), 11 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryListValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryListValidationConfig.java index da8916a37..837836244 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryListValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryListValidationConfig.java @@ -210,9 +210,19 @@ public class TradingClearingRegistryListValidationConfig { // Проверка отсутствия других TradingClearingRegistryList с этими счетами Imdg tradingClearingRegistryListImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistryList, TradingClearingRegistryList.class); - Long tkrId = tkrIdGetter.apply(validatedObject); ImdgPredicateBuilder pb = tradingClearingRegistryListImdg.predicateBuilder(); + + Collection listWithAccountId = tradingClearingRegistryListImdg.getCollectionObjectsByPredicate( + pb.and( + pb.equals("accountId", accountId), + pb.equals("status", WorkflowStatus.Active.getKey()) + )); + if (!listWithAccountId.isEmpty()){ + return of(AccountError.AccountForTradingClearingRegistryAlreadyUsed, byIdObject.getAccount(), fieldName); // (5023) «Данная счет %s уже используется» + } + Long tkrId = tkrIdGetter.apply(validatedObject); ImdgPredicate query = pb.and( + pb.equals("tradingClearingRegistryId", tkrId), pb.equals("status", WorkflowStatus.Active.getKey()), pb.equals("currency", byIdObject.getCurrency())); if (idGetter != null) { @@ -227,7 +237,7 @@ public class TradingClearingRegistryListValidationConfig { // .map(tradingClearingRegistryList -> // accountImdg.getSingleObjectByID(tradingClearingRegistryList.getAccountId()).getAccount()) // .collect(Collectors.toSet()); - return of(AccountError.AccountForTradingClearingRegistryAlreadyUsed, byIdObject.getAccount(), fieldName); // (5023) «Счет %s уже используется» + return of(AccountError.CurrencyForTradingClearingRegistryListAlreadyUsed, byIdObject.getCurrency(), fieldName); // (5023) «Данная валюта %s уже используется» } } } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java index 47031a218..23f3cfd0d 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java @@ -29,9 +29,7 @@ public enum AccountError implements IErrorEnumId { TCR_NOT_FOUND_GTW(5028L), ACCOUNT_NOT_FOUND_GTW(5029L), COMPANY_NOT_FOUND_GTW(5030L), - TCR_ALREADY_EXIST_GTW(5031L), - DEPO_ACCOUNT_NOT_FOUND_GTW(5032L), - TCR_LIST_ALREADY_EXIST_GTW(5033L), + CurrencyForTradingClearingRegistryListAlreadyUsed(5031L), TradingClearingRegistryNotFound(3022L), CurrencyNotFound(1016L), ; diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/BackendClientCodeValidationRule.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/BackendClientCodeValidationRule.java index 87d86b05c..b78f2f0d1 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/BackendClientCodeValidationRule.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/validation/BackendClientCodeValidationRule.java @@ -55,7 +55,7 @@ public enum BackendClientCodeValidationRule implements IValidationRule