ialbert 2025-06-24 15:23:46 +03:00
parent cea1fc2d39
commit 404cd991fd
2 changed files with 15 additions and 13 deletions

View file

@ -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<ImdgValidationContext<RegistryChangeRefundDateRequest>> {
Fields() {
@Override
@ -39,6 +38,7 @@ public enum RefundDateValidationRule implements IValidationRule<ImdgValidationCo
ImdgPredicateBuilder pb = rgsImdg.predicateBuilder();
ImdgPredicate prdct = pb.and(
pb.equals("groupId", validatedObject.getGroupId()),
pb.equals("market", validatedObject.getMarket()),
pb.or(
pb.equals("registryStatus", RegistryStatus.PROC.getKey()),
pb.equals("registryStatus", RegistryStatus.MNG.getKey()),
@ -55,8 +55,8 @@ public enum RefundDateValidationRule implements IValidationRule<ImdgValidationCo
.filter(rgs -> 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 - то ошибка

View file

@ -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<ImdgValidatio
if (ctgr.get().equals(ClearingCategory.V)) {
Imdg<Registry> 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())
);