etreschenkov 2024-10-02 18:35:52 +03:00
parent 454bb99dfa
commit f26826bb4e
5 changed files with 17 additions and 3 deletions

View file

@ -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<String, Class<? extends SpcexObjectBase>> 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;
}

View file

@ -30,9 +30,9 @@ public class RatesValidationConfig {
Consumer<String> 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
);
};

View file

@ -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<Rates> ratesImdg;
private final Imdg<CurrencyCodeDictionary> 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());

View file

@ -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<RiskParameter> riskParameterImdg;
private final Imdg<CurrencyPairDictionary> 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());

View file

@ -22,7 +22,7 @@ public enum RatesValidationRule implements IValidationRule<ImdgValidationContext
ImdgPredicateBuilder predicateBuilder = imdgDictionary.predicateBuilder();
Rates rates = imdgDictionary.getFirstObjectByPredicate(
predicateBuilder.and(
predicateBuilder.equals("currencyPairId", action.getCurrencyId()),
predicateBuilder.equals("currencyId", action.getCurrencyId()),
predicateBuilder.equals("valueDate", action.getValueDate()),
predicateBuilder.equals("workflowStatus", Status.Active.getKey())
)