account-service http://jira.mfd.msk:8088/browse/CLS-577 DATA.sql добавил ошибку 5025
This commit is contained in:
parent
2f54dcaccf
commit
286b3ace2c
5 changed files with 30 additions and 15 deletions
|
|
@ -7,11 +7,13 @@ import ru.clearing.classes.statics.data.account.AccountSymbols;
|
|||
import ru.spcex.clearing.account.errors.AccountError;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.AccountSymbolsNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.account.InformationAccountNewRequest;
|
||||
import ru.spcex.clearing.validation.common.rules.FieldNotBlankRequiredRule;
|
||||
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
import ru.spcex.platform.enumeration.AccountType;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
|
@ -25,8 +27,8 @@ import java.util.function.Function;
|
|||
@Configuration
|
||||
public class AccountSymbolsValidationConfig {
|
||||
|
||||
@Bean("accountSymbolsNewRequest")
|
||||
public Function<AccountSymbolsNewRequest, IValidator> correspondentAccountNewRequestValidator(
|
||||
@Bean("accountSymbolsDepoNewRequest")
|
||||
public Function<AccountSymbolsNewRequest, IValidator> accountSymbolsDepoNewRequestValidator(
|
||||
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
||||
) {
|
||||
return accountSymbolsNewRequest -> {
|
||||
|
|
@ -41,7 +43,15 @@ public class AccountSymbolsValidationConfig {
|
|||
IMDGDistributedNames.Map_Account,
|
||||
Account.class,
|
||||
AccountError.RequiredFieldEmpty,
|
||||
AccountError.CompanyNotFound
|
||||
AccountError.AccountNotFound,
|
||||
true,
|
||||
(Account account) -> {
|
||||
if (AccountType.Depo.equalsByKey(account.getAccountType())) {
|
||||
return null;
|
||||
} else {
|
||||
return AccountError.AccountDepoTypeRequired;//todo data.xml!!!
|
||||
}
|
||||
}
|
||||
),
|
||||
FieldNotBlankRequiredRule.instance("accountSymbolValue",
|
||||
AccountSymbolsNewRequest::getAccountSymbolValue,
|
||||
|
|
@ -57,17 +67,18 @@ public class AccountSymbolsValidationConfig {
|
|||
AccountSymbolsNewRequest validatedObject = context.getValidatedObject();
|
||||
Imdg<AccountSymbols> accountSymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
|
||||
|
||||
Map<String, Comparable<?>> query = new HashMap<>();
|
||||
query.put("accountId", validatedObject.getAccountId());
|
||||
query.put("accountSymbolValue", validatedObject.getAccountSymbolValue());
|
||||
|
||||
Collection<AccountSymbols> existAccSymbols = accountSymbolsImdg.getCollectionObjectsByFieldValues(query);
|
||||
ImdgPredicateBuilder pb = accountSymbolsImdg.predicateBuilder();
|
||||
ImdgPredicate query = pb.or(
|
||||
pb.equals("accountId", validatedObject.getAccountId()),
|
||||
pb.equals("accountSymbolValue", validatedObject.getAccountSymbolValue())
|
||||
);
|
||||
Collection<AccountSymbols> existAccSymbols = accountSymbolsImdg.getCollectionObjectsByPredicate(query);
|
||||
|
||||
if (existAccSymbols.isEmpty()) {
|
||||
return empty();
|
||||
} else {
|
||||
AccountSymbols existAS = existAccSymbols.iterator().next();
|
||||
return of(AccountError.AccountAlreadyExist, existAS.getAccountId());
|
||||
return of(AccountError.AccountAlreadyExist, existAS.getAccountId() + "," + existAS.getAccountSymbolValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ public enum AccountError implements IErrorEnumId {
|
|||
ClearingCompanySymbolNotFound(5022L), // Для компании %s отсутствует клиринговый код».
|
||||
AccountForTradingClearingRegistryAlreadyUsed(5023L),
|
||||
AccountFieldNotSet(5024L),
|
||||
AccountDepoTypeRequired(5025L),
|
||||
TradingClearingRegistryNotFound(3022L),
|
||||
;
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public class AccountSymbolsService extends QueueConsumer implements Initializing
|
|||
UserRoleVerification userRoleVerification,
|
||||
IMessageResolver messageResolver,
|
||||
RequestHelper requestHelper,
|
||||
@Qualifier("accountSymbolsNewRequest")
|
||||
@Qualifier("accountSymbolsDepoNewRequest")
|
||||
Function<AccountSymbolsNewRequest, IValidator> accountSymbolsNewRequestValidator
|
||||
) {
|
||||
super(kafkaQueue, kafkaProducer);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<meta version="3.5.0.14">
|
||||
<meta version="3.9.0.13">
|
||||
<enums>
|
||||
<allowed id="1" code="ALWD" name="Разрешено"/>
|
||||
<allowed id="2" code="DEND" name="Запрещено"/>
|
||||
|
|
@ -428,7 +428,8 @@
|
|||
<errorCode id="5019" code="ACNT" name="Для компании %s отсутствует категория %s."/>
|
||||
<errorCode id="5022" code="ACNT" name="Для компании %s отсутствует клиринговый код."/>
|
||||
<errorCode id="5023" code="ACNT" name="Счет %s уже используется."/>
|
||||
<errorCode id="5024" code="ACNT" name="Не указан номер счета."/>
|
||||
<errorCode id="5024" code="ACNT" name="Не указан номер счета."/>
|
||||
<errorCode id="5025" code="ACNT" name="Необходимо указать ДЕПО счет."/>
|
||||
<!-- error code for balance-service -->
|
||||
<errorCode id="5200" code="BLNC" name="Общая ошибка модуля balance-service."/>
|
||||
<errorCode id="5210" code="BLNC" name="Клиринговая сессия неактивна."/>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
-- DB version: 3.8.0.62
|
||||
-- DATA version: 3.5.0.14
|
||||
-- DB version: 3.9.0.64
|
||||
-- DATA version: 3.9.0.13
|
||||
|
||||
|
||||
/* Dictionaries */
|
||||
|
|
@ -832,6 +832,8 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5023, 'ACNT', 'Сче
|
|||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5024, 'ACNT', 'Не указан номер счета.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5025, 'ACNT', 'Необходимо указать ДЕПО счет.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5200, 'BLNC', 'Общая ошибка модуля balance-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
||||
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5210, 'BLNC', 'Клиринговая сессия неактивна.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue