session state machine restore

This commit is contained in:
ialbert 2025-07-29 13:54:40 +03:00
parent 6cce11d0ae
commit aaddaa5633
11 changed files with 174 additions and 120 deletions

View file

@ -149,6 +149,8 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
TaskType.PSEUDO_waitSdfAfterPaymentInstructions, TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitSdfAfterAgainRevise, TaskType.PSEUDO_waitSdfAfterAgainRevise,
TaskType.PSEUDO_waitAfterObligationAdmissionRestore,
TaskType.PSEUDO_waitAfterInspectionRestore,
TaskType.PSEUDO_waitAfterInspectionError TaskType.PSEUDO_waitAfterInspectionError
))) )))
.end(TaskType.FinishingSession); .end(TaskType.FinishingSession);
@ -179,8 +181,8 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
.action(inspectionObligationsV2Action); .action(inspectionObligationsV2Action);
sourceObligationAdmission(transitions); sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions); sourcePseudoAfterOAPause(transitions);
sourcePseudoAfterIOError(transitions); sourcePseudoAfterIOPause(transitions);
sourceFormingPaymentInstruction(transitions); sourceFormingPaymentInstruction(transitions);
sourcePseudoWaitSdfAfterPaymentInstructions(transitions); sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
sourceAgainRevise(transitions); sourceAgainRevise(transitions);
@ -217,21 +219,23 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)); .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
} }
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterOAPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after ObligationAdmission //continue and repeat after ObligationAdmission
.withExternal() .withExternal()
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) .withExternal()
.source(taskType).target(TaskType.ObligationsAdmission)
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourcePseudoAfterIOError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterIOPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after InspectionObligations //continue and repeat after InspectionObligations
.withExternal() .withExternal()
@ -239,12 +243,14 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
.action(activeWsAction) .action(activeWsAction)
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(formingPaymentInstructionAssetsAction) .action(formingPaymentInstructionAssetsAction)
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterInspectionError, TaskType.PSEUDO_waitAfterInspectionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations) .withExternal()
.source(taskType).target(TaskType.InspectionObligations)
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action)) .action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {

View file

@ -4,6 +4,7 @@ import java.time.LocalDate;
import java.util.Arrays; import java.util.Arrays;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashSet; import java.util.HashSet;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -35,7 +36,6 @@ import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndCo
import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction;
import ru.spcex.clearing.session.state.action.Sdf56Action; import ru.spcex.clearing.session.state.action.Sdf56Action;
import ru.spcex.clearing.session.state.action.SdfReceivedAction; import ru.spcex.clearing.session.state.action.SdfReceivedAction;
import ru.spcex.clearing.session.state.action.UpdateSessionStatusAction;
import ru.spcex.clearing.session.state.action.UpdateWorkflowStatusAction; import ru.spcex.clearing.session.state.action.UpdateWorkflowStatusAction;
import ru.spcex.clearing.session.state.guard.ErroneousRegistriesPresentGuard; import ru.spcex.clearing.session.state.guard.ErroneousRegistriesPresentGuard;
import ru.spcex.clearing.session.state.guard.PaymentsWereCreatedGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereCreatedGuard;
@ -77,7 +77,6 @@ public class FinalSessionStateMachineConfig
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs); new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
private final UpdateWorkflowStatusAction pauseWsAction; private final UpdateWorkflowStatusAction pauseWsAction;
private final UpdateWorkflowStatusAction activeWsAction; private final UpdateWorkflowStatusAction activeWsAction;
private final UpdateSessionStatusAction inspectionStatusAction;
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction( private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
DataEnum.inspectionObligationStashedRgs DataEnum.inspectionObligationStashedRgs
); );
@ -108,7 +107,7 @@ public class FinalSessionStateMachineConfig
SaveRegistriesAndContinueAction obligationAdmissionContinueAction, SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction, SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
@Qualifier("pauseWorkflowStatusAction") UpdateWorkflowStatusAction pauseWsAction, @Qualifier("pauseWorkflowStatusAction") UpdateWorkflowStatusAction pauseWsAction,
@Qualifier("activeWorkflowStatusAction") UpdateWorkflowStatusAction activeWsAction, UpdateSessionStatusAction inspectionStatusAction @Qualifier("activeWorkflowStatusAction") UpdateWorkflowStatusAction activeWsAction
) { ) {
this.sendSdf56Action = sendSdf56Action; this.sendSdf56Action = sendSdf56Action;
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
@ -116,7 +115,6 @@ public class FinalSessionStateMachineConfig
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction; this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
this.pauseWsAction = pauseWsAction; this.pauseWsAction = pauseWsAction;
this.activeWsAction = activeWsAction; this.activeWsAction = activeWsAction;
this.inspectionStatusAction = inspectionStatusAction.status(TaskType.InspectionObligations);
Imdg<Registry> rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); Imdg<Registry> rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
this.reviseStage1Action = reviseStage1Action; this.reviseStage1Action = reviseStage1Action;
this.dealsPrepareAction = dealsPrepareAction; this.dealsPrepareAction = dealsPrepareAction;
@ -165,9 +163,12 @@ public class FinalSessionStateMachineConfig
TaskType.FinishingSession, TaskType.FinishingSession,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions, TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_InspectionObligationDepositReturn, TaskType.InspectionObligationDepositReturn,
TaskType.PSEUDO_waitAfterInspectionError, TaskType.PSEUDO_waitAfterInspectionError,
TaskType.PSEUDO_waitAfterInspectionDepositReturnError TaskType.PSEUDO_waitAfterInspectionDepositReturnError,
TaskType.PSEUDO_waitAfterObligationAdmissionRestore,
TaskType.PSEUDO_waitAfterInspectionRestore,
TaskType.PSEUDO_waitAfterInspectionDepositReturnRestore
))) )))
.end(TaskType.FinishingSession); .end(TaskType.FinishingSession);
} }
@ -194,16 +195,16 @@ public class FinalSessionStateMachineConfig
.action(obligationAdmissionAction) .action(obligationAdmissionAction)
.and() .and()
.withExternal() .withExternal()
.source(TaskType.InclusionToPool).target(TaskType.PSEUDO_InspectionObligationDepositReturn) .source(TaskType.InclusionToPool).target(TaskType.InspectionObligationDepositReturn)
//нужно сменить статус ручками, т.к. псевдо состояние //нужно сменить статус ручками, т.к. псевдо состояние
.action(chain(inspectionStatusAction, inspOblDepositReturnAction)); .action(inspOblDepositReturnAction);
sourceObligationAdmission(transitions); sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions); sourcePseudoAfterOAPause(transitions);
sourceIODepositReturn(transitions); sourceIODepositReturn(transitions);
sourceIODepositReturnError(transitions); sourceIODepositReturnPause(transitions);
sourceIO(transitions); sourceIO(transitions);
sourceIOError(transitions); sourceIOPause(transitions);
sourceFormingPaymentInstruction(transitions); sourceFormingPaymentInstruction(transitions);
sourcePseudoWaitSdfAfterPaymentInstructions(transitions); sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
} }
@ -225,20 +226,20 @@ public class FinalSessionStateMachineConfig
private void sourceIODepositReturn(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceIODepositReturn(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
.withExternal() .withExternal()
.source(TaskType.PSEUDO_InspectionObligationDepositReturn) .source(TaskType.InspectionObligationDepositReturn)
.target(TaskType.PSEUDO_waitAfterInspectionDepositReturnError) .target(TaskType.PSEUDO_waitAfterInspectionDepositReturnError)
.guard(inspErrGuard) .guard(inspErrGuard)
.action(pauseWsAction) .action(pauseWsAction)
.and() .and()
.withExternal() .withExternal()
.source(TaskType.PSEUDO_InspectionObligationDepositReturn) .source(TaskType.InspectionObligationDepositReturn)
.target(TaskType.InspectionObligations) .target(TaskType.InspectionObligations)
.guard(invert(inspErrGuard)) .guard(invert(inspErrGuard))
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(inspectionObligationsV2Action); .action(inspectionObligationsV2Action);
} }
private void sourceIODepositReturnError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceIODepositReturnPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after InspectionObligations //continue and repeat after InspectionObligations
.withExternal() .withExternal()
@ -246,12 +247,14 @@ public class FinalSessionStateMachineConfig
.action(activeWsAction) .action(activeWsAction)
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(inspectionObligationsV2Action) .action(inspectionObligationsV2Action)
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterInspectionDepositReturnError, TaskType.PSEUDO_waitAfterInspectionDepositReturnRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterInspectionDepositReturnError).target(TaskType.PSEUDO_InspectionObligationDepositReturn) .withExternal()
.source(taskType).target(TaskType.InspectionObligationDepositReturn)
.action(chain(activeWsAction, discardInspOblStash, inspOblDepositReturnAction)) .action(chain(activeWsAction, discardInspOblStash, inspOblDepositReturnAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourceIO(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceIO(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
@ -270,7 +273,7 @@ public class FinalSessionStateMachineConfig
.action(formingPaymentInstructionAssetsAction); .action(formingPaymentInstructionAssetsAction);
} }
private void sourceIOError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceIOPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after InspectionObligations //continue and repeat after InspectionObligations
.withExternal() .withExternal()
@ -279,26 +282,30 @@ public class FinalSessionStateMachineConfig
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(formingPaymentInstructionReturnMkrAction) .action(formingPaymentInstructionReturnMkrAction)
.action(formingPaymentInstructionAssetsAction) .action(formingPaymentInstructionAssetsAction)
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterInspectionError, TaskType.PSEUDO_waitAfterInspectionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations) .withExternal()
.source(taskType).target(TaskType.InspectionObligations)
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action)) .action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterOAPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
.withExternal() .withExternal()
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) .withExternal()
.source(taskType).target(TaskType.ObligationsAdmission)
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {

View file

@ -4,6 +4,7 @@ import java.time.LocalDate;
import java.util.Arrays; import java.util.Arrays;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashSet; import java.util.HashSet;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -155,7 +156,8 @@ public class IntermediateMkrSessionStateMachineConfig
TaskType.FinishingSession, TaskType.FinishingSession,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions, TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitSdfAfterAgainRevise TaskType.PSEUDO_waitSdfAfterAgainRevise,
TaskType.PSEUDO_waitAfterObligationAdmissionRestore
))) )))
.end(TaskType.FinishingSession); .end(TaskType.FinishingSession);
} }
@ -186,7 +188,7 @@ public class IntermediateMkrSessionStateMachineConfig
.action(inspectionObligationsV2Action); .action(inspectionObligationsV2Action);
sourceObligationAdmission(transitions); sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions); sourcePseudoAfterOAPause(transitions);
sourceFormingPaymentInstructions(transitions); sourceFormingPaymentInstructions(transitions);
sourcePseudoWaitSdfAfterPaymentInstructions(transitions); sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
sourceAgainRevise(transitions); sourceAgainRevise(transitions);
@ -216,18 +218,20 @@ public class IntermediateMkrSessionStateMachineConfig
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)); .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
} }
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterOAPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after ObligationAdmission //continue and repeat after ObligationAdmission
.withExternal() .withExternal()
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) .withExternal()
.source(taskType).target(TaskType.ObligationsAdmission)
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourceFormingPaymentInstructions(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceFormingPaymentInstructions(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {

View file

@ -135,7 +135,9 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
TaskType.FinishingSession, TaskType.FinishingSession,
TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.AgainRevise, TaskType.AgainRevise,
TaskType.PSEUDO_waitAfterInspectionError TaskType.PSEUDO_waitAfterInspectionError,
TaskType.PSEUDO_waitAfterObligationAdmissionRestore,
TaskType.PSEUDO_waitAfterInspectionRestore
))) )))
.end(TaskType.FinishingSession); .end(TaskType.FinishingSession);
} }
@ -175,8 +177,8 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
.guard(reviseSuccessGuard); .guard(reviseSuccessGuard);
sourceObligationAdmission(transitions); sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions); sourcePseudoAfterOAPause(transitions);
sourcePseudoAfterIOError(transitions); sourcePseudoAfterIOPause(transitions);
sourceInspection(transitions); sourceInspection(transitions);
} }
@ -209,21 +211,23 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
.action(formingPaymentInstructionAssetsAction); .action(formingPaymentInstructionAssetsAction);
} }
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterOAPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after ObligationAdmission //continue and repeat after ObligationAdmission
.withExternal() .withExternal()
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) .withExternal()
.source(taskType).target(TaskType.ObligationsAdmission)
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourcePseudoAfterIOError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterIOPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after InspectionObligations //continue and repeat after InspectionObligations
.withExternal() .withExternal()
@ -231,12 +235,14 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
.action(activeWsAction) .action(activeWsAction)
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(formingPaymentInstructionAssetsAction) .action(formingPaymentInstructionAssetsAction)
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterInspectionError, TaskType.PSEUDO_waitAfterInspectionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations) .withExternal()
.source(taskType).target(TaskType.InspectionObligations)
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action)) .action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
@Override @Override

