ialbert 2023-07-25 13:21:59 +03:00
parent 168b50bdfc
commit 26145a7587

View file

@ -13,8 +13,12 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
import ru.spcex.platform.enumeration.RegistryTradingParams;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
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 java.time.Instant;
import java.util.Collection;
@ -49,11 +53,15 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial
public void depoBalanceRegisterNew(BaseRequest<LauncherCommandRequest> userRequest) {
log.debug("LauncherCommandRequest received from {}", createRegistry_GRRT.topic());
String sqlForRegistries = getSqlForRegistries(userRequest.getRequestPayload().getCompanyId());
Collection<Registry> registries = registryMap.getCollectionObjectsBySQL(sqlForRegistries);
log.trace("Started searching depoBalanceRegister in register by companyId, sessionId...");
if (userRequest.getRequestPayload().getCompanyId() == null ){
log.debug("No companyId in LauncherCommandRequest.id={}", userRequest.getId());
return;
}
ImdgPredicate prdctForRegistries = getPredicateForRegistries(userRequest.getRequestPayload().getCompanyId());
Collection<Registry> registries = registryMap.getCollectionObjectsByPredicate(prdctForRegistries);
log.trace("Started searching depoBalanceRegister in register by '{}'", prdctForRegistries);
if (registries == null) {
log.debug("No registry with such conditions {}", sqlForRegistries);
log.debug("No registry with such conditions '{}'", prdctForRegistries);
return;
}
registries.forEach((registry -> {
@ -83,8 +91,12 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial
log.debug("inserted successfully DepoBalanceRegister entity with id: {}", depoBalanceRegister.getId());
}
private String getSqlForRegistries(Long companyId) {
log.trace("Started generating sql predicate for registries...");
return String.format("companyId = '%s' registryCode LIKE 'AS_T'", companyId);
private ImdgPredicate getPredicateForRegistries(Long companyId) {
ImdgPredicateBuilder pb = registryMap.predicateBuilder();
RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.AS_T);
return pb.and(
pb.equals("companyId", companyId),
pb.sql(codeSql.build())
);
}
}