Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
ialbert 2026-02-26 13:12:34 +03:00
commit 6a01cb328f
40 changed files with 261 additions and 72 deletions

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -11,7 +11,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -12,7 +12,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<properties>

View file

@ -6,13 +6,13 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<artifactId>cleaning-builders</artifactId>
<name>cleaning-builders</name>
<description>Cleaning builders module</description>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<packaging>jar</packaging>
@ -26,7 +26,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -8,12 +8,12 @@
<name>clearing-validation</name>
<description>Clearing-module, dependency version of platform-utils</description>
<packaging>jar</packaging>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<properties>
@ -35,13 +35,13 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>dictionary</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -5,6 +5,7 @@ import org.springframework.context.annotation.Configuration;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.platform.dictionary.ClearingCategoryDictionary;
import ru.spcex.clearing.company.config.validation.rules.ProviderMemberCategoryValidationRule;
import ru.spcex.clearing.company.error.CompanyErrors;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
@ -50,7 +51,8 @@ public class ClearingMemberCategoryValidationConfig {
IMDGDistributedNames.Map_ClearingCategoryDictionary,
ClearingCategoryDictionary.class,
CompanyErrors.RequiredFieldEmpty,
CompanyErrors.DictionaryNotFound)
CompanyErrors.DictionaryNotFound),
ProviderMemberCategoryValidationRule.NEW
);
};
}
@ -66,6 +68,7 @@ public class ClearingMemberCategoryValidationConfig {
addImdg.accept(IMDGDistributedNames.Map_Company);
addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary);
addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory);
addImdg.accept(IMDGDistributedNames.Map_Registry);
return new ValidatorImpl<>(context,
IdPresentSpecificRule.instance("id",
ClearingMemberCategoryUpdateRequest::getId,
@ -87,7 +90,8 @@ public class ClearingMemberCategoryValidationConfig {
ClearingCategoryDictionary.class,
CompanyErrors.RequiredFieldEmpty,
CompanyErrors.DictionaryNotFound,
false)
false),
ProviderMemberCategoryValidationRule.UPDATE
);
};
}
@ -101,13 +105,16 @@ public class ClearingMemberCategoryValidationConfig {
context.setValidatedObject(clearingMemberCategoryDeleteRequest);
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory);
addImdg.accept(IMDGDistributedNames.Map_Registry);
addImdg.accept(IMDGDistributedNames.Map_Company);
return new ValidatorImpl<>(context,
IdPresentRule.instance("id",
CommonDeleteRequest::getId,
IMDGDistributedNames.Map_ClearingMemberCategory,
ClearingMemberCategory.class,
CompanyErrors.RequiredFieldEmpty,
CompanyErrors.CategoryNotFound)
CompanyErrors.CategoryNotFound),
ProviderMemberCategoryValidationRule.DELETE
);
};
}

View file

