This commit is contained in:
parent
d638615c2e
commit
e2e8fba2a1
7 changed files with 138 additions and 21 deletions
|
|
@ -1,13 +1,16 @@
|
||||||
package ru.spcex.clearing.service.executors;
|
package ru.spcex.clearing.service.executors;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import ru.clearing.classes.statics.data.account.Account;
|
import ru.clearing.classes.statics.data.account.Account;
|
||||||
import ru.clearing.classes.statics.data.account.AccountBalance;
|
import ru.clearing.classes.statics.data.account.AccountBalance;
|
||||||
|
import ru.clearing.classes.statics.data.account.ClearingAccount;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
|
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||||
import ru.clearing.classes.statics.data.sdf.SDf02;
|
import ru.clearing.classes.statics.data.sdf.SDf02;
|
||||||
import ru.clearing.classes.statics.data.sdf.SDf57;
|
import ru.clearing.classes.statics.data.sdf.SDf57;
|
||||||
import ru.clearing.classes.statics.data.security.Security;
|
import ru.clearing.classes.statics.data.security.Security;
|
||||||
|
|
@ -39,6 +42,7 @@ import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
@ -56,6 +60,8 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
private final ImdgProvider imdgProvider;
|
private final ImdgProvider imdgProvider;
|
||||||
private final IMessageResolver errorResolver;
|
private final IMessageResolver errorResolver;
|
||||||
private final Imdg<AccountBalance> accountBalanceImdg;
|
private final Imdg<AccountBalance> accountBalanceImdg;
|
||||||
|
private final Imdg<ClearingAccount> clearingAccountImdg;
|
||||||
|
private final Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
||||||
private final Imdg<Security> securityImdg;
|
private final Imdg<Security> securityImdg;
|
||||||
private final IMessageResolver messageResolver;
|
private final IMessageResolver messageResolver;
|
||||||
|
|
||||||
|
|
@ -67,6 +73,8 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||||
this.sdf02Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf02, SDf02.class);
|
this.sdf02Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf02, SDf02.class);
|
||||||
this.accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);
|
this.accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);
|
||||||
|
this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class);
|
||||||
|
this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||||
this.sDf57Validator = sDf57Validator;
|
this.sDf57Validator = sDf57Validator;
|
||||||
this.errorLogger = errorLogger;
|
this.errorLogger = errorLogger;
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
|
|
@ -137,9 +145,9 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
Account accountCred = validator.getStored(ValidationStored.Sdf57AccountCred);
|
Account accountCred = validator.getStored(ValidationStored.Sdf57AccountCred);
|
||||||
|
|
||||||
//адресат CREDIT / владелец DEBIT
|
//адресат CREDIT / владелец DEBIT
|
||||||
Optional<Statement> statementDeb = createStatementIfNeeded.apply(companyDeb, accountDeb, InOutDirection.in);
|
Optional<Statement> statementDeb = createStatementIfNeeded.apply(companyDeb, accountDeb, InOutDirection.out);
|
||||||
//адресат DEBIT / владелец CREDIT
|
//адресат DEBIT / владелец CREDIT
|
||||||
Optional<Statement> statementCred = createStatementIfNeeded.apply(companyCred, accountCred, InOutDirection.out);
|
Optional<Statement> statementCred = createStatementIfNeeded.apply(companyCred, accountCred, InOutDirection.in);
|
||||||
|
|
||||||
Consumer<StmtCmpAcc> createRegistryIfNeeded = stmtCmpAcc -> {
|
Consumer<StmtCmpAcc> createRegistryIfNeeded = stmtCmpAcc -> {
|
||||||
Statement stmt = stmtCmpAcc.statement();
|
Statement stmt = stmtCmpAcc.statement();
|
||||||
|
|
@ -157,8 +165,12 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
Registry registry = createRegistryByStatement(stmt, company, account, dsgn);
|
Registry registry = createRegistryByStatement(stmt, company, account, dsgn);
|
||||||
Registry registryF = registry.clone();
|
Registry registryF = registry.clone();
|
||||||
registryF.setRegistryUnit(RegistryUnit.F.getKey());
|
registryF.setRegistryUnit(RegistryUnit.F.getKey());
|
||||||
|
registryF.setRegistryCode(RegistryUtil.clearingCode(registryF));
|
||||||
|
registryF.setId(imdgProvider.getImdgIdGenerator().nextId());
|
||||||
Registry registryB = registry.clone();
|
Registry registryB = registry.clone();
|
||||||
registryB.setRegistryUnit(RegistryUnit.B.getKey());
|
registryB.setRegistryUnit(RegistryUnit.B.getKey());
|
||||||
|
registryB.setRegistryCode(RegistryUtil.clearingCode(registryB));
|
||||||
|
registryB.setId(imdgProvider.getImdgIdGenerator().nextId());
|
||||||
registryImdg.insert(registry);
|
registryImdg.insert(registry);
|
||||||
registryImdg.insert(registryF);
|
registryImdg.insert(registryF);
|
||||||
registryImdg.insert(registryB);
|
registryImdg.insert(registryB);
|
||||||
|
|
@ -166,7 +178,10 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
|
|
||||||
//todo понять что происходит со инициатором/контрагентом, особенно если у нас только один Statement
|
//todo понять что происходит со инициатором/контрагентом, особенно если у нас только один Statement
|
||||||
findReg(stmt, RegistryDesignation.A).ifPresentOrElse(update, () -> create.accept(RegistryDesignation.A));
|
findReg(stmt, RegistryDesignation.A).ifPresentOrElse(update, () -> create.accept(RegistryDesignation.A));
|
||||||
findReg(stmt, RegistryDesignation.D).ifPresentOrElse(update, () -> create.accept(RegistryDesignation.D));
|
if (!StringUtils.isEmpty(sdf57.getSpecif())) {
|
||||||
|
//todo доделать 11. Идентификация средств УК на клиринговом счете
|
||||||
|
findReg(stmt, RegistryDesignation.D).ifPresentOrElse(update, () -> create.accept(RegistryDesignation.D));
|
||||||
|
}
|
||||||
stmt.setOperationStatus(OperationStatus.Executed.getKey());
|
stmt.setOperationStatus(OperationStatus.Executed.getKey());
|
||||||
} else {
|
} else {
|
||||||
stmt.setErrorCodeId(err.get().getSubject().getId()); // fixme ErrorText insert
|
stmt.setErrorCodeId(err.get().getSubject().getId()); // fixme ErrorText insert
|
||||||
|
|
@ -222,11 +237,23 @@ public class Sdf57Executor extends AbstractExecutor<SDf57> {
|
||||||
rgs.setAccount(account.getAccount());
|
rgs.setAccount(account.getAccount());
|
||||||
rgs.setRegistryDesignation(designation.getKey());
|
rgs.setRegistryDesignation(designation.getKey());
|
||||||
rgs.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
rgs.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||||
rgs.setRegistryCapacity(RegistryCapacity.A.getKey());
|
|
||||||
|
ClearingAccount accountForStatement = clearingAccountImdg.getSingleObjectByID(statement.getAccountId());
|
||||||
|
if (accountForStatement != null) {
|
||||||
|
rgs.setRegistryCapacity(accountForStatement.getClearingAccountType());
|
||||||
|
}
|
||||||
rgs.setRegistryUnit(RegistryUnit.T.getKey());
|
rgs.setRegistryUnit(RegistryUnit.T.getKey());
|
||||||
rgs.setRegistryCode(RegistryUtil.clearingCode(rgs));
|
rgs.setRegistryCode(RegistryUtil.clearingCode(rgs));
|
||||||
//rgs.setTradingClearingRegistryId(); //todo !
|
|
||||||
//rgs.setTradingClearingRegistry(); //todo !
|
Collection<TradingClearingRegistry> tcrsByAccount = tradingClearingRegistryImdg.getCollectionObjectsByFieldValues(Map.of(
|
||||||
|
"moneyAccountId", statement.getAccountId()
|
||||||
|
));
|
||||||
|
if (!tcrsByAccount.isEmpty()) {
|
||||||
|
TradingClearingRegistry tcr = tcrsByAccount.iterator().next();
|
||||||
|
rgs.setTradingClearingRegistryId(tcr.getId());
|
||||||
|
rgs.setTradingClearingRegistry(tcr.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
rgs.setRegistryStatus(RegistryStatus.PROC.getKey());
|
rgs.setRegistryStatus(RegistryStatus.PROC.getKey());
|
||||||
rgs.setSecurityId(statement.getSecurityId());
|
rgs.setSecurityId(statement.getSecurityId());
|
||||||
if (statement.getSecurityId() != null) {
|
if (statement.getSecurityId() != null) {
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali
|
||||||
private final ObligationAdmission obligationsAdmission;
|
private final ObligationAdmission obligationsAdmission;
|
||||||
|
|
||||||
private final InclusionObligations inclusionObligations;
|
private final InclusionObligations inclusionObligations;
|
||||||
|
private final InspectionObligations inspectionObligations;
|
||||||
private final FormingRegistersOnOS formingRegistersOnOS;
|
private final FormingRegistersOnOS formingRegistersOnOS;
|
||||||
private final FormingPaymentInstruction formingPaymentInstruction;
|
private final FormingPaymentInstruction formingPaymentInstruction;
|
||||||
private final UnlockResources unlockResources;
|
private final UnlockResources unlockResources;
|
||||||
|
|
@ -51,7 +52,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali
|
||||||
FormingRegistersOnOS formingRegistersOnOS,
|
FormingRegistersOnOS formingRegistersOnOS,
|
||||||
FormingPaymentInstruction formingPaymentInstruction,
|
FormingPaymentInstruction formingPaymentInstruction,
|
||||||
UnlockResources unlockResources,
|
UnlockResources unlockResources,
|
||||||
FinishingSession finishingSession, EndStageNotification endStageNotification, IMessageResolver messageResolver) {
|
FinishingSession finishingSession, EndStageNotification endStageNotification, IMessageResolver messageResolver, InspectionObligations inspectionObligations) {
|
||||||
super(imdgProvider, messageResolver);
|
super(imdgProvider, messageResolver);
|
||||||
this.balanceRevise = balanceRevise;
|
this.balanceRevise = balanceRevise;
|
||||||
this.dealsPrepare = dealsPrepare;
|
this.dealsPrepare = dealsPrepare;
|
||||||
|
|
@ -64,6 +65,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali
|
||||||
this.finishingSession = finishingSession;
|
this.finishingSession = finishingSession;
|
||||||
this.endStageNotification = endStageNotification;
|
this.endStageNotification = endStageNotification;
|
||||||
this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
|
this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class);
|
||||||
|
this.inspectionObligations = inspectionObligations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -116,7 +118,7 @@ public class PrimaryAuctionBnSession extends AbstractSession implements Initiali
|
||||||
{
|
{
|
||||||
InspectionPoolPayload companyIdPayload = new InspectionPoolPayload();
|
InspectionPoolPayload companyIdPayload = new InspectionPoolPayload();
|
||||||
companyIdPayload.setProcessedCompanyId(currSession.getCompanyId());
|
companyIdPayload.setProcessedCompanyId(currSession.getCompanyId());
|
||||||
runStage(TaskType.InspectionObligations, companyIdPayload, inclusionObligations);
|
runStage(TaskType.InspectionObligations, companyIdPayload, inspectionObligations);
|
||||||
}
|
}
|
||||||
//stage 6
|
//stage 6
|
||||||
runStage(TaskType.FormingRegistersOnOS, formingRegistersOnOS); //returns Collection<Registry>
|
runStage(TaskType.FormingRegistersOnOS, formingRegistersOnOS); //returns Collection<Registry>
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,11 @@ import ru.spcex.clearing.session.stage.ISessionStage;
|
||||||
import ru.spcex.clearing.session.stage.StageResult;
|
import ru.spcex.clearing.session.stage.StageResult;
|
||||||
import ru.spcex.clearing.session.stage.Task;
|
import ru.spcex.clearing.session.stage.Task;
|
||||||
import ru.spcex.clearing.session.stage.task.InspectionPoolPayload;
|
import ru.spcex.clearing.session.stage.task.InspectionPoolPayload;
|
||||||
import ru.spcex.platform.enumeration.RegistryDesignation;
|
import ru.spcex.platform.enumeration.*;
|
||||||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
|
||||||
import ru.spcex.platform.enumeration.RegistryUnit;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgId;
|
import ru.spcex.platform.imdg.api.ImdgId;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
|
|
@ -62,15 +61,18 @@ public class InspectionObligations implements ISessionStage {
|
||||||
|
|
||||||
|
|
||||||
private StageResult inspectionPool(Long processedCompanyId) {
|
private StageResult inspectionPool(Long processedCompanyId) {
|
||||||
String sqlCondition = String.format("registryDesignation in ('%s', '%s') and " +
|
RegistryTradingParams registryTradingParamsOST = new RegistryTradingParams(RegistryDesignation.O,
|
||||||
"registryInstrumentType in ('%s', '%s') and " +
|
RegistryInstrumentType.S,
|
||||||
"registryUnit = '%s' and " +
|
null,
|
||||||
"registryStatus = '%s' and " +
|
RegistryUnit.T);
|
||||||
"settlementDate = '%s'",
|
RegistryTradingParams registryTradingParamsTMT = new RegistryTradingParams(RegistryDesignation.T,
|
||||||
RegistryDesignation.O.getKey(), RegistryDesignation.T.getKey(),
|
RegistryInstrumentType.M,
|
||||||
RegistryInstrumentType.S.getKey(), RegistryInstrumentType.M.getKey(),
|
null,
|
||||||
RegistryUnit.T.getKey(),
|
RegistryUnit.T);
|
||||||
"POOL");
|
|
||||||
|
String sqlCondition = String.format("%s and registryStatus = '%s'",
|
||||||
|
RegistryCodeSqlBuilder.getInstance(registryTradingParamsOST, registryTradingParamsTMT).build(),
|
||||||
|
RegistryStatus.POOL.getKey());
|
||||||
|
|
||||||
Collection<Registry> obligations = registryImdg.getCollectionObjectsBySQL(sqlCondition);
|
Collection<Registry> obligations = registryImdg.getCollectionObjectsBySQL(sqlCondition);
|
||||||
Map<Long, Map<Long, List<Registry>>> registryByGroupIdAndCompanyId = obligations.stream().
|
Map<Long, Map<Long, List<Registry>>> registryByGroupIdAndCompanyId = obligations.stream().
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@ public enum RegistryStatus implements IEnumKey {
|
||||||
OK("OK"),
|
OK("OK"),
|
||||||
PROC("PROC"),
|
PROC("PROC"),
|
||||||
NACK("NACK"),
|
NACK("NACK"),
|
||||||
FAIL("FAIL")
|
FAIL("FAIL"),
|
||||||
|
POOL("POOL")
|
||||||
;
|
;
|
||||||
|
|
||||||
private final String key;
|
private final String key;
|
||||||
|
|
|
||||||
|
|
@ -33,5 +33,25 @@
|
||||||
<groupId>ru.spcex.platform</groupId>
|
<groupId>ru.spcex.platform</groupId>
|
||||||
<artifactId>platform-utils</artifactId>
|
<artifactId>platform-utils</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.assertj</groupId>
|
||||||
|
<artifactId>assertj-core</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mockito</groupId>
|
||||||
|
<artifactId>mockito-core</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|
@ -52,6 +52,10 @@ public class RegistryCodeSqlBuilder {
|
||||||
}
|
}
|
||||||
if (tradingParams.registryUnit() != null) {
|
if (tradingParams.registryUnit() != null) {
|
||||||
condition.append(String.format("registryUnit = '%s'", tradingParams.registryUnit().getKey()));
|
condition.append(String.format("registryUnit = '%s'", tradingParams.registryUnit().getKey()));
|
||||||
|
wasAddedCondition = true;
|
||||||
|
}
|
||||||
|
if (!wasAddedCondition) {
|
||||||
|
condition.delete(condition.length() - " and ".length(), condition.length());
|
||||||
}
|
}
|
||||||
conditions.add(condition);
|
conditions.add(condition);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
package ru.spcex.platform.imdg.api.predicate.specific;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import ru.spcex.platform.enumeration.*;
|
||||||
|
|
||||||
|
public class RegistryCodeSqlBuilderTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBuildByOneObject() {
|
||||||
|
RegistryTradingParams registryTradingParams = new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.R);
|
||||||
|
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams);
|
||||||
|
String sql = registryCodeSqlBuilder.build();
|
||||||
|
Assertions.assertEquals("(registryDesignation = 'C' and registryInstrumentType = 'M' and registryCapacity = 'B' and registryUnit = 'R')", sql);
|
||||||
|
|
||||||
|
registryTradingParams = new RegistryTradingParams(null, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.R);
|
||||||
|
registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams);
|
||||||
|
sql = registryCodeSqlBuilder.build();
|
||||||
|
Assertions.assertEquals("(registryInstrumentType = 'M' and registryCapacity = 'B' and registryUnit = 'R')", sql);
|
||||||
|
|
||||||
|
registryTradingParams = new RegistryTradingParams(RegistryDesignation.C, null, null, RegistryUnit.R);
|
||||||
|
registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams);
|
||||||
|
sql = registryCodeSqlBuilder.build();
|
||||||
|
Assertions.assertEquals("(registryDesignation = 'C' and registryUnit = 'R')", sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBuildByFewObjects() {
|
||||||
|
RegistryTradingParams registryTradingParams_first = new RegistryTradingParams(RegistryDesignation.C, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.R);
|
||||||
|
RegistryTradingParams registryTradingParams_second = new RegistryTradingParams(RegistryDesignation.O, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.F);
|
||||||
|
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams_first, registryTradingParams_second);
|
||||||
|
String sql = registryCodeSqlBuilder.build();
|
||||||
|
Assertions.assertEquals("(registryDesignation = 'C' and registryInstrumentType = 'M' and registryCapacity = 'B' and registryUnit = 'R')" +
|
||||||
|
" or (registryDesignation = 'O' and registryInstrumentType = 'S' and registryCapacity = 'A' and registryUnit = 'F')", sql);
|
||||||
|
|
||||||
|
registryTradingParams_first = new RegistryTradingParams(null, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.R);
|
||||||
|
registryTradingParams_second = new RegistryTradingParams(null, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.F);
|
||||||
|
registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams_first, registryTradingParams_second);
|
||||||
|
sql = registryCodeSqlBuilder.build();
|
||||||
|
Assertions.assertEquals("(registryInstrumentType = 'M' and registryCapacity = 'B' and registryUnit = 'R') or " +
|
||||||
|
"(registryInstrumentType = 'S' and registryCapacity = 'A' and registryUnit = 'F')", sql);
|
||||||
|
|
||||||
|
registryTradingParams_first = new RegistryTradingParams(RegistryDesignation.C, null, null, RegistryUnit.R);
|
||||||
|
registryTradingParams_second = new RegistryTradingParams(null, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.F);
|
||||||
|
registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParams_first, registryTradingParams_second);
|
||||||
|
sql = registryCodeSqlBuilder.build();
|
||||||
|
Assertions.assertEquals("(registryDesignation = 'C' and registryUnit = 'R') or " +
|
||||||
|
"(registryInstrumentType = 'S' and registryCapacity = 'A' and registryUnit = 'F')", sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test(){
|
||||||
|
RegistryTradingParams registryTradingParamsL = new RegistryTradingParams(RegistryDesignation.L,
|
||||||
|
RegistryInstrumentType.S, null, RegistryUnit.T);
|
||||||
|
RegistryTradingParams registryTradingParamsC = new RegistryTradingParams(RegistryDesignation.C,
|
||||||
|
RegistryInstrumentType.M, null, null);
|
||||||
|
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(registryTradingParamsL, registryTradingParamsC);
|
||||||
|
Assertions.assertEquals("(registryDesignation = 'L' and registryInstrumentType = 'S' and registryUnit = 'T') or (registryDesignation = 'C' and registryInstrumentType = 'M')",
|
||||||
|
registryCodeSqlBuilder.build());
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue