http://jira.mfd.msk:8088/browse/CLS-275 DDL (3) часть 3 правки тестов и кода TODO

This commit is contained in:
AKurakin 2023-04-19 15:59:48 +03:00
parent 07e4e946de
commit 7720f41699
6 changed files with 36 additions and 32 deletions

View file

@ -26,7 +26,10 @@ class ExecutionDepositControllerTest extends AbstractControllerTest {
executionDeposit.setExchangeExecutionId(currentId.get()); executionDeposit.setExchangeExecutionId(currentId.get());
executionDeposit.setExchangeExecutionTime(Instant.now()); executionDeposit.setExchangeExecutionTime(Instant.now());
executionDeposit.setTradingDate(LocalDate.now()); executionDeposit.setTradingDate(LocalDate.now());
executionDeposit.setAccountId(currentId.get()); executionDeposit.setTradingClearingRegistryId(currentId.get());
executionDeposit.setFirstLegSettlementCode("lcde1");
executionDeposit.setSecondLegSettlementCode("lcde2");
executionDeposit.setContract("contract12");
executionDeposit.setMarket("mark"); executionDeposit.setMarket("mark");
executionDeposit.setPrice(new BigDecimal(0)); executionDeposit.setPrice(new BigDecimal(0));
executionDeposit.setLots(new BigDecimal(0)); executionDeposit.setLots(new BigDecimal(0));

View file

@ -175,7 +175,7 @@ public class Clearing {
//send request to kafka, wait for a reply //send request to kafka, wait for a reply
synchronized (this) { synchronized (this) {
AccountBalanceClearingRequest request = new AccountBalanceClearingRequest(); AccountBalanceClearingRequest request = new AccountBalanceClearingRequest();
request.setAccountId(execDeposit.getAccountId()); // todo CLS-275 request.setAccountId(execDeposit.getAccountId());
request.setCompanyId(execDeposit.getCompanyId()); request.setCompanyId(execDeposit.getCompanyId());
request.setFirstLegAmount(execDeposit.getFirstLegAmount()); request.setFirstLegAmount(execDeposit.getFirstLegAmount());
Long sentRequestId = kafka.sendRequestToQueue(Consts.BALANCE_ACCOUNT_UPDATE, request); Long sentRequestId = kafka.sendRequestToQueue(Consts.BALANCE_ACCOUNT_UPDATE, request);
@ -199,7 +199,7 @@ public class Clearing {
} }
} }
Optional<LiabilitiesClaimsAssets> lcaFirstLegFound = lbltsClmsAssetsCreator.searchLCA( Optional<LiabilitiesClaimsAssets> lcaFirstLegFound = lbltsClmsAssetsCreator.searchLCA(
execDeposit.getAccountId(), execDeposit.getCompanyId(), /* null execDeposit.getAccountId() todo CLS-275 */ null, execDeposit.getCompanyId(),
execDeposit.getSecurityId(), execDeposit.getFirstLegSettlementDate()); execDeposit.getSecurityId(), execDeposit.getFirstLegSettlementDate());
LiabilitiesClaimsAssets lcaFirstLeg = orElse(lcaFirstLegFound).ifPresentOrElse(lca -> { LiabilitiesClaimsAssets lcaFirstLeg = orElse(lcaFirstLegFound).ifPresentOrElse(lca -> {
log.trace("LiabilitiesClaimsAssets first leg {} was found", lca.getId()); log.trace("LiabilitiesClaimsAssets first leg {} was found", lca.getId());
@ -213,7 +213,7 @@ public class Clearing {
return lca; return lca;
}); });
Optional<LiabilitiesClaimsAssets> lcaSecondLegFound = lbltsClmsAssetsCreator.searchLCA( Optional<LiabilitiesClaimsAssets> lcaSecondLegFound = lbltsClmsAssetsCreator.searchLCA(
execDeposit.getAccountId(), execDeposit.getCompanyId(), /*todo CLS-275 execDeposit.getAccountId()*/ null, execDeposit.getCompanyId(),
execDeposit.getSecurityId(), execDeposit.getSecondLegSettlementDate()); execDeposit.getSecurityId(), execDeposit.getSecondLegSettlementDate());
LiabilitiesClaimsAssets lcaSecondLeg = orElse(lcaSecondLegFound).ifPresentOrElse(lca -> { LiabilitiesClaimsAssets lcaSecondLeg = orElse(lcaSecondLegFound).ifPresentOrElse(lca -> {
log.trace("LiabilitiesClaimsAssets second leg {} was found", lca.getId()); log.trace("LiabilitiesClaimsAssets second leg {} was found", lca.getId());

View file

@ -240,7 +240,7 @@ public class ExecutionDepositComponent {
protected ExecutionDeposit createExecutionDeposit(STrades sTrades, protected ExecutionDeposit createExecutionDeposit(STrades sTrades,
Allowed coverageStatus, Long sessionId) throws ClearingException { Allowed coverageStatus, Long sessionId) throws ClearingException {
Account account = accountImdg.getSingleObjectByFieldValues(Map.of("account", sTrades.getMoneyAccount())); Account account = null; // todo CLS-275 accountImdg.getSingleObjectByFieldValues(Map.of("account", sTrades.getMoneyAccount()));
Security security = securityImdg.getSingleObjectByFieldValues(Map.of("securitySymbol", sTrades.getSecCode())); Security security = securityImdg.getSingleObjectByFieldValues(Map.of("securitySymbol", sTrades.getSecCode()));
if (security == null) { if (security == null) {
log.warn("security securitySymbol=\"{}\" not found", sTrades.getSecCode()); log.warn("security securitySymbol=\"{}\" not found", sTrades.getSecCode());
@ -272,7 +272,7 @@ public class ExecutionDepositComponent {
eDeposit.setExchangeExecutionId(sTrades.getTradeNum()); eDeposit.setExchangeExecutionId(sTrades.getTradeNum());
eDeposit.setExchangeExecutionTime(sTrades.getTradeDateTime()); eDeposit.setExchangeExecutionTime(sTrades.getTradeDateTime());
if (account != null) { if (account != null) {
eDeposit.setAccountId(account.getId()); // todo CLS-275 eDeposit.setAccountId(account.getId());
} }
eDeposit.setMarket(Market.mkrs.getKey()); eDeposit.setMarket(Market.mkrs.getKey());
eDeposit.setPrice(sTrades.getPrice()); eDeposit.setPrice(sTrades.getPrice());
@ -294,7 +294,7 @@ public class ExecutionDepositComponent {
eDeposit.setSide(operation); eDeposit.setSide(operation);
eDeposit.setSettlementCurrency("RUB"); // (справочник currencyCode) eDeposit.setSettlementCurrency("RUB"); // (справочник currencyCode)
eDeposit.setCompanyId(company.getId()); eDeposit.setCompanyId(company.getId());
eDeposit.setDuration(sTrades.getDaysToMatDate()); // todo CLS-275 eDeposit.setDuration(sTrades.getDaysToMatDate());
eDeposit.setFirstLegSettlementDate(nowDay); eDeposit.setFirstLegSettlementDate(nowDay);
eDeposit.setSecondLegSettlementDate(sTrades.getSettleDate()); eDeposit.setSecondLegSettlementDate(sTrades.getSettleDate());
//eDeposit.setFirstLegSettlementCode(null); //eDeposit.setFirstLegSettlementCode(null);

View file

@ -61,7 +61,7 @@ public class LiabilitiesClaimsAssetsCreator {
public LiabilitiesClaimsAssets createFirstLegLCA(ClearingCategory category, ExecutionDeposit executionDeposit) { public LiabilitiesClaimsAssets createFirstLegLCA(ClearingCategory category, ExecutionDeposit executionDeposit) {
Account account = accountImdg.getSingleObjectByID(executionDeposit.getAccountId()); Account account = null; // todo CLS-275 accountImdg.getSingleObjectByID(executionDeposit.getAccountId());
LiabilitiesClaimsAssets lca = createLCA(executionDeposit, account); LiabilitiesClaimsAssets lca = createLCA(executionDeposit, account);
lca.setSettlementDate(executionDeposit.getFirstLegSettlementDate()); lca.setSettlementDate(executionDeposit.getFirstLegSettlementDate());
AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()); AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType());
@ -79,7 +79,7 @@ public class LiabilitiesClaimsAssetsCreator {
} }
public LiabilitiesClaimsAssets createSecondLegLCA(ClearingCategory category, ExecutionDeposit executionDeposit) { public LiabilitiesClaimsAssets createSecondLegLCA(ClearingCategory category, ExecutionDeposit executionDeposit) {
Account account = accountImdg.getSingleObjectByID(executionDeposit.getAccountId()); Account account = null;// todo CLS-275 accountImdg.getSingleObjectByID(executionDeposit.getAccountId());
LiabilitiesClaimsAssets lca = createLCA(executionDeposit, account); LiabilitiesClaimsAssets lca = createLCA(executionDeposit, account);
lca.setSettlementDate(executionDeposit.getSecondLegSettlementDate()); lca.setSettlementDate(executionDeposit.getSecondLegSettlementDate());
AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()); AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType());
@ -115,7 +115,7 @@ public class LiabilitiesClaimsAssetsCreator {
public void updateSecondLegLca(LiabilitiesClaimsAssets lca, ExecutionDeposit executionDeposit, ClearingCategory category) { public void updateSecondLegLca(LiabilitiesClaimsAssets lca, ExecutionDeposit executionDeposit, ClearingCategory category) {
Account account = accountImdg.getSingleObjectByID(executionDeposit.getAccountId()); Account account = null; // todo CLS-275 accountImdg.getSingleObjectByID(executionDeposit.getAccountId());
AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()); AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType());
boolean iClrn = ClearingCategory.I.equals(category) && AccountType.Clrn.equals(accType); boolean iClrn = ClearingCategory.I.equals(category) && AccountType.Clrn.equals(accType);
boolean vInfo = ClearingCategory.V.equals(category) && AccountType.Info.equals(accType); boolean vInfo = ClearingCategory.V.equals(category) && AccountType.Info.equals(accType);
@ -135,7 +135,7 @@ public class LiabilitiesClaimsAssetsCreator {
} }
public void updateFirstLegLca(LiabilitiesClaimsAssets lca, ExecutionDeposit executionDeposit, ClearingCategory category) { public void updateFirstLegLca(LiabilitiesClaimsAssets lca, ExecutionDeposit executionDeposit, ClearingCategory category) {
Account account = accountImdg.getSingleObjectByID(executionDeposit.getAccountId()); Account account = null; // todo CLS-275 accountImdg.getSingleObjectByID(executionDeposit.getAccountId());
AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType()); AccountType accType = IEnumKey.getEnumByKey(AccountType.class, account.getAccountType());
boolean iClrn = ClearingCategory.I.equals(category) && AccountType.Clrn.equals(accType); boolean iClrn = ClearingCategory.I.equals(category) && AccountType.Clrn.equals(accType);
boolean vInfo = ClearingCategory.V.equals(category) && AccountType.Info.equals(accType); boolean vInfo = ClearingCategory.V.equals(category) && AccountType.Info.equals(accType);

View file

@ -37,17 +37,17 @@ public enum ExecutionDepositValidationRule implements IValidationRule<ImdgValida
@Override @Override
public Optional<EnumMessage> validate(ImdgValidationContext<ExecutionDeposit> context) { public Optional<EnumMessage> validate(ImdgValidationContext<ExecutionDeposit> context) {
ExecutionDeposit validatedObject = context.getValidatedObject(); ExecutionDeposit validatedObject = context.getValidatedObject();
if (validatedObject.getAccountId() == null) { // todo CLS-275 if (validatedObject.getAccountId() == null) {
return of(ClearingErrorInternal.AccountNotActive); return of(ClearingErrorInternal.AccountNotActive);
} // }
Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); // Imdg<Account> accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class);
Relation relation = context.getStoredObject(ClrngValidationStored.relation); // Relation relation = context.getStoredObject(ClrngValidationStored.relation);
Account account = accountImdg.getSingleObjectByFieldValues( // Account account = accountImdg.getSingleObjectByFieldValues(
Map.of("id", validatedObject.getAccountId(), "relationId", relation.getId())); // Map.of("id", validatedObject.getAccountId(), "relationId", relation.getId()));
if (account == null || !AccountStatus.ACTIVE.equalsByKey(account.getStatus())) { // if (account == null || !AccountStatus.ACTIVE.equalsByKey(account.getStatus())) {
return of(ClearingErrorInternal.AccountNotActive); // return of(ClearingErrorInternal.AccountNotActive);
} // }
return empty(); // return empty();
} }
}, },
CompanyIsNotBlocked() { CompanyIsNotBlocked() {
@ -70,18 +70,18 @@ public enum ExecutionDepositValidationRule implements IValidationRule<ImdgValida
return Optional.empty(); return Optional.empty();
} }
ExecutionDeposit validatedObject = context.getValidatedObject(); ExecutionDeposit validatedObject = context.getValidatedObject();
Imdg<AccountBalance> accountBalanceImdg = context.obtainMap(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); // Imdg<AccountBalance> accountBalanceImdg = context.obtainMap(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);
AccountBalance accountBalance = accountBalanceImdg.getSingleObjectByFieldValues( // todo CLS-275 AccountBalance accountBalance = accountBalanceImdg.getSingleObjectByFieldValues(
Map.of("accountId", validatedObject.getAccountId(), // Map.of("accountId", validatedObject.getAccountId(),
"companyId", validatedObject.getCompanyId())); // "companyId", validatedObject.getCompanyId()));
if (accountBalance == null) { // if (accountBalance == null) {
return of(ClearingErrorInternal.FinancialObligationNotSatisfied); return of(ClearingErrorInternal.FinancialObligationNotSatisfied);
} // }
//todo ABS //todo ABS
if (validatedObject.getFirstLegAmount().compareTo(accountBalance.getFreeBalanceAmount()) > 0) { // todo CLS-275 if (validatedObject.getFirstLegAmount().compareTo(accountBalance.getFreeBalanceAmount()) > 0) {
return of(ClearingErrorInternal.FinancialObligationNotSatisfied); // return of(ClearingErrorInternal.FinancialObligationNotSatisfied);
} // }
return empty(); // return empty();
} }
}; };

View file

@ -378,7 +378,7 @@ class ClearingServiceTest extends AbstractClearingTest {
executionDeposit.setExchangeExecutionId(5L); executionDeposit.setExchangeExecutionId(5L);
executionDeposit.setExchangeExecutionTime(Instant.now()); executionDeposit.setExchangeExecutionTime(Instant.now());
executionDeposit.setTradingDate(LocalDate.now()); executionDeposit.setTradingDate(LocalDate.now());
executionDeposit.setAccountId(accountId); executionDeposit.setTradingClearingRegistryId(accountId); //todo CLS-275 executionDeposit.setAccountId(accountId);
executionDeposit.setMarket("market"); executionDeposit.setMarket("market");
executionDeposit.setPrice(new BigDecimal(9)); executionDeposit.setPrice(new BigDecimal(9));
executionDeposit.setLots(new BigDecimal(0)); executionDeposit.setLots(new BigDecimal(0));
@ -394,6 +394,7 @@ class ClearingServiceTest extends AbstractClearingTest {
executionDeposit.setSecondLegSettlementDate(dtS); executionDeposit.setSecondLegSettlementDate(dtS);
executionDeposit.setFirstLegSettlementCode("leg1c"); executionDeposit.setFirstLegSettlementCode("leg1c");
executionDeposit.setSecondLegSettlementCode("legcc"); executionDeposit.setSecondLegSettlementCode("legcc");
executionDeposit.setContract("contract");
executionDeposit.setSecurityFullName("full"); executionDeposit.setSecurityFullName("full");
executionDeposit.setSecuritySymbol("symbol"); executionDeposit.setSecuritySymbol("symbol");
executionDeposit.setSecurityId(securityId); executionDeposit.setSecurityId(securityId);