обновляем sessionId регистров при включении в сессионный пул

This commit is contained in:
ialbert 2023-06-28 11:41:26 +03:00
parent cd35d5ba9c
commit b8cffb8f6a
10 changed files with 21 additions and 2 deletions

View file

@ -98,7 +98,9 @@ public class StateBnConfig extends EnumStateMachineConfigurerAdapter<TaskType, S
inclusionToPoolAction.setPayloadForStageGetter((extendedState) -> { inclusionToPoolAction.setPayloadForStageGetter((extendedState) -> {
InclusionToPoolPayload payload = new InclusionToPoolPayload(); InclusionToPoolPayload payload = new InclusionToPoolPayload();
Session session = extendedState.get(StageDataEnum.session.name(), Session.class); Session session = extendedState.get(StageDataEnum.session.name(), Session.class);
Long sessionId = extendedState.get(StageDataEnum.sessionId.name(), Long.class);
payload.setSessionType(session.getSessionType()); payload.setSessionType(session.getSessionType());
payload.setSessionId(sessionId);
return payload; return payload;
}); });

View file

@ -163,6 +163,7 @@ public class FinalMkrSession extends AbstractSession implements InitializingBean
{ {
InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload();
inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionType(currSession.getSessionType());
inclusionToPoolPayload.setSessionId(currSession.getId());
runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations);
} }
//stage 5 //stage 5

View file

@ -148,6 +148,7 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ
{ {
InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload();
inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionType(currSession.getSessionType());
inclusionToPoolPayload.setSessionId(currSession.getId());
runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations);
} }
//stage 5 //stage 5

View file

@ -136,6 +136,7 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali
{ {
InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload();
inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionType(currSession.getSessionType());
inclusionToPoolPayload.setSessionId(currSession.getId());
runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations);
} }
//stage 5 //stage 5

View file

@ -136,6 +136,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali
{ {
InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload();
inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionType(currSession.getSessionType());
inclusionToPoolPayload.setSessionId(currSession.getId());
runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations);
} }
//stage 5 //stage 5

View file

@ -135,6 +135,7 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali
{ {
InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload();
inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionType(currSession.getSessionType());
inclusionToPoolPayload.setSessionId(currSession.getId());
runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations);
} }
//stage 5 //stage 5

View file

@ -123,6 +123,7 @@ public class ReturnDepositSession extends AbstractSession implements Initializin
//stage 4 //stage 4
{ {
InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload();
inclusionToPoolPayload.setSessionId(currSession.getId());
runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations);
} }
//stage 5 //stage 5

View file

@ -136,6 +136,7 @@ public class SecondaryAuctionT0Session extends AbstractSession implements Initia
{ {
InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload(); InclusionToPoolPayload inclusionToPoolPayload = new InclusionToPoolPayload();
inclusionToPoolPayload.setSessionType(currSession.getSessionType()); inclusionToPoolPayload.setSessionType(currSession.getSessionType());
inclusionToPoolPayload.setSessionId(currSession.getId());
runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations); runStage(TaskType.InclusionToPool, inclusionToPoolPayload, inclusionObligations);
} }
//stage 5 //stage 5

View file

@ -65,7 +65,7 @@ public class InclusionObligations implements ISessionStage {
InclusionToPoolPayload payload = (InclusionToPoolPayload) task.getData(); InclusionToPoolPayload payload = (InclusionToPoolPayload) task.getData();
switch (task.getTaskType()) { switch (task.getTaskType()) {
case InclusionToPool -> { case InclusionToPool -> {
return inclusionToPool(payload.getSessionType(), payload.getCounterPartyId()); return inclusionToPool(payload.getSessionId(), payload.getSessionType(), payload.getCounterPartyId());
} }
default -> { default -> {
throw new IllegalStateException("Unknown task type: " + task.getTaskType()); throw new IllegalStateException("Unknown task type: " + task.getTaskType());
@ -74,7 +74,7 @@ public class InclusionObligations implements ISessionStage {
} }
private StageResult inclusionToPool(String sessionType, Long counterPartyId) { private StageResult inclusionToPool(Long sessionId, 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'", "registryUnit = '%s'",
@ -109,6 +109,7 @@ public class InclusionObligations implements ISessionStage {
log.debug("Processing set of registry with groupId: {}", entrySet.getKey()); log.debug("Processing set of registry with groupId: {}", entrySet.getKey());
for (Registry registry : entrySet.getValue()) { for (Registry registry : entrySet.getValue()) {
registry.setRegistryStatus("POOL"); registry.setRegistryStatus("POOL");
registry.setSessionId(sessionId);
registryImdg.update(registry); registryImdg.update(registry);
} }
} }

View file

@ -3,6 +3,7 @@ package ru.spcex.clearing.session.stage.task;
public class InclusionToPoolPayload { public class InclusionToPoolPayload {
private String sessionType; private String sessionType;
private Long counterPartyId; private Long counterPartyId;
private Long sessionId;
public String getSessionType() { public String getSessionType() {
return sessionType; return sessionType;
@ -19,4 +20,12 @@ public class InclusionToPoolPayload {
public void setCounterPartyId(Long counterPartyId) { public void setCounterPartyId(Long counterPartyId) {
this.counterPartyId = counterPartyId; this.counterPartyId = counterPartyId;
} }
public Long getSessionId() {
return sessionId;
}
public void setSessionId(Long sessionId) {
this.sessionId = sessionId;
}
} }