http://jira.mfd.msk:8088/browse/CLS-940 добавил шаг AgainReviseStage3Action CL09 в финальную сессию FinalSessionStateMachineConfig
This commit is contained in:
parent
c9ef0ae75f
commit
3fed3b850d
1 changed files with 46 additions and 7 deletions
|
|
@ -13,6 +13,7 @@ import org.springframework.statemachine.config.EnumStateMachineConfigurerAdapter
|
||||||
import org.springframework.statemachine.config.builders.StateMachineConfigurationConfigurer;
|
import org.springframework.statemachine.config.builders.StateMachineConfigurationConfigurer;
|
||||||
import org.springframework.statemachine.config.builders.StateMachineStateConfigurer;
|
import org.springframework.statemachine.config.builders.StateMachineStateConfigurer;
|
||||||
import org.springframework.statemachine.config.builders.StateMachineTransitionConfigurer;
|
import org.springframework.statemachine.config.builders.StateMachineTransitionConfigurer;
|
||||||
|
import org.springframework.statemachine.guard.Guard;
|
||||||
import org.springframework.statemachine.listener.StateMachineListenerAdapter;
|
import org.springframework.statemachine.listener.StateMachineListenerAdapter;
|
||||||
import ru.clearing.classes.statics.data.misc.Session;
|
import ru.clearing.classes.statics.data.misc.Session;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
|
|
@ -20,6 +21,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.session.stage.TaskType;
|
import ru.spcex.clearing.session.stage.TaskType;
|
||||||
import ru.spcex.clearing.session.state.DataEnum;
|
import ru.spcex.clearing.session.state.DataEnum;
|
||||||
import ru.spcex.clearing.session.state.SsnEvent;
|
import ru.spcex.clearing.session.state.SsnEvent;
|
||||||
|
import ru.spcex.clearing.session.state.action.AgainReviseStage3Action;
|
||||||
import ru.spcex.clearing.session.state.action.CreateSessionAction;
|
import ru.spcex.clearing.session.state.action.CreateSessionAction;
|
||||||
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
|
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
|
||||||
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
|
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
|
||||||
|
|
@ -44,8 +46,7 @@ import ru.spcex.clearing.session.state.guard.SdfGuardUtil;
|
||||||
import ru.spcex.clearing.session.state.guard.SdfSetGuard;
|
import ru.spcex.clearing.session.state.guard.SdfSetGuard;
|
||||||
import ru.spcex.clearing.session.state.guard.StashedRegistriesPresentGuard;
|
import ru.spcex.clearing.session.state.guard.StashedRegistriesPresentGuard;
|
||||||
import ru.spcex.clearing.session.state.listener.MachineMonitoringListener;
|
import ru.spcex.clearing.session.state.listener.MachineMonitoringListener;
|
||||||
import static ru.spcex.clearing.util.StateMachineUtil.chain;
|
import static ru.spcex.clearing.util.StateMachineUtil.*;
|
||||||
import static ru.spcex.clearing.util.StateMachineUtil.invert;
|
|
||||||
import ru.spcex.platform.classes.base.interfaces.ExecutionType;
|
import ru.spcex.platform.classes.base.interfaces.ExecutionType;
|
||||||
import ru.spcex.platform.enumeration.RegistryStatus;
|
import ru.spcex.platform.enumeration.RegistryStatus;
|
||||||
import ru.spcex.platform.enumeration.Section;
|
import ru.spcex.platform.enumeration.Section;
|
||||||
|
|
@ -70,6 +71,7 @@ public class FinalSessionStateMachineConfig
|
||||||
private final InspectionObligationsV2Action inspectionObligationsV2Action;
|
private final InspectionObligationsV2Action inspectionObligationsV2Action;
|
||||||
private final FormingPaymentInstructionReturnMkrAction formingPaymentInstructionReturnMkrAction;
|
private final FormingPaymentInstructionReturnMkrAction formingPaymentInstructionReturnMkrAction;
|
||||||
private final FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction;
|
private final FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction;
|
||||||
|
private final AgainReviseStage3Action againRevise;
|
||||||
private final FinishingSessionAction finishingSessionAction;
|
private final FinishingSessionAction finishingSessionAction;
|
||||||
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
|
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
|
||||||
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction;
|
||||||
|
|
@ -85,6 +87,7 @@ public class FinalSessionStateMachineConfig
|
||||||
DataEnum.obligationAdmissionStashedRgs
|
DataEnum.obligationAdmissionStashedRgs
|
||||||
);
|
);
|
||||||
private final ErroneousRegistriesPresentGuard inspErrGuard = new ErroneousRegistriesPresentGuard();
|
private final ErroneousRegistriesPresentGuard inspErrGuard = new ErroneousRegistriesPresentGuard();
|
||||||
|
private final Guard<TaskType, SsnEvent> reviseSuccessGuard = guardCheckCtxForFlag(DataEnum.againReviseSuccess);
|
||||||
|
|
||||||
private final SessionType SESSION_TYPE = SessionType.FINL;
|
private final SessionType SESSION_TYPE = SessionType.FINL;
|
||||||
private final Section SECTION = Section.MKR;
|
private final Section SECTION = Section.MKR;
|
||||||
|
|
@ -102,7 +105,7 @@ public class FinalSessionStateMachineConfig
|
||||||
InspectionObligationsDepositReturnAction inspOblDepositReturnAction,
|
InspectionObligationsDepositReturnAction inspOblDepositReturnAction,
|
||||||
InspectionObligationsV2Action inspectionObligationsV2Action,
|
InspectionObligationsV2Action inspectionObligationsV2Action,
|
||||||
FormingPaymentInstructionReturnMkrAction formingPaymentInstructionReturnMkrAction,
|
FormingPaymentInstructionReturnMkrAction formingPaymentInstructionReturnMkrAction,
|
||||||
FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction,
|
FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction, AgainReviseStage3Action againRevise,
|
||||||
FinishingSessionAction finishingSessionAction,
|
FinishingSessionAction finishingSessionAction,
|
||||||
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
|
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
|
||||||
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction,
|
||||||
|
|
@ -111,6 +114,7 @@ public class FinalSessionStateMachineConfig
|
||||||
) {
|
) {
|
||||||
this.sendSdf56Action = sendSdf56Action;
|
this.sendSdf56Action = sendSdf56Action;
|
||||||
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||||
|
this.againRevise = againRevise;
|
||||||
this.obligationAdmissionContinueAction = obligationAdmissionContinueAction;
|
this.obligationAdmissionContinueAction = obligationAdmissionContinueAction;
|
||||||
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
|
||||||
this.pauseWsAction = pauseWsAction;
|
this.pauseWsAction = pauseWsAction;
|
||||||
|
|
@ -164,6 +168,8 @@ public class FinalSessionStateMachineConfig
|
||||||
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
|
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
|
||||||
TaskType.PSEUDO_waitAfterObligationAdmissionError,
|
TaskType.PSEUDO_waitAfterObligationAdmissionError,
|
||||||
TaskType.InspectionObligationDepositReturn,
|
TaskType.InspectionObligationDepositReturn,
|
||||||
|
TaskType.AgainRevise,
|
||||||
|
TaskType.PSEUDO_waitSdfAfterAgainRevise,
|
||||||
TaskType.PSEUDO_waitAfterInspectionError,
|
TaskType.PSEUDO_waitAfterInspectionError,
|
||||||
TaskType.PSEUDO_waitAfterInspectionDepositReturnError,
|
TaskType.PSEUDO_waitAfterInspectionDepositReturnError,
|
||||||
TaskType.PSEUDO_waitAfterObligationAdmissionRestore,
|
TaskType.PSEUDO_waitAfterObligationAdmissionRestore,
|
||||||
|
|
@ -207,6 +213,8 @@ public class FinalSessionStateMachineConfig
|
||||||
sourceIOPause(transitions);
|
sourceIOPause(transitions);
|
||||||
sourceFormingPaymentInstruction(transitions);
|
sourceFormingPaymentInstruction(transitions);
|
||||||
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
|
||||||
|
sourceAgainRevise(transitions);
|
||||||
|
sourcePseudoWaitAfterAgainRevise(transitions);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
private void sourceObligationAdmission(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||||
|
|
@ -313,9 +321,9 @@ public class FinalSessionStateMachineConfig
|
||||||
//если не создалось paymentInstruction'ов
|
//если не создалось paymentInstruction'ов
|
||||||
.withExternal()
|
.withExternal()
|
||||||
.source(TaskType.FormingPaymentInstruction)
|
.source(TaskType.FormingPaymentInstruction)
|
||||||
.target(TaskType.FinishingSession)
|
.target(TaskType.AgainRevise)
|
||||||
.guard(PaymentsWereNotCreatedGuard.instance)
|
.guard(PaymentsWereNotCreatedGuard.instance)
|
||||||
.action(finishingSessionAction)
|
.action(againRevise)
|
||||||
.and()
|
.and()
|
||||||
//если создались paymentInstruction, переходим в режим ожидания
|
//если создались paymentInstruction, переходим в режим ожидания
|
||||||
.withExternal()
|
.withExternal()
|
||||||
|
|
@ -329,9 +337,9 @@ public class FinalSessionStateMachineConfig
|
||||||
transitions
|
transitions
|
||||||
.withExternal()
|
.withExternal()
|
||||||
.source(TaskType.PSEUDO_waitSdfAfterPaymentInstructions)
|
.source(TaskType.PSEUDO_waitSdfAfterPaymentInstructions)
|
||||||
.target(TaskType.FinishingSession)
|
.target(TaskType.AgainRevise)
|
||||||
.guard(new SdfSetGuard(sdfs))
|
.guard(new SdfSetGuard(sdfs))
|
||||||
.action(finishingSessionAction);
|
.action(againRevise);
|
||||||
for (var event : sdfs) {
|
for (var event : sdfs) {
|
||||||
transitions
|
transitions
|
||||||
.withInternal()
|
.withInternal()
|
||||||
|
|
@ -341,6 +349,37 @@ public class FinalSessionStateMachineConfig
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sourceAgainRevise(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||||
|
transitions
|
||||||
|
.withExternal()
|
||||||
|
.source(TaskType.AgainRevise)
|
||||||
|
.target(TaskType.FinishingSession)
|
||||||
|
.action(finishingSessionAction)
|
||||||
|
.guard(reviseSuccessGuard)
|
||||||
|
.and()
|
||||||
|
.withExternal()
|
||||||
|
.source(TaskType.AgainRevise)
|
||||||
|
.target(TaskType.PSEUDO_waitSdfAfterAgainRevise)
|
||||||
|
.guard(invert(reviseSuccessGuard));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sourcePseudoWaitAfterAgainRevise(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
|
||||||
|
EnumSet<SsnEvent> ssnEvents = SdfGuardUtil.afterAgainReviseError(SECTION);
|
||||||
|
transitions
|
||||||
|
.withExternal()
|
||||||
|
.source(TaskType.PSEUDO_waitSdfAfterAgainRevise)
|
||||||
|
.target(TaskType.AgainRevise)
|
||||||
|
.guard(new SdfSetGuard(ssnEvents))
|
||||||
|
.action(againRevise);
|
||||||
|
for (var event : ssnEvents) {
|
||||||
|
transitions
|
||||||
|
.withInternal()
|
||||||
|
.source(TaskType.PSEUDO_waitSdfAfterAgainRevise)
|
||||||
|
.event(event)
|
||||||
|
.action(SdfReceivedAction.instance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void configure(StateMachineConfigurationConfigurer<TaskType, SsnEvent> config) throws Exception {
|
public void configure(StateMachineConfigurationConfigurer<TaskType, SsnEvent> config) throws Exception {
|
||||||
StateMachineListenerAdapter<TaskType, SsnEvent> loggingChangeStateListener
|
StateMachineListenerAdapter<TaskType, SsnEvent> loggingChangeStateListener
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue