diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionFondComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionFondComponent.java index b6abd2ca6..79dd42b20 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionFondComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionFondComponent.java @@ -23,7 +23,10 @@ import ru.spcex.clearing.platform.messaging.domain.cud.registry.DealRegisterNewR import ru.spcex.clearing.platform.messaging.domain.cud.registry.ExecutionType; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.service.validation.ValidationStored; -import ru.spcex.platform.enumeration.*; +import ru.spcex.platform.enumeration.CurrencyCode; +import ru.spcex.platform.enumeration.MoneyFlowSide; +import ru.spcex.platform.enumeration.Section; +import ru.spcex.platform.enumeration.Side; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.*; @@ -47,6 +50,7 @@ public class ExecutionFondComponent { private final Imdg executionFondImdg; private final Imdg listingImdg; private final Imdg clientCodeImdg; + private final Imdg marketImdg; //fixme ждать ТЗ Long tradeNum; @@ -64,6 +68,7 @@ public class ExecutionFondComponent { this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class); this.clientCodeImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClientCode, ClientCode.class); + this.marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, ru.clearing.classes.statics.data.misc.Market.class); this.stradesValidator = stradesValidator; this.kafkaSender = kafkaSender; @@ -173,7 +178,11 @@ public class ExecutionFondComponent { eFond.setExchangeExecutionId(sTrades.getTradeNum()); eFond.setExchangeExecutionTime(sTrades.getTradeDateTime()); eFond.setTradingClearingRegistryId(rgstr.getId()); - eFond.setMarket(Market.fond.getKey()); + + //todo можем ли просто переложить sTrades.getClassCode() или все такие искать, одно и тоже же + ru.clearing.classes.statics.data.misc.Market market = marketImdg.getSingleObjectBySQL("code = '%s'".formatted(sTrades.getClassCode())); + eFond.setMarket(sTrades.getClassCode()); + eFond.setPrice(sTrades.getPrice()); eFond.setLots(sTrades.getQty()); eFond.setQuantity(sTrades.getQtyPcs()); 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 543bb940e..758bac3ae 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 @@ -99,7 +99,7 @@ public class PrimaryAuctionB0Session extends AbstractSession implements Initiali { DealsPreparePayload payload = new DealsPreparePayload(); payload.setSessionId(currSession.getId()); - dealsPreparationResult = runStage(TaskType.DealsPrepare , payload, dealsPrepare); + dealsPreparationResult = runStage(TaskType.DealsPrepare, payload, dealsPrepare); } //stage 2 runStage(TaskType.RequirementsAndObligationsCreate, dealsPreparationResult.getStageResult(), requirementsAndObligationCreation); 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 b1ba706fc..80131da2b 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 @@ -12,7 +12,6 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.session.stage.impl.*; import ru.spcex.clearing.session.stage.task.*; import ru.spcex.platform.classes.base.interfaces.ExecutionType; -import ru.spcex.platform.enumeration.MarketType; import ru.spcex.platform.enumeration.Section; import ru.spcex.platform.enumeration.SessionStatus; import ru.spcex.platform.enumeration.SessionType; @@ -42,6 +41,11 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali private final Imdg executionFondImdg; + private List marketCodes = List.of("BMFC", "SMMC", "AEPC", "WBIC", "KBVC", "WBFC", "BMVC", "ABIC", + "AESC", "ABFC", "KBIC", "WBMC", "BMMC", "ABEC", "SMIC", "ABMC", "SMVC", "KBFC", "SKVC", "ABVC", "WEPC", + "KBMC", "SMFC", "BKVC", "WBVC", "BMIC", "WESC"); + + public PrimaryAuctionBnSession( ImdgProvider imdgProvider, BalanceRevise balanceRevise, @@ -72,8 +76,8 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali public void afterPropertiesSet() throws Exception { dealsPrepare.searchForExecutions(ExecutionType.ExecutionFond); ImdgPredicateBuilder execFondPb = executionFondImdg.predicateBuilder(); - dealsPrepare.addExecutionFondCondition(execFondPb.regex("settlementCode", "^B[^0]\\d*$")); - dealsPrepare.addExecutionFondCondition(execFondPb.equals("marketType", MarketType.PRMR.getKey())); + dealsPrepare.addExecutionFondCondition(execFondPb.regex("settlementCode", "^B\\d{2}$")); + dealsPrepare.addExecutionFondCondition(execFondPb.in("market", marketCodes.toArray(new String[0]))); } public void runSession(BaseRequest req) {