remove endStageNotification stage

This commit is contained in:
etreschenkov 2025-07-10 16:44:36 +03:00
parent e6fc7f75c9
commit 3da32d9f41
11 changed files with 33 additions and 232 deletions

View file

@ -24,7 +24,6 @@ import ru.spcex.clearing.session.state.action.AgainReviseStage3Action;
import ru.spcex.clearing.session.state.action.CreateSessionAction;
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
import ru.spcex.clearing.session.state.action.EndStageNotificationAction;
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionAssetsAction;
import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
@ -66,7 +65,6 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
private final FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction;
private final AgainReviseStage3Action againRevise;
private final FinishingSessionAction finishingSessionAction;
private final EndStageNotificationAction endStageNotificationAction;
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
private final DiscardRegistriesAction discardOblAdmStash =
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
@ -92,7 +90,6 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
FormingPaymentInstructionAssetsAction formingPaymentInstructionAssets,
AgainReviseStage3Action againReviseStage3Action,
FinishingSessionAction finishingSession,
EndStageNotificationAction endStageNotification,
@Qualifier("marketCodesForCurr")
Supplier<List<String>> marketCodes,
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
@ -111,7 +108,6 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
this.formingPaymentInstructionAssetsAction = formingPaymentInstructionAssets;
this.againRevise = againReviseStage3Action;
this.finishingSessionAction = finishingSession;
this.endStageNotificationAction = endStageNotification;
this.obligationAdmissionContinueAction = obligationAdmissionContinueAction;
this.pauseWsAction = pauseWsAction;
this.activeWsAction = activeWsAction;
@ -143,12 +139,11 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
TaskType.FormingPaymentInstruction,
TaskType.FinishingSession,
TaskType.AgainRevise,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitSdfAfterAgainRevise
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@Override
@ -183,12 +178,8 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
.source(TaskType.PSEUDO_waitSdfAfterAgainRevise)
.target(TaskType.AgainRevise)
.guard(new SdfGuard(SdfGuardExtractorAfterAgainRevise.instance))
.action(againRevise)
.and()
.withExternal()
.source(TaskType.FinishingSession)
.target(TaskType.EndStageNotification)
.action(endStageNotificationAction);
.action(againRevise);
sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions);
sourceFormingPaymentInstruction(transitions);

View file

@ -22,7 +22,6 @@ import ru.spcex.clearing.session.state.SsnEvent;
import ru.spcex.clearing.session.state.action.CreateSessionAction;
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
import ru.spcex.clearing.session.state.action.EndStageNotificationAction;
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionAssetsAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionReturnMkrAction;
@ -69,7 +68,6 @@ public class FinalSessionStateMachineConfig
private final FormingPaymentInstructionReturnMkrAction formingPaymentInstructionReturnMkrAction;
private final FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction;
private final FinishingSessionAction finishingSessionAction;
private final EndStageNotificationAction endStageNotificationAction;
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
private final DiscardRegistriesAction discardOblAdmStash =
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
@ -97,7 +95,6 @@ public class FinalSessionStateMachineConfig
FormingPaymentInstructionReturnMkrAction formingPaymentInstructionReturnMkrAction,
FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction,
FinishingSessionAction finishingSessionAction,
EndStageNotificationAction endStageNotificationAction,
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
@Qualifier("pauseWorkflowStatusAction") UpdateWorkflowStatusAction pauseWsAction,
@Qualifier("activeWorkflowStatusAction") UpdateWorkflowStatusAction activeWsAction
@ -118,7 +115,6 @@ public class FinalSessionStateMachineConfig
this.formingPaymentInstructionReturnMkrAction = formingPaymentInstructionReturnMkrAction;
this.formingPaymentInstructionAssetsAction = formingPaymentInstructionAssetsAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setPr("3");
//stages settings:
@ -154,11 +150,10 @@ public class FinalSessionStateMachineConfig
TaskType.FormingRegistersOnOS,
TaskType.FormingPaymentInstruction,
TaskType.FinishingSession,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@ -190,12 +185,8 @@ public class FinalSessionStateMachineConfig
.withExternal()
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
.action(formingPaymentInstructionReturnMkrAction)
.action(formingPaymentInstructionAssetsAction)
.and()
.withExternal()
.source(TaskType.FinishingSession)
.target(TaskType.EndStageNotification)
.action(endStageNotificationAction);
.action(formingPaymentInstructionAssetsAction);
sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions);
sourceFormingPaymentInstruction(transitions);

