ialbert 2026-02-17 13:28:21 +03:00
parent f02c2eb691
commit 478a1d92db

View file

@ -1,5 +1,11 @@
package ru.spcex.clearing.account.config.validation;
import java.util.Collection;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.clearing.classes.statics.data.account.Account;
@ -30,13 +36,6 @@ import ru.spcex.platform.utils.validation.IValidationRule;
import ru.spcex.platform.utils.validation.IValidator;
import ru.spcex.platform.utils.validation.ValidatorImpl;
import java.util.Collection;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
@Configuration
public class TradingClearingRegistryValidationConfig {
@ -162,9 +161,20 @@ public class TradingClearingRegistryValidationConfig {
return empty();
} else {
Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class);
Account account = accountImdg.getSingleObjectByID(validatedObject.getMoneyAccountId());
if (account == null && validatedObject.getDepoAccountId() != null) account = accountImdg.getSingleObjectByID(validatedObject.getDepoAccountId());
return of(AccountError.AccountForTradingClearingRegistryAlreadyUsed, account.getAccount());
Account dubAcc = null;
for (TradingClearingRegistry duplicate : existTCR) {
if (Objects.equals(duplicate.getMoneyAccountId(), validatedObject.getMoneyAccountId())) {
dubAcc = accountImdg.getSingleObjectByID(validatedObject.getMoneyAccountId());
}
if (Objects.equals(duplicate.getDepoAccountId(), validatedObject.getDepoAccountId())) {
dubAcc = accountImdg.getSingleObjectByID(validatedObject.getDepoAccountId());
}
if (dubAcc != null) {
break;
}
}
return of(AccountError.AccountForTradingClearingRegistryAlreadyUsed,
dubAcc != null ? dubAcc.getAccount() : "null");
}
}
}