From 46d87a046e4c3757d9c39c7c6b1dcc6473ac014c Mon Sep 17 00:00:00 2001 From: etreshenkov Date: Mon, 5 Jun 2023 11:13:54 +0300 Subject: [PATCH] fix registry builders --- .../stage/impl/RegistryDepoBuilder.java | 63 +++++-------------- .../stage/impl/RegistryFondBuilder.java | 54 +++++----------- .../service/ExecutionRegisterService.java | 3 - 3 files changed, 29 insertions(+), 91 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryDepoBuilder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryDepoBuilder.java index e8241a175..543f3f2bf 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryDepoBuilder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/RegistryDepoBuilder.java @@ -7,7 +7,6 @@ import ru.clearing.classes.statics.data.account.InformationAccount; 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.misc.Currency; import ru.clearing.classes.statics.data.misc.Market; import ru.clearing.classes.statics.data.misc.Session; @@ -83,34 +82,17 @@ public class RegistryDepoBuilder implements IRegistryBuilder { reg.setShortName(company.getShortName()); reg.setFullName(company.getFullName()); TradingClearingRegistry tcr = searchTradingClearingRegistry(); - String capacityByAccount = null; - boolean isMoney = false; - Account account = null; + Account account = accountImdg.getSingleObjectByID(tcr.getMoneyAccountId()); + String capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId()); + reg.setAccountId(tcr.getMoneyAccountId()); if ((regDsgn.equals(RegistryDesignation.O) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.T) && side.isSell())) { - isMoney = true; - reg.setAccountId(tcr.getMoneyAccountId()); - account = accountImdg.getSingleObjectByID(tcr.getMoneyAccountId()); reg.setRegistryInstrumentType(RegistryInstrumentType.M.getKey()); reg.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme add second leg code branch Currency currency = currencyImdg.getSingleObjectByFieldValues(Map.of("currencyCode", exec.getSettlementCurrency())); reg.setSecurityId(currency.getId()); reg.setSecuritySymbol(currency.getCurrencyCode()); - capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId()); - } else if ((regDsgn.equals(RegistryDesignation.T) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.O) && side.isSell())) { - isMoney = false; - if (exec.type().equals(ExecutionType.ExecutionFond)) { - account = accountImdg.getSingleObjectByID(tcr.getDepoAccountId()); - reg.setAccountId(tcr.getDepoAccountId()); - DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(tcr.getDepoAccountId()); - if (depoAccount != null) { - capacityByAccount = depoAccount.getDepoAccountType(); - } - } else if (exec.type().equals(ExecutionType.ExecutionDeposit)) { - account = accountImdg.getSingleObjectByID(tcr.getMoneyAccountId()); - reg.setAccountId(tcr.getMoneyAccountId()); - capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId()); - } + } else if ((regDsgn.equals(RegistryDesignation.T) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.O) && side.isSell())) { reg.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch reg.setSecurityId(exec.getSecurityId()); @@ -130,34 +112,19 @@ public class RegistryDepoBuilder implements IRegistryBuilder { reg.setTradingClearingRegistryId(exec.getTradingClearingRegistryId()); reg.setTradingClearingRegistry(tcr.getCode()); reg.setRegistryStatus(RegistryStatus.PROC.getKey()); - switch (exec.type()) { - case ExecutionDeposit -> { - ExecutionDeposit execDep = (ExecutionDeposit) this.exec; - reg.setBalance((execDep).getFirstLegAmount()); - if (regDsgn.equals(RegistryDesignation.T)) { - reg.setSettledCredit((execDep).getFirstLegAmount()); - } else if (regDsgn.equals(RegistryDesignation.O)) { - reg.setSettledDebit((execDep).getFirstLegAmount()); - } - reg.setSettlementDate(execDep.getFirstLegSettlementDate()); //fixme add second leg code branch - reg.setSettlementCode(execDep.getFirstLegSettlementCode()); //fixme add second leg code branch - reg.setRefundDate(execDep.getSecondLegSettlementDate()); //fixme add second leg code branch?? - reg.setValueDate(execDep.getFirstLegSettlementDate()); - reg.setContract(execDep.getContract()); - } - case ExecutionFond -> { - ExecutionFond execFond = (ExecutionFond) this.exec; - if (isMoney) { - //todo ОКРУГЛЕНИЕ(fixedIncomeSecurity.nominalValue * quantity * price/100) + ОКРУГЛЕНИЕ (executionFond.interestAmount) - reg.setBalance(execFond.getSettlementAmount()); - } else { - reg.setBalance(execFond.getQuantity()); - } - reg.setSettlementDate(execFond.getSettlementDate()); - reg.setSettlementCode(execFond.getSettlementCode()); - } + ExecutionDeposit execDep = (ExecutionDeposit) this.exec; + reg.setBalance((execDep).getFirstLegAmount()); + if (regDsgn.equals(RegistryDesignation.T)) { + reg.setSettledCredit((execDep).getFirstLegAmount()); + } else if (regDsgn.equals(RegistryDesignation.O)) { + reg.setSettledDebit((execDep).getFirstLegAmount()); } + reg.setSettlementDate(execDep.getFirstLegSettlementDate()); //fixme add second leg code branch + reg.setSettlementCode(execDep.getFirstLegSettlementCode()); //fixme add second leg code branch + reg.setRefundDate(execDep.getSecondLegSettlementDate()); //fixme add second leg code branch?? + reg.setValueDate(execDep.getFirstLegSettlementDate()); + reg.setContract(execDep.getContract()); reg.setTradingDate(exec.getTradingDate()); reg.setClearingDate(LocalDate.now()); reg.setPrice(exec.getPrice()); 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 3e013f11a..b7e335e40 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 @@ -6,7 +6,6 @@ import ru.clearing.classes.statics.data.account.DepoAccount; import ru.clearing.classes.statics.data.account.InformationAccount; 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.misc.Currency; import ru.clearing.classes.statics.data.misc.Market; @@ -98,19 +97,12 @@ public class RegistryFondBuilder implements IRegistryBuilder { capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId()); } else if ((regDsgn.equals(RegistryDesignation.T) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.O) && side.isSell())) { isMoney = false; - if (exec.type().equals(ExecutionType.ExecutionFond)) { - account = accountImdg.getSingleObjectByID(tcr.getDepoAccountId()); - reg.setAccountId(tcr.getDepoAccountId()); - DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(tcr.getDepoAccountId()); - if (depoAccount != null) { - capacityByAccount = depoAccount.getDepoAccountType(); - } - } else if (exec.type().equals(ExecutionType.ExecutionDeposit)) { - account = accountImdg.getSingleObjectByID(tcr.getMoneyAccountId()); - reg.setAccountId(tcr.getMoneyAccountId()); - capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId()); + account = accountImdg.getSingleObjectByID(tcr.getDepoAccountId()); + reg.setAccountId(tcr.getDepoAccountId()); + DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(tcr.getDepoAccountId()); + if (depoAccount != null) { + capacityByAccount = depoAccount.getDepoAccountType(); } - reg.setRegistryInstrumentType(RegistryInstrumentType.S.getKey()); reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch reg.setSecurityId(exec.getSecurityId()); @@ -130,34 +122,16 @@ public class RegistryFondBuilder implements IRegistryBuilder { reg.setTradingClearingRegistryId(exec.getTradingClearingRegistryId()); reg.setTradingClearingRegistry(tcr.getCode()); reg.setRegistryStatus(RegistryStatus.PROC.getKey()); - switch (exec.type()) { - case ExecutionDeposit -> { - ExecutionDeposit execDep = (ExecutionDeposit) this.exec; - reg.setBalance((execDep).getFirstLegAmount()); - if (regDsgn.equals(RegistryDesignation.T)) { - reg.setSettledCredit((execDep).getFirstLegAmount()); - } else if (regDsgn.equals(RegistryDesignation.O)) { - reg.setSettledDebit((execDep).getFirstLegAmount()); - } - reg.setSettlementDate(execDep.getFirstLegSettlementDate()); //fixme add second leg code branch - reg.setSettlementCode(execDep.getFirstLegSettlementCode()); //fixme add second leg code branch - reg.setRefundDate(execDep.getSecondLegSettlementDate()); //fixme add second leg code branch?? - reg.setValueDate(execDep.getFirstLegSettlementDate()); - reg.setContract(execDep.getContract()); - } - case ExecutionFond -> { - ExecutionFond execFond = (ExecutionFond) this.exec; - if (isMoney) { - //todo ОКРУГЛЕНИЕ(fixedIncomeSecurity.nominalValue * quantity * price/100) + ОКРУГЛЕНИЕ (executionFond.interestAmount) - reg.setBalance(execFond.getSettlementAmount()); - } else { - reg.setBalance(execFond.getQuantity()); - } - - reg.setSettlementDate(execFond.getSettlementDate()); - reg.setSettlementCode(execFond.getSettlementCode()); - } + ExecutionFond execFond = (ExecutionFond) this.exec; + if (isMoney) { + //todo ОКРУГЛЕНИЕ(fixedIncomeSecurity.nominalValue * quantity * price/100) + ОКРУГЛЕНИЕ (executionFond.interestAmount) + reg.setBalance(execFond.getSettlementAmount()); + } else { + reg.setBalance(execFond.getQuantity()); } + + reg.setSettlementDate(execFond.getSettlementDate()); + reg.setSettlementCode(execFond.getSettlementCode()); reg.setTradingDate(exec.getTradingDate()); reg.setClearingDate(LocalDate.now()); reg.setPrice(exec.getPrice()); diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java index 893f2e3e7..6ba8f190f 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExecutionRegisterService.java @@ -2,7 +2,6 @@ package ru.spcex.clearing.registry.service; import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.producer.Producer; -import org.apache.kafka.common.quota.ClientQuotaAlteration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; @@ -29,9 +28,7 @@ import java.util.Map; import java.util.Optional; import static ru.spcex.clearing.imdg.IMDGDistributedNames.*; -import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException; import static ru.spcex.platform.enumeration.Task.createRegistry_ECNR; -import static ru.spcex.platform.enumeration.Task.createRegistry_LBSR; @Service public class ExecutionRegisterService extends QueueConsumer implements InitializingBean {