Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
psemenkov 2023-06-08 12:40:03 +03:00
commit 420bfca7d1
4 changed files with 35 additions and 19 deletions

View file

@ -88,11 +88,13 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean
//fixme спросить у Кости нужны ли эти поправки //fixme спросить у Кости нужны ли эти поправки
ImdgPredicateBuilder rgsPrctBuilder = registryImdg.predicateBuilder(); ImdgPredicateBuilder rgsPrctBuilder = registryImdg.predicateBuilder();
inclusionObligations.addRegistryCondition( inclusionObligations.addRegistryCondition(
rgsPrctBuilder.or(rgsPrctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()), rgsPrctBuilder.and(
rgsPrctBuilder.equals("registryStatus", RegistryStatus.MNG.getKey())) rgsPrctBuilder.or(
); rgsPrctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()),
inclusionObligations.addRegistryCondition( rgsPrctBuilder.equals("registryStatus", RegistryStatus.MNG.getKey())
rgsPrctBuilder.less("valueDate", LocalDate.now()) ),
rgsPrctBuilder.lessEqual("valueDate", LocalDate.now())
)
); );
inspectionObligations.setSessionType(sectionType()); inspectionObligations.setSessionType(sectionType());
} }

View file

@ -75,11 +75,13 @@ public class ReturnDepositSession extends AbstractSession implements Initializin
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
ImdgPredicateBuilder rgsPrctBuilder = registryImdg.predicateBuilder(); ImdgPredicateBuilder rgsPrctBuilder = registryImdg.predicateBuilder();
inclusionObligations.addRegistryCondition( inclusionObligations.addRegistryCondition(
rgsPrctBuilder.or(rgsPrctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()), rgsPrctBuilder.and(
rgsPrctBuilder.equals("registryStatus", RegistryStatus.MNG.getKey())) rgsPrctBuilder.or(
); rgsPrctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()),
inclusionObligations.addRegistryCondition( rgsPrctBuilder.equals("registryStatus", RegistryStatus.MNG.getKey())
rgsPrctBuilder.less("valueDate", LocalDate.now()) ),
rgsPrctBuilder.less("valueDate", LocalDate.now())
)
); );
} }
@ -120,7 +122,6 @@ public class ReturnDepositSession extends AbstractSession implements Initializin
//stage 4 //stage 4
{ {
InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload();
inclusionToPoolPayload.setSessionType(currSession.getSessionType());
runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations);
} }
//stage 5 //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.StageResult;
import ru.spcex.clearing.session.stage.Task; import ru.spcex.clearing.session.stage.Task;
import ru.spcex.clearing.session.stage.task.InclusionToPoolPayload; 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.RegistryStatus;
import ru.spcex.platform.enumeration.RegistryUnit;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgId;
import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgProvider;
@ -74,22 +77,25 @@ public class InclusionObligations implements ISessionStage {
private StageResult inclusionToPool(String sessionType, Long counterPartyId) { private StageResult inclusionToPool(String sessionType, Long counterPartyId) {
String sqlCondition = String.format("registryDesignation in ('%s', '%s') and " + String sqlCondition = String.format("registryDesignation in ('%s', '%s') and " +
"registryInstrumentType in ('%s', '%s') and " + "registryInstrumentType in ('%s', '%s') and " +
"registryUnit = '%s' and " + "registryUnit = '%s'",
"sessionType = '%s'", RegistryDesignation.O.getKey(), RegistryDesignation.T.getKey(),
"O", "T", RegistryInstrumentType.S.getKey(), RegistryInstrumentType.M.getKey(),
"S", "M", RegistryUnit.T.getKey());
"T",
sessionType);
ImdgPredicateBuilder prdctBuilder = registryImdg.predicateBuilder(); ImdgPredicateBuilder prdctBuilder = registryImdg.predicateBuilder();
ImdgPredicate defaultCondition = prdctBuilder.sql(sqlCondition);
if (sessionType != null) {
//не всегда нужное условие
defaultCondition = prdctBuilder.and(defaultCondition, prdctBuilder.equals("sessionType", sessionType));
}
ImdgPredicate registryPredicate; ImdgPredicate registryPredicate;
if (registryConditions.size() > 0) { if (registryConditions.size() > 0) {
registryPredicate = prdctBuilder.and( registryPredicate = prdctBuilder.and(
prdctBuilder.sql(sqlCondition), defaultCondition,
prdctBuilder.and(registryConditions.toArray(new ImdgPredicate[0])) prdctBuilder.and(registryConditions.toArray(new ImdgPredicate[0]))
); );
} else { } else {
registryPredicate = prdctBuilder.and( registryPredicate = prdctBuilder.and(
prdctBuilder.sql(sqlCondition), defaultCondition,
prdctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey()) prdctBuilder.equals("registryStatus", RegistryStatus.PROC.getKey())
); );
} }

View file

@ -1,5 +1,7 @@
package ru.spcex.platform.utils.collection; package ru.spcex.platform.utils.collection;
import java.util.function.Consumer;
public class Pair<T1, T2> { public class Pair<T1, T2> {
private T1 first; private T1 first;
private T2 second; private T2 second;
@ -24,4 +26,9 @@ public class Pair<T1, T2> {
public void setSecond(T2 second) { public void setSecond(T2 second) {
this.second = second; this.second = second;
} }
public static <T1> void forEach(Pair<T1, T1> p, Consumer<T1> consumer) {
consumer.accept(p.getFirst());
consumer.accept(p.getSecond());
}
} }