From 1e8d56d5ca727af307c288ea44731821d47fb701 Mon Sep 17 00:00:00 2001 From: ialbert Date: Tue, 15 Jul 2025 19:01:49 +0300 Subject: [PATCH] CurrencySession state machine again revise error fix --- .../CurrencySessionStateMachineConfig.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) 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 dd6abfa24..dd59fe820 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 @@ -39,8 +39,6 @@ import ru.spcex.clearing.session.state.action.UpdateWorkflowStatusAction; import ru.spcex.clearing.session.state.guard.ErroneousRegistriesPresentGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereCreatedGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereNotCreatedGuard; -import ru.spcex.clearing.session.state.guard.SdfGuard; -import ru.spcex.clearing.session.state.guard.SdfGuardExtractorAfterAgainRevise; import ru.spcex.clearing.session.state.guard.SdfGuardUtil; import ru.spcex.clearing.session.state.guard.SdfSetGuard; import ru.spcex.clearing.session.state.guard.StashedRegistriesPresentGuard; @@ -177,13 +175,7 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure .and() .withExternal() .source(TaskType.InclusionToPool).target(TaskType.InspectionObligations) - .action(inspectionObligationsV2Action) - .and() - .withExternal() - .source(TaskType.PSEUDO_waitSdfAfterAgainRevise) - .target(TaskType.AgainRevise) - .guard(new SdfGuard(SdfGuardExtractorAfterAgainRevise.instance)) - .action(againRevise); + .action(inspectionObligationsV2Action); sourceObligationAdmission(transitions); sourcePseudoAfterOAError(transitions); @@ -191,6 +183,7 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure sourceFormingPaymentInstruction(transitions); sourcePseudoWaitSdfAfterPaymentInstructions(transitions); sourceAgainRevise(transitions); + sourcePseudoWaitAfterAgainRevise(transitions); sourceInspection(transitions); } @@ -300,6 +293,23 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure .guard(invert(reviseSuccessGuard)); } + private void sourcePseudoWaitAfterAgainRevise(StateMachineTransitionConfigurer transitions) throws Exception { + EnumSet 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 public void configure(StateMachineConfigurationConfigurer config) throws Exception { StateMachineListenerAdapter loggingChangeStateListener