View file

@ -24,7 +24,6 @@ import ru.spcex.clearing.session.state.action.AgainReviseStage3Action;
import ru.spcex.clearing.session.state.action.CreateSessionAction;
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
import ru.spcex.clearing.session.state.action.EndStageNotificationAction;
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionAssetsAction;
import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
@ -69,7 +68,6 @@ public class IntermediateMkrSessionStateMachineConfig
private final FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction;
private final AgainReviseStage3Action againRevise;
private final FinishingSessionAction finishingSessionAction;
private final EndStageNotificationAction endStageNotificationAction;
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
private final DiscardRegistriesAction discardOblAdmStash =
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
@ -95,7 +93,8 @@ public class IntermediateMkrSessionStateMachineConfig
InclusionToPoolAction inclusionToPoolAction,
InspectionObligationsV2Action inspectionObligationsV2Action,
FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction, AgainReviseStage3Action againRevise,
FinishingSessionAction finishingSessionAction, EndStageNotificationAction endStageNotificationAction, SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
FinishingSessionAction finishingSessionAction,
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
@Qualifier("pauseWorkflowStatusAction")
UpdateWorkflowStatusAction pauseWsAction,
@Qualifier("activeWorkflowStatusAction")
@ -116,7 +115,6 @@ public class IntermediateMkrSessionStateMachineConfig
this.inspectionObligationsV2Action = inspectionObligationsV2Action;
this.formingPaymentInstructionAssetsAction = formingPaymentInstructionAssetsAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setPr("4");
//stages settings:
@ -153,12 +151,11 @@ public class IntermediateMkrSessionStateMachineConfig
TaskType.FormingPaymentInstruction,
TaskType.AgainRevise,
TaskType.FinishingSession,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitSdfAfterAgainRevise
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@ -194,12 +191,8 @@ public class IntermediateMkrSessionStateMachineConfig
.source(TaskType.PSEUDO_waitSdfAfterAgainRevise)
.target(TaskType.AgainRevise)
.guard(new SdfGuard(SdfGuardExtractorAfterAgainRevise.instance))
.action(againRevise)
.and()
.withExternal()
.source(TaskType.FinishingSession)
.target(TaskType.EndStageNotification)
.action(endStageNotificationAction);
.action(againRevise);
sourceObligationAdmission(transitions);
sourcePseudoWaitAfterObligationAdmissionError(transitions);
sourceFormingPaymentInstructions(transitions);

View file

@ -23,7 +23,6 @@ import ru.spcex.clearing.session.state.action.AgainReviseStage3Action;
import ru.spcex.clearing.session.state.action.CreateSessionAction;
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
import ru.spcex.clearing.session.state.action.EndStageNotificationAction;
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionAssetsAction;
import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
@ -56,7 +55,6 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
private final FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction;
private final AgainReviseStage3Action againRevise;
private final FinishingSessionAction finishingSessionAction;
private final EndStageNotificationAction endStageNotificationAction;
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
private final DiscardRegistriesAction discardOblAdmStash =
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
@ -80,7 +78,6 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
FormingPaymentInstructionAssetsAction formingPaymentInstructionAssets,
AgainReviseStage3Action againReviseStage3Action,
FinishingSessionAction finishingSession,
EndStageNotificationAction endStageNotification,
@Qualifier("marketCodesForCurr")
Supplier<List<String>> marketCodes,
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
@ -101,7 +98,6 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
this.formingPaymentInstructionAssetsAction = formingPaymentInstructionAssets;
this.againRevise = againReviseStage3Action;
this.finishingSessionAction = finishingSession;
this.endStageNotificationAction = endStageNotification;
this.obligationAdmissionContinueAction = obligationAdmissionContinueAction;
this.finishingSessionAction.setPr("1");
@ -127,11 +123,10 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
TaskType.InspectionObligations,
TaskType.FormingPaymentInstruction,
TaskType.FinishingSession,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.AgainRevise
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@Override
@ -170,12 +165,8 @@ public class PaymSessionStateMachineConfig extends EnumStateMachineConfigurerAda
.source(TaskType.AgainRevise)
.target(TaskType.FinishingSession)
.action(finishingSessionAction)
.guard(reviseSuccessGuard)
.and()
.withExternal()
.source(TaskType.FinishingSession)
.target(TaskType.EndStageNotification)
.action(endStageNotificationAction);
.guard(reviseSuccessGuard);
sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions);
}

