From fd7ea384cb00a61a5f77fc1b909f30b3f052db01 Mon Sep 17 00:00:00 2001 From: ialbert Date: Thu, 10 Jul 2025 14:06:35 +0300 Subject: [PATCH] PAUS workflow status --- .../CurrencySessionStateMachineConfig.java | 17 ++++++++-- .../FinalSessionStateMachineConfig.java | 17 +++++++--- ...ermediateMkrSessionStateMachineConfig.java | 17 +++++++--- .../PaymSessionStateMachineConfig.java | 16 +++++++-- .../PrepSessionStateMachineConfig.java | 17 ++++++++-- ...aryAuctionB0SessionStateMachineConfig.java | 21 +++++++++--- ...aryAuctionBnSessionStateMachineConfig.java | 22 +++++++++--- ...aryAuctionT0SessionStateMachineConfig.java | 22 +++++++++--- ...aryAuctionT0SessionStateMachineConfig.java | 19 ++++++++--- .../UnitedSessionStateMachineConfig.java | 17 ++++++++-- .../action/UpdateWorkflowStatusAction.java | 34 +++++++++++++++++++ .../action/WorkflowStatusConfiguration.java | 25 ++++++++++++++ .../platform/enumeration/WorkflowStatus.java | 1 + 13 files changed, 209 insertions(+), 36 deletions(-) create mode 100644 clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/UpdateWorkflowStatusAction.java create mode 100644 clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/WorkflowStatusConfiguration.java diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/CurrencySessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/CurrencySessionStateMachineConfig.java index 20f139f9d..67acec878 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/CurrencySessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/CurrencySessionStateMachineConfig.java @@ -35,6 +35,7 @@ import ru.spcex.clearing.session.state.action.ReviseStage1Action; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; 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.PaymentsWereCreatedGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereNotCreatedGuard; import ru.spcex.clearing.session.state.guard.SdfGuard; @@ -72,6 +73,9 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; + private final Guard reviseSuccessGuard = guardCheckCtxForFlag(DataEnum.againReviseSuccess); private final SessionType SESSION_TYPE = SessionType.CURR; private final Section SECTION = Section.MKR; @@ -91,7 +95,11 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure EndStageNotificationAction endStageNotification, @Qualifier("marketCodesForCurr") Supplier> marketCodes, - SaveRegistriesAndContinueAction obligationAdmissionContinueAction) { + SaveRegistriesAndContinueAction obligationAdmissionContinueAction, + @Qualifier("pauseWorkflowStatusAction") + UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") + UpdateWorkflowStatusAction activeWsAction) { this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); this.sendSdf56Action = sendSdf56Action; this.reviseStage1Action = reviseStage1Action; @@ -105,6 +113,8 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure this.finishingSessionAction = finishingSession; this.endStageNotificationAction = endStageNotification; this.obligationAdmissionContinueAction = obligationAdmissionContinueAction; + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; this.finishingSessionAction.setPr("1"); Imdg executionCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class); @@ -192,6 +202,7 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.InclusionToPool) @@ -203,12 +214,12 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) - .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/FinalSessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/FinalSessionStateMachineConfig.java index 0cdae1407..40a8f9255 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/FinalSessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/FinalSessionStateMachineConfig.java @@ -35,13 +35,13 @@ import ru.spcex.clearing.session.state.action.ReviseStage1Action; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; 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.PaymentsWereCreatedGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereNotCreatedGuard; 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 ru.spcex.clearing.util.StateMachineUtil; import static ru.spcex.clearing.util.StateMachineUtil.chain; import static ru.spcex.clearing.util.StateMachineUtil.invert; import ru.spcex.platform.classes.base.interfaces.ExecutionType; @@ -76,6 +76,8 @@ public class FinalSessionStateMachineConfig private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; private final SessionType SESSION_TYPE = SessionType.FINL; private final Section SECTION = Section.MKR; @@ -94,11 +96,17 @@ public class FinalSessionStateMachineConfig InspectionObligationsV2Action inspectionObligationsV2Action, FormingPaymentInstructionReturnMkrAction formingPaymentInstructionReturnMkrAction, FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction, - FinishingSessionAction finishingSessionAction, EndStageNotificationAction endStageNotificationAction, SaveRegistriesAndContinueAction obligationAdmissionContinueAction + FinishingSessionAction finishingSessionAction, + EndStageNotificationAction endStageNotificationAction, + SaveRegistriesAndContinueAction obligationAdmissionContinueAction, + @Qualifier("pauseWorkflowStatusAction") UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") UpdateWorkflowStatusAction activeWsAction ) { this.sendSdf56Action = sendSdf56Action; this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); this.obligationAdmissionContinueAction = obligationAdmissionContinueAction; + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; Imdg rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); this.reviseStage1Action = reviseStage1Action; this.dealsPrepareAction = dealsPrepareAction; @@ -200,6 +208,7 @@ public class FinalSessionStateMachineConfig .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.InclusionToPool) @@ -211,12 +220,12 @@ public class FinalSessionStateMachineConfig transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) - .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(StateMachineUtil.chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/IntermediateMkrSessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/IntermediateMkrSessionStateMachineConfig.java index 29bc865c6..723129c57 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/IntermediateMkrSessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/IntermediateMkrSessionStateMachineConfig.java @@ -35,6 +35,7 @@ import ru.spcex.clearing.session.state.action.ReviseStage1Action; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; 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.PaymentsWereCreatedGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereNotCreatedGuard; import ru.spcex.clearing.session.state.guard.SdfGuard; @@ -43,7 +44,6 @@ 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 ru.spcex.clearing.util.StateMachineUtil; import static ru.spcex.clearing.util.StateMachineUtil.*; import ru.spcex.platform.classes.base.interfaces.ExecutionType; import ru.spcex.platform.enumeration.RegistryStatus; @@ -76,6 +76,8 @@ public class IntermediateMkrSessionStateMachineConfig private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; private final Guard reviseSuccessGuard = guardCheckCtxForFlag(DataEnum.againReviseSuccess); private final SessionType SESSION_TYPE = SessionType.MEDM; @@ -93,12 +95,18 @@ public class IntermediateMkrSessionStateMachineConfig InclusionToPoolAction inclusionToPoolAction, InspectionObligationsV2Action inspectionObligationsV2Action, FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction, AgainReviseStage3Action againRevise, - FinishingSessionAction finishingSessionAction, EndStageNotificationAction endStageNotificationAction, SaveRegistriesAndContinueAction obligationAdmissionContinueAction + FinishingSessionAction finishingSessionAction, EndStageNotificationAction endStageNotificationAction, SaveRegistriesAndContinueAction obligationAdmissionContinueAction, + @Qualifier("pauseWorkflowStatusAction") + UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") + UpdateWorkflowStatusAction activeWsAction ) { this.sendSdf56Action = sendSdf56Action; this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); this.againRevise = againRevise; this.obligationAdmissionContinueAction = obligationAdmissionContinueAction; + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; Imdg rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); this.reviseStage1Action = reviseStage1Action; this.dealsPrepareAction = dealsPrepareAction; @@ -205,6 +213,7 @@ public class IntermediateMkrSessionStateMachineConfig .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.InclusionToPool) @@ -216,12 +225,12 @@ public class IntermediateMkrSessionStateMachineConfig transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) - .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(StateMachineUtil.chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PaymSessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PaymSessionStateMachineConfig.java index 1e36beac6..5f0be5f05 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PaymSessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PaymSessionStateMachineConfig.java @@ -32,6 +32,7 @@ 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.SaveRegistriesAndContinueAction; +import ru.spcex.clearing.session.state.action.UpdateWorkflowStatusAction; import ru.spcex.clearing.session.state.guard.StashedRegistriesPresentGuard; import ru.spcex.clearing.session.state.listener.MachineMonitoringListener; import static ru.spcex.clearing.util.StateMachineUtil.*; @@ -62,6 +63,8 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; private final Guard reviseSuccessGuard = guardCheckCtxForFlag(DataEnum.againReviseSuccess); private final SessionType SESSION_TYPE = SessionType.PAYM; private final Section SECTION = Section.CURR; @@ -80,8 +83,14 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda EndStageNotificationAction endStageNotification, @Qualifier("marketCodesForCurr") Supplier> marketCodes, - SaveRegistriesAndContinueAction obligationAdmissionContinueAction) { + SaveRegistriesAndContinueAction obligationAdmissionContinueAction, + @Qualifier("pauseWorkflowStatusAction") + UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") + UpdateWorkflowStatusAction activeWsAction) { this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; Imdg executionCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class); this.reviseStage1Action = reviseStage1Action; this.dealsPrepareAction = dealsPrepare; @@ -177,6 +186,7 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.InclusionToPool) @@ -188,12 +198,12 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) - .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrepSessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrepSessionStateMachineConfig.java index ab52dac38..0615c7cce 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrepSessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrepSessionStateMachineConfig.java @@ -26,6 +26,7 @@ import ru.spcex.clearing.session.state.action.DiscardRegistriesAction; import ru.spcex.clearing.session.state.action.ObligationAdmissionAction; import ru.spcex.clearing.session.state.action.RequirementAndObligationCreationAction; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; +import ru.spcex.clearing.session.state.action.UpdateWorkflowStatusAction; import ru.spcex.clearing.session.state.guard.StashedRegistriesPresentGuard; import ru.spcex.clearing.session.state.listener.MachineMonitoringListener; import static ru.spcex.clearing.util.StateMachineUtil.chain; @@ -53,6 +54,9 @@ public class PrepSessionStateMachineConfig extends EnumStateMachineConfigurerAda private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; + private final SessionType SESSION_TYPE = SessionType.PREP; private final Section SECTION = Section.CURR; @@ -64,8 +68,14 @@ public class PrepSessionStateMachineConfig extends EnumStateMachineConfigurerAda ObligationAdmissionAction obligationsAdmission, @Qualifier("marketCodesForCurr") Supplier> marketCodes, - SaveRegistriesAndContinueAction obligationAdmissionContinueAction) { + SaveRegistriesAndContinueAction obligationAdmissionContinueAction, + @Qualifier("pauseWorkflowStatusAction") + UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") + UpdateWorkflowStatusAction activeWsAction) { this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; Imdg executionCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class); this.dealsPrepareAction = dealsPrepare; this.reqAndOblAction = reqAndOblAction; @@ -129,6 +139,7 @@ public class PrepSessionStateMachineConfig extends EnumStateMachineConfigurerAda .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.PSEUDO_end) @@ -140,12 +151,12 @@ public class PrepSessionStateMachineConfig extends EnumStateMachineConfigurerAda transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.PSEUDO_end) - .action(chain(obligationAdmissionContinueAction, endSession)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, endSession)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionB0SessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionB0SessionStateMachineConfig.java index b0a2a1563..6ae79d1e5 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionB0SessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionB0SessionStateMachineConfig.java @@ -36,6 +36,7 @@ import ru.spcex.clearing.session.state.action.ReviseStage1Action; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; 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.SdfGuard; @@ -69,10 +70,12 @@ public class PrimaryAuctionB0SessionStateMachineConfig private final AgainReviseStage3Action againRevise; private final FinishingSessionAction finishingSessionAction; private final EndStageNotificationAction endStageNotificationAction; - private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction; private final DiscardRegistriesAction discardOblAdmStash = new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; + private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); @@ -94,10 +97,19 @@ public class PrimaryAuctionB0SessionStateMachineConfig InspectionObligationsV2Action inspectionObligationsV2Action, FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction, AgainReviseStage3Action againRevise, - FinishingSessionAction finishingSessionAction, EndStageNotificationAction endStageNotificationAction, SaveRegistriesAndContinueAction obligationAdmissionContinueAction, @Qualifier("marketCodesForBn") Supplier> marketCodes + FinishingSessionAction finishingSessionAction, + EndStageNotificationAction endStageNotificationAction, + SaveRegistriesAndContinueAction obligationAdmissionContinueAction, + @Qualifier("marketCodesForBn") Supplier> marketCodes, + @Qualifier("pauseWorkflowStatusAction") + UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") + UpdateWorkflowStatusAction activeWsAction ) { this.sendSdf56Action = sendSdf56Action; this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; Imdg executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.againRevise = againRevise; this.obligationAdmissionContinueAction = obligationAdmissionContinueAction; @@ -199,6 +211,7 @@ public class PrimaryAuctionB0SessionStateMachineConfig .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.InclusionToPool) @@ -210,12 +223,12 @@ public class PrimaryAuctionB0SessionStateMachineConfig transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) - .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionBnSessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionBnSessionStateMachineConfig.java index 57ab5fe4a..083a0bc54 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionBnSessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionBnSessionStateMachineConfig.java @@ -35,6 +35,7 @@ import ru.spcex.clearing.session.state.action.ReviseStage1Action; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; 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; @@ -65,10 +66,12 @@ public class PrimaryAuctionBnSessionStateMachineConfig private final FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction; private final FinishingSessionAction finishingSessionAction; private final EndStageNotificationAction endStageNotificationAction; - private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction; private final DiscardRegistriesAction discardOblAdmStash = new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; + private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); @@ -89,10 +92,20 @@ public class PrimaryAuctionBnSessionStateMachineConfig InclusionToPoolAction inclusionToPoolAction, InspectionObligationsV2Action inspectionObligationsV2Action, FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction, - FinishingSessionAction finishingSessionAction, EndStageNotificationAction endStageNotificationAction, SaveRegistriesAndContinueAction obligationAdmissionContinueAction, @Qualifier("marketCodesForBn") Supplier> marketCodes + FinishingSessionAction finishingSessionAction, + EndStageNotificationAction endStageNotificationAction, + SaveRegistriesAndContinueAction obligationAdmissionContinueAction, + @Qualifier("marketCodesForBn") + Supplier> marketCodes, + @Qualifier("pauseWorkflowStatusAction") + UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") + UpdateWorkflowStatusAction activeWsAction ) { this.sendSdf56Action = sendSdf56Action; this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; Imdg executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.obligationAdmissionContinueAction = obligationAdmissionContinueAction; this.reviseStage1Action = reviseStage1Action; @@ -184,6 +197,7 @@ public class PrimaryAuctionBnSessionStateMachineConfig .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.InclusionToPool) @@ -195,12 +209,12 @@ public class PrimaryAuctionBnSessionStateMachineConfig transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) - .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionT0SessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionT0SessionStateMachineConfig.java index a92dcc1c3..9a4df3ca0 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionT0SessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/PrimaryAuctionT0SessionStateMachineConfig.java @@ -36,6 +36,7 @@ import ru.spcex.clearing.session.state.action.ReviseStage1Action; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; 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.SdfGuard; @@ -69,10 +70,12 @@ public class PrimaryAuctionT0SessionStateMachineConfig private final AgainReviseStage3Action againRevise; private final FinishingSessionAction finishingSessionAction; private final EndStageNotificationAction endStageNotificationAction; - private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction; private final DiscardRegistriesAction discardOblAdmStash = new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; + private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); @@ -94,10 +97,20 @@ public class PrimaryAuctionT0SessionStateMachineConfig InspectionObligationsV2Action inspectionObligationsV2Action, FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction, AgainReviseStage3Action againRevise, - FinishingSessionAction finishingSessionAction, EndStageNotificationAction endStageNotificationAction, SaveRegistriesAndContinueAction obligationAdmissionContinueAction, @Qualifier("marketCodesForT0Primary") Supplier> marketCodes + FinishingSessionAction finishingSessionAction, + EndStageNotificationAction endStageNotificationAction, + SaveRegistriesAndContinueAction obligationAdmissionContinueAction, + @Qualifier("marketCodesForT0Primary") + Supplier> marketCodes, + @Qualifier("pauseWorkflowStatusAction") + UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") + UpdateWorkflowStatusAction activeWsAction ) { this.sendSdf56Action = sendSdf56Action; this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; Imdg executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.againRevise = againRevise; this.obligationAdmissionContinueAction = obligationAdmissionContinueAction; @@ -199,6 +212,7 @@ public class PrimaryAuctionT0SessionStateMachineConfig .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.InclusionToPool) @@ -210,12 +224,12 @@ public class PrimaryAuctionT0SessionStateMachineConfig transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) - .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/SecondaryAuctionT0SessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/SecondaryAuctionT0SessionStateMachineConfig.java index 7b629ea2a..32178c03c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/SecondaryAuctionT0SessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/SecondaryAuctionT0SessionStateMachineConfig.java @@ -36,6 +36,7 @@ import ru.spcex.clearing.session.state.action.ReviseStage1Action; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; 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.PaymentsWereCreatedGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereNotCreatedGuard; import ru.spcex.clearing.session.state.guard.SdfGuard; @@ -69,10 +70,12 @@ public class SecondaryAuctionT0SessionStateMachineConfig private final AgainReviseStage3Action againRevise; private final FinishingSessionAction finishingSessionAction; private final EndStageNotificationAction endStageNotificationAction; - private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction; private final DiscardRegistriesAction discardOblAdmStash = new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; + private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); @@ -97,10 +100,17 @@ public class SecondaryAuctionT0SessionStateMachineConfig FinishingSessionAction finishingSessionAction, EndStageNotificationAction endStageNotificationAction, SaveRegistriesAndContinueAction obligationAdmissionContinueAction, - @Qualifier("marketCodesForT0") Supplier> marketCodes + @Qualifier("marketCodesForT0") + Supplier> marketCodes, + @Qualifier("pauseWorkflowStatusAction") + UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") + UpdateWorkflowStatusAction activeWsAction ) { this.sendSdf56Action = sendSdf56Action; this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; Imdg executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.againRevise = againRevise; this.obligationAdmissionContinueAction = obligationAdmissionContinueAction; @@ -202,6 +212,7 @@ public class SecondaryAuctionT0SessionStateMachineConfig .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.InclusionToPool) @@ -213,12 +224,12 @@ public class SecondaryAuctionT0SessionStateMachineConfig transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) - .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/UnitedSessionStateMachineConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/UnitedSessionStateMachineConfig.java index 53e7cd975..65434c775 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/UnitedSessionStateMachineConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/state_machine_2/specific/UnitedSessionStateMachineConfig.java @@ -36,6 +36,7 @@ import ru.spcex.clearing.session.state.action.ReviseStage1Action; import ru.spcex.clearing.session.state.action.SaveRegistriesAndContinueAction; 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.PaymentsWereCreatedGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereNotCreatedGuard; import ru.spcex.clearing.session.state.guard.SdfGuard; @@ -73,6 +74,9 @@ public class UnitedSessionStateMachineConfig private final FinishingSessionAction finishingSessionAction; private final DiscardRegistriesAction discardOblAdmStash = new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs); + private final UpdateWorkflowStatusAction pauseWsAction; + private final UpdateWorkflowStatusAction activeWsAction; + private final StashedRegistriesPresentGuard oblAdmGuard = new StashedRegistriesPresentGuard( DataEnum.obligationAdmissionStashedRgs ); @@ -94,7 +98,11 @@ public class UnitedSessionStateMachineConfig SaveRegistriesAndContinueAction obligationAdmissionContinueAction, FinishingSessionAction finishingSessionAction, @Qualifier("marketCodesForCurr") Supplier> marketCodesCurr, - @Qualifier("marketCodesForT0") Supplier> marketCodesTrdt) { + @Qualifier("marketCodesForT0") Supplier> marketCodesTrdt, + @Qualifier("pauseWorkflowStatusAction") + UpdateWorkflowStatusAction pauseWsAction, + @Qualifier("activeWorkflowStatusAction") + UpdateWorkflowStatusAction activeWsAction) { this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); this.sendSdf56Action = sendSdf56Action; this.reviseStage1Action = reviseStage1Action; @@ -109,6 +117,8 @@ public class UnitedSessionStateMachineConfig this.againRevise = againRevise; this.obligationAdmissionContinueAction = obligationAdmissionContinueAction; this.finishingSessionAction = finishingSessionAction; + this.pauseWsAction = pauseWsAction; + this.activeWsAction = activeWsAction; { Imdg executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); @@ -206,6 +216,7 @@ public class UnitedSessionStateMachineConfig .source(TaskType.ObligationsAdmission) .target(TaskType.PSEUDO_waitAfterObligationAdmissionError) .guard(oblAdmGuard) + .action(pauseWsAction) .and() .withExternal() .source(TaskType.ObligationsAdmission).target(TaskType.InclusionToPool) @@ -217,12 +228,12 @@ public class UnitedSessionStateMachineConfig transitions .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.InclusionToPool) - .action(chain(obligationAdmissionContinueAction, inclusionToPoolAction)) + .action(chain(activeWsAction, obligationAdmissionContinueAction, inclusionToPoolAction)) .event(SsnEvent.CONTINUE) .and() .withExternal() .source(TaskType.PSEUDO_waitAfterObligationAdmissionError).target(TaskType.ObligationsAdmission) - .action(chain(discardOblAdmStash, obligationAdmissionAction)) + .action(chain(activeWsAction, discardOblAdmStash, obligationAdmissionAction)) .event(SsnEvent.REPEAT); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/UpdateWorkflowStatusAction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/UpdateWorkflowStatusAction.java new file mode 100644 index 000000000..93ac55fc1 --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/UpdateWorkflowStatusAction.java @@ -0,0 +1,34 @@ +package ru.spcex.clearing.session.state.action; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.statemachine.StateContext; +import ru.clearing.classes.statics.data.misc.Session; +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.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; + +public class UpdateWorkflowStatusAction extends AbstractSessionActionForOkErrorHandling { + private final Logger log = LoggerFactory.getLogger(getClass()); + private final Imdg ssnImdg; + private final WorkflowStatus status; + + public UpdateWorkflowStatusAction(ImdgProvider imdgProvider, WorkflowStatus ws) { + this.ssnImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); + this.status = ws; + } + + @Override + protected void actualExecute(StateContext ctx) { + Session session = ctx.getExtendedState().get(DataEnum.session, Session.class); + if (status == null) + throw new IllegalStateException("status must be set for %s action".formatted(getClass())); + session.setWorkflowStatus(status.getKey()); + log.info("updating session status to {}", status); + ssnImdg.update(session); + } +} \ No newline at end of file diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/WorkflowStatusConfiguration.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/WorkflowStatusConfiguration.java new file mode 100644 index 000000000..87683b18c --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/WorkflowStatusConfiguration.java @@ -0,0 +1,25 @@ +package ru.spcex.clearing.session.state.action; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.ImdgProvider; + +@Configuration +public class WorkflowStatusConfiguration { + private final ImdgProvider imdgProvider; + + public WorkflowStatusConfiguration(ImdgProvider imdgProvider) { + this.imdgProvider = imdgProvider; + } + + @Bean("pauseWorkflowStatusAction") + public UpdateWorkflowStatusAction pauseWorkflowStatusAction() { + return new UpdateWorkflowStatusAction(imdgProvider, WorkflowStatus.Pause); + } + + @Bean("activeWorkflowStatusAction") + public UpdateWorkflowStatusAction activeWorkflowStatusAction() { + return new UpdateWorkflowStatusAction(imdgProvider, WorkflowStatus.Active); + } +} diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/WorkflowStatus.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/WorkflowStatus.java index 0e1ccdd49..25b0008d5 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/WorkflowStatus.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/WorkflowStatus.java @@ -4,6 +4,7 @@ import ru.spcex.platform.utils.enumeration.IEnumKey; public enum WorkflowStatus implements IEnumKey { Active("ACTV"), + Pause("PAUS"), Blocked("BLKD"); private final String key;