ialbert 2023-07-21 15:19:33 +03:00
parent 62b847fcef
commit cb03a62265
3 changed files with 11 additions and 11 deletions

View file

@ -3,6 +3,7 @@ package ru.clearing.classes.statics.data.security;
import ru.clearing.classes.ConstSerializable;
import ru.clearing.classes.objects.BusinessObject;
import ru.spcex.platform.classes.base.interfaces.WithInstrumentType;
import ru.spcex.platform.classes.base.interfaces.WithSecuritySymbol;
import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus;
/**
@ -10,7 +11,7 @@ import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus;
* <p>
* 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 String instrumentType;

View file

@ -1,12 +1,14 @@
package ru.spcex.clearing.securities.validation;
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.platform.messaging.domain.cud.common.CommonDeleteRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.securitites.*;
import ru.spcex.clearing.securities.errors.SecuritiesError;
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.FieldRequiredRule;
import ru.spcex.platform.classes.base.SpcexObjectBase;
@ -68,7 +70,7 @@ public class ValidationProvider {
SecuritiesError.RequiredFieldIsEmpty,
SecuritiesError.WrongFieldValue,
false),
new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurityNewRequest.class),
new NotPresentBySecuritySymbol<>(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurity.class),
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "RATE"),
MmsNewValidationRule.RequiredFieldIsNotEmpty,
new HaveValidCompanyId<>(MoneyMarketSecurityNewRequest::getIssuerId, "issuerId", false),
@ -131,7 +133,7 @@ public class ValidationProvider {
context.addImdg(IMDGDistributedNames.Map_WorkflowStatusDictionary, workflowStatusDictionaryImdg);
context.addImdg(IMDGDistributedNames.Map_ShareTypeDictionary, shareTypeDictionaryImdg);
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()),
EquityNewValidationRule.RequiredFieldIsNotEmpty,
new HaveValidCompanyId<>(EquitySecurityNewRequest::getIssuerId, "issuerId", false),
@ -184,7 +186,7 @@ public class ValidationProvider {
context.addImdg(IMDGDistributedNames.Map_BondTypeDictionary, bondTypeDictionaryImdg);
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
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"),
FixedIncomeNewValidationRule.RequiredFieldIsNotEmpty,
new HaveValidCompanyId<>(FixedIncomeSecurityNewRequest::getIssuerId, "issuerId", false),

View file

@ -4,7 +4,6 @@ import org.springframework.util.StringUtils;
import ru.spcex.clearing.securities.errors.SecuritiesError;
import ru.spcex.platform.classes.base.SpcexObjectBase;
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.validation.ImdgValidationContext;
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.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 IErrorEnumId errorEnum;
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.errorEnum = errorEnum;
this.clazz = clazz;
@ -32,9 +31,7 @@ public class NotPresentBySecuritySymbolAndWorkflowStatusActv<T extends SpcexObje
if(!StringUtils.hasText(action.getSecuritySymbol())) {
return of(SecuritiesError.RequiredFieldIsEmpty, "securitySymbol");
}
T object = imdg.getFirstObjectByFieldValues(Map.of(
"securitySymbol", action.getSecuritySymbol(),
"workflowStatus", WorkflowStatus.Active.getKey()));
T object = imdg.getFirstObjectByFieldValues(Map.of("securitySymbol", action.getSecuritySymbol()));
if (object != null) {
return of(errorEnum, action.getSecuritySymbol());
} else {