From 404cd991fd699871aee2e8a8c4889ab935ee5254 Mon Sep 17 00:00:00 2001 From: ialbert Date: Tue, 24 Jun 2025 15:23:46 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-872 --- .../validation/RefundDateValidationRule.java | 14 +++++++------- .../validation/ReturnDepositValidationRule.java | 14 ++++++++------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java index 0e52d3834..6b2de4d0f 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/RefundDateValidationRule.java @@ -1,5 +1,9 @@ package ru.spcex.clearing.service.validation; +import java.util.Collection; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; import ru.clearing.classes.statics.data.registry.Registry; import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -12,11 +16,6 @@ import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.validation.IValidationRule; -import java.util.Collection; -import java.util.Objects; -import java.util.Optional; -import java.util.stream.Collectors; - public enum RefundDateValidationRule implements IValidationRule> { Fields() { @Override @@ -39,6 +38,7 @@ public enum RefundDateValidationRule implements IValidationRule rgs.getRefundDate().equals(rgs.getSettlementDate())) .collect(Collectors.toList()); - if (rgss.size() < 1) { - return of(ClearingError.RecordNotFound, "groupId=" + validatedObject.getGroupId()); + if (rgss.isEmpty()) { + return of(ClearingError.RecordNotFound, "groupId=%d; market=%s".formatted(validatedObject.getGroupId(), validatedObject.getMarket())); } for (Registry rgs : rgss) { if (!validatedObject.getRefundDate().isAfter(rgs.getValueDate())) { // если request.RefundDate <= ValueDate - то ошибка diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ReturnDepositValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ReturnDepositValidationRule.java index 1117dcc1d..941049a13 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ReturnDepositValidationRule.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ReturnDepositValidationRule.java @@ -1,10 +1,14 @@ package ru.spcex.clearing.service.validation; +import java.math.BigDecimal; +import java.util.Collection; +import java.util.Optional; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.registry.Registry; import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistryReturnDepositRequest; +import static ru.spcex.clearing.service.registry.RegistryManager.equalsByCode; import ru.spcex.platform.enumeration.ClearingCategory; import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.enumeration.RegistryTradingParams; @@ -19,12 +23,6 @@ import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.text.TextUtil; import ru.spcex.platform.utils.validation.IValidationRule; -import java.math.BigDecimal; -import java.util.Collection; -import java.util.Optional; - -import static ru.spcex.clearing.service.registry.RegistryManager.equalsByCode; - //1. Проверки //1.1 Проверить, в запросе у регистра код: // 1.1.1 Если регистр TM-T: @@ -67,7 +65,11 @@ public enum ReturnDepositValidationRule implements IValidationRule rgsImdg = context.obtainMap(IMDGDistributedNames.Map_Registry, Registry.class); ImdgPredicateBuilder pb = rgsImdg.predicateBuilder(); + String mrkt = rgs.getMarket(); + ImdgPredicate mrktCondition = TextUtil.isEmpty(mrkt) ? + pb.alwaysTrue() : pb.or(pb.equals("market", mrkt), pb.isNull("market")); ImdgPredicate prdct = pb.and( + mrktCondition, pb.equals("groupId", rgs.getGroupId()), pb.equals("contract", rgs.getContract()) );