fix bn session

This commit is contained in:
etreschenkov 2023-05-26 17:13:54 +03:00
parent 03a8eecf91
commit b4a330e713
2 changed files with 19 additions and 10 deletions

View file

@ -62,11 +62,8 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean {
.setConsumer(primaryAuctionBnSession::runSession) .setConsumer(primaryAuctionBnSession::runSession)
.forDestination(Task.startOfClearing.topic(), callbacks::put); .forDestination(Task.startOfClearing.topic(), callbacks::put);
callback(Object.class) callback(Object.class)
.setConsumer(primaryAuctionBnSession::continueSessionFirstPart) .setConsumer(primaryAuctionBnSession::continueSession)
.forDestination(Consts.CONTINUE_SESSION_BN_FIRST_PART, callbacks::put); .forDestination(Consts.CONTINUE_SESSION_BN_FIRST_PART, callbacks::put);
callback(Object.class)
.setConsumer(primaryAuctionBnSession::continueSessionSecondPart)
.forDestination(Consts.CONTINUE_SESSION_BN_SECOND_PART, callbacks::put);
callback(Object.class) callback(Object.class)
.setConsumer(event -> clearingService.executeSTrade()) .setConsumer(event -> clearingService.executeSTrade())

View file

@ -89,20 +89,30 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali
} }
} }
public void continueSessionFirstPart(BaseRequest<?> req) { public void continueSession(BaseRequest<?> req) {
try { try {
if (!checkStage(TaskType.StartRevise)) { if (!checkStage(TaskType.StartRevise)) {
log.error("cannot continue session, current stage is {}", currStage.get()); log.error("cannot continue session, current stage is {}", currStage.get());
throw new StageException(); throw new StageException();
} }
// //stage 0 if (checkStage(TaskType.StartRevise)) {
// runStage(TaskType.ContinueRevise, balanceRevise); firstPart(req);
} else if (checkStage(TaskType.FormingPaymentInstruction)) {
finishPart(req);
}
} catch (StageException e) {
//already logged
}
}
private void firstPart(BaseRequest<?> req) {
try {
//stage 1 //stage 1
StageResult<List<ExecutionCommon>> dealsPreparationResult; StageResult<List<ExecutionCommon>> dealsPreparationResult;
{ {
DealsPreparePayload payload = new DealsPreparePayload(); DealsPreparePayload payload = new DealsPreparePayload();
payload.setSessionId(currSession.getId()); payload.setSessionId(currSession.getId());
dealsPreparationResult = runStage(TaskType.DealsPrepare , payload, dealsPrepare); dealsPreparationResult = runStage(TaskType.DealsPrepare, payload, dealsPrepare);
} }
//stage 2 //stage 2
runStage(TaskType.RequirementsAndObligationsCreate, dealsPreparationResult.getStageResult(), requirementsAndObligationCreation); runStage(TaskType.RequirementsAndObligationsCreate, dealsPreparationResult.getStageResult(), requirementsAndObligationCreation);
@ -129,18 +139,20 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali
} }
} }
public void continueSessionSecondPart(BaseRequest<?> req) {
public void finishPart(BaseRequest<?> req) {
try { try {
if (!checkStage(TaskType.FormingPaymentInstruction)) { if (!checkStage(TaskType.FormingPaymentInstruction)) {
log.error("cannot continue session, current stage is {}", currStage.get()); log.error("cannot continue session, current stage is {}", currStage.get());
throw new StageException(); throw new StageException();
} }
//stage 9 //stage 10
{ {
FinishingSessionPayload payload = new FinishingSessionPayload(); FinishingSessionPayload payload = new FinishingSessionPayload();
payload.setSessionId(currSession.getId()); payload.setSessionId(currSession.getId());
runStage(TaskType.FinishingSession, payload, finishingSession); runStage(TaskType.FinishingSession, payload, finishingSession);
} }
//stage 11
{ {
EndStageNotificationPayload payload = new EndStageNotificationPayload(); EndStageNotificationPayload payload = new EndStageNotificationPayload();
payload.setSection(currSession.getSection()); payload.setSection(currSession.getSection());