View file

@ -25,7 +25,6 @@ import ru.spcex.clearing.session.state.action.AgainReviseStage3Action;
import ru.spcex.clearing.session.state.action.CreateSessionAction;
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
import ru.spcex.clearing.session.state.action.EndStageNotificationAction;
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionSecuritiesAction;
import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
@ -69,7 +68,6 @@ public class PrimaryAuctionB0SessionStateMachineConfig
private final FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction;
private final AgainReviseStage3Action againRevise;
private final FinishingSessionAction finishingSessionAction;
private final EndStageNotificationAction endStageNotificationAction;
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
private final DiscardRegistriesAction discardOblAdmStash =
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
@ -98,7 +96,6 @@ public class PrimaryAuctionB0SessionStateMachineConfig
FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction,
AgainReviseStage3Action againRevise,
FinishingSessionAction finishingSessionAction,
EndStageNotificationAction endStageNotificationAction,
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
@Qualifier("marketCodesForBn") Supplier<List<String>> marketCodes,
@Qualifier("pauseWorkflowStatusAction")
@ -121,7 +118,6 @@ public class PrimaryAuctionB0SessionStateMachineConfig
this.inspectionObligationsV2Action = inspectionObligationsV2Action;
this.formingPaymentInstructionSecuritiesAction = formingPaymentInstructionSecuritiesAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setPr("0");
//stages settings:
@ -151,12 +147,11 @@ public class PrimaryAuctionB0SessionStateMachineConfig
TaskType.FormingPaymentInstruction,
TaskType.AgainRevise,
TaskType.FinishingSession,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitSdfAfterAgainRevise
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@ -192,12 +187,7 @@ public class PrimaryAuctionB0SessionStateMachineConfig
.source(TaskType.PSEUDO_waitSdfAfterAgainRevise)
.target(TaskType.AgainRevise)
.guard(new SdfGuard(SdfGuardExtractorAfterAgainRevise.instance))
.action(againRevise)
.and()
.withExternal()
.source(TaskType.FinishingSession)
.target(TaskType.EndStageNotification)
.action(endStageNotificationAction);
.action(againRevise);
sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions);
sourceFormingPaymentInstruction(transitions);

View file

@ -24,7 +24,6 @@ import ru.spcex.clearing.session.state.SsnEvent;
import ru.spcex.clearing.session.state.action.CreateSessionAction;
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
import ru.spcex.clearing.session.state.action.EndStageNotificationAction;
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionSecuritiesAction;
import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
@ -65,7 +64,6 @@ public class PrimaryAuctionBnSessionStateMachineConfig
private final InspectionObligationsV2Action inspectionObligationsV2Action;
private final FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction;
private final FinishingSessionAction finishingSessionAction;
private final EndStageNotificationAction endStageNotificationAction;
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
private final DiscardRegistriesAction discardOblAdmStash =
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
@ -93,7 +91,6 @@ public class PrimaryAuctionBnSessionStateMachineConfig
InspectionObligationsV2Action inspectionObligationsV2Action,
FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction,
FinishingSessionAction finishingSessionAction,
EndStageNotificationAction endStageNotificationAction,
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
@Qualifier("marketCodesForBn")
Supplier<List<String>> marketCodes,
@ -116,7 +113,6 @@ public class PrimaryAuctionBnSessionStateMachineConfig
this.inspectionObligationsV2Action = inspectionObligationsV2Action;
this.formingPaymentInstructionSecuritiesAction = formingPaymentInstructionSecuritiesAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setPr("0");
//stages settings:
@ -145,11 +141,10 @@ public class PrimaryAuctionBnSessionStateMachineConfig
TaskType.FormingRegistersOnOS,
TaskType.FormingPaymentInstruction,
TaskType.FinishingSession,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@ -179,12 +174,8 @@ public class PrimaryAuctionBnSessionStateMachineConfig
.and()
.withExternal()
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
.action(formingPaymentInstructionSecuritiesAction)
.and()
.withExternal()
.source(TaskType.FinishingSession)
.target(TaskType.EndStageNotification)
.action(endStageNotificationAction);
.action(formingPaymentInstructionSecuritiesAction);
sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions);
sourceFormingPaymentInstruction(transitions);

