From aa755cbd8983adbf669d5542a1115a443c565bd2 Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 2 Aug 2023 21:46:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=BC=D0=B5=D0=B6=D1=83?= =?UTF-8?q?=D1=82=D0=BE=D1=87=D0=BD=D0=B0=D1=8F=20=D1=81=D0=B5=D1=81=D1=81?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B1=D0=B0=D0=BB=D0=B0=D0=BD=D1=81=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BE=20=D0=BE=D0=B1=D0=BB=D0=B8=D0=B3=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F=D0=BC=20=D0=B2=20ExecutionFond?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../session/stage/IntermediateMkrSession.java | 1 + .../stage/impl/RegistryFondBuilder.java | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java index 9f2e79667..b3a6b4e49 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/IntermediateMkrSession.java @@ -164,6 +164,7 @@ public class IntermediateMkrSession extends AbstractSession implements Initializ { InspectionPoolPayload companyIdPayload = new InspectionPoolPayload(); companyIdPayload.setProcessedCompanyId(currSession.getCompanyId()); + companyIdPayload.setSessionId(currSession.getId()); runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligationsReturn); runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java index 867ca0f07..4703321b4 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryFondBuilder.java @@ -12,17 +12,23 @@ import ru.clearing.classes.statics.data.misc.Market; import ru.clearing.classes.statics.data.misc.Session; import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.classes.statics.data.security.Security; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.session.stage.util.RegistryUtil; import ru.spcex.platform.classes.base.interfaces.ExecutionType; import ru.spcex.platform.enumeration.*; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.specific.SecuritySelector; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.Instant; import java.time.LocalDate; import java.util.Map; +import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; + public class RegistryFondBuilder implements IRegistryBuilder { private Imdg companyImdg; private Imdg tradingClearingRegistryImdg; @@ -33,6 +39,7 @@ public class RegistryFondBuilder implements IRegistryBuilder { private Imdg informationAccountImdg; private Imdg depoAccountImdg; private Imdg currencyImdg; + private SecuritySelector scrSlctr; private ExecutionCommon exec; private RegistryDesignation regDsgn; @@ -54,6 +61,7 @@ public class RegistryFondBuilder implements IRegistryBuilder { this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); this.informationAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_InformationAccount, InformationAccount.class); this.currencyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Currency, Currency.class); + this.scrSlctr = new SecuritySelector<>(imdgProvider, Security.class); return this; } @@ -132,8 +140,14 @@ public class RegistryFondBuilder implements IRegistryBuilder { reg.setRegistryStatus(RegistryStatus.PROC.getKey()); ExecutionFond execFond = (ExecutionFond) this.exec; if (isMoney) { - //todo ОКРУГЛЕНИЕ(fixedIncomeSecurity.nominalValue * quantity * price/100) + ОКРУГЛЕНИЕ (executionFond.interestAmount) - reg.setBalance(execFond.getSettlementAmount()); + Security security = scrSlctr.selectSecurityById(execFond.getSecurityId()); + if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) { + BigDecimal stlAmt = safeBD(execFond.getSettlementAmount()); + BigDecimal intAmt = safeBD(execFond.getInterestAmount()); + reg.setBalance(stlAmt.add(intAmt.setScale(2, RoundingMode.HALF_UP))); + } else { + reg.setBalance(execFond.getSettlementAmount()); + } } else { reg.setBalance(execFond.getQuantity()); }