http://jira.mfd.msk:8088/browse/CLS-13 добавил мапсторы (не все), рефакторинг

This commit is contained in:
AKurakin 2022-08-12 12:21:36 +03:00
parent 7009933409
commit 007072afa6
11 changed files with 177 additions and 12 deletions

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>clearing-parent</artifactId>
<groupId>ru.spcex.clearing</groupId>
<version>SPCEX-1.0.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>imdg-util</artifactId>
<description>Клиентские утилиты для подключения к IMDG хранилищу</description>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
</project>

View file

@ -1,6 +1,8 @@
package ru.spcex.clearing.imdg.utils;
package ru.spcex.clearing.imdg;
//fixme перенести в новый модуль IMDGDistributedNames
/**
* Список имён распределённых объектов
*/
public final class IMDGDistributedNames {
private IMDGDistributedNames() {
}

View file

@ -42,6 +42,13 @@
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.spcex.clearing</groupId>
<artifactId>imdg-util</artifactId>
<version>SPCEX-1.0.0.0</version>
<scope>compile</scope>
</dependency>
<!-- JDBC -->
<dependency>

View file

@ -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;

View file

@ -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<CompanyRoleSet> {

View file

@ -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<KeyRate> {
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;
}
}

View file

@ -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<MoneyMarketSecurity> {
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;
}
}

View file

@ -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;

View file

@ -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;

View file

@ -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 {

View file

@ -20,6 +20,7 @@
<module>classes</module>
<module>backend-api</module>
<module>imdg</module>
<module>imdg-util</module>
<module>db-scripts</module>
<module>dbf-importer</module>
<module>dbf-exporter</module>