From 7522a8f899ee142c2817e7ad6ee02d0e4a3db718 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Sun, 9 Jul 2023 14:24:11 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-411 // http://jira.mfd.msk:8088/browse/CLS-410 --- .../stage/PrimaryAuctionB0Session.java | 20 ++++++++++++----- .../stage/PrimaryAuctionBnSession.java | 22 ++++++++++++++----- .../stage/PrimaryAuctionT0Session.java | 21 +++++++++++++----- .../stage/impl/FormingPaymentInstruction.java | 20 +++++++---------- 4 files changed, 53 insertions(+), 30 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java index 554198baf..64b5ef85a 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionB0Session.java @@ -23,7 +23,6 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.utils.enumeration.IMessageResolver; import java.time.LocalDate; -import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.function.Supplier; @@ -39,7 +38,8 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali private final InclusionObligations inclusionObligations; private final InspectionObligations inspectionObligations; private final FormingRegistersOnOS formingRegistersOnOS; - private final FormingPaymentInstructionSecondaryT0 formingPaymentInstruction; + private final FormingPaymentInstruction formingPaymentInstruction; + private final FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr; private final UnlockResources unlockResources; private final FinishingSession finishingSession; private final EndStageNotification endStageNotification; @@ -56,7 +56,8 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali ObligationAdmission obligationsAdmission, InclusionObligations inclusionObligations, FormingRegistersOnOS formingRegistersOnOS, - FormingPaymentInstructionSecondaryT0 formingPaymentInstruction, + FormingPaymentInstruction formingPaymentInstruction, + FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr, UnlockResources unlockResources, FinishingSession finishingSession, EndStageNotification endStageNotification, @@ -76,6 +77,7 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali this.endStageNotification = endStageNotification; this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.inspectionObligations = inspectionObligations; + this.formingPaymentInstructionDealsFinalMkr = formingPaymentInstructionDealsFinalMkr; this.marketCodes = marketCodes; } @@ -152,15 +154,21 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali payload.setSessionId(currSession.getId()); runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection } + StageResult> returnsPayment = null; + { + FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); + payload.setSessionId(currSession.getId()); + //stage 7 + returnsPayment = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); + } //stage 7 StageResult> paymentResult = null; { FormingPaymentInstructionDealsMkrPayload payload = new FormingPaymentInstructionDealsMkrPayload(); payload.setSessionId(currSession.getId()); - payload.setPaymentInstructionReturns(new ArrayList<>()); + payload.setPaymentInstructionReturns(returnsPayment.getStageResult()); - //stage 7 - paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); + paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionDealsFinalMkr); } if (paymentResult != null && paymentResult.getStageResult().isEmpty()) { runStage(TaskType.FormingPaymentInstruction, balanceRevise); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java index 9a9caa501..5d1ffa0a9 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionBnSession.java @@ -23,7 +23,6 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.utils.enumeration.IMessageResolver; import java.time.LocalDate; -import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.function.Supplier; @@ -39,7 +38,8 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali private final InclusionObligations inclusionObligations; private final InspectionObligations inspectionObligations; private final FormingRegistersOnOS formingRegistersOnOS; - private final FormingPaymentInstructionSecondaryT0 formingPaymentInstruction; + private final FormingPaymentInstruction formingPaymentInstruction; + private final FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr; private final UnlockResources unlockResources; private final FinishingSession finishingSession; private final EndStageNotification endStageNotification; @@ -56,7 +56,8 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali ObligationAdmission obligationsAdmission, InclusionObligations inclusionObligations, FormingRegistersOnOS formingRegistersOnOS, - FormingPaymentInstructionSecondaryT0 formingPaymentInstruction, + FormingPaymentInstruction formingPaymentInstruction, + FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr, UnlockResources unlockResources, FinishingSession finishingSession, EndStageNotification endStageNotification, @@ -76,6 +77,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali this.endStageNotification = endStageNotification; this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.inspectionObligations = inspectionObligations; + this.formingPaymentInstructionDealsFinalMkr = formingPaymentInstructionDealsFinalMkr; this.marketCodes = marketCodes; } @@ -152,13 +154,21 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali payload.setSessionId(currSession.getId()); runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection } + StageResult> returnsPayment = null; + { + FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); + payload.setSessionId(currSession.getId()); + //stage 7 + returnsPayment = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); + } + //stage 7 StageResult> paymentResult = null; { FormingPaymentInstructionDealsMkrPayload payload = new FormingPaymentInstructionDealsMkrPayload(); payload.setSessionId(currSession.getId()); - payload.setPaymentInstructionReturns(new ArrayList<>()); - //stage 7 - paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); + payload.setPaymentInstructionReturns(returnsPayment.getStageResult()); + + paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionDealsFinalMkr); } if (paymentResult != null && paymentResult.getStageResult().isEmpty()) { runStage(TaskType.FormingPaymentInstruction, balanceRevise); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java index 0ae994249..150a2c00a 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/PrimaryAuctionT0Session.java @@ -23,7 +23,6 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.utils.enumeration.IMessageResolver; import java.time.LocalDate; -import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.function.Supplier; @@ -39,7 +38,8 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali private final InclusionObligations inclusionObligations; private final InspectionObligations inspectionObligations; private final FormingRegistersOnOS formingRegistersOnOS; - private final FormingPaymentInstructionSecondaryT0 formingPaymentInstruction; + private final FormingPaymentInstruction formingPaymentInstruction; + private final FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr; private final UnlockResources unlockResources; private final FinishingSession finishingSession; private final EndStageNotification endStageNotification; @@ -55,7 +55,8 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali ObligationAdmission obligationsAdmission, InclusionObligations inclusionObligations, FormingRegistersOnOS formingRegistersOnOS, - FormingPaymentInstructionSecondaryT0 formingPaymentInstruction, + FormingPaymentInstruction formingPaymentInstruction, + FormingPaymentInstructionDealsFinalMkr formingPaymentInstructionDealsFinalMkr, UnlockResources unlockResources, FinishingSession finishingSession, EndStageNotification endStageNotification, @@ -75,6 +76,7 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali this.endStageNotification = endStageNotification; this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.inspectionObligations = inspectionObligations; + this.formingPaymentInstructionDealsFinalMkr = formingPaymentInstructionDealsFinalMkr; this.marketCodes = marketCodes; } @@ -151,14 +153,21 @@ public class PrimaryAuctionT0Session extends AbstractSession implements Initiali payload.setSessionId(currSession.getId()); runStage(TaskType.FormingRegistersOnOS, payload, formingRegistersOnOS); //returns Collection } + StageResult> returnsPayment = null; + { + FormingPaymentInstructionPayload payload = new FormingPaymentInstructionPayload(); + payload.setSessionId(currSession.getId()); + //stage 7 + returnsPayment = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); + } //stage 7 StageResult> paymentResult = null; { FormingPaymentInstructionDealsMkrPayload payload = new FormingPaymentInstructionDealsMkrPayload(); payload.setSessionId(currSession.getId()); - payload.setPaymentInstructionReturns(new ArrayList<>()); - //stage 7 - paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstruction); + payload.setPaymentInstructionReturns(returnsPayment.getStageResult()); + + paymentResult = runStage(TaskType.FormingPaymentInstruction, payload, formingPaymentInstructionDealsFinalMkr); } if (paymentResult != null && paymentResult.getStageResult().isEmpty()) { runStage(TaskType.FormingPaymentInstruction, balanceRevise); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java index e242fb5ee..dfaed30f8 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstruction.java @@ -42,6 +42,9 @@ import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; +import static ru.spcex.platform.enumeration.RegistryTradingParams.CS_T; +import static ru.spcex.platform.enumeration.RegistryTradingParams.LS_T; + @Service @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class FormingPaymentInstruction implements ISessionStage { @@ -91,16 +94,7 @@ public class FormingPaymentInstruction implements ISessionStage { private StageResult formingPaymentInstruction(Long sessionId) { - RegistryTradingParams registryTradingParamsC_M_T = new RegistryTradingParams(RegistryDesignation.C, - RegistryInstrumentType.M, null, RegistryUnit.T); - RegistryTradingParams registryTradingParamsL_S_T = new RegistryTradingParams(RegistryDesignation.L, - RegistryInstrumentType.M, null, RegistryUnit.T); - RegistryTradingParams registryTradingParamsC_S_T = new RegistryTradingParams(RegistryDesignation.C, - RegistryInstrumentType.S, null, RegistryUnit.T); - RegistryTradingParams registryTradingParamsL_M_T = new RegistryTradingParams(RegistryDesignation.L, - RegistryInstrumentType.S, null, RegistryUnit.T); - RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParamsL_M_T, - registryTradingParamsC_M_T, registryTradingParamsL_S_T, registryTradingParamsC_S_T); + RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(LS_T, CS_T); String registryCodeCondition = registryCodeSqlBuilder.build(); Collection obligations = registryImdg.getCollectionObjectsBySQL(registryCodeCondition); @@ -113,6 +107,7 @@ public class FormingPaymentInstruction implements ISessionStage { IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) .toList(); + log.debug("Size obligationsByMoney: {}; expected 0", obligationsByMoney.size()); for (Registry obligationByMoney : obligationsByMoney) { String sql = String.format("tradingClearingRegistryId = %s and companyId = %s", obligationByMoney.getTradingClearingRegistryId(), obligationByMoney.getCompanyId()); @@ -153,6 +148,7 @@ public class FormingPaymentInstruction implements ISessionStage { IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) .toList(); + log.debug("Size requirementsByIssue: {};", requirementsByIssue.size()); for (Registry requirementByIssue : requirementsByIssue) { String sql = String.format("tradingClearingRegistryId = %s and companyId = %s", requirementByIssue.getTradingClearingRegistryId(), requirementByIssue.getCompanyId()); @@ -180,6 +176,7 @@ public class FormingPaymentInstruction implements ISessionStage { IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit()))) .toList(); + log.debug("Size requirementsByMoney: {}; expected 0", requirementsByMoney.size()); for (Registry requirementByMoney : requirementsByMoney) { String sql = String.format("tradingClearingRegistryId = %s and companyId = %s", requirementByMoney.getTradingClearingRegistryId(), requirementByMoney.getCompanyId()); @@ -271,8 +268,7 @@ public class FormingPaymentInstruction implements ISessionStage { }); } - sendSdfs(formedPaymentInstructions); - + log.debug("Count formed paymentInstructions for security(бумаги): {}", formedPaymentInstructions.size()); StageResult> stageResult = new StageResult(null, true); stageResult.setStageResult(formedPaymentInstructions); return stageResult;