This commit is contained in:
parent
62b847fcef
commit
cb03a62265
3 changed files with 11 additions and 11 deletions
|
|
@ -3,6 +3,7 @@ package ru.clearing.classes.statics.data.security;
|
||||||
import ru.clearing.classes.ConstSerializable;
|
import ru.clearing.classes.ConstSerializable;
|
||||||
import ru.clearing.classes.objects.BusinessObject;
|
import ru.clearing.classes.objects.BusinessObject;
|
||||||
import ru.spcex.platform.classes.base.interfaces.WithInstrumentType;
|
import ru.spcex.platform.classes.base.interfaces.WithInstrumentType;
|
||||||
|
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
|
||||||
import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus;
|
import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -10,7 +11,7 @@ import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus;
|
||||||
* <p>
|
* <p>
|
||||||
* DB table: SECURITY
|
* DB table: SECURITY
|
||||||
**/
|
**/
|
||||||
public class Security extends BusinessObject implements WithWorkflowStatus, WithInstrumentType {
|
public class Security extends BusinessObject implements WithWorkflowStatus, WithInstrumentType, WithSecuritySymbol {
|
||||||
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
private static final long serialVersionUID = ConstSerializable.serialVersionUID;
|
||||||
|
|
||||||
private String instrumentType;
|
private String instrumentType;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
package ru.spcex.clearing.securities.validation;
|
package ru.spcex.clearing.securities.validation;
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||||
|
import ru.clearing.classes.statics.data.instrument.issue.FixedIncomeSecurity;
|
||||||
|
import ru.clearing.classes.statics.data.security.MoneyMarketSecurity;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
|
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
|
||||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||||
import ru.spcex.clearing.securities.validation.rule.*;
|
import ru.spcex.clearing.securities.validation.rule.*;
|
||||||
import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
|
|
||||||
import ru.spcex.clearing.validation.common.rules.EndDtAfterStartDtRule;
|
import ru.spcex.clearing.validation.common.rules.EndDtAfterStartDtRule;
|
||||||
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
|
|
@ -68,7 +70,7 @@ public class ValidationProvider {
|
||||||
SecuritiesError.RequiredFieldIsEmpty,
|
SecuritiesError.RequiredFieldIsEmpty,
|
||||||
SecuritiesError.WrongFieldValue,
|
SecuritiesError.WrongFieldValue,
|
||||||
false),
|
false),
|
||||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurityNewRequest.class),
|
new NotPresentBySecuritySymbol<>(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurity.class),
|
||||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "RATE"),
|
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "RATE"),
|
||||||
MmsNewValidationRule.RequiredFieldIsNotEmpty,
|
MmsNewValidationRule.RequiredFieldIsNotEmpty,
|
||||||
new HaveValidCompanyId<>(MoneyMarketSecurityNewRequest::getIssuerId, "issuerId", false),
|
new HaveValidCompanyId<>(MoneyMarketSecurityNewRequest::getIssuerId, "issuerId", false),
|
||||||
|
|
@ -131,7 +133,7 @@ public class ValidationProvider {
|
||||||
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
|
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
|
||||||
context.addImdg(IMDGDistributedNames.Map_ShareTypeDictionary, shareTypeDictionaryImdg);
|
context.addImdg(IMDGDistributedNames.Map_ShareTypeDictionary, shareTypeDictionaryImdg);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentAlreadyExists, EquitySecurityNewRequest.class),
|
new NotPresentBySecuritySymbol<>(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentAlreadyExists, EquitySecurity.class),
|
||||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.WrongFieldValue, InstrumentType.EQTY.getKey()),
|
new IsValidInstrumentTypeFromRequest(SecuritiesError.WrongFieldValue, InstrumentType.EQTY.getKey()),
|
||||||
EquityNewValidationRule.RequiredFieldIsNotEmpty,
|
EquityNewValidationRule.RequiredFieldIsNotEmpty,
|
||||||
new HaveValidCompanyId<>(EquitySecurityNewRequest::getIssuerId, "issuerId", false),
|
new HaveValidCompanyId<>(EquitySecurityNewRequest::getIssuerId, "issuerId", false),
|
||||||
|
|
@ -184,7 +186,7 @@ public class ValidationProvider {
|
||||||
context.addImdg(IMDGDistributedNames.Map_BondTypeDictionary, bondTypeDictionaryImdg);
|
context.addImdg(IMDGDistributedNames.Map_BondTypeDictionary, bondTypeDictionaryImdg);
|
||||||
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentAlreadyExists, FixedIncomeSecurityNewRequest.class),
|
new NotPresentBySecuritySymbol<>(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentAlreadyExists, FixedIncomeSecurity.class),
|
||||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "BOND"),
|
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "BOND"),
|
||||||
FixedIncomeNewValidationRule.RequiredFieldIsNotEmpty,
|
FixedIncomeNewValidationRule.RequiredFieldIsNotEmpty,
|
||||||
new HaveValidCompanyId<>(FixedIncomeSecurityNewRequest::getIssuerId, "issuerId", false),
|
new HaveValidCompanyId<>(FixedIncomeSecurityNewRequest::getIssuerId, "issuerId", false),
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ import org.springframework.util.StringUtils;
|
||||||
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
import ru.spcex.clearing.securities.errors.SecuritiesError;
|
||||||
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
import ru.spcex.platform.classes.base.SpcexObjectBase;
|
||||||
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
|
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
|
|
@ -14,12 +13,12 @@ import ru.spcex.platform.utils.validation.IValidationRule;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class NotPresentBySecuritySymbolAndWorkflowStatusActv<T extends SpcexObjectBase & WithSecuritySymbol> implements IValidationRule<ImdgValidationContext<WithSecuritySymbol>> {
|
public class NotPresentBySecuritySymbol<T extends SpcexObjectBase & WithSecuritySymbol> implements IValidationRule<ImdgValidationContext<WithSecuritySymbol>> {
|
||||||
private final String mapName;
|
private final String mapName;
|
||||||
private final IErrorEnumId errorEnum;
|
private final IErrorEnumId errorEnum;
|
||||||
private final Class<T> clazz;
|
private final Class<T> clazz;
|
||||||
|
|
||||||
public NotPresentBySecuritySymbolAndWorkflowStatusActv(String mapName, IErrorEnumId errorEnum, Class<T> clazz) {
|
public NotPresentBySecuritySymbol(String mapName, IErrorEnumId errorEnum, Class<T> clazz) {
|
||||||
this.mapName = mapName;
|
this.mapName = mapName;
|
||||||
this.errorEnum = errorEnum;
|
this.errorEnum = errorEnum;
|
||||||
this.clazz = clazz;
|
this.clazz = clazz;
|
||||||
|
|
@ -32,9 +31,7 @@ public class NotPresentBySecuritySymbolAndWorkflowStatusActv<T extends SpcexObje
|
||||||
if(!StringUtils.hasText(action.getSecuritySymbol())) {
|
if(!StringUtils.hasText(action.getSecuritySymbol())) {
|
||||||
return of(SecuritiesError.RequiredFieldIsEmpty, "securitySymbol");
|
return of(SecuritiesError.RequiredFieldIsEmpty, "securitySymbol");
|
||||||
}
|
}
|
||||||
T object = imdg.getFirstObjectByFieldValues(Map.of(
|
T object = imdg.getFirstObjectByFieldValues(Map.of("securitySymbol", action.getSecuritySymbol()));
|
||||||
"securitySymbol", action.getSecuritySymbol(),
|
|
||||||
"workflowStatus", WorkflowStatus.Active.getKey()));
|
|
||||||
if (object != null) {
|
if (object != null) {
|
||||||
return of(errorEnum, action.getSecuritySymbol());
|
return of(errorEnum, action.getSecuritySymbol());
|
||||||
} else {
|
} else {
|
||||||
Loading…
Add table
Reference in a new issue