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)
.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())

View file

@ -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<List<ExecutionCommon>> 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());