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