View file

@ -109,7 +109,8 @@ public class PrepSessionStateMachineConfig extends EnumStateMachineConfigurerAda
TaskType.RequirementsAndObligationsCreate, TaskType.RequirementsAndObligationsCreate,
TaskType.ObligationsAdmission, TaskType.ObligationsAdmission,
TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_end TaskType.PSEUDO_end,
TaskType.PSEUDO_waitAfterObligationAdmissionRestore
))) )))
.end(TaskType.PSEUDO_end); .end(TaskType.PSEUDO_end);
} }
@ -130,7 +131,7 @@ public class PrepSessionStateMachineConfig extends EnumStateMachineConfigurerAda
.action(obligationAdmissionAction) .action(obligationAdmissionAction)
.and(); .and();
sourceObligationAdmission(transitions); sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions); sourcePseudoAfterOAPause(transitions);
} }
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
@ -147,17 +148,19 @@ public class PrepSessionStateMachineConfig extends EnumStateMachineConfigurerAda
.action(chain(obligationAdmissionContinueAction, endSession)); .action(chain(obligationAdmissionContinueAction, endSession));
} }
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterOAPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
.withExternal() .withExternal()
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.PSEUDO_end) .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.PSEUDO_end)
.action(chain(activeWsAction, obligationAdmissionContinueAction, endSession)) .action(chain(activeWsAction, obligationAdmissionContinueAction, endSession))
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) .withExternal()
.source(taskType).target(TaskType.ObligationsAdmission)
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
@Override @Override

