This commit is contained in:
AKurakin 2024-08-06 15:24:54 +03:00
parent 730f759908
commit e0d55568fd
3 changed files with 19 additions and 8 deletions

View file

@ -8,6 +8,7 @@ import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.clearing.platform.dictionary.ServiceStatusDictionary;
import ru.clearing.platform.dictionary.TradingClearingRegistryTypeDictionary;
import ru.spcex.clearing.account.errors.AccountError;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest;
@ -54,6 +55,7 @@ public class TradingClearingRegistryValidationConfig {
addImdg.accept(IMDGDistributedNames.Map_DepoAccount);
addImdg.accept(IMDGDistributedNames.Map_InformationAccount);
addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary);
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistryTypeDictionary);
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry);
return new ValidatorImpl<>(context,
IdPresentSpecificRule.instance("companyId",
@ -127,6 +129,13 @@ public class TradingClearingRegistryValidationConfig {
AccountError.RequiredFieldEmpty,
AccountError.DictionaryNotFound,
false),
DictionaryPresentRule.instance("tradingClearingRegistryType",
TradingClearingRegistryNewRequest::getTradingClearingRegistryType,
IMDGDistributedNames.Map_TradingClearingRegistryTypeDictionary,
TradingClearingRegistryTypeDictionary.class,
AccountError.RequiredFieldEmpty,
AccountError.DictionaryNotFound,
false),
new newTCRDuplicateCheck()
);
};

View file

@ -19,10 +19,7 @@ import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.misc.Currency;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistryList;
import ru.clearing.platform.dictionary.AccountTypeDictionary;
import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary;
import ru.clearing.platform.dictionary.CurrencyCodeDictionary;
import ru.clearing.platform.dictionary.ServiceStatusDictionary;
import ru.clearing.platform.dictionary.*;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.validation.common.ValidationHelper;
import ru.spcex.platform.classes.base.SpcexObjectBase;
@ -54,6 +51,7 @@ public class ValidationConfig {
addImdg.accept(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistryList, TradingClearingRegistryList.class);
addImdg.accept(IMDGDistributedNames.Map_Currency, Currency.class);
addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistryTypeDictionary, TradingClearingRegistryTypeDictionary.class);
//for ClientCodeValidationConfig
addImdg.accept(IMDGDistributedNames.Map_ClientCode, ClientCode.class);

View file

@ -277,11 +277,15 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini
tradingClearingRegistry.setStatus(status);
String tradingRegistryType;
if (depoAccount != null) {
tradingRegistryType = depoAccount.getDepoAccountType();
if (req.getTradingClearingRegistryType() != null) {
tradingRegistryType = req.getTradingClearingRegistryType();
} else {
if (clearingAccount != null) tradingRegistryType = clearingAccount.getClearingAccountType();
else tradingRegistryType = TradingClearingRegistryType.Owner_A.getKey();
if (depoAccount != null) {
tradingRegistryType = depoAccount.getDepoAccountType();
} else {
if (clearingAccount != null) tradingRegistryType = clearingAccount.getClearingAccountType();
else tradingRegistryType = TradingClearingRegistryType.Owner_A.getKey();
}
}
tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType);