From 00a02ed7d23d0258cf0e3127571e38eb81aef325 Mon Sep 17 00:00:00 2001 From: ialbert Date: Mon, 22 May 2023 10:15:10 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-290 --- .../session/stage/impl/RegistryUpdater.java | 61 ++++++++----------- .../RequirmentsAndObligationCreation.java | 1 - 2 files changed, 25 insertions(+), 37 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryUpdater.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryUpdater.java index 98bc78a6d..a5c08b03e 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryUpdater.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryUpdater.java @@ -1,12 +1,14 @@ package ru.spcex.clearing.session.stage.impl; -import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.execution.ExecutionCommon; +import ru.clearing.classes.statics.data.execution.ExecutionDeposit; +import ru.clearing.classes.statics.data.execution.ExecutionFond; import ru.clearing.classes.statics.data.registry.Registry; -import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.classes.base.interfaces.ExecutionType; +import ru.spcex.platform.enumeration.RegistryDesignation; + +import java.math.BigDecimal; +import java.time.Instant; public class RegistryUpdater { public static RegistryUpdater updater() { @@ -16,19 +18,9 @@ public class RegistryUpdater { private RegistryUpdater() { } - private Imdg registryImdg; - private Imdg companyImdg; - private Imdg tradingClearingRegistryImdg; private ExecutionCommon exec; private Registry rgs; - public RegistryUpdater imdg(ImdgProvider imdgProvider) { - this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); - this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); - return this; - } - public RegistryUpdater registry(Registry rgs) { this.rgs = rgs; return this; @@ -39,28 +31,25 @@ public class RegistryUpdater { return this; } - public Registry update() { - Registry reg = new Registry(); - reg.setCompanyId(exec.getCompanyId()); - Company company = searchCompany(); - reg.setTradingCode(company.getTradingCode()); - reg.setClearingCode(company.getClearingCode()); - reg.setShortName(company.getShortName()); - reg.setFullName(company.getFullName()); - TradingClearingRegistry tcr = searchTradingClearingRegistry(); - return null; + public void update() { + if (exec.type().equals(ExecutionType.ExecutionDeposit)) { + rgs.setBalance(safe(rgs.getBalance()).add(safe(((ExecutionDeposit) exec).getFirstLegAmount()))); + if (rgs.getRegistryDesignation().equals(RegistryDesignation.T.getKey())) { + rgs.setSettledCredit(safe(rgs.getSettledCredit()).add(safe(((ExecutionDeposit) exec).getFirstLegAmount()))); + } + if (rgs.getRegistryDesignation().equals(RegistryDesignation.O.getKey())) { + rgs.setSettledDebit(safe(rgs.getSettledDebit()).add(safe(((ExecutionDeposit) exec).getFirstLegAmount()))); + } + rgs.setValueDate(((ExecutionDeposit) exec).getFirstLegSettlementDate()); + + } else if (exec.type().equals(ExecutionType.ExecutionFond)) { + rgs.setBalance(safe(rgs.getBalance()).add(safe(((ExecutionFond) exec).getSettlementAmount()))); + } + rgs.setUpdated(Instant.now()); + } - private Company searchCompany() { - return companyImdg.getSingleObjectBySQL("id = " + exec.getCompanyId()); + private BigDecimal safe(BigDecimal value) { + return value == null ? BigDecimal.ZERO : value; } - - private TradingClearingRegistry searchTradingClearingRegistry() { - return tradingClearingRegistryImdg.getSingleObjectBySQL("tradingClearingRegistryId = " + exec.getTradingClearingRegistryId()); - } - - - - -// public } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirmentsAndObligationCreation.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirmentsAndObligationCreation.java index 894b0f197..d6ad3bc9e 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirmentsAndObligationCreation.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RequirmentsAndObligationCreation.java @@ -70,7 +70,6 @@ public class RequirmentsAndObligationCreation implements ISessionStage { BiConsumer findAndUpdateOrCreate = (exec, regDsgn) -> findReg(exec, regDsgn).ifPresentOrElse(registry -> { RegistryUpdater.updater() - .imdg(imdgProvider) .exec(partyExec) .registry(registry) .update();