@ -8,6 +8,7 @@ import ru.clearing.classes.statics.data.company.*;
import ru.clearing.classes.statics.data.company.relation.Relation;
import ru.clearing.classes.statics.data.profile.Contact;
import ru.clearing.classes.statics.data.profile.ProfileDocument;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
import ru.clearing.platform.dictionary.*;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
@ -31,6 +32,7 @@ public class ValidationConfig {
addImdg.accept(IMDGDistributedNames.Map_Company, Company.class);
addImdg.accept(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
addImdg.accept(IMDGDistributedNames.Map_Registry, Registry.class);
addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary, ClearingCategoryDictionary.class);
addImdg.accept(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class);
addImdg.accept(IMDGDistributedNames.Map_DocumentTypeDictionary, DocumentTypeDictionary.class);

View file

@ -0,0 +1,166 @@
package ru.spcex.clearing.company.config.validation.rules;
import java.time.LocalDate;
import java.util.Collection;
import java.util.Optional;
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.spcex.clearing.company.error.CompanyErrors;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest;
import ru.spcex.platform.enumeration.ClearingCategory;
import ru.spcex.platform.enumeration.RegistryStatus;
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.enumeration.IEnumKey;
import ru.spcex.platform.utils.validation.IValidationRule;
public enum ProviderMemberCategoryValidationRule implements IValidationRule<ImdgValidationContext<?>> {
NEW() {
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<?> context) {
ClearingMemberCategoryNewRequest categoryReq = (ClearingMemberCategoryNewRequest) context.getValidatedObject();
ClearingCategory category = IEnumKey.getEnumByKey(ClearingCategory.class, categoryReq.getClearingMemberCategory());
Imdg<ClearingMemberCategory> categoryImdg = context.obtainMap(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
Imdg<Company> companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class);
ImdgPredicateBuilder predicateBuilder = categoryImdg.predicateBuilder();
ImdgPredicate predicate;
if (ClearingCategory.P == category) {
predicate = predicateBuilder.equals("companyId", categoryReq.getCompanyId());
} else {
predicate = predicateBuilder.and(
predicateBuilder.equals("companyId", categoryReq.getCompanyId()),
predicateBuilder.equals("clearingMemberCategory", ClearingCategory.P.getKey())
);
}
ClearingMemberCategory existCategory = categoryImdg.getFirstObjectByPredicate(predicate);
if (existCategory != null) {
Company company = companyImdg.getSingleObjectByID(categoryReq.getCompanyId());
return Optional.of(new EnumMessage(
CompanyErrors.ProviderCompanyAlreadyExist,
ClearingCategory.P == category ? categoryReq.getClearingMemberCategory() : existCategory.getClearingMemberCategory(),
company.getShortName())
);
}
return Optional.empty();
}
},
UPDATE() {
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<?> context) {
ClearingMemberCategoryUpdateRequest categoryReq = (ClearingMemberCategoryUpdateRequest) context.getValidatedObject();
ClearingCategory categoryVal = IEnumKey.getEnumByKey(ClearingCategory.class, categoryReq.getClearingMemberCategory());
Imdg<ClearingMemberCategory> categoryImdg = context.obtainMap(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
Imdg<Company> companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class);
ImdgPredicateBuilder predicateBuilder = categoryImdg.predicateBuilder();
ClearingMemberCategory clearingMemberCategory = categoryImdg.getSingleObjectByID(categoryReq.getId());
if (ClearingCategory.P == categoryVal) {
Collection<Long> categories = categoryImdg.getCollectionIdsByPredicate(predicateBuilder.and(
predicateBuilder.equals("companyId", clearingMemberCategory.getCompanyId()),
predicateBuilder.equals("clearingMemberCategory", ClearingCategory.P.getKey())
));
if (!categories.isEmpty()) {
return Optional.of(new EnumMessage(
CompanyErrors.ToManyProviderCompany,
categoryReq.getClearingMemberCategory())
);
}
} else {
Collection<ClearingMemberCategory> categories = categoryImdg.getCollectionObjectsByPredicate(
predicateBuilder.equals("companyId", clearingMemberCategory.getCompanyId())
);
boolean hasProvider = false;
boolean hasOtherCategory = false;
ClearingMemberCategory lastOtherCategory = null;
for (ClearingMemberCategory category : categories) {
ClearingCategory clearingCategory = IEnumKey.getEnumByKey(ClearingCategory.class, category.getClearingMemberCategory());
if (ClearingCategory.P == clearingCategory) {
hasProvider = true;
} else {
lastOtherCategory = category;
hasOtherCategory = true;
}
if (hasProvider && hasOtherCategory) break;
}
if (hasProvider) {
if (hasOtherCategory) {
return Optional.of(new EnumMessage(
CompanyErrors.ToManyProviderCompany,
lastOtherCategory.getClearingMemberCategory())
);
}
Imdg<Registry> registryImdg = context.obtainMap(IMDGDistributedNames.Map_Registry, Registry.class);
ImdgPredicate registryPredicate = predicateBuilder.and(
predicateBuilder.equals("companyId", clearingMemberCategory.getCompanyId()),
predicateBuilder.regex("registryCode", "^O.{2}T"),
predicateBuilder.or(
predicateBuilder.and(
predicateBuilder.not(predicateBuilder.equals("registryStatus", RegistryStatus.CLRD.getKey())),
predicateBuilder.equals("clearingDate", LocalDate.now())
),
predicateBuilder.greater("settlementDate", LocalDate.now())
)
);
Collection<Long> registryIds = registryImdg.getCollectionIdsByPredicate(registryPredicate);
Company company = companyImdg.getSingleObjectByID(clearingMemberCategory.getCompanyId());
if (!registryIds.isEmpty()) {
return Optional.of(new EnumMessage(
CompanyErrors.FoundUnfulfilledLiabilities,
company.getShortName())
);
}
}
}
return Optional.empty();
}
},
DELETE() {
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<?> context) {
CommonDeleteRequest categoryReq = (CommonDeleteRequest) context.getValidatedObject();
Imdg<ClearingMemberCategory> categoryImdg = context.obtainMap(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
Imdg<Registry> registryImdg = context.obtainMap(IMDGDistributedNames.Map_Registry, Registry.class);
Imdg<Company> companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class);
ClearingMemberCategory category = categoryImdg.getSingleObjectByID(categoryReq.getId());
ImdgPredicateBuilder predicateBuilder = registryImdg.predicateBuilder();
ImdgPredicate registryPredicate = predicateBuilder.and(
predicateBuilder.equals("companyId", category.getCompanyId()),
predicateBuilder.regex("registryCode", "^O.{2}T"),
predicateBuilder.or(
predicateBuilder.and(
predicateBuilder.not(predicateBuilder.equals("registryStatus", RegistryStatus.CLRD.getKey())),
predicateBuilder.equals("clearingDate", LocalDate.now())
),
predicateBuilder.greater("settlementDate", LocalDate.now())
)
);
Collection<Long> registryIds = registryImdg.getCollectionIdsByPredicate(registryPredicate);
Company company = companyImdg.getSingleObjectByID(category.getCompanyId());
if (!registryIds.isEmpty()) {
return Optional.of(new EnumMessage(
CompanyErrors.FoundUnfulfilledLiabilities,
company.getShortName())
);
}
return Optional.empty();
}
}
}

