pause after step 5
This commit is contained in:
parent
10cb98ac11
commit
6fbbcc308a
11 changed files with 372 additions and 32 deletions
|
|
@ -70,6 +70,9 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
|
|||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||
private final DiscardRegistriesAction discardOblAdmStash =
|
||||
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
|
||||
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
|
||||
DataEnum.inspectionObligationStashedRgs
|
||||
);
|
||||
private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard(
|
||||
DataEnum.obligationAdmissionStashedRgs
|
||||
);
|
||||
|
|
@ -123,6 +126,7 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
|
|||
dealsPrepareAction.addExecutionCurrencyCondition(execFondPb.regex("settlementCode", "^T0.*$"));
|
||||
dealsPrepareAction.addExecutionCurrencyCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0])));
|
||||
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction.setDataEnum(DataEnum.inspectionObligationStashedRgs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -185,7 +189,7 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
|
|||
.action(againRevise);
|
||||
|
||||
sourceObligationAdmission(transitions);
|
||||
sourcePseudoAfterOAError(transitions);
|
||||
sourcePseudoWaitAfterError(transitions);
|
||||
sourceFormingPaymentInstruction(transitions);
|
||||
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
||||
sourceAgainRevise(transitions);
|
||||
|
|
@ -221,8 +225,9 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
|
|||
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
|
||||
}
|
||||
|
||||
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
private void sourcePseudoWaitAfterError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
//continue and repeat after ObligationAdmission
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
|
||||
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
|
||||
|
|
@ -231,6 +236,19 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
|
|||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission)
|
||||
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
|
||||
.event(SsnEvent.REPEAT)
|
||||
.and()
|
||||
//continue and repeat after InspectionObligations
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.FormingPaymentInstruction)
|
||||
.action(activeWsAction)
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionAssetsAction)
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations)
|
||||
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
|
||||
.event(SsnEvent.REPEAT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import ru.spcex.clearing.session.state.action.InspectionObligationsV2Action;
|
|||
import ru.spcex.clearing.session.state.action.ObligationAdmissionAction;
|
||||
import ru.spcex.clearing.session.state.action.RequirementAndObligationCreationAction;
|
||||
import ru.spcex.clearing.session.state.action.ReviseStage1Action;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.Sdf56Action;
|
||||
import ru.spcex.clearing.session.state.action.SdfReceivedAction;
|
||||
|
|
@ -69,6 +70,10 @@ public class IntermediateMkrSessionStateMachineConfig
|
|||
private final AgainReviseStage3Action againRevise;
|
||||
private final FinishingSessionAction finishingSessionAction;
|
||||
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
|
||||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
|
||||
DataEnum.inspectionObligationStashedRgs
|
||||
);
|
||||
private final DiscardRegistriesAction discardOblAdmStash =
|
||||
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
|
||||
private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard(
|
||||
|
|
@ -95,6 +100,7 @@ public class IntermediateMkrSessionStateMachineConfig
|
|||
FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction, AgainReviseStage3Action againRevise,
|
||||
FinishingSessionAction finishingSessionAction,
|
||||
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
|
||||
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
||||
@Qualifier("pauseWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction pauseWsAction,
|
||||
@Qualifier("activeWorkflowStatusAction")
|
||||
|
|
@ -104,6 +110,7 @@ public class IntermediateMkrSessionStateMachineConfig
|
|||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
this.againRevise = againRevise;
|
||||
this.obligationAdmissionContinueAction = obligationAdmissionContinueAction;
|
||||
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
||||
this.pauseWsAction = pauseWsAction;
|
||||
this.activeWsAction = activeWsAction;
|
||||
Imdg<Registry> rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
|
|
@ -130,6 +137,7 @@ public class IntermediateMkrSessionStateMachineConfig
|
|||
)
|
||||
);
|
||||
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction.setDataEnum(DataEnum.inspectionObligationStashedRgs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -194,10 +202,26 @@ public class IntermediateMkrSessionStateMachineConfig
|
|||
.action(againRevise);
|
||||
|
||||
sourceObligationAdmission(transitions);
|
||||
sourcePseudoWaitAfterObligationAdmissionError(transitions);
|
||||
sourcePseudoWaitAfterError(transitions);
|
||||
sourceFormingPaymentInstructions(transitions);
|
||||
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
||||
sourceAgainRevise(transitions);
|
||||
sourceInspection(transitions);
|
||||
}
|
||||
|
||||
private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations)
|
||||
.target(TaskType.PSEUDO_waitAfterInspectionError)
|
||||
.guard(oblAdmGuard)
|
||||
.action(pauseWsAction)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
|
||||
.guard(invert(oblAdmGuard))
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionAssetsAction);
|
||||
}
|
||||
|
||||
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
|
|
@ -214,8 +238,9 @@ public class IntermediateMkrSessionStateMachineConfig
|
|||
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
|
||||
}
|
||||
|
||||
private void sourcePseudoWaitAfterObligationAdmissionError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
private void sourcePseudoWaitAfterError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
//continue and repeat after ObligationAdmission
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
|
||||
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
|
||||
|
|
@ -224,6 +249,19 @@ public class IntermediateMkrSessionStateMachineConfig
|
|||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission)
|
||||
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
|
||||
.event(SsnEvent.REPEAT)
|
||||
.and()
|
||||
//continue and repeat after InspectionObligations
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.FormingPaymentInstruction)
|
||||
.action(activeWsAction)
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionAssetsAction)
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations)
|
||||
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
|
||||
.event(SsnEvent.REPEAT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import ru.spcex.clearing.session.state.action.InspectionObligationsV2Action;
|
|||
import ru.spcex.clearing.session.state.action.ObligationAdmissionAction;
|
||||
import ru.spcex.clearing.session.state.action.RequirementAndObligationCreationAction;
|
||||
import ru.spcex.clearing.session.state.action.ReviseStage1Action;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.UpdateWorkflowStatusAction;
|
||||
import ru.spcex.clearing.session.state.guard.StashedRegistriesPresentGuard;
|
||||
|
|
@ -56,11 +57,15 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
|
|||
private final AgainReviseStage3Action againRevise;
|
||||
private final FinishingSessionAction finishingSessionAction;
|
||||
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
|
||||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||
private final DiscardRegistriesAction discardOblAdmStash =
|
||||
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
|
||||
private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard(
|
||||
DataEnum.obligationAdmissionStashedRgs
|
||||
);
|
||||
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
|
||||
DataEnum.inspectionObligationStashedRgs
|
||||
);
|
||||
private final UpdateWorkflowStatusAction pauseWsAction;
|
||||
private final UpdateWorkflowStatusAction activeWsAction;
|
||||
private final Guard<TaskType, SsnEvent> reviseSuccessGuard = guardCheckCtxForFlag(DataEnum.againReviseSuccess);
|
||||
|
|
@ -81,11 +86,13 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
|
|||
@Qualifier("marketCodesForCurr")
|
||||
Supplier<List<String>> marketCodes,
|
||||
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
|
||||
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
||||
@Qualifier("pauseWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction pauseWsAction,
|
||||
@Qualifier("activeWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction activeWsAction) {
|
||||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
||||
this.pauseWsAction = pauseWsAction;
|
||||
this.activeWsAction = activeWsAction;
|
||||
Imdg<ExecutionCurrency> executionCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class);
|
||||
|
|
@ -106,6 +113,7 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
|
|||
dealsPrepareAction.addExecutionCurrencyCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0])));
|
||||
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
|
||||
this.formingPaymentInstructionAssetsAction.setDisableCompanyCondition(true);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction.setDataEnum(DataEnum.inspectionObligationStashedRgs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -168,7 +176,8 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
|
|||
.guard(reviseSuccessGuard);
|
||||
|
||||
sourceObligationAdmission(transitions);
|
||||
sourcePseudoAfterOAError(transitions);
|
||||
sourcePseudoWaitAfterError(transitions);
|
||||
sourceInspection(transitions);
|
||||
}
|
||||
|
||||
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
|
|
@ -185,8 +194,24 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
|
|||
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
|
||||
}
|
||||
|
||||
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations)
|
||||
.target(TaskType.PSEUDO_waitAfterInspectionError)
|
||||
.guard(oblAdmGuard)
|
||||
.action(pauseWsAction)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
|
||||
.guard(invert(oblAdmGuard))
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionAssetsAction);
|
||||
}
|
||||
|
||||
private void sourcePseudoWaitAfterError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
//continue and repeat after ObligationAdmission
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
|
||||
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
|
||||
|
|
@ -195,6 +220,19 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
|
|||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission)
|
||||
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
|
||||
.event(SsnEvent.REPEAT)
|
||||
.and()
|
||||
//continue and repeat after InspectionObligations
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.FormingPaymentInstruction)
|
||||
.action(activeWsAction)
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionAssetsAction)
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations)
|
||||
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
|
||||
.event(SsnEvent.REPEAT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ import ru.spcex.clearing.session.state.action.InspectionObligationsV2Action;
|
|||
import ru.spcex.clearing.session.state.action.ObligationAdmissionAction;
|
||||
import ru.spcex.clearing.session.state.action.RequirementAndObligationCreationAction;
|
||||
import ru.spcex.clearing.session.state.action.ReviseStage1Action;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.Sdf56Action;
|
||||
import ru.spcex.clearing.session.state.action.SdfReceivedAction;
|
||||
|
|
@ -69,8 +70,12 @@ public class PrimaryAuctionB0SessionStateMachineConfig
|
|||
private final AgainReviseStage3Action againRevise;
|
||||
private final FinishingSessionAction finishingSessionAction;
|
||||
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
|
||||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||
private final DiscardRegistriesAction discardOblAdmStash =
|
||||
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
|
||||
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
|
||||
DataEnum.inspectionObligationStashedRgs
|
||||
);
|
||||
private final UpdateWorkflowStatusAction pauseWsAction;
|
||||
private final UpdateWorkflowStatusAction activeWsAction;
|
||||
|
||||
|
|
@ -98,6 +103,7 @@ public class PrimaryAuctionB0SessionStateMachineConfig
|
|||
FinishingSessionAction finishingSessionAction,
|
||||
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
|
||||
@Qualifier("marketCodesForBn") Supplier<List<String>> marketCodes,
|
||||
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
||||
@Qualifier("pauseWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction pauseWsAction,
|
||||
@Qualifier("activeWorkflowStatusAction")
|
||||
|
|
@ -105,6 +111,7 @@ public class PrimaryAuctionB0SessionStateMachineConfig
|
|||
) {
|
||||
this.sendSdf56Action = sendSdf56Action;
|
||||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
||||
this.pauseWsAction = pauseWsAction;
|
||||
this.activeWsAction = activeWsAction;
|
||||
Imdg<ExecutionFond> executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
|
||||
|
|
@ -126,6 +133,7 @@ public class PrimaryAuctionB0SessionStateMachineConfig
|
|||
dealsPrepareAction.addExecutionFondCondition(execFondPb.equals("settlementCode", "B0"));
|
||||
dealsPrepareAction.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0])));
|
||||
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction.setDataEnum(DataEnum.inspectionObligationStashedRgs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -189,10 +197,11 @@ public class PrimaryAuctionB0SessionStateMachineConfig
|
|||
.guard(new SdfGuard(SdfGuardExtractorAfterAgainRevise.instance))
|
||||
.action(againRevise);
|
||||
sourceObligationAdmission(transitions);
|
||||
sourcePseudoAfterOAError(transitions);
|
||||
sourcePseudoWaitAfterError(transitions);
|
||||
sourceFormingPaymentInstruction(transitions);
|
||||
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
||||
sourceAgainRevise(transitions);
|
||||
sourceInspection(transitions);
|
||||
}
|
||||
|
||||
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
|
|
@ -209,8 +218,25 @@ public class PrimaryAuctionB0SessionStateMachineConfig
|
|||
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
|
||||
}
|
||||
|
||||
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations)
|
||||
.target(TaskType.PSEUDO_waitAfterInspectionError)
|
||||
.guard(oblAdmGuard)
|
||||
.action(pauseWsAction)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
|
||||
.guard(invert(oblAdmGuard))
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionSecuritiesAction);
|
||||
}
|
||||
|
||||
|
||||
private void sourcePseudoWaitAfterError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
//continue and repeat after ObligationAdmission
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
|
||||
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
|
||||
|
|
@ -219,6 +245,19 @@ public class PrimaryAuctionB0SessionStateMachineConfig
|
|||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission)
|
||||
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
|
||||
.event(SsnEvent.REPEAT)
|
||||
.and()
|
||||
//continue and repeat after InspectionObligations
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.FormingPaymentInstruction)
|
||||
.action(activeWsAction)
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionSecuritiesAction)
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations)
|
||||
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
|
||||
.event(SsnEvent.REPEAT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ import ru.spcex.clearing.session.state.action.InspectionObligationsV2Action;
|
|||
import ru.spcex.clearing.session.state.action.ObligationAdmissionAction;
|
||||
import ru.spcex.clearing.session.state.action.RequirementAndObligationCreationAction;
|
||||
import ru.spcex.clearing.session.state.action.ReviseStage1Action;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.Sdf56Action;
|
||||
import ru.spcex.clearing.session.state.action.SdfReceivedAction;
|
||||
|
|
@ -65,8 +66,12 @@ public class PrimaryAuctionBnSessionStateMachineConfig
|
|||
private final FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction;
|
||||
private final FinishingSessionAction finishingSessionAction;
|
||||
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
|
||||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||
private final DiscardRegistriesAction discardOblAdmStash =
|
||||
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
|
||||
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
|
||||
DataEnum.inspectionObligationStashedRgs
|
||||
);
|
||||
private final UpdateWorkflowStatusAction pauseWsAction;
|
||||
private final UpdateWorkflowStatusAction activeWsAction;
|
||||
|
||||
|
|
@ -94,6 +99,7 @@ public class PrimaryAuctionBnSessionStateMachineConfig
|
|||
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
|
||||
@Qualifier("marketCodesForBn")
|
||||
Supplier<List<String>> marketCodes,
|
||||
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
||||
@Qualifier("pauseWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction pauseWsAction,
|
||||
@Qualifier("activeWorkflowStatusAction")
|
||||
|
|
@ -101,6 +107,7 @@ public class PrimaryAuctionBnSessionStateMachineConfig
|
|||
) {
|
||||
this.sendSdf56Action = sendSdf56Action;
|
||||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
||||
this.pauseWsAction = pauseWsAction;
|
||||
this.activeWsAction = activeWsAction;
|
||||
Imdg<ExecutionFond> executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
|
||||
|
|
@ -121,6 +128,7 @@ public class PrimaryAuctionBnSessionStateMachineConfig
|
|||
dealsPrepareAction.addExecutionFondCondition(execFondPb.regex("settlementCode", "^B\\d{2}$"));
|
||||
dealsPrepareAction.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0])));
|
||||
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction.setDataEnum(DataEnum.inspectionObligationStashedRgs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -177,9 +185,10 @@ public class PrimaryAuctionBnSessionStateMachineConfig
|
|||
.action(formingPaymentInstructionSecuritiesAction);
|
||||
|
||||
sourceObligationAdmission(transitions);
|
||||
sourcePseudoAfterOAError(transitions);
|
||||
sourcePseudoWaitAfterError(transitions);
|
||||
sourceFormingPaymentInstruction(transitions);
|
||||
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
||||
sourceInspection(transitions);
|
||||
}
|
||||
|
||||
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
|
|
@ -196,8 +205,24 @@ public class PrimaryAuctionBnSessionStateMachineConfig
|
|||
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
|
||||
}
|
||||
|
||||
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations)
|
||||
.target(TaskType.PSEUDO_waitAfterInspectionError)
|
||||
.guard(oblAdmGuard)
|
||||
.action(pauseWsAction)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
|
||||
.guard(invert(oblAdmGuard))
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionSecuritiesAction);
|
||||
}
|
||||
|
||||
private void sourcePseudoWaitAfterError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
//continue and repeat after ObligationAdmission
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
|
||||
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
|
||||
|
|
@ -206,6 +231,19 @@ public class PrimaryAuctionBnSessionStateMachineConfig
|
|||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission)
|
||||
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
|
||||
.event(SsnEvent.REPEAT)
|
||||
.and()
|
||||
//continue and repeat after InspectionObligations
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.FormingPaymentInstruction)
|
||||
.action(activeWsAction)
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionSecuritiesAction)
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations)
|
||||
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
|
||||
.event(SsnEvent.REPEAT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ import ru.spcex.clearing.session.state.action.InspectionObligationsV2Action;
|
|||
import ru.spcex.clearing.session.state.action.ObligationAdmissionAction;
|
||||
import ru.spcex.clearing.session.state.action.RequirementAndObligationCreationAction;
|
||||
import ru.spcex.clearing.session.state.action.ReviseStage1Action;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.Sdf56Action;
|
||||
import ru.spcex.clearing.session.state.action.SdfReceivedAction;
|
||||
|
|
@ -69,8 +70,12 @@ public class PrimaryAuctionT0SessionStateMachineConfig
|
|||
private final AgainReviseStage3Action againRevise;
|
||||
private final FinishingSessionAction finishingSessionAction;
|
||||
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
|
||||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||
private final DiscardRegistriesAction discardOblAdmStash =
|
||||
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
|
||||
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
|
||||
DataEnum.inspectionObligationStashedRgs
|
||||
);
|
||||
private final UpdateWorkflowStatusAction pauseWsAction;
|
||||
private final UpdateWorkflowStatusAction activeWsAction;
|
||||
|
||||
|
|
@ -99,6 +104,7 @@ public class PrimaryAuctionT0SessionStateMachineConfig
|
|||
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
|
||||
@Qualifier("marketCodesForT0Primary")
|
||||
Supplier<List<String>> marketCodes,
|
||||
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
||||
@Qualifier("pauseWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction pauseWsAction,
|
||||
@Qualifier("activeWorkflowStatusAction")
|
||||
|
|
@ -106,6 +112,7 @@ public class PrimaryAuctionT0SessionStateMachineConfig
|
|||
) {
|
||||
this.sendSdf56Action = sendSdf56Action;
|
||||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
||||
this.pauseWsAction = pauseWsAction;
|
||||
this.activeWsAction = activeWsAction;
|
||||
Imdg<ExecutionFond> executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
|
||||
|
|
@ -127,6 +134,7 @@ public class PrimaryAuctionT0SessionStateMachineConfig
|
|||
dealsPrepareAction.addExecutionFondCondition(execFondPb.regex("settlementCode", "^T0.*$"));
|
||||
dealsPrepareAction.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0])));
|
||||
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction.setDataEnum(DataEnum.inspectionObligationStashedRgs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -191,10 +199,11 @@ public class PrimaryAuctionT0SessionStateMachineConfig
|
|||
.action(againRevise);
|
||||
|
||||
sourceObligationAdmission(transitions);
|
||||
sourcePseudoAfterOAError(transitions);
|
||||
sourcePseudoWaitAfterError(transitions);
|
||||
sourceFormingPaymentInstruction(transitions);
|
||||
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
||||
sourceAgainRevise(transitions);
|
||||
sourceInspection(transitions);
|
||||
}
|
||||
|
||||
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
|
|
@ -211,8 +220,24 @@ public class PrimaryAuctionT0SessionStateMachineConfig
|
|||
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
|
||||
}
|
||||
|
||||
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations)
|
||||
.target(TaskType.PSEUDO_waitAfterInspectionError)
|
||||
.guard(oblAdmGuard)
|
||||
.action(pauseWsAction)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
|
||||
.guard(invert(oblAdmGuard))
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionSecuritiesAction);
|
||||
}
|
||||
|
||||
private void sourcePseudoWaitAfterError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
//continue and repeat after ObligationAdmission
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
|
||||
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
|
||||
|
|
@ -221,6 +246,19 @@ public class PrimaryAuctionT0SessionStateMachineConfig
|
|||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission)
|
||||
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
|
||||
.event(SsnEvent.REPEAT)
|
||||
.and()
|
||||
//continue and repeat after InspectionObligations
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.FormingPaymentInstruction)
|
||||
.action(activeWsAction)
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionSecuritiesAction)
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations)
|
||||
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
|
||||
.event(SsnEvent.REPEAT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,21 +19,27 @@ import ru.clearing.classes.statics.data.misc.Session;
|
|||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.session.stage.TaskType;
|
||||
import ru.spcex.clearing.session.state.DataEnum;
|
||||
import ru.spcex.clearing.session.state.SsnEvent;
|
||||
import ru.spcex.clearing.session.state.action.CreateSessionAction;
|
||||
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
|
||||
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
|
||||
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionDepositReturnAction;
|
||||
import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
|
||||
import ru.spcex.clearing.session.state.action.InspectionObligationsDepositReturnAction;
|
||||
import ru.spcex.clearing.session.state.action.ReviseStage1Action;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.Sdf56Action;
|
||||
import ru.spcex.clearing.session.state.action.SdfReceivedAction;
|
||||
import ru.spcex.clearing.session.state.action.UpdateWorkflowStatusAction;
|
||||
import ru.spcex.clearing.session.state.guard.PaymentsWereCreatedListGuard;
|
||||
import ru.spcex.clearing.session.state.guard.PaymentsWereNotCreatedListGuard;
|
||||
import ru.spcex.clearing.session.state.guard.SdfGuardUtil;
|
||||
import ru.spcex.clearing.session.state.guard.SdfSetGuard;
|
||||
import ru.spcex.clearing.session.state.guard.StashedRegistriesPresentGuard;
|
||||
import ru.spcex.clearing.session.state.listener.MachineMonitoringListener;
|
||||
import static ru.spcex.clearing.util.StateMachineUtil.chain;
|
||||
import static ru.spcex.clearing.util.StateMachineUtil.invert;
|
||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||
import ru.spcex.platform.enumeration.Section;
|
||||
import ru.spcex.platform.enumeration.SessionType;
|
||||
|
|
@ -53,6 +59,14 @@ public class ReturnDepositSessionStateMachineConfig
|
|||
private final InspectionObligationsDepositReturnAction inspectionObligationsDepositReturnAction;
|
||||
private final FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction;
|
||||
private final FinishingSessionAction finishingSessionAction;
|
||||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||
private final UpdateWorkflowStatusAction pauseWsAction;
|
||||
private final UpdateWorkflowStatusAction activeWsAction;
|
||||
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
|
||||
DataEnum.inspectionObligationStashedRgs
|
||||
);
|
||||
private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard(
|
||||
DataEnum.obligationAdmissionStashedRgs);
|
||||
private final SessionType SESSION_TYPE = SessionType.XDEP;
|
||||
private final Section SECTION = Section.MKR;
|
||||
|
||||
|
|
@ -65,7 +79,12 @@ public class ReturnDepositSessionStateMachineConfig
|
|||
FinishingSessionAction finishingSessionAction,
|
||||
@Qualifier("marketCodesForBn") Supplier<List<String>> marketCodes,
|
||||
InspectionObligationsDepositReturnAction inspectionObligationsDepositReturnAction,
|
||||
FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction
|
||||
FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction,
|
||||
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
||||
@Qualifier("pauseWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction pauseWsAction,
|
||||
@Qualifier("activeWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction activeWsAction
|
||||
) {
|
||||
this.sendSdf56Action = sendSdf56Action;
|
||||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
|
|
@ -74,6 +93,9 @@ public class ReturnDepositSessionStateMachineConfig
|
|||
this.inspectionObligationsDepositReturnAction = inspectionObligationsDepositReturnAction;
|
||||
this.formingPaymentInstructionDepositReturnAction = formingPaymentInstructionDepositReturnAction;
|
||||
this.finishingSessionAction = finishingSessionAction;
|
||||
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
||||
this.pauseWsAction = pauseWsAction;
|
||||
this.activeWsAction = activeWsAction;
|
||||
this.finishingSessionAction.setPr("4");
|
||||
|
||||
Imdg<Registry> rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
|
|
@ -87,6 +109,7 @@ public class ReturnDepositSessionStateMachineConfig
|
|||
rgsPb.less("valueDate", LocalDate.now())
|
||||
)
|
||||
);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction.setDataEnum(DataEnum.inspectionObligationStashedRgs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -133,6 +156,23 @@ public class ReturnDepositSessionStateMachineConfig
|
|||
|
||||
sourceFormingPaymentInstruction(transitions);
|
||||
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
||||
sourceInspection(transitions);
|
||||
sourcePseudoWaitAfterError(transitions);
|
||||
}
|
||||
|
||||
private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations)
|
||||
.target(TaskType.PSEUDO_waitAfterInspectionError)
|
||||
.guard(oblAdmGuard)
|
||||
.action(pauseWsAction)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
|
||||
.guard(invert(oblAdmGuard))
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionDepositReturnAction);
|
||||
}
|
||||
|
||||
private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
|
|
@ -168,6 +208,22 @@ public class ReturnDepositSessionStateMachineConfig
|
|||
}
|
||||
}
|
||||
|
||||
private void sourcePseudoWaitAfterError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
//continue and repeat after InspectionObligations
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.FormingPaymentInstruction)
|
||||
.action(activeWsAction)
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionDepositReturnAction)
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations)
|
||||
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsDepositReturnAction))
|
||||
.event(SsnEvent.REPEAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configure(StateMachineConfigurationConfigurer<TaskType, SsnEvent> config) throws Exception {
|
||||
StateMachineListenerAdapter<TaskType, SsnEvent> loggingChangeStateListener
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ import ru.spcex.clearing.session.state.action.InspectionObligationsV2Action;
|
|||
import ru.spcex.clearing.session.state.action.ObligationAdmissionAction;
|
||||
import ru.spcex.clearing.session.state.action.RequirementAndObligationCreationAction;
|
||||
import ru.spcex.clearing.session.state.action.ReviseStage1Action;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.Sdf56Action;
|
||||
import ru.spcex.clearing.session.state.action.SdfReceivedAction;
|
||||
|
|
@ -69,8 +70,12 @@ public class SecondaryAuctionT0SessionStateMachineConfig
|
|||
private final AgainReviseStage3Action againRevise;
|
||||
private final FinishingSessionAction finishingSessionAction;
|
||||
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
|
||||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||
private final DiscardRegistriesAction discardOblAdmStash =
|
||||
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
|
||||
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
|
||||
DataEnum.inspectionObligationStashedRgs
|
||||
);
|
||||
private final UpdateWorkflowStatusAction pauseWsAction;
|
||||
private final UpdateWorkflowStatusAction activeWsAction;
|
||||
|
||||
|
|
@ -99,6 +104,7 @@ public class SecondaryAuctionT0SessionStateMachineConfig
|
|||
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
|
||||
@Qualifier("marketCodesForT0")
|
||||
Supplier<List<String>> marketCodes,
|
||||
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
||||
@Qualifier("pauseWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction pauseWsAction,
|
||||
@Qualifier("activeWorkflowStatusAction")
|
||||
|
|
@ -106,6 +112,7 @@ public class SecondaryAuctionT0SessionStateMachineConfig
|
|||
) {
|
||||
this.sendSdf56Action = sendSdf56Action;
|
||||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
||||
this.pauseWsAction = pauseWsAction;
|
||||
this.activeWsAction = activeWsAction;
|
||||
Imdg<ExecutionFond> executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
|
||||
|
|
@ -127,6 +134,7 @@ public class SecondaryAuctionT0SessionStateMachineConfig
|
|||
dealsPrepareAction.addExecutionFondCondition(execFondPb.regex("settlementCode", "^T0.*$"));
|
||||
dealsPrepareAction.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0])));
|
||||
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction.setDataEnum(DataEnum.inspectionObligationStashedRgs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -191,10 +199,11 @@ public class SecondaryAuctionT0SessionStateMachineConfig
|
|||
.action(againRevise);
|
||||
|
||||
sourceObligationAdmission(transitions);
|
||||
sourcePseudoAfterOAError(transitions);
|
||||
sourcePseudoWaitAfterError(transitions);
|
||||
sourceFormingPaymentInstruction(transitions);
|
||||
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
||||
sourceAgainRevise(transitions);
|
||||
sourceInspection(transitions);
|
||||
}
|
||||
|
||||
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
|
|
@ -211,8 +220,24 @@ public class SecondaryAuctionT0SessionStateMachineConfig
|
|||
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
|
||||
}
|
||||
|
||||
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations)
|
||||
.target(TaskType.PSEUDO_waitAfterInspectionError)
|
||||
.guard(oblAdmGuard)
|
||||
.action(pauseWsAction)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
|
||||
.guard(invert(oblAdmGuard))
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionAssetsAction);
|
||||
}
|
||||
|
||||
private void sourcePseudoWaitAfterError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
//continue and repeat after ObligationAdmission
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
|
||||
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
|
||||
|
|
@ -221,6 +246,19 @@ public class SecondaryAuctionT0SessionStateMachineConfig
|
|||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission)
|
||||
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
|
||||
.event(SsnEvent.REPEAT)
|
||||
.and()
|
||||
//continue and repeat after InspectionObligations
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.FormingPaymentInstruction)
|
||||
.action(activeWsAction)
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionAssetsAction)
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations)
|
||||
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
|
||||
.event(SsnEvent.REPEAT);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ import ru.spcex.clearing.session.state.action.InspectionObligationsV2Action;
|
|||
import ru.spcex.clearing.session.state.action.ObligationAdmissionAction;
|
||||
import ru.spcex.clearing.session.state.action.RequirementAndObligationCreationCompoundAction;
|
||||
import ru.spcex.clearing.session.state.action.ReviseStage1Action;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction;
|
||||
import ru.spcex.clearing.session.state.action.Sdf56Action;
|
||||
import ru.spcex.clearing.session.state.action.SdfReceivedAction;
|
||||
|
|
@ -71,9 +72,14 @@ public class UnitedSessionStateMachineConfig
|
|||
private final FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction;
|
||||
private final AgainReviseStage3Action againRevise;
|
||||
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
|
||||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||
private final FinishingSessionAction finishingSessionAction;
|
||||
private final DiscardRegistriesAction discardOblAdmStash =
|
||||
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
|
||||
private final DiscardRegistriesAction discardOblAdmStash = new DiscardRegistriesAction(
|
||||
DataEnum.obligationAdmissionStashedRgs
|
||||
);
|
||||
private final DiscardRegistriesAction discardInspOblStash = new DiscardRegistriesAction(
|
||||
DataEnum.inspectionObligationStashedRgs
|
||||
);
|
||||
private final UpdateWorkflowStatusAction pauseWsAction;
|
||||
private final UpdateWorkflowStatusAction activeWsAction;
|
||||
|
||||
|
|
@ -99,6 +105,7 @@ public class UnitedSessionStateMachineConfig
|
|||
FinishingSessionAction finishingSessionAction,
|
||||
@Qualifier("marketCodesForCurr") Supplier<List<String>> marketCodesCurr,
|
||||
@Qualifier("marketCodesForT0") Supplier<List<String>> marketCodesTrdt,
|
||||
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
||||
@Qualifier("pauseWorkflowStatusAction")
|
||||
UpdateWorkflowStatusAction pauseWsAction,
|
||||
@Qualifier("activeWorkflowStatusAction")
|
||||
|
|
@ -117,6 +124,7 @@ public class UnitedSessionStateMachineConfig
|
|||
this.againRevise = againRevise;
|
||||
this.obligationAdmissionContinueAction = obligationAdmissionContinueAction;
|
||||
this.finishingSessionAction = finishingSessionAction;
|
||||
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
||||
this.pauseWsAction = pauseWsAction;
|
||||
this.activeWsAction = activeWsAction;
|
||||
|
||||
|
|
@ -136,6 +144,7 @@ public class UnitedSessionStateMachineConfig
|
|||
|
||||
this.finishingSessionAction.setPr("1");
|
||||
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
|
||||
this.saveRegistriesAfterInspectionAndContinueAction.setDataEnum(DataEnum.inspectionObligationStashedRgs);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -203,10 +212,11 @@ public class UnitedSessionStateMachineConfig
|
|||
.guard(new SdfGuard(SdfGuardExtractorAfterAgainRevise.instance))
|
||||
.action(againRevise);
|
||||
sourceObligationAdmission(transitions);
|
||||
sourcePseudoAfterOAError(transitions);
|
||||
sourcePseudoWaitAfterError(transitions);
|
||||
sourceFormingPaymentInstruction(transitions);
|
||||
sourceAgainRevise(transitions);
|
||||
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
||||
sourceInspection(transitions);
|
||||
}
|
||||
|
||||
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
|
|
@ -223,17 +233,46 @@ public class UnitedSessionStateMachineConfig
|
|||
.action(chain(obligationAdmissionContinueAction, inclusionToPoolAction));
|
||||
}
|
||||
|
||||
private void sourcePseudoAfterOAError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
|
||||
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.source(TaskType.InspectionObligations)
|
||||
.target(TaskType.PSEUDO_waitAfterInspectionError)
|
||||
.guard(oblAdmGuard)
|
||||
.action(pauseWsAction)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission)
|
||||
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
|
||||
.event(SsnEvent.REPEAT);
|
||||
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
|
||||
.guard(invert(oblAdmGuard))
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionAssetsAction);
|
||||
}
|
||||
|
||||
private void sourcePseudoWaitAfterError(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
transitions
|
||||
//continue and repeat after ObligationAdmission
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool)
|
||||
.action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction))
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission)
|
||||
.action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction))
|
||||
.event(SsnEvent.REPEAT)
|
||||
.and()
|
||||
//continue and repeat after InspectionObligations
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.FormingPaymentInstruction)
|
||||
.action(activeWsAction)
|
||||
.action(saveRegistriesAfterInspectionAndContinueAction)
|
||||
.action(formingPaymentInstructionAssetsAction)
|
||||
.event(SsnEvent.CONTINUE)
|
||||
.and()
|
||||
.withExternal()
|
||||
.source(TaskType.PSEUDO_waitAfterInspectionError).target(TaskType.InspectionObligations)
|
||||
.action(chain(activeWsAction, discardInspOblStash, inspectionObligationsV2Action))
|
||||
.event(SsnEvent.REPEAT);
|
||||
}
|
||||
|
||||
private void sourceFormingPaymentInstruction(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ public enum DataEnum {
|
|||
dealsPreparedCurrency,
|
||||
counterPartyId, //Long
|
||||
obligationAdmissionStashedRgs, //Map<Long, Registry>
|
||||
inspectionObligationStashedRgs, //Map<Long, Registry>
|
||||
erroneousRegistries, //List<RgsErr>
|
||||
paymentInstructionReturnMkr, //List<PaymentInstruction>
|
||||
paymentInstructionSecurity, //List<PaymentInstruction>
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public class InspectionObligationsV2Action extends AbstractSessionActionForOkErr
|
|||
try {
|
||||
Long sessionId = ctx.getExtendedState().get(DataEnum.sessionId, Long.class);
|
||||
this.sessionType = ctx.getExtendedState().get(DataEnum.sessionType, SessionType.class);
|
||||
inspectionObligations(sessionId);
|
||||
inspectionObligations(sessionId, ctx);
|
||||
} finally {
|
||||
a___Cash.clear();
|
||||
a__fCash.clear();
|
||||
|
|
@ -104,7 +104,7 @@ public class InspectionObligationsV2Action extends AbstractSessionActionForOkErr
|
|||
}
|
||||
}
|
||||
|
||||
private void inspectionObligations(Long sessionId) {
|
||||
private void inspectionObligations(Long sessionId, StateContext<TaskType, SsnEvent> ctx) {
|
||||
String sqlCondition = String.format("(%s) and registryStatus = '%s'",
|
||||
RegistryCodeSqlBuilder.getInstance(OS_T, OM_T, TS_T, TM_T).build(),
|
||||
RegistryStatus.POOL.getKey());
|
||||
|
|
@ -267,10 +267,7 @@ public class InspectionObligationsV2Action extends AbstractSessionActionForOkErr
|
|||
}
|
||||
}
|
||||
}
|
||||
//todo save to context
|
||||
// registryImdg.putAll(rgssToStore, 200);
|
||||
|
||||
// planBalanceCalc.stageRevision2(sessionId);
|
||||
ctx.getExtendedState().getVariables().put(DataEnum.inspectionObligationStashedRgs, rgssToStore);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue