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.company.Company;
|
||||||
import ru.clearing.classes.statics.data.execution.ExecutionCommon;
|
import ru.clearing.classes.statics.data.execution.ExecutionCommon;
|
||||||
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
|
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.Currency;
|
||||||
import ru.clearing.classes.statics.data.misc.Market;
|
import ru.clearing.classes.statics.data.misc.Market;
|
||||||
import ru.clearing.classes.statics.data.misc.Session;
|
import ru.clearing.classes.statics.data.misc.Session;
|
||||||
|
|
@ -83,34 +82,17 @@ public class RegistryDepoBuilder implements IRegistryBuilder {
|
||||||
reg.setShortName(company.getShortName());
|
reg.setShortName(company.getShortName());
|
||||||
reg.setFullName(company.getFullName());
|
reg.setFullName(company.getFullName());
|
||||||
TradingClearingRegistry tcr = searchTradingClearingRegistry();
|
TradingClearingRegistry tcr = searchTradingClearingRegistry();
|
||||||
String capacityByAccount = null;
|
Account account = accountImdg.getSingleObjectByID(tcr.getMoneyAccountId());
|
||||||
boolean isMoney = false;
|
String capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId());
|
||||||
Account account = null;
|
reg.setAccountId(tcr.getMoneyAccountId());
|
||||||
if ((regDsgn.equals(RegistryDesignation.O) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.T) && side.isSell())) {
|
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.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||||
reg.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme add second leg code branch
|
reg.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme add second leg code branch
|
||||||
Currency currency = currencyImdg.getSingleObjectByFieldValues(Map.of("currencyCode", exec.getSettlementCurrency()));
|
Currency currency = currencyImdg.getSingleObjectByFieldValues(Map.of("currencyCode", exec.getSettlementCurrency()));
|
||||||
reg.setSecurityId(currency.getId());
|
reg.setSecurityId(currency.getId());
|
||||||
reg.setSecuritySymbol(currency.getCurrencyCode());
|
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.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
|
||||||
reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch
|
reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch
|
||||||
reg.setSecurityId(exec.getSecurityId());
|
reg.setSecurityId(exec.getSecurityId());
|
||||||
|
|
@ -130,34 +112,19 @@ public class RegistryDepoBuilder implements IRegistryBuilder {
|
||||||
reg.setTradingClearingRegistryId(exec.getTradingClearingRegistryId());
|
reg.setTradingClearingRegistryId(exec.getTradingClearingRegistryId());
|
||||||
reg.setTradingClearingRegistry(tcr.getCode());
|
reg.setTradingClearingRegistry(tcr.getCode());
|
||||||
reg.setRegistryStatus(RegistryStatus.PROC.getKey());
|
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());
|
ExecutionDeposit execDep = (ExecutionDeposit) this.exec;
|
||||||
reg.setSettlementCode(execFond.getSettlementCode());
|
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.setTradingDate(exec.getTradingDate());
|
||||||
reg.setClearingDate(LocalDate.now());
|
reg.setClearingDate(LocalDate.now());
|
||||||
reg.setPrice(exec.getPrice());
|
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.account.InformationAccount;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
import ru.clearing.classes.statics.data.execution.ExecutionCommon;
|
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.execution.ExecutionFond;
|
||||||
import ru.clearing.classes.statics.data.misc.Currency;
|
import ru.clearing.classes.statics.data.misc.Currency;
|
||||||
import ru.clearing.classes.statics.data.misc.Market;
|
import ru.clearing.classes.statics.data.misc.Market;
|
||||||
|
|
@ -98,19 +97,12 @@ public class RegistryFondBuilder implements IRegistryBuilder {
|
||||||
capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId());
|
capacityByAccount = defineCapacityByAccountType(account.getAccountType(), tcr.getMoneyAccountId());
|
||||||
} else if ((regDsgn.equals(RegistryDesignation.T) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.O) && side.isSell())) {
|
} else if ((regDsgn.equals(RegistryDesignation.T) && side.isBuy()) || (regDsgn.equals(RegistryDesignation.O) && side.isSell())) {
|
||||||
isMoney = false;
|
isMoney = false;
|
||||||
if (exec.type().equals(ExecutionType.ExecutionFond)) {
|
account = accountImdg.getSingleObjectByID(tcr.getDepoAccountId());
|
||||||
account = accountImdg.getSingleObjectByID(tcr.getDepoAccountId());
|
reg.setAccountId(tcr.getDepoAccountId());
|
||||||
reg.setAccountId(tcr.getDepoAccountId());
|
DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(tcr.getDepoAccountId());
|
||||||
DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(tcr.getDepoAccountId());
|
if (depoAccount != null) {
|
||||||
if (depoAccount != null) {
|
capacityByAccount = depoAccount.getDepoAccountType();
|
||||||
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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
reg.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
|
reg.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
|
||||||
reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch
|
reg.setBalanceDimension(BalanceDimension.PICS.getKey()); //fixme add second leg code branch
|
||||||
reg.setSecurityId(exec.getSecurityId());
|
reg.setSecurityId(exec.getSecurityId());
|
||||||
|
|
@ -130,34 +122,16 @@ public class RegistryFondBuilder implements IRegistryBuilder {
|
||||||
reg.setTradingClearingRegistryId(exec.getTradingClearingRegistryId());
|
reg.setTradingClearingRegistryId(exec.getTradingClearingRegistryId());
|
||||||
reg.setTradingClearingRegistry(tcr.getCode());
|
reg.setTradingClearingRegistry(tcr.getCode());
|
||||||
reg.setRegistryStatus(RegistryStatus.PROC.getKey());
|
reg.setRegistryStatus(RegistryStatus.PROC.getKey());
|
||||||
switch (exec.type()) {
|
ExecutionFond execFond = (ExecutionFond) this.exec;
|
||||||
case ExecutionDeposit -> {
|
if (isMoney) {
|
||||||
ExecutionDeposit execDep = (ExecutionDeposit) this.exec;
|
//todo ОКРУГЛЕНИЕ(fixedIncomeSecurity.nominalValue * quantity * price/100) + ОКРУГЛЕНИЕ (executionFond.interestAmount)
|
||||||
reg.setBalance((execDep).getFirstLegAmount());
|
reg.setBalance(execFond.getSettlementAmount());
|
||||||
if (regDsgn.equals(RegistryDesignation.T)) {
|
} else {
|
||||||
reg.setSettledCredit((execDep).getFirstLegAmount());
|
reg.setBalance(execFond.getQuantity());
|
||||||
} 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());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reg.setSettlementDate(execFond.getSettlementDate());
|
||||||
|
reg.setSettlementCode(execFond.getSettlementCode());
|
||||||
reg.setTradingDate(exec.getTradingDate());
|
reg.setTradingDate(exec.getTradingDate());
|
||||||
reg.setClearingDate(LocalDate.now());
|
reg.setClearingDate(LocalDate.now());
|
||||||
reg.setPrice(exec.getPrice());
|
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.consumer.Consumer;
|
||||||
import org.apache.kafka.clients.producer.Producer;
|
import org.apache.kafka.clients.producer.Producer;
|
||||||
import org.apache.kafka.common.quota.ClientQuotaAlteration;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
|
|
@ -29,9 +28,7 @@ import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import static ru.spcex.clearing.imdg.IMDGDistributedNames.*;
|
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_ECNR;
|
||||||
import static ru.spcex.platform.enumeration.Task.createRegistry_LBSR;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class ExecutionRegisterService extends QueueConsumer implements InitializingBean {
|
public class ExecutionRegisterService extends QueueConsumer implements InitializingBean {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue