ReturnDepositSession убрал условие на sessionType при включении в пул

This commit is contained in:
ialbert 2023-06-07 17:11:20 +03:00
parent 7bda8ea334
commit 7abf031246
2 changed files with 21 additions and 14 deletions

View file

@ -75,11 +75,13 @@ public class ReturnDepositSession extends AbstractSession implements Initializin
public void afterPropertiesSet() throws Exception {
ImdgPredicateBuilder rgsPrctBuilder = registryImdg.predicateBuilder();
inclusionObligations.addRegistryCondition(
rgsPrctBuilder.or(rgsPrctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()),
rgsPrctBuilder.equals("registryStatus", RegistryStatus.MNG.getKey()))
);
inclusionObligations.addRegistryCondition(
rgsPrctBuilder.less("valueDate", LocalDate.now())
rgsPrctBuilder.and(
rgsPrctBuilder.or(
rgsPrctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()),
rgsPrctBuilder.equals("registryStatus", RegistryStatus.MNG.getKey())
),
rgsPrctBuilder.less("valueDate", LocalDate.now())
)
);
}
@ -120,7 +122,6 @@ public class ReturnDepositSession extends AbstractSession implements Initializin
//stage 4
{
InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload();
inclusionToPoolPayload.setSessionType(currSession.getSessionType());
runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations);
}
//stage 5

View file

@ -13,7 +13,10 @@ import ru.spcex.clearing.session.stage.ISessionStage;
import ru.spcex.clearing.session.stage.StageResult;
import ru.spcex.clearing.session.stage.Task;
import ru.spcex.clearing.session.stage.task.InclusionToPoolPayload;
import ru.spcex.platform.enumeration.RegistryDesignation;
import ru.spcex.platform.enumeration.RegistryInstrumentType;
import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.RegistryUnit;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgId;
import ru.spcex.platform.imdg.api.ImdgProvider;
@ -74,22 +77,25 @@ public class InclusionObligations implements ISessionStage {
private StageResult inclusionToPool(String sessionType, Long counterPartyId) {
String sqlCondition = String.format("registryDesignation in ('%s', '%s') and " +
"registryInstrumentType in ('%s', '%s') and " +
"registryUnit = '%s' and " +
"sessionType = '%s'",
"O", "T",
"S", "M",
"T",
sessionType);
"registryUnit = '%s'",
RegistryDesignation.O.getKey(), RegistryDesignation.T.getKey(),
RegistryInstrumentType.S.getKey(), RegistryInstrumentType.M.getKey(),
RegistryUnit.T.getKey());
ImdgPredicateBuilder prdctBuilder = registryImdg.predicateBuilder();
ImdgPredicate defaultCondition = prdctBuilder.sql(sqlCondition);
if (sessionType != null) {
//не всегда нужное условие
defaultCondition = prdctBuilder.and(defaultCondition, prdctBuilder.equals("sessionType", sessionType));
}
ImdgPredicate registryPredicate;
if (registryConditions.size() > 0) {
registryPredicate = prdctBuilder.and(
prdctBuilder.sql(sqlCondition),
defaultCondition,
prdctBuilder.and(registryConditions.toArray(new ImdgPredicate[0]))
);
} else {
registryPredicate = prdctBuilder.and(
prdctBuilder.sql(sqlCondition),
defaultCondition,
prdctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey())
);
}