fix registry builders
This commit is contained in:
parent
89c8dc7434
commit
46d87a046e
3 changed files with 29 additions and 91 deletions
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue