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; + } +}