From 38916cdeb1df157ede730585c97d1b487b43f534 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 30 Aug 2023 15:18:05 +0300 Subject: [PATCH] =?UTF-8?q?clearing-service=20http://jira.mfd.msk:8088/bro?= =?UTF-8?q?wse/CLS-307=20SPLT=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B8=D0=BB?= =?UTF-8?q?=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spcex/clearing/config/ValidationConfig.java | 1 + .../SplitDepositRequestValidationRule.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java index 988d68534..84fc9c2ac 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java @@ -359,6 +359,7 @@ public class ValidationConfig { DictionaryPresentRule.instance("direction", RegistrySplitDepositActionRequest::getDirection, IMDGDistributedNames.Map_InOutDirectionDictionary, InOutDirectionDictionary.class, ClearingError.RequiredFieldEmpty, ClearingError.DictionaryNotFound, false), + SplitDepositRequestValidationRule.PositiveAmount, SplitDepositRequestValidationRule.CrossvalidateByRegistry ); }; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/SplitDepositRequestValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/SplitDepositRequestValidationRule.java index fc94dd6c8..1d913eb65 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/SplitDepositRequestValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/SplitDepositRequestValidationRule.java @@ -22,6 +22,19 @@ import java.util.Optional; import java.util.stream.Collectors; public enum SplitDepositRequestValidationRule implements IValidationRule> { + PositiveAmount() { + @Override + public Optional validate(ImdgValidationContext context) { + RegistrySplitDepositActionRequest request = context.getValidatedObject(); + if (request.getOutboundAmount() == null) { + return of(ClearingError.RequiredFieldEmpty, "outboundAmount"); + } + if (request.getOutboundAmount().compareTo(BigDecimal.ZERO) <= 0) { + return of(ClearingError.WrongFieldValue, "outboundAmount"); + } + return empty(); + } + }, CrossvalidateByRegistry() { @Override public Optional validate(ImdgValidationContext context) { @@ -39,7 +52,7 @@ public enum SplitDepositRequestValidationRule implements IValidationRule registrys = registryImdg.getCollectionObjectsByPredicate(query); registrys = registrys.stream() - .filter(r->r.getValueDate()!=null && r.getSettlementDate()!=null && r.getValueDate().isBefore(r.getSettlementDate())) + .filter(r -> r.getValueDate() != null && r.getSettlementDate() != null && r.getValueDate().isBefore(r.getSettlementDate())) .collect(Collectors.toList()); Registry registryO = registrys.stream() .filter(r -> RegistryDesignation.O.equalsByKey(r.getRegistryDesignation()))