diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Rates.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Rates.java new file mode 100644 index 000000000..857cc1eaa --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/security/Rates.java @@ -0,0 +1,53 @@ +package ru.clearing.classes.statics.data.security; + +import java.math.BigDecimal; +import java.time.LocalDate; +import ru.clearing.classes.objects.BusinessObject; + +public class Rates extends BusinessObject { + private BigDecimal value; + private LocalDate valueDate; + private String currency; + private Long currencyId; + private String workflowStatus; + + public BigDecimal getValue() { + return value; + } + + public void setValue(BigDecimal value) { + this.value = value; + } + + public LocalDate getValueDate() { + return valueDate; + } + + public void setValueDate(LocalDate valueDate) { + this.valueDate = valueDate; + } + + public String getCurrency() { + return currency; + } + + public void setCurrency(String currency) { + this.currency = currency; + } + + public Long getCurrencyId() { + return currencyId; + } + + public void setCurrencyId(Long currencyId) { + this.currencyId = currencyId; + } + + public String getWorkflowStatus() { + return workflowStatus; + } + + public void setWorkflowStatus(String workflowStatus) { + this.workflowStatus = workflowStatus; + } +} diff --git a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql index 20ec36b56..48a09c9ee 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -5198,6 +5198,28 @@ COMMENT ON COLUMN RISK_PARAMETER.CREATED_AT IS 'Время создания за COMMENT ON COLUMN RISK_PARAMETER.UPDATED_AT IS 'Время изменения записи'; COMMENT ON COLUMN RISK_PARAMETER.WORKFLOW_STATUS IS 'Статус'; GRANT ALL PRIVILEGES ON TABLE RISK_PARAMETER TO clearing; + +CREATE TABLE RATES +( + ID BIGINT, + VALUE numeric(72, 18), + VALUE_DATE date, + CURRENCY VARCHAR(4), + CURRENCY_ID BIGINT, + CREATED_AT timestamp, + UPDATED_AT timestamp, + WORKFLOW_STATUS VARCHAR(4) +); +COMMENT ON TABLE RATES IS 'Расчетные курсы'; +COMMENT ON COLUMN RATES.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN RATES.VALUE IS 'Расчетный курс'; +COMMENT ON COLUMN RATES.VALUE_DATE IS 'Дата, на которую расчетный курс'; +COMMENT ON COLUMN RATES.CURRENCY IS 'Код валюты'; +COMMENT ON COLUMN RATES.CURRENCY_ID IS 'Идентификатор валюты'; +COMMENT ON COLUMN RATES.CREATED_AT IS 'Время создания записи'; +COMMENT ON COLUMN RATES.UPDATED_AT IS 'Время изменения записи'; +COMMENT ON COLUMN RATES.WORKFLOW_STATUS IS 'Статус'; +GRANT ALL PRIVILEGES ON TABLE RATES TO clearing; /* views */ -- Data types diff --git a/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.15.sql b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.15.sql index 2fa3768db..a07439856 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.15.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/updateDDL_3.15.sql @@ -47,7 +47,7 @@ CREATE TABLE RISK_PARAMETER ); COMMENT ON TABLE RISK_PARAMETER IS '-'; COMMENT ON COLUMN RISK_PARAMETER.ID IS ' '; -COMMENT ON COLUMN RISK_PARAMETER.VALUE IS ' '; +COMMENT ON COLUMN RISK_PARAMETER.VALUE IS ''; COMMENT ON COLUMN RISK_PARAMETER.SETTLEMENT_TYPE IS ' '; COMMENT ON COLUMN RISK_PARAMETER.CURRENCY_PAIR IS ' '; COMMENT ON COLUMN RISK_PARAMETER.CURRENCY_PAIR_ID IS ' '; @@ -56,4 +56,27 @@ COMMENT ON COLUMN RISK_PARAMETER.UPDATED_AT IS ' COMMENT ON COLUMN RISK_PARAMETER.WORKFLOW_STATUS IS ''; GRANT ALL PRIVILEGES ON TABLE RISK_PARAMETER TO clearing; +DROP TABLE IF EXISTS RATES; +CREATE TABLE RATES +( + ID BIGINT, + VALUE numeric(72, 18), + VALUE_DATE date, + CURRENCY VARCHAR(4), + CURRENCY_ID BIGINT, + CREATED_AT timestamp, + UPDATED_AT timestamp, + WORKFLOW_STATUS VARCHAR(4) +); +COMMENT ON TABLE RATES IS ' '; +COMMENT ON COLUMN RATES.ID IS ' '; +COMMENT ON COLUMN RATES.VALUE IS ' '; +COMMENT ON COLUMN RATES.VALUE_DATE IS ', '; +COMMENT ON COLUMN RATES.CURRENCY IS ' '; +COMMENT ON COLUMN RATES.CURRENCY_ID IS ' '; +COMMENT ON COLUMN RATES.CREATED_AT IS ' '; +COMMENT ON COLUMN RATES.UPDATED_AT IS ' '; +COMMENT ON COLUMN RATES.WORKFLOW_STATUS IS ''; +GRANT ALL PRIVILEGES ON TABLE RATES TO clearing; + INSERT INTO DB_VERSION(ID, VERSION) values (1, '3.15') ON CONFLICT (ID) DO UPDATE SET VERSION = EXCLUDED.VERSION diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/RatesMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/RatesMapStore.java new file mode 100644 index 000000000..e7e4bd90f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/RatesMapStore.java @@ -0,0 +1,66 @@ +package ru.spcex.clearing.imdg.object; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.security.Rates; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +@Component +public class RatesMapStore extends TemplateMapStore { + + public RatesMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_Rates; + } + + @Override + public String getTableName() { + return "RATES"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "VALUE", "VALUE_DATE", "CURRENCY", "CURRENCY_ID", "CREATED_AT", "UPDATED_AT", "WORKFLOW_STATUS" + }; + } + + @Override + public Rates objectReader(ResultSet resultSet) throws SQLException { + Rates object = new Rates(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setValue(resultSet.getObject("VALUE", BigDecimal.class)); + object.setValueDate(getLocalDateFromSqlDate(resultSet,"VALUE_DATE")); + object.setCurrency(resultSet.getObject("CURRENCY", String.class)); + object.setCurrencyId(resultSet.getObject("CURRENCY_ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setWorkflowStatus(resultSet.getObject("WORKFLOW_STATUS", String.class)); + return object; + } + + @Override + public Object[] objectToField(Rates object) { + Object[] args = new Object[]{ + object.getId(), + object.getValue(), + TimeUtil.toDateFromLocalDate(object.getValueDate()), + object.getCurrency(), + object.getCurrencyId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getWorkflowStatus() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/RiskParameterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/RiskParameterMapStore.java index 0fcc4738a..b7b784f93 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/RiskParameterMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/RiskParameterMapStore.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.security.RiskParameter; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; @Component public class RiskParameterMapStore extends TemplateMapStore { @@ -55,8 +56,8 @@ public class RiskParameterMapStore extends TemplateMapStore { object.getSettlementType(), object.getCurrencyPair(), object.getCurrencyPairId(), - object.getCreated(), - object.getUpdated(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), object.getWorkflowStatus() }; return args; diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index e1134a3ba..ae953486a 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -217,6 +217,7 @@ public final class IMDGDistributedNames { public static final String Map_GatewayResult = "Map_GatewayResult"; public static final String Map_BlacklistMarket = "Map_BlacklistMarket"; public static final String Map_RiskParameter = "Map_RiskParameter"; + public static final String Map_Rates = "Map_Rates"; public static final String Map_DbVersion = "Map_DbVersion"; //-------------------history and search tables