From f4517b7736d1d237faab0b034156b415695f7404 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 1 Jun 2023 18:46:45 +0300 Subject: [PATCH] =?UTF-8?q?securities-service=20http://jira.mfd.msk:8088/b?= =?UTF-8?q?rowse/CLS-326=20=D1=87=D0=B0=D1=81=D1=82=D1=8C=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../validation/ListingValidationProvider.java | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ListingValidationProvider.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ListingValidationProvider.java index 101cca22a..84158be33 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ListingValidationProvider.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ListingValidationProvider.java @@ -2,12 +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.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.IdPresentRule; import ru.spcex.clearing.validation.common.rules.SpecialIdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.InstrumentType; @@ -72,7 +75,7 @@ public class ListingValidationProvider { context.addImdg(IMDGDistributedNames.Map_Listing, listingImdg); return new ValidatorImpl<>(context, new PresentById(IMDGDistributedNames.Map_Listing, SecuritiesError.ListingNotFound, true), - new SecurityIdPresentRule("securityId", ListingNewRequest::getSecurityId, + new SecurityIdPresentRule("securityId", ListingUpdateRequest::getSecurityId, (Security security) -> InstrumentType.RATE.equalsByKey(security.getInstrumentType()) ? SecuritiesError.ListingOnMMSCreatedBySystem : null ) @@ -86,10 +89,23 @@ public class ListingValidationProvider { context.setValidatedObject(listingRequest); context.addImdg(IMDGDistributedNames.Map_Listing, listingImdg); return new ValidatorImpl<>(context, - new PresentById(IMDGDistributedNames.Map_Listing, SecuritiesError.ListingNotFound, true), - new SecurityIdPresentRule("securityId", ListingNewRequest::getSecurityId, - (Security security) -> - InstrumentType.RATE.equalsByKey(security.getInstrumentType()) ? SecuritiesError.ListingOnMMSCreatedBySystem : null + IdPresentRule.instance("id", + CommonDeleteRequest::getId, + IMDGDistributedNames.Map_Listing, + Listing.class, + SecuritiesError.RequiredFieldIsEmpty, + SecuritiesError.ListingNotFound, + true, + (Listing listing) -> { + if (listing.getSecurityId() == null) + return null; + Security security = securitySelector.selectSecurityById(listing.getSecurityId()); + if (security != null) { + if (InstrumentType.RATE.equalsByKey(security.getInstrumentType())) + return SecuritiesError.ListingOnMMSCreatedBySystem; + } + return null; + } ) ); };