From b4a330e713d5c9069dfdc6b392465b9896b2f636 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Fri, 26 May 2023 17:13:54 +0300 Subject: [PATCH] fix bn session --- .../clearing/service/EventsReceiver.java | 5 +--- .../stage/PrimaryAuctionBnSession.java | 24 ++++++++++++++----- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java index 0fcbdca38..05f9fe61e 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/EventsReceiver.java @@ -62,11 +62,8 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean { .setConsumer(primaryAuctionBnSession::runSession) .forDestination(Task.startOfClearing.topic(), callbacks::put); callback(Object.class) - .setConsumer(primaryAuctionBnSession::continueSessionFirstPart) + .setConsumer(primaryAuctionBnSession::continueSession) .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) .setConsumer(event -> clearingService.executeSTrade()) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java index dd081532c..b1ba706fc 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java @@ -89,20 +89,30 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali } } - public void continueSessionFirstPart(BaseRequest req) { + public void continueSession(BaseRequest req) { try { if (!checkStage(TaskType.StartRevise)) { log.error("cannot continue session, current stage is {}", currStage.get()); throw new StageException(); } -// //stage 0 -// runStage(TaskType.ContinueRevise, balanceRevise); + if (checkStage(TaskType.StartRevise)) { + firstPart(req); + } else if (checkStage(TaskType.FormingPaymentInstruction)) { + finishPart(req); + } + } catch (StageException e) { + //already logged + } + } + + private void firstPart(BaseRequest req) { + try { //stage 1 StageResult> dealsPreparationResult; { DealsPreparePayload payload = new DealsPreparePayload(); payload.setSessionId(currSession.getId()); - dealsPreparationResult = runStage(TaskType.DealsPrepare , payload, dealsPrepare); + dealsPreparationResult = runStage(TaskType.DealsPrepare, payload, dealsPrepare); } //stage 2 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 { if (!checkStage(TaskType.FormingPaymentInstruction)) { log.error("cannot continue session, current stage is {}", currStage.get()); throw new StageException(); } - //stage 9 + //stage 10 { FinishingSessionPayload payload = new FinishingSessionPayload(); payload.setSessionId(currSession.getId()); runStage(TaskType.FinishingSession, payload, finishingSession); } + //stage 11 { EndStageNotificationPayload payload = new EndStageNotificationPayload(); payload.setSection(currSession.getSection());