ialbert 2026-04-20 18:09:59 +03:00
parent 0e9deb8ab0
commit e7bb3ec077

View file

@ -58,6 +58,7 @@ import ru.spcex.platform.enumeration.CurrencyCode;
import ru.spcex.platform.enumeration.NotificationStatus;
import ru.spcex.platform.enumeration.ObjectType;
import ru.spcex.platform.enumeration.Priority;
import ru.spcex.platform.enumeration.RegistryTradingParams;
import ru.spcex.platform.enumeration.SdfTable;
import ru.spcex.platform.enumeration.ServiceStatus;
import ru.spcex.platform.enumeration.WorkflowStatus;
@ -66,6 +67,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.ImdgTransaction;
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.utils.collection.Pair;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IEnumKey;
@ -567,8 +569,12 @@ public class ClearingAccountService extends QueueConsumer implements Initializin
log.trace("In sDF_52[{}] for account [{}] status {} not changed.", sdf.getId(), account.getId(), newStatus);
continue;
}
ImdgPredicateBuilder rgsPb = rgsImdg.predicateBuilder();
Registry rgs = rgsImdg.getSingleObjectByPredicate(
rgsImdg.predicateBuilder().equals("account", account.getAccount())
rgsPb.and(
rgsPb.equals("account", account.getAccount()),
rgsPb.sql(RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AM_T).build())
)
);
boolean rgsBalanceNotZero = rgs == null || rgs.getBalance().compareTo(BigDecimal.ZERO) != 0;
boolean wasBlocked = AccountStatus.BLOCKED == newStatus || AccountStatus.CLOSE == newStatus;