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.account.errors.AccountError;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
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.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.FieldNotBlankRequiredRule;
|
||||||
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
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.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.imdg.validation.ImdgValidationContext;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||||
|
|
@ -25,8 +27,8 @@ import java.util.function.Function;
|
||||||
@Configuration
|
@Configuration
|
||||||
public class AccountSymbolsValidationConfig {
|
public class AccountSymbolsValidationConfig {
|
||||||
|
|
||||||
@Bean("accountSymbolsNewRequest")
|
@Bean("accountSymbolsDepoNewRequest")
|
||||||
public Function<AccountSymbolsNewRequest, IValidator> correspondentAccountNewRequestValidator(
|
public Function<AccountSymbolsNewRequest, IValidator> accountSymbolsDepoNewRequestValidator(
|
||||||
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
Map<String, Imdg<? extends SpcexObjectBase>> imdgForValidation
|
||||||
) {
|
) {
|
||||||
return accountSymbolsNewRequest -> {
|
return accountSymbolsNewRequest -> {
|
||||||
|
|
@ -41,7 +43,15 @@ public class AccountSymbolsValidationConfig {
|
||||||
IMDGDistributedNames.Map_Account,
|
IMDGDistributedNames.Map_Account,
|
||||||
Account.class,
|
Account.class,
|
||||||
AccountError.RequiredFieldEmpty,
|
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",
|
FieldNotBlankRequiredRule.instance("accountSymbolValue",
|
||||||
AccountSymbolsNewRequest::getAccountSymbolValue,
|
AccountSymbolsNewRequest::getAccountSymbolValue,
|
||||||
|
|
@ -57,17 +67,18 @@ public class AccountSymbolsValidationConfig {
|
||||||
AccountSymbolsNewRequest validatedObject = context.getValidatedObject();
|
AccountSymbolsNewRequest validatedObject = context.getValidatedObject();
|
||||||
Imdg<AccountSymbols> accountSymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
|
Imdg<AccountSymbols> accountSymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
|
||||||
|
|
||||||
Map<String, Comparable<?>> query = new HashMap<>();
|
ImdgPredicateBuilder pb = accountSymbolsImdg.predicateBuilder();
|
||||||
query.put("accountId", validatedObject.getAccountId());
|
ImdgPredicate query = pb.or(
|
||||||
query.put("accountSymbolValue", validatedObject.getAccountSymbolValue());
|
pb.equals("accountId", validatedObject.getAccountId()),
|
||||||
|
pb.equals("accountSymbolValue", validatedObject.getAccountSymbolValue())
|
||||||
Collection<AccountSymbols> existAccSymbols = accountSymbolsImdg.getCollectionObjectsByFieldValues(query);
|
);
|
||||||
|
Collection<AccountSymbols> existAccSymbols = accountSymbolsImdg.getCollectionObjectsByPredicate(query);
|
||||||
|
|
||||||
if (existAccSymbols.isEmpty()) {
|
if (existAccSymbols.isEmpty()) {
|
||||||
return empty();
|
return empty();
|
||||||
} else {
|
} else {
|
||||||
AccountSymbols existAS = existAccSymbols.iterator().next();
|
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 отсутствует клиринговый код».
|
ClearingCompanySymbolNotFound(5022L), // Для компании %s отсутствует клиринговый код».
|
||||||
AccountForTradingClearingRegistryAlreadyUsed(5023L),
|
AccountForTradingClearingRegistryAlreadyUsed(5023L),
|
||||||
AccountFieldNotSet(5024L),
|
AccountFieldNotSet(5024L),
|
||||||
|
AccountDepoTypeRequired(5025L),
|
||||||
TradingClearingRegistryNotFound(3022L),
|
TradingClearingRegistryNotFound(3022L),
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ public class AccountSymbolsService extends QueueConsumer implements Initializing
|
||||||
UserRoleVerification userRoleVerification,
|
UserRoleVerification userRoleVerification,
|
||||||
IMessageResolver messageResolver,
|
IMessageResolver messageResolver,
|
||||||
RequestHelper requestHelper,
|
RequestHelper requestHelper,
|
||||||
@Qualifier("accountSymbolsNewRequest")
|
@Qualifier("accountSymbolsDepoNewRequest")
|
||||||
Function<AccountSymbolsNewRequest, IValidator> accountSymbolsNewRequestValidator
|
Function<AccountSymbolsNewRequest, IValidator> accountSymbolsNewRequestValidator
|
||||||
) {
|
) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<meta version="3.5.0.14">
|
<meta version="3.9.0.13">
|
||||||
<enums>
|
<enums>
|
||||||
<allowed id="1" code="ALWD" name="Разрешено"/>
|
<allowed id="1" code="ALWD" name="Разрешено"/>
|
||||||
<allowed id="2" code="DEND" name="Запрещено"/>
|
<allowed id="2" code="DEND" name="Запрещено"/>
|
||||||
|
|
@ -428,7 +428,8 @@
|
||||||
<errorCode id="5019" code="ACNT" name="Для компании %s отсутствует категория %s."/>
|
<errorCode id="5019" code="ACNT" name="Для компании %s отсутствует категория %s."/>
|
||||||
<errorCode id="5022" code="ACNT" name="Для компании %s отсутствует клиринговый код."/>
|
<errorCode id="5022" code="ACNT" name="Для компании %s отсутствует клиринговый код."/>
|
||||||
<errorCode id="5023" 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 -->
|
<!-- error code for balance-service -->
|
||||||
<errorCode id="5200" code="BLNC" name="Общая ошибка модуля balance-service."/>
|
<errorCode id="5200" code="BLNC" name="Общая ошибка модуля balance-service."/>
|
||||||
<errorCode id="5210" code="BLNC" name="Клиринговая сессия неактивна."/>
|
<errorCode id="5210" code="BLNC" name="Клиринговая сессия неактивна."/>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
-- DB version: 3.8.0.62
|
-- DB version: 3.9.0.64
|
||||||
-- DATA version: 3.5.0.14
|
-- DATA version: 3.9.0.13
|
||||||
|
|
||||||
|
|
||||||
/* Dictionaries */
|
/* 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 (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 (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;
|
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