From 007072afa6e9afe486ce0e939c0764355ae37483 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 12 Aug 2022 12:21:36 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-13=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BC=D0=B0=D0=BF=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D1=8B=20(=D0=BD=D0=B5=20=D0=B2=D1=81=D0=B5),?= =?UTF-8?q?=20=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=BD?= =?UTF-8?q?=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clearing-parent/imdg-util/pom.xml | 20 +++++ .../clearing/imdg}/IMDGDistributedNames.java | 6 +- clearing-parent/imdg/pom.xml | 7 ++ .../clearing/imdg/config/PoolMapConfigs.java | 4 +- .../imdg/object/CompanyRoleSetMapStore.java | 5 +- .../clearing/imdg/object/KeyRateMapStore.java | 66 +++++++++++++++++ .../object/MoneyMarketSecurityMapStore.java | 74 +++++++++++++++++++ .../AbstractHazelcastLifecycleSupport.java | 2 +- .../services/AbstractUpdateMapService.java | 2 +- .../imdg/services/UpdateMapService.java | 2 +- clearing-parent/pom.xml | 1 + 11 files changed, 177 insertions(+), 12 deletions(-) create mode 100644 clearing-parent/imdg-util/pom.xml rename clearing-parent/{imdg/src/main/java/ru/spcex/clearing/imdg/utils => imdg-util/src/main/java/ru/spcex/clearing/imdg}/IMDGDistributedNames.java (94%) create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java diff --git a/clearing-parent/imdg-util/pom.xml b/clearing-parent/imdg-util/pom.xml new file mode 100644 index 000000000..184b5b734 --- /dev/null +++ b/clearing-parent/imdg-util/pom.xml @@ -0,0 +1,20 @@ + + + + clearing-parent + ru.spcex.clearing + SPCEX-1.0.0.0 + + 4.0.0 + + imdg-util + Клиентские утилиты для подключения к IMDG хранилищу + + + 17 + 17 + + + \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/IMDGDistributedNames.java b/clearing-parent/imdg-util/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java similarity index 94% rename from clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/IMDGDistributedNames.java rename to clearing-parent/imdg-util/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index 42da77c3b..8bd146b94 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/utils/IMDGDistributedNames.java +++ b/clearing-parent/imdg-util/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -1,6 +1,8 @@ -package ru.spcex.clearing.imdg.utils; +package ru.spcex.clearing.imdg; -//fixme перенести в новый модуль IMDGDistributedNames +/** + * Список имён распределённых объектов + */ public final class IMDGDistributedNames { private IMDGDistributedNames() { } diff --git a/clearing-parent/imdg/pom.xml b/clearing-parent/imdg/pom.xml index b3bd2cfea..ea64f5b00 100644 --- a/clearing-parent/imdg/pom.xml +++ b/clearing-parent/imdg/pom.xml @@ -42,6 +42,13 @@ compile + + ru.spcex.clearing + imdg-util + SPCEX-1.0.0.0 + compile + + diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/PoolMapConfigs.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/PoolMapConfigs.java index 37f6b2c53..e92d9c962 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/PoolMapConfigs.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/config/PoolMapConfigs.java @@ -6,17 +6,15 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Configuration; import ru.spcex.clearing.imdg.base.TemplateMapStore; import ru.spcex.clearing.imdg.businessevent.CompanyUpdateMapStore; import ru.spcex.clearing.imdg.businessobject.CompanyMapStore; import ru.spcex.clearing.imdg.dictionary.*; -import ru.spcex.clearing.imdg.object.CompanyRoleSetMapStore; import ru.spcex.clearing.imdg.object.CompanySymbolsMapStore; import ru.spcex.clearing.imdg.object.ContactMapStore; import ru.spcex.clearing.imdg.object.ProfileDocumentMapStore; -import ru.spcex.clearing.imdg.utils.IMDGDistributedNames; +import ru.spcex.clearing.imdg.IMDGDistributedNames; import java.util.ArrayList; import java.util.Arrays; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanyRoleSetMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanyRoleSetMapStore.java index a5cddd8a2..e6dc11297 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanyRoleSetMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CompanyRoleSetMapStore.java @@ -3,14 +3,11 @@ package ru.spcex.clearing.imdg.object; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import ru.clearing.classes.StaticData.Company.CompanyRoleSet; -import ru.spcex.clearing.imdg.base.ObjectBaseMapStore; import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.clearing.imdg.utils.DbUtilsHelper; -import ru.spcex.clearing.imdg.utils.IMDGDistributedNames; +import ru.spcex.clearing.imdg.IMDGDistributedNames; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.*; @Component public class CompanyRoleSetMapStore extends TemplateMapStore { diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java new file mode 100644 index 000000000..9cfe9c445 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java @@ -0,0 +1,66 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.StaticData.Misc.KeyRate; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.utils.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class KeyRateMapStore extends TemplateMapStore { + + public KeyRateMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getTableName() { + return "KEY_RATE"; + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_KeyRate; + } + + @Override + public String[] getIndexingField() { + return new String[]{"startDate", "endDate"}; + } + + @Override + public String[] getFields() { + return new String[]{"id", "rate", "start_date", "end_date", "document", "workflow_status"}; + } + + @Override + protected KeyRate objectReader(ResultSet resultSet) throws SQLException { + KeyRate keyRate = new KeyRate(); + keyRate.setId(resultSet.getObject("ID", Long.class)); + keyRate.setRate(resultSet.getObject("RATE", BigDecimal.class)); + keyRate.setStartDate(getInstantFromTimestamp(resultSet,"START_DATE")); + keyRate.setEndDate(getInstantFromTimestamp(resultSet, "END_DATE")); + keyRate.setDocument(resultSet.getObject("DOCUMENT", String.class)); + keyRate.setWorkflowStatus(resultSet.getObject("WORKFLOW_STATUS", String.class)); + return keyRate; + } + + @Override + protected Object[] objectToField(KeyRate partnerList) { + Object[] args = new Object[]{ + partnerList.getId(), + partnerList.getRate(), + TimeUtil.fromInstant(partnerList.getStartDate()), + TimeUtil.fromInstant(partnerList.getEndDate()), + partnerList.getDocument(), + partnerList.getWorkflowStatus() + }; + return args; + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java new file mode 100644 index 000000000..113780189 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MoneyMarketSecurityMapStore.java @@ -0,0 +1,74 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.StaticData.Misc.MoneyMarketSecurity; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.utils.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class MoneyMarketSecurityMapStore extends TemplateMapStore { + + public MoneyMarketSecurityMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getTableName() { + return "MONEY_MARKET_SECURITY"; + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_MoneyMarketSecurity; + } + + @Override + public String[] getIndexingField() { + return new String[]{"securityId"}; + } + + @Override + public String[] getFields() { + return new String[]{"ID", "SECURITY_ID", "DESCRIPTION", "START_DATE", "END_DATE", "NOMINAL_VALUE", "NOMINAL_CURRENCY", "INSTRUMENT_TYPE", "FULL_NAME", "SECURITY_SYMBOL"}; + } + + @Override + protected MoneyMarketSecurity objectReader(ResultSet resultSet) throws SQLException { + MoneyMarketSecurity object = new MoneyMarketSecurity(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); + object.setDescription(resultSet.getObject("DESCRIPTION", String.class)); + object.setStartDate(getInstantFromTimestamp(resultSet, "START_DATE")); + object.setEndDate(getInstantFromTimestamp(resultSet, "END_DATE")); + object.setNominalValue(resultSet.getObject("NOMINAL_VALUE", BigDecimal.class)); + object.setNominalCurrency(resultSet.getObject("NOMINAL_CURRENCY", Long.class)); + object.setInstrumentType(resultSet.getObject("INSTRUMENT_TYPE", String.class)); + object.setFullName(resultSet.getObject("FULL_NAME", String.class)); + object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); + return object; + } + + @Override + protected Object[] objectToField(MoneyMarketSecurity moneyMarketSecurity) { + Object[] args = new Object[]{ + moneyMarketSecurity.getId(), + moneyMarketSecurity.getSecurityId(), + moneyMarketSecurity.getDescription(), + TimeUtil.fromInstant(moneyMarketSecurity.getStartDate()), + TimeUtil.fromInstant(moneyMarketSecurity.getEndDate()), + moneyMarketSecurity.getNominalValue(), + moneyMarketSecurity.getNominalCurrency(), + moneyMarketSecurity.getInstrumentType(), + moneyMarketSecurity.getFullName(), + moneyMarketSecurity.getSecuritySymbol() + }; + return args; + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java index fcd08aade..868c4de0c 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractHazelcastLifecycleSupport.java @@ -14,7 +14,7 @@ import org.springframework.jdbc.core.JdbcTemplate; import ru.clearing.classes.objects.BusinessObject; import ru.spcex.clearing.imdg.base.DictionaryMapStore; import ru.spcex.clearing.imdg.base.SimpleObjectMapStore; -import ru.spcex.clearing.imdg.utils.IMDGDistributedNames; +import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.platform.imdg.iml.hazelcast.util.HazelcastHelper; import java.util.ArrayList; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractUpdateMapService.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractUpdateMapService.java index c80a0716a..24a5bc55b 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractUpdateMapService.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/AbstractUpdateMapService.java @@ -9,7 +9,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import ru.clearing.classes.objects.BusinessEvent; -import ru.spcex.clearing.imdg.utils.IMDGDistributedNames; +import ru.spcex.clearing.imdg.IMDGDistributedNames; import java.time.Instant; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java index 11ff3a661..1f652cdf2 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java @@ -9,7 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.clearing.classes.StaticData.Company.Company; import ru.clearing.classes.StaticData.Company.CompanyUpdate; -import ru.spcex.clearing.imdg.utils.IMDGDistributedNames; +import ru.spcex.clearing.imdg.IMDGDistributedNames; @Service public class UpdateMapService extends AbstractUpdateMapService { diff --git a/clearing-parent/pom.xml b/clearing-parent/pom.xml index 3c0360f3e..f1430a80d 100644 --- a/clearing-parent/pom.xml +++ b/clearing-parent/pom.xml @@ -20,6 +20,7 @@ classes backend-api imdg + imdg-util db-scripts dbf-importer dbf-exporter