diff --git a/clearing-parent/account-service/pom.xml b/clearing-parent/account-service/pom.xml
new file mode 100644
index 000000000..7585732cf
--- /dev/null
+++ b/clearing-parent/account-service/pom.xml
@@ -0,0 +1,69 @@
+
+
+
+ clearing-parent
+ ru.spcex.clearing
+ SPCEX-1.0.0.0
+
+ 4.0.0
+
+ account-service
+
+
+ 17
+ 17
+
+
+
+ ru.spcex.platform
+ platform-messaging
+
+
+ ru.spcex.platform
+ platform-imdg-api-hazelcast-impl
+
+
+ ru.spcex.clearing
+ classes
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+
+
+
+
+ src/main/resources
+
+ application.properties
+
+ false
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+ ${project.artifactId}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/AccountServiceApplication.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/AccountServiceApplication.java
new file mode 100644
index 000000000..1b8ba13c8
--- /dev/null
+++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/AccountServiceApplication.java
@@ -0,0 +1,12 @@
+package ru.spcex.clearing.account;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class AccountServiceApplication {
+ public static void main(String[] args) {
+ SpringApplication springApplication = new SpringApplication(AccountServiceApplication.class);
+ springApplication.run(args);
+ }
+}
diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/AccountServiceImdgConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/AccountServiceImdgConfig.java
new file mode 100644
index 000000000..a129869d5
--- /dev/null
+++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/AccountServiceImdgConfig.java
@@ -0,0 +1,47 @@
+package ru.spcex.clearing.account.config;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+import ru.spcex.clearing.account.config.settings.AccountServiceSettings;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
+
+@Configuration
+public class AccountServiceImdgConfig {
+ private static ThreadPoolTaskExecutor createThreadPoolTaskExecutor(int maxPoolSz, boolean waitForCompletion) {
+ ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor();
+ if (maxPoolSz > 2) {
+ pool.setKeepAliveSeconds(60);
+ pool.setAllowCoreThreadTimeOut(true);
+ }
+ pool.setCorePoolSize(maxPoolSz);
+ pool.setWaitForTasksToCompleteOnShutdown(waitForCompletion);
+ return pool;
+ }
+
+ @Bean(name = "taskExecutorHazelcastClientInitializer")
+ public ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer() {
+ return createThreadPoolTaskExecutor(1, true);
+ }
+
+ @Bean(name = "taskExecutorIdGeneratorAwaiter")
+ public ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter() {
+ return createThreadPoolTaskExecutor(1, false);
+ }
+
+ @Autowired
+ @Bean
+ public ImdgProvider imdgProvider(
+ @Qualifier("taskExecutorHazelcastClientInitializer") ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer,
+ @Qualifier("taskExecutorIdGeneratorAwaiter") ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter,
+ AccountServiceSettings settings
+ ) {
+ return new HazelcastService(taskExecutorHazelcastClientInitializer,
+ taskExecutorIdGeneratorAwaiter,
+ settings.getHazelcast());
+ }
+
+}
diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/KafkaConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/KafkaConfig.java
new file mode 100644
index 000000000..34973fffa
--- /dev/null
+++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/KafkaConfig.java
@@ -0,0 +1,18 @@
+package ru.spcex.clearing.account.config;
+
+import org.apache.kafka.clients.consumer.Consumer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import ru.spcex.clearing.account.config.settings.AccountServiceSettings;
+import ru.spcex.clearing.platform.messaging.config.KafkaConsumerFactory;
+
+
+@Configuration
+public class KafkaConfig {
+ @Autowired
+ @Bean
+ public Consumer createProducer(AccountServiceSettings settings) {
+ return KafkaConsumerFactory.consumer(settings.getKafka());
+ }
+}
diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/AccountServiceSettings.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/AccountServiceSettings.java
new file mode 100644
index 000000000..6f6a12280
--- /dev/null
+++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/settings/AccountServiceSettings.java
@@ -0,0 +1,31 @@
+package ru.spcex.clearing.account.config.settings;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+import ru.spcex.clearing.platform.messaging.config.element.KafkaConsumerSettings;
+import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams;
+
+@Component
+@PropertySource("file:${spring.config.location}/application.properties")
+@ConfigurationProperties("utility-service")
+public class AccountServiceSettings {
+ private HazelcastClientParams hazelcast;
+ private KafkaConsumerSettings kafka;
+
+ public HazelcastClientParams getHazelcast() {
+ return hazelcast;
+ }
+
+ public void setHazelcast(HazelcastClientParams hazelcast) {
+ this.hazelcast = hazelcast;
+ }
+
+ public KafkaConsumerSettings getKafka() {
+ return kafka;
+ }
+
+ public void setKafka(KafkaConsumerSettings kafka) {
+ this.kafka = kafka;
+ }
+}
diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java
new file mode 100644
index 000000000..57db13a20
--- /dev/null
+++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java
@@ -0,0 +1,84 @@
+package ru.spcex.clearing.account.service;
+
+import org.apache.kafka.clients.consumer.Consumer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import ru.clearing.classes.StaticData.Account.BankAccount;
+import ru.spcex.clearing.imdg.IMDGDistributedNames;
+import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
+import ru.spcex.clearing.platform.messaging.domain.Consts;
+import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest;
+import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest;
+import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
+import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
+import ru.spcex.platform.imdg.api.Imdg;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+
+@Service
+public class BankAccountService extends QueueConsumer implements InitializingBean {
+ private final Logger log = LoggerFactory.getLogger(getClass());
+ private final Imdg bankAccountMap;
+
+ @Autowired
+ public BankAccountService(Consumer kafkaQueue, ImdgProvider imdgProvider) {
+ super(kafkaQueue);
+ this.bankAccountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BankAccount, BankAccount.class);
+ }
+
+ @Override
+ public void afterPropertiesSet() {
+ callback(BankAccountNewRequest.class)
+ .setConsumer(this::bankAccountNew)
+ .forDestination(Consts.DESTINATION_BANK_ACCOUNT_NEW, callbacks::put);
+ callback(BankAccountUpdateRequest.class)
+ .setConsumer(this::bankAccountUpdate)
+ .forDestination(Consts.DESTINATION_BANK_ACCOUNT_UPDATE, callbacks::put);
+ callback(CommonDeleteRequest.class)
+ .setConsumer(this::bankAccountDelete)
+ .forDestination(Consts.DESTINATION_BANK_ACCOUNT_DELETE, callbacks::put);
+ init();
+ }
+
+ private void bankAccountNew(BaseRequest userRequest) {
+ BankAccountNewRequest req = userRequest.getRequestPayload();
+ log.debug("MoneyMarketSecurityNewRequest received");
+ BankAccount bankAccount = new BankAccount();
+ bankAccount.setBankIdentificationCode(req.getBankIdentificationCode());
+ bankAccount.setBankName(req.getBankName());
+ bankAccount.setCorrespondentAccount(req.getCorrespondentAccount());
+ bankAccount.setCorrespondentAccountName(req.getCorrespondentAccountName());
+ bankAccount.setCurrency(req.getCurrency());
+ bankAccount.setDestination(req.getDestination());
+ bankAccount.setTaxpayerIdentificationNumber(req.getTaxpayerIdentificationNumber());
+ bankAccount.setTaxRegistrationReasonCode(req.getTaxRegistrationReasonCode());
+
+ bankAccountMap.insert(bankAccount);
+ log.debug("successfully processed, new id {}", bankAccount.getId());
+ }
+
+ private void bankAccountUpdate(BaseRequest userRequest) {
+ BankAccountUpdateRequest req = userRequest.getRequestPayload();
+ log.debug("MoneyMarketSecurityUpdateRequest received id = {}", req.getId());
+ BankAccount bankAccount = bankAccountMap.getSingleObjectByID(req.getId());
+ bankAccount.setBankIdentificationCode(req.getBankIdentificationCode());
+ bankAccount.setBankName(req.getBankName());
+ bankAccount.setCorrespondentAccount(req.getCorrespondentAccount());
+ bankAccount.setCorrespondentAccountName(req.getCorrespondentAccountName());
+ bankAccount.setCurrency(req.getCurrency());
+ bankAccount.setDestination(req.getDestination());
+ bankAccount.setTaxpayerIdentificationNumber(req.getTaxpayerIdentificationNumber());
+ bankAccount.setTaxRegistrationReasonCode(req.getTaxRegistrationReasonCode());
+ bankAccountMap.update(bankAccount);
+ }
+
+ private void bankAccountDelete(BaseRequest userRequest) {
+ CommonDeleteRequest req = userRequest.getRequestPayload();
+ log.debug("CommonDeleteRequest received id = {}", req.getId());
+ BankAccount bankAccount = bankAccountMap.getSingleObjectByID(req.getId());
+ bankAccountMap.delete(bankAccount);
+ }
+
+}
diff --git a/clearing-parent/account-service/src/main/resources/application.properties b/clearing-parent/account-service/src/main/resources/application.properties
new file mode 100644
index 000000000..f2d6fe4d8
--- /dev/null
+++ b/clearing-parent/account-service/src/main/resources/application.properties
@@ -0,0 +1,11 @@
+spring.main.web-application-type=none
+account-service.hazelcast.cluster-members=127.0.0.1
+account-service.hazelcast.login=dev
+account-service.hazelcast.password=dev-pass
+account-service.kafka.bootstrap-servers=localhost:9092
+account-service.kafka.group-id=dev-group
+account-service.kafka.enable-auto-commit=false
+account-service.kafka.session-timeout-ms=30000
+account-service.kafka.auto-offset-reset=latest
+account-service.kafka.linger-ms=1
+account-service.kafka.buffer-memory=33554432
\ No newline at end of file
diff --git a/clearing-parent/account-service/src/main/resources/logback.xml b/clearing-parent/account-service/src/main/resources/logback.xml
new file mode 100644
index 000000000..28e170416
--- /dev/null
+++ b/clearing-parent/account-service/src/main/resources/logback.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+ %date{HH:mm:ss.SSS} [%thread] %-5level %class{0}:%line - %message%n
+ utf-8
+
+
+
+ ./logs/account-service.log
+
+
+ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %class{0}:%msg%n
+ utf8
+
+
+
+ ./logs/account-service.%i.log
+
+ 1
+ 10
+
+
+ 500MB
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/UtilityServiceImdgConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/CompanyServiceImdgConfig.java
similarity index 97%
rename from clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/UtilityServiceImdgConfig.java
rename to clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/CompanyServiceImdgConfig.java
index bbe41d92f..f2ecca156 100644
--- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/UtilityServiceImdgConfig.java
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/CompanyServiceImdgConfig.java
@@ -10,7 +10,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService;
@Configuration
-public class UtilityServiceImdgConfig {
+public class CompanyServiceImdgConfig {
private static ThreadPoolTaskExecutor createThreadPoolTaskExecutor(int maxPoolSz, boolean waitForCompletion) {
ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor();
if (maxPoolSz > 2) {
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java
new file mode 100644
index 000000000..235c1ddec
--- /dev/null
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java
@@ -0,0 +1,57 @@
+package ru.spcex.clearing.company.service;
+
+import org.apache.kafka.clients.consumer.Consumer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import ru.clearing.classes.StaticData.generated.ClearingMemberCategory;
+import ru.spcex.clearing.imdg.IMDGDistributedNames;
+import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
+import ru.spcex.clearing.platform.messaging.domain.Consts;
+import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
+import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest;
+import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
+import ru.spcex.platform.imdg.api.Imdg;
+import ru.spcex.platform.imdg.api.ImdgProvider;
+
+public class ClearingMemberCategoryService extends QueueConsumer implements InitializingBean {
+ private final Logger log = LoggerFactory.getLogger(getClass());
+ private final Imdg clearingMemberCategoryMap;
+
+ @Autowired
+ public ClearingMemberCategoryService(Consumer kafkaQueue, ImdgProvider imdgProvider) {
+ super(kafkaQueue);
+ this.clearingMemberCategoryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
+ }
+
+ @Override
+ public void afterPropertiesSet() {
+ callback(ClearingMemberCategoryUpdateRequest.class)
+ .setConsumer(this::clearingMemberCategoryUpdate)
+ .forDestination(Consts.DESTINATION_CLEARING_MEMBER_CATEGORY_UPDATE, callbacks::put);
+ callback(CommonDeleteRequest.class)
+ .setConsumer(this::clearingMemberCategoryDelete)
+ .forDestination(Consts.DESTINATION_CLEARING_MEMBER_CATEGORY_DELETE, callbacks::put);
+ init();
+ }
+
+
+ public void clearingMemberCategoryUpdate(BaseRequest userRequest) {
+ ClearingMemberCategoryUpdateRequest req = userRequest.getRequestPayload();
+ log.debug("ClearingMemberCategoryUpdateRequest received");
+ ClearingMemberCategory clearingMemberCategory = clearingMemberCategoryMap.getSingleObjectByID(req.getId());
+
+ clearingMemberCategory.setClearingMemberCategory(req.getClearingMemberCategory());
+
+ clearingMemberCategoryMap.update(clearingMemberCategory);
+ log.debug("successfully processed, id {}", clearingMemberCategory.getId());
+ }
+
+ private void clearingMemberCategoryDelete(BaseRequest userRequest) {
+ CommonDeleteRequest req = userRequest.getRequestPayload();
+ log.debug("CommonDeleteRequest received id = {}", req.getId());
+ ClearingMemberCategory clearingMemberCategory = clearingMemberCategoryMap.getSingleObjectByID(req.getId());
+ clearingMemberCategoryMap.delete(clearingMemberCategory);
+ }
+}
diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java
index f28ef832f..d96342ec1 100644
--- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java
+++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java
@@ -34,7 +34,7 @@ public class ContactService extends QueueConsumer implements InitializingBean {
public void contactUpdate(BaseRequest userRequest) {
ContactUpdateRequest req = userRequest.getRequestPayload();
- log.debug("CompanySymbolUpdateRequest received");
+ log.debug("ContactUpdateRequest received");
Contact contact = contactMap.getSingleObjectByID(req.getId());
contact.setContactType(req.getContactType());
contact.setContactValue(req.getContactValue());
diff --git a/clearing-parent/company-service/src/main/resources/application.properties b/clearing-parent/company-service/src/main/resources/application.properties
index f3f6bd027..2d6a2cfe0 100644
--- a/clearing-parent/company-service/src/main/resources/application.properties
+++ b/clearing-parent/company-service/src/main/resources/application.properties
@@ -1,13 +1,11 @@
spring.main.web-application-type=none
-
-utility-service.hazelcast.cluster-members=127.0.0.1
-utility-service.hazelcast.login=dev
-utility-service.hazelcast.password=dev-pass
-
-utility-service.kafka.bootstrap-servers=localhost:9092
-utility-service.kafka.group-id=dev-group
-utility-service.kafka.enable-auto-commit=false
-utility-service.kafka.session-timeout-ms=30000
-utility-service.kafka.auto-offset-reset=latest
-utility-service.kafka.linger-ms=1
-utility-service.kafka.buffer-memory=33554432
\ No newline at end of file
+company-service.hazelcast.cluster-members=127.0.0.1
+company-service.hazelcast.login=dev
+company-service.hazelcast.password=dev-pass
+company-service.kafka.bootstrap-servers=localhost:9092
+company-service.kafka.group-id=dev-group
+company-service.kafka.enable-auto-commit=false
+company-service.kafka.session-timeout-ms=30000
+company-service.kafka.auto-offset-reset=latest
+company-service.kafka.linger-ms=1
+company-service.kafka.buffer-memory=33554432
\ No newline at end of file
diff --git a/clearing-parent/pom.xml b/clearing-parent/pom.xml
index 717490f8d..859773303 100644
--- a/clearing-parent/pom.xml
+++ b/clearing-parent/pom.xml
@@ -1,5 +1,5 @@
-
4.0.0
@@ -27,6 +27,7 @@
utility-service
company-service
reports-service
+ account-service
diff --git a/clearing-parent/reports-service/docs/report.BR для разработчиков.docx b/clearing-parent/reports-service/docs/report.BR для разработчиков.docx
new file mode 100644
index 000000000..d6d6bd7fc
Binary files /dev/null and b/clearing-parent/reports-service/docs/report.BR для разработчиков.docx differ
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_3/ReportBR_0420318.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_3/ReportBR_0420318.java
index df5aedc3c..fc66f6abb 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_3/ReportBR_0420318.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_3/ReportBR_0420318.java
@@ -34,7 +34,7 @@ public class ReportBR_0420318 extends AbstractReport {
private String liabilitiesClaimsAssetsFullName;
@XStreamAsAttribute
- @XStreamAlias("CompanySymbols_code")
+ @XStreamAlias("companySymbols_code")
private String companySymbolsCode;
@XStreamAsAttribute
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P10.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P10.java
index 021fb5ec2..ab24a7a0c 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P10.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P10.java
@@ -9,7 +9,7 @@ import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P10 extends AbstractReport {
- @XStreamAlias("partThree")
+ @XStreamAlias("partTen")
private final Info_0420312_P10 partTen;
public ReportBR_0420312_P10(LocalDate startDate,
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P11.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P11.java
new file mode 100644
index 000000000..3f08e4f46
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P11.java
@@ -0,0 +1,35 @@
+package ru.spcex.clearing.reports_service.reports.bt_17_5;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
+import ru.spcex.clearing.reports_service.reports.AbstractReport;
+
+import java.time.LocalDate;
+
+@XStreamAlias("report")
+public class ReportBR_0420312_P11 extends AbstractReport {
+
+ @XStreamAlias("partEleven")
+ private final Info_0420312_P11 partEleven;
+
+ public ReportBR_0420312_P11(LocalDate startDate,
+ LocalDate endDate,
+ String liabilitiesAmount) {
+ super("0.0.5",
+ "0420312",
+ "Сведения о клиринговом обеспечении",
+ startDate,
+ endDate);
+ partEleven = new Info_0420312_P11(liabilitiesAmount);
+ }
+
+ public static class Info_0420312_P11 {
+ @XStreamAsAttribute
+ @XStreamAlias("liabilities_amount")
+ private String liabilitiesAmount;
+
+ public Info_0420312_P11(String liabilitiesAmount) {
+ this.liabilitiesAmount = liabilitiesAmount;
+ }
+ }
+}
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P3.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P3.java
index 521f6d0bd..c77e200c2 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P3.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P3.java
@@ -30,7 +30,7 @@ public class ReportBR_0420312_P3 extends AbstractReport {
private String liabilitiesClaimsAssetsCompanyId;
@XStreamAsAttribute
- @XStreamAlias("liabilitiesClaimsAssets_fullName")
+ @XStreamAlias("liabilitiesClaimsAssets_liabilities")
private String liabilitiesClaimsAssetsLiabilities;
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P4.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P4.java
index f9e7b695c..28df729dc 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P4.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P4.java
@@ -9,7 +9,7 @@ import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P4 extends AbstractReport {
- @XStreamAlias("partThree")
+ @XStreamAlias("partFour")
private final Info_0420312_P4 partFour;
public ReportBR_0420312_P4(LocalDate startDate,
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P5.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P5.java
index 154536139..5702d7a28 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P5.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P5.java
@@ -9,7 +9,7 @@ import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P5 extends AbstractReport {
- @XStreamAlias("partThree")
+ @XStreamAlias("partFive")
private final Info_0420312_P5 partFive;
public ReportBR_0420312_P5(LocalDate startDate,
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P6.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P6.java
index 41d1200dc..12abe818d 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P6.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P6.java
@@ -9,7 +9,7 @@ import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P6 extends AbstractReport {
- @XStreamAlias("partThree")
+ @XStreamAlias("partSix")
private final Info_0420312_P6 partSix;
public ReportBR_0420312_P6(LocalDate startDate,
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P8.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P8.java
index 3e26fcea5..6a92fb8bc 100644
--- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P8.java
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P8.java
@@ -9,7 +9,7 @@ import java.time.LocalDate;
@XStreamAlias("report")
public class ReportBR_0420312_P8 extends AbstractReport {
- @XStreamAlias("partThree")
+ @XStreamAlias("partEight")
private final Info_0420312_P8 partEight;
public ReportBR_0420312_P8(LocalDate startDate,
diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P9.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P9.java
new file mode 100644
index 000000000..c118a1cf0
--- /dev/null
+++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports_service/reports/bt_17_5/ReportBR_0420312_P9.java
@@ -0,0 +1,84 @@
+package ru.spcex.clearing.reports_service.reports.bt_17_5;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
+import ru.spcex.clearing.reports_service.reports.AbstractReport;
+
+import java.time.LocalDate;
+
+@XStreamAlias("report")
+public class ReportBR_0420312_P9 extends AbstractReport {
+
+ @XStreamAlias("partNine")
+ private final Info_0420312_P9 partNine;
+
+ public ReportBR_0420312_P9(LocalDate startDate,
+ LocalDate endDate,
+ String currencyId,
+ String liabilitiesClaimsAssetsCompanyId,
+ String liabilitiesClaimsAssetsFullName,
+ String companySymbolCode,
+ String companySymbolValue,
+ String companyInfoCountryCode,
+ String clearingMemberCategoryClearingMemberCategory) {
+ super("0.0.5",
+ "0420312",
+ "Сведения о клиринговом обеспечении",
+ startDate,
+ endDate);
+ partNine = new Info_0420312_P9(currencyId,
+ liabilitiesClaimsAssetsCompanyId,
+ liabilitiesClaimsAssetsFullName,
+ companySymbolCode,
+ companySymbolValue,
+ companyInfoCountryCode,
+ clearingMemberCategoryClearingMemberCategory);
+ }
+
+ public static class Info_0420312_P9 {
+ @XStreamAsAttribute
+ @XStreamAlias("currency_id")
+ private String currencyId;
+
+ @XStreamAsAttribute
+ @XStreamAlias("liabilitiesClaimsAssets_companyId")
+ private String liabilitiesClaimsAssetsCompanyId;
+
+ @XStreamAsAttribute
+ @XStreamAlias("liabilitiesClaimsAssets_fullName")
+ private String liabilitiesClaimsAssetsFullName;
+
+ @XStreamAsAttribute
+ @XStreamAlias("companySymbol_code")
+ private String companySymbolCode;
+
+ @XStreamAsAttribute
+ @XStreamAlias("companySymbol_value")
+ private String companySymbolValue;
+
+ @XStreamAsAttribute
+ @XStreamAlias("companyInfo_countryCode")
+ private String companyInfoCountryCode;
+
+ @XStreamAsAttribute
+ @XStreamAlias("clearingMemberCategory_clearingMemberCategory")
+ private String clearingMemberCategoryClearingMemberCategory;
+
+
+ public Info_0420312_P9(String currencyId,
+ String liabilitiesClaimsAssetsCompanyId,
+ String liabilitiesClaimsAssetsFullName,
+ String companySymbolCode,
+ String companySymbolValue,
+ String companyInfoCountryCode,
+ String clearingMemberCategoryClearingMemberCategory) {
+ this.currencyId = currencyId;
+ this.liabilitiesClaimsAssetsCompanyId = liabilitiesClaimsAssetsCompanyId;
+ this.liabilitiesClaimsAssetsFullName = liabilitiesClaimsAssetsFullName;
+ this.companySymbolCode = companySymbolCode;
+ this.companySymbolValue = companySymbolValue;
+ this.companyInfoCountryCode = companyInfoCountryCode;
+ this.clearingMemberCategoryClearingMemberCategory = clearingMemberCategoryClearingMemberCategory;
+ }
+ }
+}
diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java
index fdbb8c116..cbaeefcd7 100644
--- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java
+++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java
@@ -14,5 +14,8 @@ public interface Consts {
String DESTINATION_COMPANY_SYMBOL_UPDATE = "company-symbol-update";
String DESTINATION_CONTACT_UPDATE = "contact-update";
String DESTINATION_CLEARING_MEMBER_CATEGORY_UPDATE = "clearing-member-category-update";
- String DESTINATION_CLEARING_MEMBER_CATEGORY_DELETE = "clearing-member-category-delete";
+ String DESTINATION_BANK_ACCOUNT_DELETE = "bank-account-delete";
+ String DESTINATION_BANK_ACCOUNT_UPDATE = "bank-account-update";
+ String DESTINATION_BANK_ACCOUNT_NEW = "bank-account-new";
+
}
diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountNewRequest.java
new file mode 100644
index 000000000..527ed2ce4
--- /dev/null
+++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountNewRequest.java
@@ -0,0 +1,96 @@
+package ru.spcex.clearing.platform.messaging.domain.cud.account;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class BankAccountNewRequest {
+ @JsonProperty
+ public String bankIdentificationCode;//Банковский идентификационный код (БИК)
+ @JsonProperty
+ public String bankName;//Наименование банка
+ @JsonProperty
+ public String correspondentAccount;//Корреспондентский счет
+ @JsonProperty
+ public String correspondentAccountName;//Наименование корреспондентского счета
+ @JsonProperty
+ public String currency;//Идентификатор валюты
+ @JsonProperty
+ public String destination;//Назначение
+ @JsonProperty
+ public String taxpayerIdentificationNumber;//Идентификационный номер налогоплательщика (ИНН)
+ @JsonProperty
+ public String taxRegistrationReasonCode;//Код причины постановки (КПП)
+ @JsonProperty
+ public String account;//Номер счета
+
+ public String getBankIdentificationCode() {
+ return bankIdentificationCode;
+ }
+
+ public void setBankIdentificationCode(String bankIdentificationCode) {
+ this.bankIdentificationCode = bankIdentificationCode;
+ }
+
+ public String getBankName() {
+ return bankName;
+ }
+
+ public void setBankName(String bankName) {
+ this.bankName = bankName;
+ }
+
+ public String getCorrespondentAccount() {
+ return correspondentAccount;
+ }
+
+ public void setCorrespondentAccount(String correspondentAccount) {
+ this.correspondentAccount = correspondentAccount;
+ }
+
+ public String getCorrespondentAccountName() {
+ return correspondentAccountName;
+ }
+
+ public void setCorrespondentAccountName(String correspondentAccountName) {
+ this.correspondentAccountName = correspondentAccountName;
+ }
+
+ public String getCurrency() {
+ return currency;
+ }
+
+ public void setCurrency(String currency) {
+ this.currency = currency;
+ }
+
+ public String getDestination() {
+ return destination;
+ }
+
+ public void setDestination(String destination) {
+ this.destination = destination;
+ }
+
+ public String getTaxpayerIdentificationNumber() {
+ return taxpayerIdentificationNumber;
+ }
+
+ public void setTaxpayerIdentificationNumber(String taxpayerIdentificationNumber) {
+ this.taxpayerIdentificationNumber = taxpayerIdentificationNumber;
+ }
+
+ public String getTaxRegistrationReasonCode() {
+ return taxRegistrationReasonCode;
+ }
+
+ public void setTaxRegistrationReasonCode(String taxRegistrationReasonCode) {
+ this.taxRegistrationReasonCode = taxRegistrationReasonCode;
+ }
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+}
diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountUpdateRequest.java
new file mode 100644
index 000000000..5ee6fc958
--- /dev/null
+++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/account/BankAccountUpdateRequest.java
@@ -0,0 +1,106 @@
+package ru.spcex.clearing.platform.messaging.domain.cud.account;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class BankAccountUpdateRequest {
+ @JsonProperty
+ public Long id; //Идентификатор записи
+ @JsonProperty
+ public String bankIdentificationCode;//Банковский идентификационный код (БИК)
+ @JsonProperty
+ public String bankName;//Наименование банка
+ @JsonProperty
+ public String correspondentAccount;//Корреспондентский счет
+ @JsonProperty
+ public String correspondentAccountName;//Наименование корреспондентского счета
+ @JsonProperty
+ public String currency;//Идентификатор валюты
+ @JsonProperty
+ public String destination;//Назначение
+ @JsonProperty
+ public String taxpayerIdentificationNumber;//Идентификационный номер налогоплательщика (ИНН)
+ @JsonProperty
+ public String taxRegistrationReasonCode;//Код причины постановки (КПП)
+ @JsonProperty
+ public String account;//Номер счета
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getBankIdentificationCode() {
+ return bankIdentificationCode;
+ }
+
+ public void setBankIdentificationCode(String bankIdentificationCode) {
+ this.bankIdentificationCode = bankIdentificationCode;
+ }
+
+ public String getBankName() {
+ return bankName;
+ }
+
+ public void setBankName(String bankName) {
+ this.bankName = bankName;
+ }
+
+ public String getCorrespondentAccount() {
+ return correspondentAccount;
+ }
+
+ public void setCorrespondentAccount(String correspondentAccount) {
+ this.correspondentAccount = correspondentAccount;
+ }
+
+ public String getCorrespondentAccountName() {
+ return correspondentAccountName;
+ }
+
+ public void setCorrespondentAccountName(String correspondentAccountName) {
+ this.correspondentAccountName = correspondentAccountName;
+ }
+
+ public String getCurrency() {
+ return currency;
+ }
+
+ public void setCurrency(String currency) {
+ this.currency = currency;
+ }
+
+ public String getDestination() {
+ return destination;
+ }
+
+ public void setDestination(String destination) {
+ this.destination = destination;
+ }
+
+ public String getTaxpayerIdentificationNumber() {
+ return taxpayerIdentificationNumber;
+ }
+
+ public void setTaxpayerIdentificationNumber(String taxpayerIdentificationNumber) {
+ this.taxpayerIdentificationNumber = taxpayerIdentificationNumber;
+ }
+
+ public String getTaxRegistrationReasonCode() {
+ return taxRegistrationReasonCode;
+ }
+
+ public void setTaxRegistrationReasonCode(String taxRegistrationReasonCode) {
+ this.taxRegistrationReasonCode = taxRegistrationReasonCode;
+ }
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+}