get section and sessionType from machine context

This commit is contained in:
etreschenkov 2025-07-02 19:16:10 +03:00
parent 66be672adb
commit ec012740cb
8 changed files with 13 additions and 76 deletions

View file

@ -75,7 +75,6 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
);
private final Guard<TaskType, SsnEvent> reviseSuccessGuard = guardCheckCtxForFlag(DataEnum.againReviseSuccess);
private final SessionType SESSION_TYPE = SessionType.MEDM;
private final Section SECTION = Section.MKR;
public CurrencySessionStateMachineConfig(ImdgProvider imdgProvider,
Sdf56Action sendSdf56Action,
@ -107,16 +106,12 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
this.finishingSessionAction = finishingSession;
this.endStageNotificationAction = endStageNotification;
this.obligationAdmissionContinueAction = obligationAdmissionContinueAction;
this.finishingSessionAction.setSessionType(SESSION_TYPE);
this.finishingSessionAction.setSection(SECTION);
this.finishingSessionAction.setPr("1");
dealsPrepareAction.searchForExecutions(ExecutionType.ExecutionCurrency);
ImdgPredicateBuilder execFondPb = executionCurrencyImdg.predicateBuilder();
dealsPrepareAction.addExecutionCurrencyCondition(execFondPb.regex("settlementCode", "^T0.*$"));
dealsPrepareAction.addExecutionCurrencyCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0])));
this.inspectionObligationsV2Action.setSessionType(SESSION_TYPE);
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
}
@ -125,9 +120,7 @@ public class CurrencySessionStateMachineConfig extends EnumStateMachineConfigure
states
.withStates()
.initial(TaskType.StartRevise, chain(
new CreateSessionAction(sessionImdg)
.sessionType(SESSION_TYPE)
.section(SECTION),
new CreateSessionAction(sessionImdg, SessionType.MEDM, Section.MKR),
sendSdf56Action))
.states(new HashSet<>(Arrays.asList(
TaskType.StartRevise,

View file

@ -78,7 +78,6 @@ public class FinalSessionStateMachineConfig
);
private final SessionType SESSION_TYPE = SessionType.FINL;
private final Section SECTION = Section.MKR;
@Autowired
@ -112,8 +111,6 @@ public class FinalSessionStateMachineConfig
this.formingPaymentInstructionAssetsAction = formingPaymentInstructionAssetsAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setSessionType(SESSION_TYPE);
this.finishingSessionAction.setSection(SECTION);
this.finishingSessionAction.setPr("3");
//stages settings:
@ -128,8 +125,6 @@ public class FinalSessionStateMachineConfig
rgsPrctBuilder.lessEqual("valueDate", LocalDate.now())
)
);
this.inspOblDepositReturnAction.setSessionType(SESSION_TYPE);
this.inspectionObligationsV2Action.setSessionType(SESSION_TYPE);
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
}
@ -138,9 +133,7 @@ public class FinalSessionStateMachineConfig
states
.withStates()
.initial(TaskType.StartRevise, chain(
new CreateSessionAction(sessionImdg)
.sessionType(SESSION_TYPE)
.section(SECTION),
new CreateSessionAction(sessionImdg, SessionType.FINL, Section.MKR),
sendSdf56Action))
.states(new HashSet<>(Arrays.asList(
TaskType.StartRevise,

View file

@ -78,7 +78,6 @@ public class IntermediateMkrSessionStateMachineConfig
private final Guard<TaskType, SsnEvent> reviseSuccessGuard = guardCheckCtxForFlag(DataEnum.againReviseSuccess);
private final SessionType SESSION_TYPE = SessionType.MEDM;
private final Section SECTION = Section.MKR;
@Autowired
@ -109,8 +108,6 @@ public class IntermediateMkrSessionStateMachineConfig
this.formingPaymentInstructionAssetsAction = formingPaymentInstructionAssetsAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setSessionType(SESSION_TYPE);
this.finishingSessionAction.setSection(SECTION);
this.finishingSessionAction.setPr("4");
//stages settings:
@ -125,7 +122,6 @@ public class IntermediateMkrSessionStateMachineConfig
rgsPrctBuilder.equals("valueDate", LocalDate.now())
)
);
this.inspectionObligationsV2Action.setSessionType(SESSION_TYPE);
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
}
@ -134,9 +130,7 @@ public class IntermediateMkrSessionStateMachineConfig
states
.withStates()
.initial(TaskType.StartRevise, chain(
new CreateSessionAction(sessionImdg)
.sessionType(SESSION_TYPE)
.section(SECTION),
new CreateSessionAction(sessionImdg, SessionType.MEDM, Section.MKR),
sendSdf56Action))
.states(new HashSet<>(Arrays.asList(
TaskType.StartRevise,

View file

@ -78,7 +78,6 @@ public class PrimaryAuctionB0SessionStateMachineConfig
private final Guard<TaskType, SsnEvent> reviseSuccessGuard = guardCheckCtxForFlag(DataEnum.againReviseSuccess);
private final SessionType SESSION_TYPE = SessionType.IPO0;
private final Section SECTION = Section.FOND;
@Autowired
@ -110,8 +109,6 @@ public class PrimaryAuctionB0SessionStateMachineConfig
this.formingPaymentInstructionSecuritiesAction = formingPaymentInstructionSecuritiesAction;
this.finishingSessionAction = finishingSessionAction;
this.endStageNotificationAction = endStageNotificationAction;
this.finishingSessionAction.setSessionType(SESSION_TYPE);
this.finishingSessionAction.setSection(SECTION);
this.finishingSessionAction.setPr("0");
//stages settings:
@ -119,8 +116,6 @@ public class PrimaryAuctionB0SessionStateMachineConfig
ImdgPredicateBuilder execFondPb = executionFondImdg.predicateBuilder();
dealsPrepareAction.addExecutionFondCondition(execFondPb.equals("settlementCode", "B0"));
dealsPrepareAction.addExecutionFondCondition(execFondPb.in("market", marketCodes.get().toArray(new String[0])));
this.inspectionObligationsV2Action.setSessionType(SESSION_TYPE);
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
}
@ -129,9 +124,7 @@ public class PrimaryAuctionB0SessionStateMachineConfig
states
.withStates()
.initial(TaskType.StartRevise, chain(
new CreateSessionAction(sessionImdg)
.sessionType(SESSION_TYPE)
.section(SECTION),
new CreateSessionAction(sessionImdg, SessionType.IPO0, Section.FOND),
sendSdf56Action))
.states(new HashSet<>(Arrays.asList(
TaskType.StartRevise,

View file

@ -17,21 +17,15 @@ import ru.spcex.platform.imdg.api.Imdg;
public class CreateSessionAction extends AbstractSessionActionForOkErrorHandling {
private final Imdg<Session> sessionImdg;
private final Logger log = LoggerFactory.getLogger(CreateSessionAction.class);
private SessionType sessionType;
private Section section;
private final SessionType sessionType;
private final Section section;
public CreateSessionAction(Imdg<Session> sessionImdg) {
public CreateSessionAction(Imdg<Session> sessionImdg,
SessionType sessionType,
Section section) {
this.sessionImdg = sessionImdg;
}
public CreateSessionAction sessionType(SessionType sessionType) {
this.sessionType = sessionType;
return this;
}
public CreateSessionAction section(Section section) {
this.section = section;
return this;
}
@Override

View file

@ -25,7 +25,6 @@ import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
import ru.clearing.classes.statics.data.execution.ExecutionFond;
import ru.clearing.classes.statics.data.misc.Session;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.clearing.classes.statics.data.sdf.SDf05;
import ru.spcex.clearing.component.GroupRgsKey;
import static ru.spcex.clearing.error.ClearingErrorInternal.SessionGeneralError;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
@ -61,57 +60,44 @@ import ru.spcex.platform.utils.enumeration.IMessageResolver;
public class FinishingSessionAction extends AbstractSessionActionForOkErrorHandling {
private final Logger log = LoggerFactory.getLogger(getClass());
private final ImdgProvider imdgProvider;
private final Imdg<Registry> registryImdg;
private final Imdg<ExecutionFond> executionFondImdg;
private final Imdg<ExecutionDeposit> executionDepositImdg;
private final Imdg<ExecutionCurrency> executionCurrencyImdg;
private final Imdg<Session> sessionImdg;
private final Imdg<SDf05> sDf05Imdg;
private final KafkaSender kafkaSender;
private final IMessageResolver msgResolver;
private final Sdf05Sender sdf05Sender;
private final Sdf14Sender sdf14Sender;
private SessionType sessionType;
private Section section;
private String pr;
@Autowired
public FinishingSessionAction(ImdgProvider imdgProvider,
KafkaSender kafkaSender,
IMessageResolver msgResolver,
Sdf05Sender sdf05Sender,
Sdf14Sender sdf14Sender) {
this.imdgProvider = imdgProvider;
this.sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
this.executionDepositImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class);
this.executionCurrencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class);
this.sDf05Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf05, SDf05.class);
this.kafkaSender = kafkaSender;
this.msgResolver = msgResolver;
this.sdf05Sender = sdf05Sender;
this.sdf14Sender = sdf14Sender;
}
public void setSection(Section section) {
this.section = section;
}
public void setPr(String pr) {
this.pr = pr;
}
public void setSessionType(SessionType sessionType) {
this.sessionType = sessionType;
}
@Override
protected void actualExecute(StateContext<TaskType, SsnEvent> ctx) {
Long sessionId = ctx.getExtendedState().get(DataEnum.sessionId, Long.class);
this.sessionType = ctx.getExtendedState().get(DataEnum.sessionType, SessionType.class);
Section section = ctx.getExtendedState().get(DataEnum.section, Section.class);
if (pr == null) {
throw new IllegalStateException("'pr' not set up");
}

View file

@ -75,6 +75,7 @@ public class InspectionObligationsDepositReturnAction extends AbstractSessionAct
@Override
protected void actualExecute(StateContext<TaskType, SsnEvent> ctx) {
Long sessionId = ctx.getExtendedState().get(DataEnum.sessionId, Long.class);
this.sessionType = ctx.getExtendedState().get(DataEnum.sessionType, SessionType.class);
String sqlCondition = String.format("(%s) and registryStatus = '%s'",
RegistryCodeSqlBuilder.getInstance(OS_T, OM_T, TS_T, TM_T).build(),
RegistryStatus.POOL.getKey());
@ -300,8 +301,4 @@ public class InspectionObligationsDepositReturnAction extends AbstractSessionAct
.formatted(omtRgs.getCounterPartyId(), ClearingCategory.V.getKey()));
return ctgr != null;
}
public void setSessionType(SessionType sessionType) {
this.sessionType = sessionType;
}
}

View file

@ -30,7 +30,6 @@ import ru.spcex.clearing.service.cash.impl.RegistryCashA__F;
import ru.spcex.clearing.service.cash.impl.RegistryCashAssetCash;
import ru.spcex.clearing.service.cash.impl.RegistryCashD___;
import ru.spcex.clearing.service.integration.GatewayRequestCreator;
import ru.spcex.clearing.service.registry.AssetTBFProcessing;
import ru.spcex.clearing.service.registry.AssetTBFProcessingCashing;
import ru.spcex.clearing.service.registry.RegistryManager;
import ru.spcex.clearing.service.schedule.TradingTimeService;
@ -66,11 +65,8 @@ public class InspectionObligationsV2Action extends AbstractSessionActionForOkErr
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<Registry> registryImdg;
private final ImdgId idGen;
private final RegistryManager registryManager;
private final IMessageResolver msgResolver = new SimpleMessageResolver();
private SessionType sessionType;
private Section section;
private final AssetTBFProcessing assets;
private final AssetTBFProcessingCashing assetsCashing;
private final GatewayRequester gateway;
private final TradingTimeService tradingTimeService;
@ -78,21 +74,16 @@ public class InspectionObligationsV2Action extends AbstractSessionActionForOkErr
@Autowired
public InspectionObligationsV2Action(ImdgProvider imdgProvider,
RegistryManager registryManager,
AssetTBFProcessing assets,
GatewayRequester gateway,
PlanBalanceCalc planBalanceCalc
) {
this.registryImdg = imdgProvider.getCashingImdg(IMDGDistributedNames.Map_Registry, Registry.class, null);
this.idGen = imdgProvider.getImdgIdGenerator();
this.registryManager = registryManager;
this.assets = assets;
this.gateway = gateway;
this.planBalanceCalc = planBalanceCalc;
this.gateway.setName("InspectionObligations|OM*T");
this.tradingTimeService = new TradingTimeService(imdgProvider);
this.assetsCashing = new AssetTBFProcessingCashing(imdgProvider, d___Cash);
}
private final RegistryCashAssetCash a___Cash = new RegistryCashAssetCash("[all assets]");
@ -100,15 +91,11 @@ public class InspectionObligationsV2Action extends AbstractSessionActionForOkErr
private final RegistryCashD___ d___Cash = new RegistryCashD___("[D__I/V]");
public void setSessionType(SessionType sessionType) {
this.sessionType = sessionType;
}
@Override
protected void actualExecute(StateContext<TaskType, SsnEvent> ctx) {
try {
Long sessionId = ctx.getExtendedState().get(DataEnum.sessionId, Long.class);
this.sessionType = ctx.getExtendedState().get(DataEnum.sessionType, SessionType.class);
inspectionObligations(sessionId);
} finally {
a___Cash.clear();