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()))