View file

@ -25,7 +25,6 @@ import ru.spcex.clearing.session.state.action.AgainReviseStage3Action;
import ru.spcex.clearing.session.state.action.CreateSessionAction;
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
import ru.spcex.clearing.session.state.action.EndStageNotificationAction;
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionSecuritiesAction;
import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
@ -69,7 +68,6 @@ public class PrimaryAuctionT0SessionStateMachineConfig
private final FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction;
private final AgainReviseStage3Action againRevise;
private final FinishingSessionAction finishingSessionAction;
private final EndStageNotificationAction endStageNotificationAction;
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
private final DiscardRegistriesAction discardOblAdmStash =
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
@ -98,7 +96,6 @@ public class PrimaryAuctionT0SessionStateMachineConfig
FormingPaymentInstructionSecuritiesAction formingPaymentInstructionSecuritiesAction,
AgainReviseStage3Action againRevise,
FinishingSessionAction finishingSessionAction,
EndStageNotificationAction endStageNotificationAction,
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
@Qualifier("marketCodesForT0Primary")
Supplier<List<String>> marketCodes,
@ -122,7 +119,6 @@ public class PrimaryAuctionT0SessionStateMachineConfig
this.inspectionObligationsV2Action = inspectionObligationsV2Action;
this.formingPaymentInstructionSecuritiesAction = formingPaymentInstructionSecuritiesAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setPr("0");
//stages settings:
@ -152,12 +148,11 @@ public class PrimaryAuctionT0SessionStateMachineConfig
TaskType.FormingPaymentInstruction,
TaskType.AgainRevise,
TaskType.FinishingSession,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitSdfAfterAgainRevise
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@ -193,12 +188,8 @@ public class PrimaryAuctionT0SessionStateMachineConfig
.source(TaskType.PSEUDO_waitSdfAfterAgainRevise)
.target(TaskType.AgainRevise)
.guard(new SdfGuard(SdfGuardExtractorAfterAgainRevise.instance))
.action(againRevise)
.and()
.withExternal()
.source(TaskType.FinishingSession)
.target(TaskType.EndStageNotification)
.action(endStageNotificationAction);
.action(againRevise);
sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions);
sourceFormingPaymentInstruction(transitions);

View file

@ -21,7 +21,6 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.session.stage.TaskType;
import ru.spcex.clearing.session.state.SsnEvent;
import ru.spcex.clearing.session.state.action.CreateSessionAction;
import ru.spcex.clearing.session.state.action.EndStageNotificationAction;
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionDepositReturnAction;
import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
@ -54,7 +53,6 @@ public class ReturnDepositSessionStateMachineConfig
private final InspectionObligationsDepositReturnAction inspectionObligationsDepositReturnAction;
private final FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction;
private final FinishingSessionAction finishingSessionAction;
private final EndStageNotificationAction endStageNotificationAction;
private final SessionType SESSION_TYPE = SessionType.XDEP;
private final Section SECTION = Section.MKR;
@ -64,7 +62,10 @@ public class ReturnDepositSessionStateMachineConfig
Sdf56Action sendSdf56Action,
ReviseStage1Action reviseStage1Action,
InclusionToPoolAction inclusionToPoolAction,
FinishingSessionAction finishingSessionAction, EndStageNotificationAction endStageNotificationAction, @Qualifier("marketCodesForBn") Supplier<List<String>> marketCodes, InspectionObligationsDepositReturnAction inspectionObligationsDepositReturnAction, FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction
FinishingSessionAction finishingSessionAction,
@Qualifier("marketCodesForBn") Supplier<List<String>> marketCodes,
InspectionObligationsDepositReturnAction inspectionObligationsDepositReturnAction,
FormingPaymentInstructionDepositReturnAction formingPaymentInstructionDepositReturnAction
) {
this.sendSdf56Action = sendSdf56Action;
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
@ -73,7 +74,6 @@ public class ReturnDepositSessionStateMachineConfig
this.inspectionObligationsDepositReturnAction = inspectionObligationsDepositReturnAction;
this.formingPaymentInstructionDepositReturnAction = formingPaymentInstructionDepositReturnAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setPr("4");
Imdg<Registry> rgsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
@ -106,10 +106,9 @@ public class ReturnDepositSessionStateMachineConfig
TaskType.FormingRegistersOnOS,
TaskType.FormingPaymentInstruction,
TaskType.FinishingSession,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@Override
@ -130,12 +129,8 @@ public class ReturnDepositSessionStateMachineConfig
.and()
.withExternal()
.source(TaskType.InspectionObligations).target(TaskType.FormingPaymentInstruction)
.action(formingPaymentInstructionDepositReturnAction)
.and()
.withExternal()
.source(TaskType.FinishingSession)
.target(TaskType.EndStageNotification)
.action(endStageNotificationAction);
.action(formingPaymentInstructionDepositReturnAction);
sourceFormingPaymentInstruction(transitions);
sourcePseudoWaitSdfAfterPaymentInstructions(transitions);
}

