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.InclusionObligations;
import ru.spcex.clearing.session.stage.impl.InspectionObligationsV2; import ru.spcex.clearing.session.stage.impl.InspectionObligationsV2;
import ru.spcex.clearing.session.stage.impl.ObligationAdmission; 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.impl.RequirementsAndObligationCreation;
import ru.spcex.clearing.session.stage.monitor.SessionMonitor; import ru.spcex.clearing.session.stage.monitor.SessionMonitor;
import ru.spcex.clearing.session.stage.monitor.SessionMonitorFactory; 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 Imdg<ExecutionCurrency> executionCurrencyImdg;
private final Supplier<List<String>> marketCodes; private final Supplier<List<String>> marketCodes;
private SessionMonitor afterPaymentsReviseMonitor; private SessionMonitor afterReviseErrorMonitor;
public PaymSession( public PaymSession(
@ -142,22 +141,12 @@ public class PaymSession extends AbstractSession implements InitializingBean {
runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations); runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations);
} }
//stage 7 //stage 7
StageResult<PaymentInfo> paymentResult = null;
{ {
FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload();
payload.setSessionId(currSession.getId()); payload.setSessionId(currSession.getId());
paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionAssets); 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());
} }
finishPart();
} catch (StageException e) { } catch (StageException e) {
//already logged //already logged
} }
@ -170,12 +159,13 @@ public class PaymSession extends AbstractSession implements InitializingBean {
} }
log.info("session is running, stage {}, monitors: {}", log.info("session is running, stage {}, monitors: {}",
currStage.get(), currStage.get(),
logMonitors(afterPaymentsReviseMonitor)); logMonitors(afterReviseErrorMonitor));
if (afterPaymentsReviseMonitor != null && isMonitorPassed(afterPaymentsReviseMonitor, req.getRequestPayload())) { if (afterReviseErrorMonitor != null && isMonitorPassed(afterReviseErrorMonitor, req.getRequestPayload())) {
afterPaymentsReviseMonitor = null; afterReviseErrorMonitor = null;
finishPart(); finishPart();
return; return;
} }
} catch (StageException e) { } catch (StageException e) {
//already logged //already logged
} }
@ -185,7 +175,14 @@ public class PaymSession extends AbstractSession implements InitializingBean {
try { try {
//stage 9 continue revision //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 //stage 10
{ {