securities-service http://jira.mfd.msk:8088/browse/CLS-326
This commit is contained in:
parent
2254f94de7
commit
a036261319
2 changed files with 32 additions and 6 deletions
|
|
@ -15,9 +15,11 @@ public enum SecuritiesError implements IErrorEnumId {
|
|||
CurrencyAlreadyExists(1015L),
|
||||
CurrencyNotFound(1016L),
|
||||
ListingAlreadyExist(1017L), // Инструмент на режиме %s уже существует
|
||||
ListingNotFound(1017L), // Инструмент на режиме %s не найден
|
||||
ListingNotFound(1018L), // Инструмент на режиме %s не найден
|
||||
MarketNotFound(1020L), // Режим %s не найден
|
||||
ListingOnMMSCreatedBySystem(1021L), // Информиция об инструментах Денежного рынка на режимах добавляется автоматически
|
||||
ListingOnMMSCreatedBySystem(1021L), // Информиция об инструментах Денежного рынка на режимах добавляется автоматически.
|
||||
ListingOnMMSUpdatedBySystem(1022L), // Информиция об инструментах Денежного рынка на режимах изменяется автоматически.
|
||||
ListingOnMMSDeletedBySystem(1023L), // Информиция об инструментах Денежного рынка на режимах блокируется автоматически.
|
||||
;
|
||||
private final Long id;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,15 @@ package ru.spcex.clearing.securities.validation;
|
|||
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.misc.Listing;
|
||||
import ru.clearing.classes.statics.data.scheduler.PlannerTemplate;
|
||||
import ru.clearing.classes.statics.data.security.Security;
|
||||
import ru.clearing.platform.dictionary.CurrencyCodeDictionary;
|
||||
import ru.clearing.platform.dictionary.WorkflowStatusDictionary;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerTemplateUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
|
||||
import ru.spcex.clearing.util.security.SecuritySelector;
|
||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
||||
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
|
||||
import ru.spcex.clearing.validation.common.rules.SpecialIdPresentRule;
|
||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||
|
|
@ -31,6 +32,7 @@ import java.util.function.Function;
|
|||
@Component
|
||||
public class ListingValidationProvider {
|
||||
final Imdg<SpcexObjectBase> workflowStatusDictionaryImdg;
|
||||
final Imdg<SpcexObjectBase> currencyCodeDictionaryImdg;
|
||||
final Imdg<Listing> listingImdg;
|
||||
final Imdg<ru.clearing.classes.statics.data.misc.Market> marketImdg;
|
||||
final SecuritySelector securitySelector;
|
||||
|
|
@ -39,6 +41,7 @@ public class ListingValidationProvider {
|
|||
public ListingValidationProvider(ImdgProvider imdgProvider, SecuritySelector securitySelector) {
|
||||
this.securitySelector = securitySelector;
|
||||
this.workflowStatusDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, SpcexObjectBase.class);
|
||||
this.currencyCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, SpcexObjectBase.class);
|
||||
this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class);
|
||||
this.marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, ru.clearing.classes.statics.data.misc.Market.class);
|
||||
}
|
||||
|
|
@ -49,6 +52,7 @@ public class ListingValidationProvider {
|
|||
ImdgValidationContext<ListingNewRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(listingRequest);
|
||||
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_Market, marketImdg);
|
||||
context.addImdg(IMDGDistributedNames.Map_Listing, listingImdg);
|
||||
return new ValidatorImpl<ImdgValidationContext<ListingNewRequest>>(context,
|
||||
|
|
@ -62,6 +66,16 @@ public class ListingValidationProvider {
|
|||
SecuritiesError.RequiredFieldIsEmpty, SecuritiesError.MarketNotFound,
|
||||
true
|
||||
),
|
||||
DictionaryPresentRule.instance("tradingCurrency", ListingNewRequest::getTradingCurrency,
|
||||
IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class,
|
||||
SecuritiesError.RequiredFieldIsEmpty, SecuritiesError.WrongFieldValue,
|
||||
false
|
||||
),
|
||||
DictionaryPresentRule.instance("workflowStatus", ListingNewRequest::getWorkflowStatus,
|
||||
IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class,
|
||||
SecuritiesError.RequiredFieldIsEmpty, SecuritiesError.WrongFieldValue,
|
||||
false
|
||||
),
|
||||
new NotSameActiveListing<>(ListingNewRequest::getSecurityId, ListingNewRequest::getMarket)
|
||||
);
|
||||
};
|
||||
|
|
@ -77,7 +91,17 @@ public class ListingValidationProvider {
|
|||
new PresentById(IMDGDistributedNames.Map_Listing, SecuritiesError.ListingNotFound, true),
|
||||
new SecurityIdPresentRule<ListingUpdateRequest>("securityId", ListingUpdateRequest::getSecurityId,
|
||||
(Security security) ->
|
||||
InstrumentType.RATE.equalsByKey(security.getInstrumentType()) ? SecuritiesError.ListingOnMMSCreatedBySystem : null
|
||||
InstrumentType.RATE.equalsByKey(security.getInstrumentType()) ? SecuritiesError.ListingOnMMSUpdatedBySystem : null
|
||||
),
|
||||
DictionaryPresentRule.instance("tradingCurrency", ListingUpdateRequest::getTradingCurrency,
|
||||
IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class,
|
||||
SecuritiesError.RequiredFieldIsEmpty, SecuritiesError.WrongFieldValue,
|
||||
false
|
||||
),
|
||||
DictionaryPresentRule.instance("workflowStatus", ListingUpdateRequest::getWorkflowStatus,
|
||||
IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class,
|
||||
SecuritiesError.RequiredFieldIsEmpty, SecuritiesError.WrongFieldValue,
|
||||
false
|
||||
)
|
||||
);
|
||||
};
|
||||
|
|
@ -102,7 +126,7 @@ public class ListingValidationProvider {
|
|||
Security security = securitySelector.selectSecurityById(listing.getSecurityId());
|
||||
if (security != null) {
|
||||
if (InstrumentType.RATE.equalsByKey(security.getInstrumentType()))
|
||||
return SecuritiesError.ListingOnMMSCreatedBySystem;
|
||||
return SecuritiesError.ListingOnMMSDeletedBySystem;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue