diff --git a/clearing-parent/account-service/pom.xml b/clearing-parent/account-service/pom.xml
index 29232f247..df152d125 100644
--- a/clearing-parent/account-service/pom.xml
+++ b/clearing-parent/account-service/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
diff --git a/clearing-parent/backend-api/pom.xml b/clearing-parent/backend-api/pom.xml
index 2fcd8ee07..01369a12c 100644
--- a/clearing-parent/backend-api/pom.xml
+++ b/clearing-parent/backend-api/pom.xml
@@ -11,7 +11,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/clearing-parent/balance-service/pom.xml b/clearing-parent/balance-service/pom.xml
index f7550d7b8..969bc8e63 100644
--- a/clearing-parent/balance-service/pom.xml
+++ b/clearing-parent/balance-service/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
diff --git a/clearing-parent/classes/pom.xml b/clearing-parent/classes/pom.xml
index 18a731ad4..9cc81f726 100644
--- a/clearing-parent/classes/pom.xml
+++ b/clearing-parent/classes/pom.xml
@@ -12,7 +12,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/clearing-parent/cleaning-builders/pom.xml b/clearing-parent/cleaning-builders/pom.xml
index 452319afe..04928c373 100644
--- a/clearing-parent/cleaning-builders/pom.xml
+++ b/clearing-parent/cleaning-builders/pom.xml
@@ -6,13 +6,13 @@
ru.spcex.clearing
clearing-parent
- SPCEX-3.21.275
+ SPCEX-3.22.285
cleaning-builders
cleaning-builders
Cleaning builders module
- SPCEX-3.21.275
+ SPCEX-3.22.285
jar
@@ -26,7 +26,7 @@
ru.spcex.clearing
classes
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
diff --git a/clearing-parent/clearing-service/pom.xml b/clearing-parent/clearing-service/pom.xml
index a7f50825c..dc9ea788a 100644
--- a/clearing-parent/clearing-service/pom.xml
+++ b/clearing-parent/clearing-service/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
diff --git a/clearing-parent/clearing-validation/pom.xml b/clearing-parent/clearing-validation/pom.xml
index 8b20a3038..48a22c561 100644
--- a/clearing-parent/clearing-validation/pom.xml
+++ b/clearing-parent/clearing-validation/pom.xml
@@ -8,12 +8,12 @@
clearing-validation
Clearing-module, dependency version of platform-utils
jar
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
@@ -35,13 +35,13 @@
ru.spcex.clearing
classes
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
ru.spcex.clearing
dictionary
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
diff --git a/clearing-parent/company-service/pom.xml b/clearing-parent/company-service/pom.xml
index 500a64368..29e57f9ba 100644
--- a/clearing-parent/company-service/pom.xml
+++ b/clearing-parent/company-service/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java
index 4abf7396c..a38f6af61 100644
--- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ClearingMemberCategoryValidationConfig.java
@@ -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 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
);
};
}
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java
index 2dcbc91f6..374756b13 100644
--- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java
@@ -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);
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/rules/ProviderMemberCategoryValidationRule.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/rules/ProviderMemberCategoryValidationRule.java
new file mode 100644
index 000000000..c84922913
--- /dev/null
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/rules/ProviderMemberCategoryValidationRule.java
@@ -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> {
+ NEW() {
+ @Override
+ public Optional validate(ImdgValidationContext> context) {
+ ClearingMemberCategoryNewRequest categoryReq = (ClearingMemberCategoryNewRequest) context.getValidatedObject();
+ ClearingCategory category = IEnumKey.getEnumByKey(ClearingCategory.class, categoryReq.getClearingMemberCategory());
+ Imdg categoryImdg = context.obtainMap(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
+ Imdg 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 validate(ImdgValidationContext> context) {
+ ClearingMemberCategoryUpdateRequest categoryReq = (ClearingMemberCategoryUpdateRequest) context.getValidatedObject();
+ ClearingCategory categoryVal = IEnumKey.getEnumByKey(ClearingCategory.class, categoryReq.getClearingMemberCategory());
+ Imdg categoryImdg = context.obtainMap(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
+ Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class);
+ ImdgPredicateBuilder predicateBuilder = categoryImdg.predicateBuilder();
+
+ ClearingMemberCategory clearingMemberCategory = categoryImdg.getSingleObjectByID(categoryReq.getId());
+
+ if (ClearingCategory.P == categoryVal) {
+ Collection 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 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 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 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 validate(ImdgValidationContext> context) {
+ CommonDeleteRequest categoryReq = (CommonDeleteRequest) context.getValidatedObject();
+ Imdg categoryImdg = context.obtainMap(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
+ Imdg registryImdg = context.obtainMap(IMDGDistributedNames.Map_Registry, Registry.class);
+ Imdg 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 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();
+ }
+ }
+
+}
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java
index d1703fcfb..6e3c50367 100644
--- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java
@@ -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;
diff --git a/clearing-parent/db-scripts/pom.xml b/clearing-parent/db-scripts/pom.xml
index 666127868..6144d2bc3 100644
--- a/clearing-parent/db-scripts/pom.xml
+++ b/clearing-parent/db-scripts/pom.xml
@@ -7,12 +7,12 @@
db-scripts
db-scripts
db-scripts for PostgreSQL
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql b/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql
index 1fc8741d3..6208412e7 100644
--- a/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql
+++ b/clearing-parent/db-scripts/src/main/resources/db/DICTIONARIES.sql
@@ -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
diff --git a/clearing-parent/db-scripts/src/main/resources/db/MARKET_efis.sql b/clearing-parent/db-scripts/src/main/resources/db/MARKET_efis.sql
index 5f4ffe401..c9076555a 100644
--- a/clearing-parent/db-scripts/src/main/resources/db/MARKET_efis.sql
+++ b/clearing-parent/db-scripts/src/main/resources/db/MARKET_efis.sql
@@ -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;
diff --git a/clearing-parent/dbf-exporter/pom.xml b/clearing-parent/dbf-exporter/pom.xml
index 93d7baf2f..c59fa9323 100644
--- a/clearing-parent/dbf-exporter/pom.xml
+++ b/clearing-parent/dbf-exporter/pom.xml
@@ -7,12 +7,12 @@
dbf-exporter
dbf-exporter
DBF exporter for DBF files
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/clearing-parent/dbf-importer/pom.xml b/clearing-parent/dbf-importer/pom.xml
index ae2541713..a4852f292 100644
--- a/clearing-parent/dbf-importer/pom.xml
+++ b/clearing-parent/dbf-importer/pom.xml
@@ -8,12 +8,12 @@
dbf-importer
dbf-importer
DBF loader for DBF files
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/clearing-parent/dictionary/pom.xml b/clearing-parent/dictionary/pom.xml
index e5bc6338d..f24ed0a5e 100644
--- a/clearing-parent/dictionary/pom.xml
+++ b/clearing-parent/dictionary/pom.xml
@@ -8,12 +8,12 @@
Clearing dictionary
Clearing dictionary
jar
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/clearing-parent/extdb-importer/pom.xml b/clearing-parent/extdb-importer/pom.xml
index 1578ca801..686d47a5f 100644
--- a/clearing-parent/extdb-importer/pom.xml
+++ b/clearing-parent/extdb-importer/pom.xml
@@ -4,12 +4,12 @@
ru.spcex.clearing
clearing-parent
- SPCEX-3.21.275
+ SPCEX-3.22.285
extdb-importer
extdb-importer
Extdb importer module. Аналог trade-importer.
- SPCEX-3.21.275
+ SPCEX-3.22.285
jar
diff --git a/clearing-parent/gateway-api/pom.xml b/clearing-parent/gateway-api/pom.xml
index 4ef850cad..e423b404d 100644
--- a/clearing-parent/gateway-api/pom.xml
+++ b/clearing-parent/gateway-api/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
diff --git a/clearing-parent/imdg-hist/pom.xml b/clearing-parent/imdg-hist/pom.xml
index af8251b4d..567588b9c 100644
--- a/clearing-parent/imdg-hist/pom.xml
+++ b/clearing-parent/imdg-hist/pom.xml
@@ -5,12 +5,12 @@
4.0.0
imdg-hist
jar
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
@@ -36,13 +36,13 @@
ru.spcex.clearing
classes
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
ru.spcex.clearing
dictionary
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
@@ -82,7 +82,7 @@
ru.spcex.clearing
cleaning-builders
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
diff --git a/clearing-parent/imdg/pom.xml b/clearing-parent/imdg/pom.xml
index 040630603..f7a241fbf 100644
--- a/clearing-parent/imdg/pom.xml
+++ b/clearing-parent/imdg/pom.xml
@@ -7,12 +7,12 @@
imdg
Clearing in memory data grid
jar
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
@@ -32,13 +32,13 @@
ru.spcex.clearing
classes
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
ru.spcex.clearing
dictionary
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
@@ -89,7 +89,7 @@
ru.spcex.clearing
cleaning-builders
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
diff --git a/clearing-parent/lim-exporter/pom.xml b/clearing-parent/lim-exporter/pom.xml
index e6b274290..131b44b9d 100644
--- a/clearing-parent/lim-exporter/pom.xml
+++ b/clearing-parent/lim-exporter/pom.xml
@@ -3,13 +3,13 @@
4.0.0
lim-exporter
Lim exporter
- SPCEX-3.21.275
+ SPCEX-3.22.285
jar
ru.spcex.clearing
clearing-parent
- SPCEX-3.21.275
+ SPCEX-3.22.285
@@ -35,7 +35,7 @@
ru.spcex.clearing
classes
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
diff --git a/clearing-parent/pom.xml b/clearing-parent/pom.xml
index 64057d7f6..37b018e3e 100644
--- a/clearing-parent/pom.xml
+++ b/clearing-parent/pom.xml
@@ -7,12 +7,12 @@
_parent_clearing
Clearing parent module
pom
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/clearing-parent/registry-service/pom.xml b/clearing-parent/registry-service/pom.xml
index bdbee347a..c942c31a4 100644
--- a/clearing-parent/registry-service/pom.xml
+++ b/clearing-parent/registry-service/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
diff --git a/clearing-parent/reports-service/pom.xml b/clearing-parent/reports-service/pom.xml
index 3e467148a..81e21b95f 100644
--- a/clearing-parent/reports-service/pom.xml
+++ b/clearing-parent/reports-service/pom.xml
@@ -8,12 +8,12 @@
reports-service
reports-service
Service for creating reports
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/clearing-parent/scheduler-service/pom.xml b/clearing-parent/scheduler-service/pom.xml
index 7563f51f4..79697af09 100644
--- a/clearing-parent/scheduler-service/pom.xml
+++ b/clearing-parent/scheduler-service/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
@@ -51,7 +51,7 @@
ru.spcex.clearing
cleaning-builders
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
diff --git a/clearing-parent/securities-service/pom.xml b/clearing-parent/securities-service/pom.xml
index 9b08071b4..b3803aab6 100644
--- a/clearing-parent/securities-service/pom.xml
+++ b/clearing-parent/securities-service/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
diff --git a/clearing-parent/security-util/pom.xml b/clearing-parent/security-util/pom.xml
index 810d83c11..20d035128 100644
--- a/clearing-parent/security-util/pom.xml
+++ b/clearing-parent/security-util/pom.xml
@@ -8,12 +8,12 @@
security-util clearing
Clearing misc util for verify user roles
jar
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
@@ -35,13 +35,13 @@
ru.spcex.clearing
classes
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
ru.spcex.clearing
dictionary
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
diff --git a/clearing-parent/swt-exporter/pom.xml b/clearing-parent/swt-exporter/pom.xml
index d2b82ad6d..edf4cbebf 100644
--- a/clearing-parent/swt-exporter/pom.xml
+++ b/clearing-parent/swt-exporter/pom.xml
@@ -3,13 +3,13 @@
4.0.0
swt-exporter
Swt exporter
- SPCEX-3.21.275
+ SPCEX-3.22.285
jar
ru.spcex.clearing
clearing-parent
- SPCEX-3.21.275
+ SPCEX-3.22.285
@@ -35,7 +35,7 @@
ru.spcex.clearing
classes
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
diff --git a/clearing-parent/swt-importer/pom.xml b/clearing-parent/swt-importer/pom.xml
index 440466eec..e77579ccf 100644
--- a/clearing-parent/swt-importer/pom.xml
+++ b/clearing-parent/swt-importer/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
diff --git a/clearing-parent/test-clearing/pom.xml b/clearing-parent/test-clearing/pom.xml
index 3f0ae395c..6e519acfd 100644
--- a/clearing-parent/test-clearing/pom.xml
+++ b/clearing-parent/test-clearing/pom.xml
@@ -4,11 +4,11 @@
ru.spcex.clearing
clearing-parent
- SPCEX-3.21.275
+ SPCEX-3.22.285
test-clearing
Test-clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
ru.spcex.platform
diff --git a/clearing-parent/trade-importer/pom.xml b/clearing-parent/trade-importer/pom.xml
index dd87227a0..524e37523 100644
--- a/clearing-parent/trade-importer/pom.xml
+++ b/clearing-parent/trade-importer/pom.xml
@@ -4,12 +4,12 @@
ru.spcex.clearing
clearing-parent
- SPCEX-3.21.275
+ SPCEX-3.22.285
trade-importer
trade-importer
Trade importer module
- SPCEX-3.21.275
+ SPCEX-3.22.285
jar
@@ -55,7 +55,7 @@
ru.spcex.clearing
classes
- SPCEX-3.21.275
+ SPCEX-3.22.285
compile
diff --git a/clearing-parent/utility-service/pom.xml b/clearing-parent/utility-service/pom.xml
index 125c17428..fd64021de 100644
--- a/clearing-parent/utility-service/pom.xml
+++ b/clearing-parent/utility-service/pom.xml
@@ -5,7 +5,7 @@
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0
diff --git a/clearing-parent/xml-exporter/pom.xml b/clearing-parent/xml-exporter/pom.xml
index 27d0a3271..4a8f811a3 100644
--- a/clearing-parent/xml-exporter/pom.xml
+++ b/clearing-parent/xml-exporter/pom.xml
@@ -7,12 +7,12 @@
xml-exporter
xml-exporter
XML exporter for XML files
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/clearing-parent/xml-importer/pom.xml b/clearing-parent/xml-importer/pom.xml
index ebe2603fb..fc116daac 100644
--- a/clearing-parent/xml-importer/pom.xml
+++ b/clearing-parent/xml-importer/pom.xml
@@ -8,12 +8,12 @@
xml-importer
xml-importer
XML loader for XML files
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingCategory.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingCategory.java
index e9aa5181e..a84a57c59 100644
--- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingCategory.java
+++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingCategory.java
@@ -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;
diff --git a/platform-parent/pom.xml b/platform-parent/pom.xml
index a818c687e..3985023a6 100644
--- a/platform-parent/pom.xml
+++ b/platform-parent/pom.xml
@@ -14,7 +14,7 @@
ru.spcex.clearing
clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
diff --git a/pom.xml b/pom.xml
index de79f2c3b..ed0200dd7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
__parent_ROOT
Clearing main parent
pom
- SPCEX-3.21.275
+ SPCEX-3.22.285
clearing-parent
@@ -24,7 +24,7 @@
17
Maven
- SPCEX-3.21.275
+ SPCEX-3.22.285
2.6.3
diff --git a/z-distr/pom.xml b/z-distr/pom.xml
index 1a67f7419..cb41e6326 100644
--- a/z-distr/pom.xml
+++ b/z-distr/pom.xml
@@ -5,7 +5,7 @@
clearing
ru.spcex.clearing
- SPCEX-3.21.275
+ SPCEX-3.22.285
4.0.0