убрал паузу из XDEP на 5м шаге

This commit is contained in:
ialbert 2025-07-17 18:33:30 +03:00
parent b58d20a5e9
commit 1d1718d7a0

View file

@ -4,10 +4,7 @@ import java.time.LocalDate;
import java.util.Arrays; import java.util.Arrays;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashSet; import java.util.HashSet;
import java.util.List;
import java.util.function.Supplier;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.statemachine.config.EnableStateMachineFactory; import org.springframework.statemachine.config.EnableStateMachineFactory;
import org.springframework.statemachine.config.EnumStateMachineConfigurerAdapter; import org.springframework.statemachine.config.EnumStateMachineConfigurerAdapter;
@ -19,10 +16,8 @@ import ru.clearing.classes.statics.data.misc.Session;
import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.Registry;
import ru.spcex.clearing.imdg.IMDGDistributedNames; 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.SsnEvent; import ru.spcex.clearing.session.state.SsnEvent;
import ru.spcex.clearing.session.state.action.CreateSessionAction; 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.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionDepositReturnAction; import ru.spcex.clearing.session.state.action.FormingPaymentInstructionDepositReturnAction;
import ru.spcex.clearing.session.state.action.InclusionToPoolAction; import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
@ -31,16 +26,12 @@ import ru.spcex.clearing.session.state.action.ReviseStage1Action;
import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction; import ru.spcex.clearing.session.state.action.SaveRegistriesAfterInspectionAndContinueAction;
import ru.spcex.clearing.session.state.action.Sdf56Action; import ru.spcex.clearing.session.state.action.Sdf56Action;
import ru.spcex.clearing.session.state.action.SdfReceivedAction; import ru.spcex.clearing.session.state.action.SdfReceivedAction;
import ru.spcex.clearing.session.state.action.UpdateWorkflowStatusAction;
import ru.spcex.clearing.session.state.guard.ErroneousRegistriesPresentGuard;
import ru.spcex.clearing.session.state.guard.PaymentsWereCreatedListGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereCreatedListGuard;
import ru.spcex.clearing.session.state.guard.PaymentsWereNotCreatedListGuard; import ru.spcex.clearing.session.state.guard.PaymentsWereNotCreatedListGuard;
import ru.spcex.clearing.session.state.guard.SdfGuardUtil; 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.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.chain;
import static ru.spcex.clearing.util.StateMachineUtil.invert;
import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.Section; import ru.spcex.platform.enumeration.Section;
import ru.spcex.platform.enumeration.SessionType; import ru.spcex.platform.enumeration.SessionType;
@ -61,14 +52,6 @@ public class ReturnDepositSessionStateMachineConfig
private final FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction; private final FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction;
private final FinishingSessionAction finishingSessionAction; private final FinishingSessionAction finishingSessionAction;
private final SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction; 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 ErroneousRegistriesPresentGuard inspErrGuard = new ErroneousRegistriesPresentGuard();
private final SessionType SESSION_TYPE = SessionType.XDEP; private final SessionType SESSION_TYPE = SessionType.XDEP;
private final Section SECTION = Section.MKR; private final Section SECTION = Section.MKR;
@ -79,14 +62,9 @@ public class ReturnDepositSessionStateMachineConfig
ReviseStage1Action reviseStage1Action, ReviseStage1Action reviseStage1Action,
InclusionToPoolAction inclusionToPoolAction, InclusionToPoolAction inclusionToPoolAction,
FinishingSessionAction finishingSessionAction, FinishingSessionAction finishingSessionAction,
@Qualifier("marketCodesForBn") Supplier<List<String>> marketCodes,
InspectionObligationsDepositReturnAction inspectionObligationsDepositReturnAction, InspectionObligationsDepositReturnAction inspectionObligationsDepositReturnAction,
FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction, FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction,
SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction, SaveRegistriesAfterInspectionAndContinueAction saveRegistriesAfterInspectionAndContinueAction
@Qualifier("pauseWorkflowStatusAction")
UpdateWorkflowStatusAction pauseWsAction,
@Qualifier("activeWorkflowStatusAction")
UpdateWorkflowStatusAction activeWsAction
) { ) {
this.sendSdf56Action = sendSdf56Action; this.sendSdf56Action = sendSdf56Action;
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class); this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
@ -96,8 +74,6 @@ public class ReturnDepositSessionStateMachineConfig
this.formingPaymentInstructionDepositReturnAction = formingPaymentInstructionDepositReturnAction; this.formingPaymentInstructionDepositReturnAction = formingPaymentInstructionDepositReturnAction;
this.finishingSessionAction = finishingSessionAction; this.finishingSessionAction = finishingSessionAction;
this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction; this.saveRegistriesAfterInspectionAndContinueAction = saveRegistriesAfterInspectionAndContinueAction;
this.pauseWsAction = pauseWsAction;
this.activeWsAction = activeWsAction;
this.finishingSessionAction.setPr("4"); this.finishingSessionAction.setPr("4");
Imdg<Registry> rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); Imdg<Registry> rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
@ -130,8 +106,7 @@ public class ReturnDepositSessionStateMachineConfig
TaskType.FormingRegistersOnOS, TaskType.FormingRegistersOnOS,
TaskType.FormingPaymentInstruction, TaskType.FormingPaymentInstruction,
TaskType.FinishingSession, TaskType.FinishingSession,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions, TaskType.PSEUDO_waitSdfAfterPaymentInstructions
TaskType.PSEUDO_waitAfterInspectionError
))) )))
.end(TaskType.FinishingSession); .end(TaskType.FinishingSession);
} }
@ -156,20 +131,12 @@ public class ReturnDepositSessionStateMachineConfig
sourceFormingPaymentInstruction(transitions); sourceFormingPaymentInstruction(transitions);
sourcePseudoWaitSdfAfterPaymentInstructions(transitions); sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
sourceInspection(transitions); sourceInspection(transitions);
sourcePseudoAfterIOError(transitions);
} }
private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception { private void sourceInspection(StateMachineTransitionConfigurer<TaskType, SsnEvent> transitions) throws Exception {
transitions transitions
.withExternal()
.source(TaskType.InspectionObligations)
.target(TaskType.PSEUDO_waitAfterInspectionError)
.guard(inspErrGuard)
.action(pauseWsAction)
.and()
.withExternal() .withExternal()
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction) .source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
.guard(invert(inspErrGuard))
.action(saveRegistriesAfterInspectionAndContinueAction) .action(saveRegistriesAfterInspectionAndContinueAction)
.action(formingPaymentInstructionDepositReturnAction); .action(formingPaymentInstructionDepositReturnAction);
} }
@ -207,22 +174,6 @@ public class ReturnDepositSessionStateMachineConfig
} }
} }
private void sourcePseudoAfterIOError(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 @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