diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java index a8a055fd3..6aedc564f 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/ValidationProvider.java @@ -6,6 +6,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteReques 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.EndDtAfterStartDtRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -58,7 +59,11 @@ public class ValidationProvider { context.addImdg(IMDGDistributedNames.Map_TermTypeDictionary, termTypeDictionaryImdg); context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg); return new ValidatorImpl<>(context, - EndDtAfterStartDt.instance(MoneyMarketSecurityNewRequest.class), + EndDtAfterStartDtRule.instance("startDate", "endDate", + MoneyMarketSecurityNewRequest::getStartDate, + MoneyMarketSecurityNewRequest::getEndDate, + SecuritiesError.RequiredFieldIsEmpty, + SecuritiesError.WrongFieldValue), new NotPresentBySecuritySymbolAndWorkflowStatusActv(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentAlreadyExists, MoneyMarketSecurityNewRequest.class), new IsValidInstrumentTypeFromRequest(SecuritiesError.RequiredFieldIsEmpty, "RATE"), MmsNewValidationRule.RequiredFieldIsNotEmpty, @@ -82,7 +87,11 @@ public class ValidationProvider { context.addImdg(IMDGDistributedNames.Map_TermTypeDictionary, termTypeDictionaryImdg); context.addImdg(IMDGDistributedNames.Map_CurrencyCodeDictionary, currencyCodeDictionaryImdg); return new ValidatorImpl<>(context, - EndDtAfterStartDt.instance(MoneyMarketSecurityUpdateRequest.class), + EndDtAfterStartDtRule.instance("startDate", "endDate", + MoneyMarketSecurityUpdateRequest::getStartDate, + MoneyMarketSecurityUpdateRequest::getEndDate, + SecuritiesError.RequiredFieldIsEmpty, + SecuritiesError.WrongFieldValue), new PresentById(IMDGDistributedNames.Map_MoneyMarketSecurity, SecuritiesError.InstrumentNotFound, true), new IsValidInstrumentTypeById(SecuritiesError.InstrumentNotFound, "RATE"), new WorkflowStatusActv(), @@ -250,6 +259,11 @@ public class ValidationProvider { context.setValidatedObject(currencyRequest); context.addImdg(IMDGDistributedNames.Map_CouponPeriod, couponPeriodImdg); return new ValidatorImpl<>(context, + EndDtAfterStartDtRule.instance("periodStartDate", "periodEndDate", + CouponPeriodNewRequest::getPeriodStartDate, + CouponPeriodNewRequest::getPeriodEndDate, + SecuritiesError.RequiredFieldIsEmpty, + SecuritiesError.WrongFieldValue, false), CouponPeriodNewValidationRule.CouponPeriodNotExists ); }; @@ -261,6 +275,11 @@ public class ValidationProvider { context.setValidatedObject(currencyRequest); context.addImdg(IMDGDistributedNames.Map_CouponPeriod, couponPeriodImdg); return new ValidatorImpl<>(context, + EndDtAfterStartDtRule.instance("periodStartDate", "periodEndDate", + CouponPeriodUpdateRequest::getPeriodStartDate, + CouponPeriodUpdateRequest::getPeriodEndDate, + SecuritiesError.RequiredFieldIsEmpty, + SecuritiesError.WrongFieldValue, false), CouponPeriodUpdateValidationRule.CouponPeriodExists ); }; diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/CouponPeriodNewValidationRule.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/CouponPeriodNewValidationRule.java index 7a95f7298..9546037e3 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/CouponPeriodNewValidationRule.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/validation/rule/CouponPeriodNewValidationRule.java @@ -26,17 +26,6 @@ public enum CouponPeriodNewValidationRule implements IValidationRule implements IValidationRule> { - - public EndDtAfterStartDt() {} - - public static EndDtAfterStartDt instance(Class clazz) { - return new EndDtAfterStartDt<>(); - } - - @Override - public Optional validate(ImdgValidationContext context) { - T validatedObject = context.getValidatedObject(); - if(validatedObject.getEndDate() == null && validatedObject.getStartDate() == null) { - return of(SecuritiesError.RequiredFieldIsEmpty, "endDate", "startDate"); - } - if(validatedObject.getEndDate() == null || validatedObject.getStartDate() == null){ - if(validatedObject.getStartDate() == null) return of(SecuritiesError.RequiredFieldIsEmpty, "startDate"); - return of(SecuritiesError.RequiredFieldIsEmpty, "endDate"); - } - if (validatedObject.getEndDate().isBefore(validatedObject.getStartDate())) { - return of(SecuritiesError.WrongFieldValue, "endDate"); - } - return empty(); - } -}