diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountSymbolsValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountSymbolsValidationConfig.java index f4afb9a7f..1657415a9 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountSymbolsValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountSymbolsValidationConfig.java @@ -49,7 +49,7 @@ public class AccountSymbolsValidationConfig { if (AccountType.Depo.equalsByKey(account.getAccountType())) { return null; } else { - return AccountError.AccountDepoTypeRequired;//todo data.xml!!! + return AccountError.AccountDepoTypeRequired; } } ), @@ -78,7 +78,23 @@ public class AccountSymbolsValidationConfig { return empty(); } else { AccountSymbols existAS = existAccSymbols.iterator().next(); - return of(AccountError.AccountAlreadyExist, existAS.getAccountId() + "," + existAS.getAccountSymbolValue()); + String duplicateMsg = ""; + if (validatedObject.getAccountId() != null && validatedObject.getAccountId().equals(existAS.getAccountId())) { + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account linkedAccount = accountImdg.getSingleObjectByID(existAS.getAccountId()); + if (linkedAccount != null) { + duplicateMsg = linkedAccount.getAccount(); + } else { + duplicateMsg = "" + existAS.getAccountId(); + } + } + if (validatedObject.getAccountSymbolValue() != null && + validatedObject.getAccountSymbolValue().equals(existAS.getAccountSymbolValue())) { + if (!duplicateMsg.isEmpty()) + duplicateMsg += ", "; + duplicateMsg += existAS.getAccountSymbolValue(); + } + return of(AccountError.AccountAlreadyExist, duplicateMsg); } } }