View file

@ -32,6 +32,9 @@ public enum CompanyErrors implements IErrorEnumId {
CompanyParametersNotFound(3032L), // Параметр компании %s не найден
RuCurrencyMayOnlyNKOAOPRC(3033L),
CompanyHasNoSETHRole(3034L), // Компания %s не является расчетной организацией
ProviderCompanyAlreadyExist(3035L),
ToManyProviderCompany(3036L),
FoundUnfulfilledLiabilities(3037L),
;
private final Long id;

View file

@ -7,12 +7,12 @@
<artifactId>db-scripts</artifactId>
<name>db-scripts</name>
<description>db-scripts for PostgreSQL</description>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<build>

View file

@ -315,6 +315,8 @@ INSERT INTO CLEARING_CATEGORY_DICTIONARY(ID, CODE, NAME) values (6, 'T', 'Кат
INSERT INTO CLEARING_CATEGORY_DICTIONARY(ID, CODE, NAME) values (7, 'K', 'Категория «К» - Участник клиринга - Контроллер') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO CLEARING_CATEGORY_DICTIONARY(ID, CODE, NAME) values (8, 'P', 'Категория «П» - Провайдер ликвидности') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO CONTACT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'ADRS', 'Юридический адрес') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO CONTACT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'POST', 'Почтовый адрес') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -1085,6 +1087,12 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3033, 'CMPN', 'По в
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3034, 'CMPN', 'Компания %s не является расчетной организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3035, 'CMPN', 'Категория %s для компании %s должна быть единственной.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3036, 'CMPN', 'Невозможно изменить категорию. Категория %s должна быть единственной.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3037, 'CMPN', 'Компания %s имеет неисполненные обязательства.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (4000, 'RPRT', 'Общая ошибка модуля report-serivce.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5000, 'ACNT', 'Общая ошибка модуля account-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
@ -1318,4 +1326,4 @@ INSERT INTO RESIDENCE_DICTIONARY(ID, CODE, NAME) values (2, 'XTRN', 'Нерез
INSERT INTO RESIDENCE_DICTIONARY(ID, CODE, NAME) values (3, 'WRLD', 'Международная организация') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
/* Business objects */
INSERT INTO DB_VERSION(ID, DICTIONARY_VERSION) values (1, '3.21.0.103') ON CONFLICT (ID) DO UPDATE SET DICTIONARY_VERSION = EXCLUDED.DICTIONARY_VERSION
INSERT INTO DB_VERSION(ID, DICTIONARY_VERSION) values (1, '3.22.0.104') ON CONFLICT (ID) DO UPDATE SET DICTIONARY_VERSION = EXCLUDED.DICTIONARY_VERSION

View file

@ -7,3 +7,5 @@
/* Business objects */
INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (2000, 'SCND', 'CURR', 'RUB', 'UVAF', 'Режим непрерывных торгов (торги иностранной валютой с Провайдером ликвидности)', 1, 'Continuous trading mode (foreign currency trading with a Liquidity Provider)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION;
INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (2001, 'SCND', 'CURR', 'RUB', 'TVAF', 'Технический РПС с ПЛ', 1, 'Иностранная валюта- Технический РПС с Провайдером ликвидности (клиринг в ЭФИР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION;
INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (2002, 'SCND', 'CURR', 'RUB', 'TVWF', 'Технический РПС с ПЛ', 1, 'СВОП Технический РПС с Провайдером ликвидности (клиринг в ЭФИР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION;

View file

@ -7,12 +7,12 @@
<artifactId>dbf-exporter</artifactId>
<name>dbf-exporter</name>
<description>DBF exporter for DBF files</description>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<dependencies>

View file

@ -8,12 +8,12 @@
<artifactId>dbf-importer</artifactId>
<name>dbf-importer</name>
<description>DBF loader for DBF files</description>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<dependencies>

View file

@ -8,12 +8,12 @@
<name>Clearing dictionary</name>
<description>Clearing dictionary</description>
<packaging>jar</packaging>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<properties>

View file

@ -4,12 +4,12 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<artifactId>extdb-importer</artifactId>
<name>extdb-importer</name>
<description>Extdb importer module. Аналог trade-importer.</description>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<packaging>jar</packaging>
<properties>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -5,12 +5,12 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>imdg-hist</artifactId>
<packaging>jar</packaging>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
@ -36,13 +36,13 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>dictionary</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
@ -82,7 +82,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>cleaning-builders</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -7,12 +7,12 @@
<artifactId>imdg</artifactId>
<name>Clearing in memory data grid</name>
<packaging>jar</packaging>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<properties>
@ -32,13 +32,13 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>dictionary</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
@ -89,7 +89,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>cleaning-builders</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -3,13 +3,13 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>lim-exporter</artifactId>
<name>Lim exporter</name>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<packaging>jar</packaging>
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<properties>
@ -35,7 +35,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -7,12 +7,12 @@
<name>_parent_clearing</name>
<description>Clearing parent module</description>
<packaging>pom</packaging>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modules>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -8,12 +8,12 @@
<artifactId>reports-service</artifactId>
<name>reports-service</name>
<description>Service for creating reports</description>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<dependencies>
<!-- Spring boot -->

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -51,7 +51,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>cleaning-builders</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -8,12 +8,12 @@
<name>security-util clearing</name>
<description>Clearing misc util for verify user roles</description>
<packaging>jar</packaging>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<properties>
@ -35,13 +35,13 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>dictionary</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -3,13 +3,13 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>swt-exporter</artifactId>
<name>Swt exporter</name>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<packaging>jar</packaging>
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<properties>
@ -35,7 +35,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -4,11 +4,11 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<artifactId>test-clearing</artifactId>
<name>Test-clearing</name>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<dependencies>
<dependency>
<groupId>ru.spcex.platform</groupId>

View file

@ -4,12 +4,12 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing-parent</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<artifactId>trade-importer</artifactId>
<name>trade-importer</name>
<description>Trade importer module</description>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<packaging>jar</packaging>
<properties>
@ -55,7 +55,7 @@
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>classes</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<scope>compile</scope>
</dependency>
<dependency>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View file

@ -7,12 +7,12 @@
<artifactId>xml-exporter</artifactId>
<name>xml-exporter</name>
<description>XML exporter for XML files</description>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<dependencies>

View file

@ -8,12 +8,12 @@
<artifactId>xml-importer</artifactId>
<name>xml-importer</name>
<description>XML loader for XML files</description>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<dependencies>

View file

@ -13,7 +13,8 @@ public enum ClearingCategory implements IEnumKey {
I("I"), // Категория «И» - Инициатор по ТБС
V("V"), // Категория «В» - Инициатор по ТКС
T("T"), // Категория «Т» - Участник товарного рынка
K("K"); // Категория «К» - Участник клиринга - Контроллер
K("K"), // Категория «К» - Участник клиринга - Контроллер
P("P"); // Категория «П» - Провайдер ликвидности
private final String key;

View file

@ -14,7 +14,7 @@
<parent>
<groupId>ru.spcex.clearing</groupId>
<artifactId>clearing</artifactId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modules>

View file

@ -9,7 +9,7 @@
<name>__parent_ROOT</name>
<description>Clearing main parent</description>
<packaging>pom</packaging>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
<modules>
<module>clearing-parent</module>
@ -24,7 +24,7 @@
<project.java.version>17</project.java.version>
<built.by>Maven</built.by>
<global.project.version>SPCEX-3.21.275</global.project.version>
<global.project.version>SPCEX-3.22.285</global.project.version>
<spring-boot.version>2.6.3</spring-boot.version>

View file

@ -5,7 +5,7 @@
<parent>
<artifactId>clearing</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-3.21.275</version>
<version>SPCEX-3.22.285</version>
</parent>
<modelVersion>4.0.0</modelVersion>