View file

@ -157,7 +157,9 @@ public class PrimaryAuctionB0SessionStateMachineConfig
TaskType.PSEUDO_waitSdfAfterPaymentInstructions, TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitSdfAfterAgainRevise, TaskType.PSEUDO_waitSdfAfterAgainRevise,
TaskType.PSEUDO_waitAfterInspectionError TaskType.PSEUDO_waitAfterInspectionError,
TaskType.PSEUDO_waitAfterObligationAdmissionRestore,
TaskType.PSEUDO_waitAfterInspectionRestore
))) )))
.end(TaskType.FinishingSession); .end(TaskType.FinishingSession);
} }
@ -187,8 +189,8 @@ public class PrimaryAuctionB0SessionStateMachineConfig
.source(TaskType.InclusionToPool).target(TaskType.InspectionObligations) .source(TaskType.InclusionToPool).target(TaskType.InspectionObligations)
.action(inspectionObligationsV2Action); .action(inspectionObligationsV2Action);
sourceObligationAdmission(transitions); sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions); sourcePseudoAfterOAPause(transitions);
sourcePseudoAfterIOError(transitions); sourcePseudoAfterIOPause(transitions);
sourceFormingPaymentInstruction(transitions); sourceFormingPaymentInstruction(transitions);
sourcePseudoWaitSdfAfterPaymentInstructions(transitions); sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
sourceAgainRevise(transitions); sourceAgainRevise(transitions);
@ -226,21 +228,23 @@ public class PrimaryAuctionB0SessionStateMachineConfig
} }
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterOAPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after ObligationAdmission //continue and repeat after ObligationAdmission
.withExternal() .withExternal()
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) .withExternal()
.source(taskType).target(TaskType.ObligationsAdmission)
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourcePseudoAfterIOError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterIOPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after InspectionObligations //continue and repeat after InspectionObligations
.withExternal() .withExternal()
@ -248,12 +252,15 @@ public class PrimaryAuctionB0SessionStateMachineConfig
.action(activeWsAction) .action(activeWsAction)
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(formingPaymentInstructionSecuritiesAction) .action(formingPaymentInstructionSecuritiesAction)
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterInspectionError, TaskType.PSEUDO_waitAfterInspectionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations) .withExternal()
.source(taskType)
.target(TaskType.InspectionObligations)
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action)) .action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {

View file

@ -151,7 +151,9 @@ public class PrimaryAuctionBnSessionStateMachineConfig
TaskType.FinishingSession, TaskType.FinishingSession,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions, TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitAfterInspectionError TaskType.PSEUDO_waitAfterInspectionError,
TaskType.PSEUDO_waitAfterObligationAdmissionRestore,
TaskType.PSEUDO_waitAfterInspectionRestore
))) )))
.end(TaskType.FinishingSession); .end(TaskType.FinishingSession);
} }
@ -182,8 +184,8 @@ public class PrimaryAuctionBnSessionStateMachineConfig
.action(inspectionObligationsV2Action); .action(inspectionObligationsV2Action);
sourceObligationAdmission(transitions); sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions); sourcePseudoAfterOAPause(transitions);
sourcePseudoAfterIOError(transitions); sourcePseudoAfterIOPause(transitions);
sourceFormingPaymentInstruction(transitions); sourceFormingPaymentInstruction(transitions);
sourcePseudoWaitSdfAfterPaymentInstructions(transitions); sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
sourceInspection(transitions); sourceInspection(transitions);
@ -218,21 +220,23 @@ public class PrimaryAuctionBnSessionStateMachineConfig
.action(formingPaymentInstructionSecuritiesAction); .action(formingPaymentInstructionSecuritiesAction);
} }
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterOAPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after ObligationAdmission //continue and repeat after ObligationAdmission
.withExternal() .withExternal()
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) .withExternal()
.source(taskType).target(TaskType.ObligationsAdmission)
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourcePseudoAfterIOError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterIOPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after InspectionObligations //continue and repeat after InspectionObligations
.withExternal() .withExternal()
@ -240,12 +244,14 @@ public class PrimaryAuctionBnSessionStateMachineConfig
.action(activeWsAction) .action(activeWsAction)
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(formingPaymentInstructionSecuritiesAction) .action(formingPaymentInstructionSecuritiesAction)
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterInspectionError, TaskType.PSEUDO_waitAfterInspectionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations) .withExternal()
.source(taskType).target(TaskType.InspectionObligations)
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action)) .action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {

View file

@ -158,7 +158,9 @@ public class PrimaryAuctionT0SessionStateMachineConfig
TaskType.PSEUDO_waitSdfAfterPaymentInstructions, TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitSdfAfterAgainRevise, TaskType.PSEUDO_waitSdfAfterAgainRevise,
TaskType.PSEUDO_waitAfterInspectionError TaskType.PSEUDO_waitAfterInspectionError,
TaskType.PSEUDO_waitAfterObligationAdmissionRestore,
TaskType.PSEUDO_waitAfterInspectionRestore
))) )))
.end(TaskType.FinishingSession); .end(TaskType.FinishingSession);
} }
@ -189,8 +191,8 @@ public class PrimaryAuctionT0SessionStateMachineConfig
.action(inspectionObligationsV2Action); .action(inspectionObligationsV2Action);
sourceObligationAdmission(transitions); sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions); sourcePseudoAfterOAPause(transitions);
sourcePseudoAfterIOError(transitions); sourcePseudoAfterIOPause(transitions);
sourceFormingPaymentInstruction(transitions); sourceFormingPaymentInstruction(transitions);
sourcePseudoWaitSdfAfterPaymentInstructions(transitions); sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
sourceAgainRevise(transitions); sourceAgainRevise(transitions);
@ -227,21 +229,23 @@ public class PrimaryAuctionT0SessionStateMachineConfig
.action(formingPaymentInstructionSecuritiesAction); .action(formingPaymentInstructionSecuritiesAction);
} }
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterOAPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after ObligationAdmission //continue and repeat after ObligationAdmission
.withExternal() .withExternal()
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) .withExternal()
.source(taskType).target(TaskType.ObligationsAdmission)
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourcePseudoAfterIOError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterIOPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after InspectionObligations //continue and repeat after InspectionObligations
.withExternal() .withExternal()
@ -249,12 +253,14 @@ public class PrimaryAuctionT0SessionStateMachineConfig
.action(activeWsAction) .action(activeWsAction)
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(formingPaymentInstructionSecuritiesAction) .action(formingPaymentInstructionSecuritiesAction)
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterInspectionError, TaskType.PSEUDO_waitAfterInspectionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations) .withExternal()
.source(taskType).target(TaskType.InspectionObligations)
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action)) .action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {

View file

@ -169,7 +169,9 @@ public class UnitedSessionStateMachineConfig
TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.AgainRevise, TaskType.AgainRevise,
TaskType.PSEUDO_waitSdfAfterAgainRevise, TaskType.PSEUDO_waitSdfAfterAgainRevise,
TaskType.PSEUDO_waitAfterInspectionError TaskType.PSEUDO_waitAfterInspectionError,
TaskType.PSEUDO_waitAfterObligationAdmissionRestore,
TaskType.PSEUDO_waitAfterInspectionRestore
))) )))
.end(TaskType.FinishingSession); .end(TaskType.FinishingSession);
} }
@ -203,8 +205,8 @@ public class UnitedSessionStateMachineConfig
.source(TaskType.InclusionToPool).target(TaskType.InspectionObligations) .source(TaskType.InclusionToPool).target(TaskType.InspectionObligations)
.action(inspectionObligationsV2Action); .action(inspectionObligationsV2Action);
sourceObligationAdmission(transitions); sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions); sourcePseudoAfterOAPause(transitions);
sourcePseudoAfterIOError(transitions); sourcePseudoAfterIOPause(transitions);
sourceFormingPaymentInstruction(transitions); sourceFormingPaymentInstruction(transitions);
sourceAgainRevise(transitions); sourceAgainRevise(transitions);
sourcePseudoWaitAfterAgainRevise(transitions); sourcePseudoWaitAfterAgainRevise(transitions);
@ -258,21 +260,23 @@ public class UnitedSessionStateMachineConfig
.action(formingPaymentInstructionAssetsAction); .action(formingPaymentInstructionAssetsAction);
} }
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterOAPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after ObligationAdmission //continue and repeat after ObligationAdmission
.withExternal() .withExternal()
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterObligationAdmissionError, TaskType.PSEUDO_waitAfterObligationAdmissionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) .withExternal()
.source(taskType).target(TaskType.ObligationsAdmission)
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourcePseudoAfterIOError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourcePseudoAfterIOPause(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
//continue and repeat after InspectionObligations //continue and repeat after InspectionObligations
.withExternal() .withExternal()
@ -280,12 +284,14 @@ public class UnitedSessionStateMachineConfig
.action(activeWsAction) .action(activeWsAction)
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(formingPaymentInstructionAssetsAction) .action(formingPaymentInstructionAssetsAction)
.event(SsnEvent.CONTINUE) .event(SsnEvent.CONTINUE);
.and() for (var taskType : List.of(TaskType.PSEUDO_waitAfterInspectionError, TaskType.PSEUDO_waitAfterInspectionRestore)) {
.withExternal() transitions
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations) .withExternal()
.source(taskType).target(TaskType.InspectionObligations)
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action)) .action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
.event(SsnEvent.REPEAT); .event(SsnEvent.REPEAT);
}
} }
private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {

View file

@ -62,8 +62,9 @@ public enum TaskType implements IEnumKey {
PSEUDO_waitAfterObligationAdmissionRestore("PSEUDO_waitAfterObligationAdmissionRestore"), PSEUDO_waitAfterObligationAdmissionRestore("PSEUDO_waitAfterObligationAdmissionRestore"),
PSEUDO_waitAfterInspectionError("PSEUDO_waitAfterInspectionError"), PSEUDO_waitAfterInspectionError("PSEUDO_waitAfterInspectionError"),
PSEUDO_waitAfterInspectionRestore("PSEUDO_waitAfterInspectionRestore"), PSEUDO_waitAfterInspectionRestore("PSEUDO_waitAfterInspectionRestore"),
PSEUDO_waitAfterInspectionDepositReturnRestore("PSEUDO_waitAfterInspectionDepositReturnRestore"),
PSEUDO_waitAfterInspectionDepositReturnError("PSEUDO_waitAfterInspectionDepositReturnError"), PSEUDO_waitAfterInspectionDepositReturnError("PSEUDO_waitAfterInspectionDepositReturnError"),
PSEUDO_InspectionObligationDepositReturn("PSEUDO_InspectionObligationDepositReturn"), InspectionObligationDepositReturn("C5_0"),
PSEUDO_end("PSEUDO_end"), PSEUDO_end("PSEUDO_end"),
; ;

View file

@ -36,6 +36,7 @@ public class RestoreSessionService {
switch (status) { switch (status) {
case ObligationsAdmission -> restoredState = TaskType.PSEUDO_waitAfterObligationAdmissionRestore; case ObligationsAdmission -> restoredState = TaskType.PSEUDO_waitAfterObligationAdmissionRestore;
case InspectionObligations -> restoredState = TaskType.PSEUDO_waitAfterInspectionRestore; case InspectionObligations -> restoredState = TaskType.PSEUDO_waitAfterInspectionRestore;
case InspectionObligationDepositReturn -> restoredState = TaskType.PSEUDO_waitAfterInspectionDepositReturnRestore;
default -> throw new IllegalStateException( default -> throw new IllegalStateException(
"Unexpected value: session.id=%d status %s".formatted(session.getId(), status) "Unexpected value: session.id=%d status %s".formatted(session.getId(), status)
); );
@ -57,6 +58,7 @@ public class RestoreSessionService {
TaskType status = IEnumKey.getEnumByKey(TaskType.class, session.getSessionStatus()); TaskType status = IEnumKey.getEnumByKey(TaskType.class, session.getSessionStatus());
boolean statusOk = IEnumKey.contains(status, boolean statusOk = IEnumKey.contains(status,
TaskType.ObligationsAdmission, TaskType.ObligationsAdmission,
TaskType.InspectionObligationDepositReturn,
TaskType.InspectionObligations); TaskType.InspectionObligations);
if (!statusOk) { if (!statusOk) {
throw new IllegalStateException( throw new IllegalStateException(