diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java index bb15afb9b..bdfc7869d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java @@ -47,6 +47,7 @@ import ru.spcex.platform.utils.validation.IValidator; import java.math.BigDecimal; import java.time.Instant; +import java.time.LocalDate; import java.util.Collection; import java.util.List; import java.util.Map; @@ -244,6 +245,9 @@ public class RegistryService { dm__ = _m_t.clone(); dm__.setRegistryDesignation(RegistryDesignation.D.getKey()); RegistryManager.zeroState(dm__); + dm__.setSettlementDate(LocalDate.now()); + dm__.setValueDate(null); + dm__.setRefundDate(null); if (RegistryDesignation.T.equalsByKey(_m_t.getRegistryDesignation())) { dm__.setRegistryUnit(RegistryUnit.X.getKey()); } else { 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 13b32dbe5..1117dcc1d 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 @@ -9,6 +9,8 @@ import ru.spcex.platform.enumeration.ClearingCategory; import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.enumeration.RegistryTradingParams; import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder; import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.imdg.validation.Stored; @@ -64,7 +66,12 @@ public enum ReturnDepositValidationRule implements IValidationRule rgsImdg = context.obtainMap(IMDGDistributedNames.Map_Registry, Registry.class); - Collection group = rgsImdg.getCollectionObjectsBySQL("groupId = %d".formatted(rgs.getGroupId())); + ImdgPredicateBuilder pb = rgsImdg.predicateBuilder(); + ImdgPredicate prdct = pb.and( + pb.equals("groupId", rgs.getGroupId()), + pb.equals("contract", rgs.getContract()) + ); + Collection group = rgsImdg.getCollectionObjectsByPredicate(prdct); Optional om_t = group.stream() .filter(r -> r.getSettlementDate() != null) .filter(r -> r.getValueDate() != null)