securities-service http://jira.mfd.msk:8088/browse/CLS-258 очередные мелкие баги с валидацией поправил
This commit is contained in:
parent
2acf7a1e24
commit
88fda6d2b9
6 changed files with 12 additions and 6 deletions
|
|
@ -88,8 +88,6 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
||||||
}
|
}
|
||||||
|
|
||||||
protected synchronized EquitySecurity newEquity0(EquitySecurityNewRequest req) throws ValidationException {
|
protected synchronized EquitySecurity newEquity0(EquitySecurityNewRequest req) throws ValidationException {
|
||||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
|
||||||
|
|
||||||
validationHelper.validateTillFirstErrorAndThrow(req, validation.equityNewValidator());
|
validationHelper.validateTillFirstErrorAndThrow(req, validation.equityNewValidator());
|
||||||
|
|
||||||
log.debug("EquitySecurityNewRequest received");
|
log.debug("EquitySecurityNewRequest received");
|
||||||
|
|
@ -113,6 +111,7 @@ public class EquitySecurityService extends QueueConsumer implements Initializing
|
||||||
equity.setSecurityId(equity.getId());
|
equity.setSecurityId(equity.getId());
|
||||||
equity.setCreated(Instant.now());
|
equity.setCreated(Instant.now());
|
||||||
equity.setUpdated(equity.getCreated());
|
equity.setUpdated(equity.getCreated());
|
||||||
|
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||||
try {
|
try {
|
||||||
transaction.beginTransaction();
|
transaction.beginTransaction();
|
||||||
Imdg<EquitySecurity> equityImdg = transaction.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
Imdg<EquitySecurity> equityImdg = transaction.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,8 @@ public class FixedIncomeSecurityService extends QueueConsumer implements Initial
|
||||||
}
|
}
|
||||||
|
|
||||||
protected synchronized FixedIncomeSecurity updateFixedIncome0(FixedIncomeSecurityUpdateRequest req) throws ValidationException {
|
protected synchronized FixedIncomeSecurity updateFixedIncome0(FixedIncomeSecurityUpdateRequest req) throws ValidationException {
|
||||||
|
validationHelper.validateTillFirstErrorAndThrow(req, validation.fixedIncomeUpdateValidator());
|
||||||
|
|
||||||
FixedIncomeSecurity fixedIncome = fixedIncomeSecurityImdg.getSingleObjectByID(req.getId());
|
FixedIncomeSecurity fixedIncome = fixedIncomeSecurityImdg.getSingleObjectByID(req.getId());
|
||||||
Instant updateTime = Instant.now();
|
Instant updateTime = Instant.now();
|
||||||
fixedIncome.setUpdated(updateTime);
|
fixedIncome.setUpdated(updateTime);
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,9 @@ public class ListingValidationProvider {
|
||||||
SecuritiesError.ListingNotFound,
|
SecuritiesError.ListingNotFound,
|
||||||
true,
|
true,
|
||||||
(Listing listing) -> {
|
(Listing listing) -> {
|
||||||
|
if (WorkflowStatus.Blocked.equalsByKey(listing.getWorkflowStatus())) {
|
||||||
|
return SecuritiesError.InstrumentNotActive;
|
||||||
|
}
|
||||||
if (listing.getSecurityId() == null)
|
if (listing.getSecurityId() == null)
|
||||||
return null;
|
return null;
|
||||||
Security security = securitySelector.selectSecurityById(listing.getSecurityId());
|
Security security = securitySelector.selectSecurityById(listing.getSecurityId());
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,11 @@ import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteReques
|
||||||
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;
|
||||||
|
import ru.spcex.platform.enumeration.InstrumentType;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||||
|
|
@ -130,7 +132,7 @@ public class ValidationProvider {
|
||||||
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 NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_EquitySecurity, SecuritiesError.InstrumentAlreadyExists, EquitySecurityNewRequest.class),
|
||||||
new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "EQTY"),
|
new IsValidInstrumentTypeFromRequest(SecuritiesError.WrongFieldValue, InstrumentType.EQTY.getKey()),
|
||||||
EquityNewValidationRule.RequiredFieldIsNotEmpty,
|
EquityNewValidationRule.RequiredFieldIsNotEmpty,
|
||||||
new HaveValidCompanyId<>(EquitySecurityNewRequest::getIssuerId, "issuerId", false),
|
new HaveValidCompanyId<>(EquitySecurityNewRequest::getIssuerId, "issuerId", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, EquitySecurityNewRequest::getInstrumentType, "instrumentType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, EquitySecurityNewRequest::getInstrumentType, "instrumentType"),
|
||||||
|
|
@ -207,7 +209,7 @@ public class ValidationProvider {
|
||||||
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg);
|
||||||
return new ValidatorImpl<>(context,
|
return new ValidatorImpl<>(context,
|
||||||
new PresentById(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentNotFound, true),
|
new PresentById(IMDGDistributedNames.Map_FixedIncomeSecurity, SecuritiesError.InstrumentNotFound, true),
|
||||||
new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "BOND"),
|
new IsValidInstrumentTypeById(SecuritiesError.WrongFieldValue, InstrumentType.BOND.getKey()),
|
||||||
new HaveValidCompanyId<>(FixedIncomeSecurityUpdateRequest::getIssuerId, "issuerId", false),
|
new HaveValidCompanyId<>(FixedIncomeSecurityUpdateRequest::getIssuerId, "issuerId", false),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, FixedIncomeSecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, FixedIncomeSecurityUpdateRequest::getInstrumentType, "instrumentType"),
|
||||||
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, FixedIncomeSecurityUpdateRequest::getWorkflowStatus, "workflowStatus", false),
|
new HaveValidCodeByDictionary<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, FixedIncomeSecurityUpdateRequest::getWorkflowStatus, "workflowStatus", false),
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
@Deprecated // use common validator
|
@Deprecated // use common validator ru.spcex.clearing.validation.common.rules.DictionaryPresentRule
|
||||||
public class HaveValidCodeByDictionary<R> implements IValidationRule<ImdgValidationContext<R>> {
|
public class HaveValidCodeByDictionary<R> implements IValidationRule<ImdgValidationContext<R>> {
|
||||||
String mapName;
|
String mapName;
|
||||||
String errArg;
|
String errArg;
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ public class IsValidInstrumentTypeFromRequest implements IValidationRule<ImdgVal
|
||||||
if (action.getInstrumentType() == null) {
|
if (action.getInstrumentType() == null) {
|
||||||
return of(SecuritiesError.RequiredFieldIsEmpty);
|
return of(SecuritiesError.RequiredFieldIsEmpty);
|
||||||
} else if (!predictableInstrumentType.equalsIgnoreCase(action.getInstrumentType())) {
|
} else if (!predictableInstrumentType.equalsIgnoreCase(action.getInstrumentType())) {
|
||||||
return of(errorEnum);
|
return of(errorEnum, action.getInstrumentType());
|
||||||
} else {
|
} else {
|
||||||
return empty();
|
return empty();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue