PAYM session revise fix

This commit is contained in:
ialbert 2024-10-02 15:25:26 +03:00
parent 8e0c70cfd0
commit e729c698f6

View file

@ -22,7 +22,6 @@ import ru.spcex.clearing.session.stage.impl.FormingPaymentInstructionAssets;
import ru.spcex.clearing.session.stage.impl.InclusionObligations;
import ru.spcex.clearing.session.stage.impl.InspectionObligationsV2;
import ru.spcex.clearing.session.stage.impl.ObligationAdmission;
import ru.spcex.clearing.session.stage.impl.PaymentInfo;
import ru.spcex.clearing.session.stage.impl.RequirementsAndObligationCreation;
import ru.spcex.clearing.session.stage.monitor.SessionMonitor;
import ru.spcex.clearing.session.stage.monitor.SessionMonitorFactory;
@ -58,7 +57,7 @@ public class PaymSession extends AbstractSession implements InitializingBean {
private final Imdg<ExecutionCurrency> executionCurrencyImdg;
private final Supplier<List<String>> marketCodes;
private SessionMonitor afterPaymentsReviseMonitor;
private SessionMonitor afterReviseErrorMonitor;
public PaymSession(
@ -142,22 +141,12 @@ public class PaymSession extends AbstractSession implements InitializingBean {
runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations);
}
//stage 7
StageResult<PaymentInfo> paymentResult = null;
{
FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload();
payload.setSessionId(currSession.getId());
paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionAssets);
}
if (paymentResult.getStageResult().getPaymentInstructions().isEmpty()) {
log.info("no payment instructions were created");
finishPart();
} else {
runStage(TaskType.FormingPaymentInstruction, balanceRevise);
this.afterPaymentsReviseMonitor = SessionMonitorFactory.waitRevise();
log.info("created {} PaymentInstructions, waiting for {}",
paymentResult.getStageResult().getPaymentInstructions().size(),
this.afterPaymentsReviseMonitor.allConditions());
runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionAssets);
}
finishPart();
} catch (StageException e) {
//already logged
}
@ -170,12 +159,13 @@ public class PaymSession extends AbstractSession implements InitializingBean {
}
log.info("session is running, stage {}, monitors: {}",
currStage.get(),
logMonitors(afterPaymentsReviseMonitor));
if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) {
afterPaymentsReviseMonitor = null;
logMonitors(afterReviseErrorMonitor));
if (afterReviseErrorMonitor != null && isMonitorPassed(afterReviseErrorMonitor, req.getRequestPayload())) {
afterReviseErrorMonitor = null;
finishPart();
return;
}
} catch (StageException e) {
//already logged
}
@ -185,7 +175,14 @@ public class PaymSession extends AbstractSession implements InitializingBean {
try {
//stage 9 continue revision
{
runStage(TaskType.ContinueRevise, currSession.getId(), balanceRevise, false);
StageResult<Object> reviseRes = runStage(TaskType.AgainRevise, currSession.getId(), balanceRevise, false);
if (!reviseRes.isSuccess()) {
this.afterReviseErrorMonitor = SessionMonitorFactory.waitReviseError(section());
log.warn("{} stage error, created monitor for {}",
TaskType.AgainRevise,
afterReviseErrorMonitor.allConditions());
return;
}
}
//stage 10
{