View file

@ -25,7 +25,6 @@ import ru.spcex.clearing.session.state.action.AgainReviseStage3Action;
import ru.spcex.clearing.session.state.action.CreateSessionAction;
import ru.spcex.clearing.session.state.action.DealsPrepareAction;
import ru.spcex.clearing.session.state.action.DiscardRegistriesAction;
import ru.spcex.clearing.session.state.action.EndStageNotificationAction;
import ru.spcex.clearing.session.state.action.FinishingSessionAction;
import ru.spcex.clearing.session.state.action.FormingPaymentInstructionAssetsAction;
import ru.spcex.clearing.session.state.action.InclusionToPoolAction;
@ -69,7 +68,6 @@ public class SecondaryAuctionT0SessionStateMachineConfig
private final FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction;
private final AgainReviseStage3Action againRevise;
private final FinishingSessionAction finishingSessionAction;
private final EndStageNotificationAction endStageNotificationAction;
private final SaveRegistriesAndContinueAction obligationAdmissionContinueAction;
private final DiscardRegistriesAction discardOblAdmStash =
new DiscardRegistriesAction(DataEnum.obligationAdmissionStashedRgs);
@ -98,7 +96,6 @@ public class SecondaryAuctionT0SessionStateMachineConfig
FormingPaymentInstructionAssetsAction formingPaymentInstructionAssetsAction,
AgainReviseStage3Action againRevise,
FinishingSessionAction finishingSessionAction,
EndStageNotificationAction endStageNotificationAction,
SaveRegistriesAndContinueAction obligationAdmissionContinueAction,
@Qualifier("marketCodesForT0")
Supplier<List<String>> marketCodes,
@ -122,7 +119,6 @@ public class SecondaryAuctionT0SessionStateMachineConfig
this.inspectionObligationsV2Action = inspectionObligationsV2Action;
this.formingPaymentInstructionAssetsAction = formingPaymentInstructionAssetsAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setPr("1");
//stages settings:
@ -152,12 +148,11 @@ public class SecondaryAuctionT0SessionStateMachineConfig
TaskType.FormingPaymentInstruction,
TaskType.AgainRevise,
TaskType.FinishingSession,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.PSEUDO_waitSdfAfterAgainRevise
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@ -193,12 +188,8 @@ public class SecondaryAuctionT0SessionStateMachineConfig
.source(TaskType.PSEUDO_waitSdfAfterAgainRevise)
.target(TaskType.AgainRevise)
.guard(new SdfGuard(SdfGuardExtractorAfterAgainRevise.instance))
.action(againRevise)
.and()
.withExternal()
.source(TaskType.FinishingSession)
.target(TaskType.EndStageNotification)
.action(endStageNotificationAction);
.action(againRevise);
sourceObligationAdmission(transitions);
sourcePseudoAfterOAError(transitions);
sourceFormingPaymentInstruction(transitions);

View file

@ -156,13 +156,12 @@ public class UnitedSessionStateMachineConfig
TaskType.InspectionObligations,
TaskType.FormingPaymentInstruction,
TaskType.FinishingSession,
TaskType.EndStageNotification,
TaskType.PSEUDO_waitSdfAfterPaymentInstructions,
TaskType.PSEUDO_waitAfterObligationAdmissionError,
TaskType.AgainRevise,
TaskType.PSEUDO_waitSdfAfterAgainRevise
)))
.end(TaskType.EndStageNotification);
.end(TaskType.FinishingSession);
}
@Override

