diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ValidationConfig.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ValidationConfig.java index 4d1263bc2..aea9bb26a 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ValidationConfig.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/ValidationConfig.java @@ -4,6 +4,8 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; +import ru.clearing.classes.statics.data.security.Rates; +import ru.clearing.classes.statics.data.security.RiskParameter; import ru.clearing.platform.dictionary.CountryCodeDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.securities.errors.SecuritiesError; @@ -29,6 +31,8 @@ public class ValidationConfig { BiConsumer> addImdg = (s, aClass) -> imdg.put(s, imdgProvider.getImdg(s, aClass)); addImdg.accept(IMDGDistributedNames.Map_FixedIncomeCashFlow, CountryCodeDictionary.class); + addImdg.accept(IMDGDistributedNames.Map_Rates, Rates.class); + addImdg.accept(IMDGDistributedNames.Map_RiskParameter, RiskParameter.class); return imdg; } diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java index d99dd8fad..e7ab2dbe8 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/RatesValidationConfig.java @@ -30,9 +30,9 @@ public class RatesValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Rates); return new ValidatorImpl<>(context, - FieldRequiredRule.instance("currencyPairUd", RatesNewRequest::getCurrencyId, SecuritiesError.RequiredFieldIsEmpty), + FieldRequiredRule.instance("currencyPairId", RatesNewRequest::getCurrencyId, SecuritiesError.RequiredFieldIsEmpty), FieldRequiredRule.instance("value", RatesNewRequest::getValue, SecuritiesError.RequiredFieldIsEmpty), - FieldRequiredRule.instance("settlementType", RatesNewRequest::getValueDate, SecuritiesError.RequiredFieldIsEmpty), + FieldRequiredRule.instance("valueDate", RatesNewRequest::getValueDate, SecuritiesError.RequiredFieldIsEmpty), RatesValidationRule.CHECK_ON_EXIST ); }; diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RatesFacade.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RatesFacade.java index 4b7aa39f9..963d50754 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RatesFacade.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RatesFacade.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.security.Rates; +import ru.clearing.platform.dictionary.CurrencyCodeDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.security.RatesNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.security.RatesUpdateRequest; @@ -19,11 +20,13 @@ public class RatesFacade implements IClearingFacade { private final ImdgId idGenerator; private final ImdgProvider imdgProvider; private final Imdg ratesImdg; + private final Imdg currencyCodeDictionaryImdg; public RatesFacade(ImdgProvider imdgProvider) { this.idGenerator = imdgProvider.getImdgIdGenerator(); this.imdgProvider = imdgProvider; this.ratesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Rates, Rates.class); + this.currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class); } /** @@ -33,7 +36,9 @@ public class RatesFacade implements IClearingFacade { log.trace("Start process creating new rates"); Rates rates = new Rates(); + CurrencyCodeDictionary currencyCodeDictionary = currencyCodeDictionaryImdg.getSingleObjectByID(request.getCurrencyId()); rates.setCurrencyId(request.getCurrencyId()); + rates.setCurrency(currencyCodeDictionary.getCode()); rates.setValue(request.getValue()); rates.setValueDate(request.getValueDate()); rates.setWorkflowStatus(request.getStatus()); diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java index 847a24c31..8a57a6df9 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/facade/RiskParameterFacade.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.security.RiskParameter; +import ru.clearing.platform.dictionary.CurrencyPairDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.security.RiskParameterUpdateRequest; @@ -19,11 +20,13 @@ public class RiskParameterFacade implements IClearingFacade { private final ImdgId idGenerator; private final ImdgProvider imdgProvider; private final Imdg riskParameterImdg; + private final Imdg currencyPairDictionaryImdg; public RiskParameterFacade(ImdgProvider imdgProvider) { this.idGenerator = imdgProvider.getImdgIdGenerator(); this.imdgProvider = imdgProvider; this.riskParameterImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RiskParameter, RiskParameter.class); + this.currencyPairDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyPairDictionary, CurrencyPairDictionary.class); } /** @@ -33,7 +36,9 @@ public class RiskParameterFacade implements IClearingFacade { log.trace("Start process creating new risk_parameter"); RiskParameter riskParameter = new RiskParameter(); + CurrencyPairDictionary currencyPairDictionary = currencyPairDictionaryImdg.getSingleObjectByID(request.getCurrencyPairId()); riskParameter.setCurrencyPairId(request.getCurrencyPairId()); + riskParameter.setCurrencyPair(currencyPairDictionary.getCode()); riskParameter.setSettlementType(request.getSettlementType()); riskParameter.setValue(request.getValue()); riskParameter.setWorkflowStatus(request.getStatus()); diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java index 6c69dc9ad..1a8725e00 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/RatesValidationRule.java @@ -22,7 +22,7 @@ public enum RatesValidationRule implements IValidationRule