View file

@ -1,122 +0,0 @@
package ru.spcex.clearing.session.state.action;
import java.time.Instant;
import java.util.Collection;
import java.util.Optional;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.statemachine.StateContext;
import org.springframework.stereotype.Service;
import ru.clearing.classes.statics.data.misc.Session;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.spcex.clearing.component.GroupRgsKey;
import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.SdfClearingRequest;
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
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.RegistryStatus;
import ru.spcex.platform.enumeration.Section;
import ru.spcex.platform.enumeration.SessionStatus;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
@Service
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class EndStageNotificationAction extends AbstractSessionActionForOkErrorHandling {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<Registry> registryImdg;
private final Imdg<Session> sessionImdg;
private final KafkaSender kafkaSender;
private final IMessageResolver msgResolver;
@Autowired
public EndStageNotificationAction(ImdgProvider imdgProvider, KafkaSender kafkaSender, IMessageResolver msgResolver) {
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
this.kafkaSender = kafkaSender;
this.msgResolver = msgResolver;
}
@Override
protected void actualExecute(StateContext<TaskType, SsnEvent> ctx) {
Long sessionId = ctx.getExtendedState().get(DataEnum.sessionId, Long.class);
Section section = ctx.getExtendedState().get(DataEnum.section, Section.class);
// 1. Изменить статус
Session theSession = sessionImdg.getSingleObjectByID(sessionId);
if (theSession == null) {
log.warn("Session {} not found", sessionId);
} else {
log.info("Finish status for session {}", sessionId);
theSession.setUpdated(Instant.now());
theSession.setSessionStatus(SessionStatus.CLOS.getKey());
sessionImdg.update(theSession);
log.trace("Session {} was updated", theSession.getId());
}
Collection<Registry> forRegistries = selectRegistry();
Collection<GroupRgsKey> groups = forRegistries.stream()
.map(registry -> new GroupRgsKey(registry.getGroupId(), registry.getMarket()))
.distinct().collect(Collectors.toList());
log.debug("Sending notifications for {} groups ({} registers) on section {}",
groups, forRegistries.size(), section);
for (GroupRgsKey groupKey : groups) {
log.trace("For registry group/market {}/{} send notification",
groupKey.groupId(), groupKey.market());
Optional<EnumMessage> sResult;
if (Section.FOND.equals(section)) {
sResult = notificationDF14(groupKey.groupId());
} else if (Section.MKR.equals(section)) {
sResult = notificationDF05(groupKey.groupId());
} else {
throw new IllegalArgumentException("Unsupported section " + section);
}
sResult.ifPresent(enumMessage ->
log.error("When sending groupId={} has error: {}", groupKey.groupId(), msgResolver.resolve(enumMessage)));
}
}
protected Collection<Registry> selectRegistry() {
String registrySQL = "registryStatus='" + RegistryStatus.OK.getKey() + "'";
Collection<Registry> result = registryImdg.getCollectionObjectsBySQL(registrySQL);
log.trace("Selected {} registry's by sql: {}", result.size(), registrySQL);
return result;
}
protected Optional<EnumMessage> notificationDF14(Long groupId) {
SdfClearingRequest sdf14Request = new SdfClearingRequest();
sdf14Request.setGroupId(groupId);
Long msgKey = kafkaSender.sendRequestToQueue(Consts.SDF14_PROCESS, sdf14Request);
if (msgKey == null) {
log.error("failed to put SDF14 request to kafka queue");
return Optional.of(new EnumMessage(SessionGeneralError));
}
return Optional.empty();
}
protected Optional<EnumMessage> notificationDF05(Long groupId) {
SdfClearingRequest sdf05Request = new SdfClearingRequest();
sdf05Request.setGroupId(groupId);
Long msgKey = kafkaSender.sendRequestToQueue(Consts.SDF05_PROCESS, sdf05Request);
if (msgKey == null) {
log.error("failed to put SDF05 request to kafka queue");
return Optional.of(new EnumMessage(SessionGeneralError));
}
return Optional.empty();
}
}