FormingPaymentInstructionSecurities bugfix
This commit is contained in:
parent
e9636e8723
commit
7e0eda6fe3
2 changed files with 20 additions and 4 deletions
|
|
@ -162,6 +162,21 @@ public class RegistryManager {
|
||||||
return Optional.ofNullable(rgsImdg.getSingleObjectByPredicate(prdct));
|
return Optional.ofNullable(rgsImdg.getSingleObjectByPredicate(prdct));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Optional<Registry> findRelatedAssetTran(Long tcrId,
|
||||||
|
Long companyId,
|
||||||
|
String securitySymbol,
|
||||||
|
RegistryTradingParams rgsCode) {
|
||||||
|
ImdgPredicateBuilder rgsPrdBldr = rgsImdg.predicateBuilder();
|
||||||
|
RegistryCodeSqlBuilder codeSql = RegistryCodeSqlBuilder.getInstance(rgsCode);
|
||||||
|
ImdgPredicate prdct = rgsPrdBldr.and(
|
||||||
|
rgsPrdBldr.equals("tradingClearingRegistryId", tcrId),
|
||||||
|
rgsPrdBldr.equals("companyId", companyId),
|
||||||
|
rgsPrdBldr.equals("securitySymbol", securitySymbol),
|
||||||
|
rgsPrdBldr.equals("accountType", AccountType.Tran.getKey()),
|
||||||
|
rgsPrdBldr.sql(codeSql.build()));
|
||||||
|
return Optional.ofNullable(rgsImdg.getSingleObjectByPredicate(prdct));
|
||||||
|
}
|
||||||
|
|
||||||
public static void zeroState(Registry rgs) {
|
public static void zeroState(Registry rgs) {
|
||||||
rgs.setBalance(BigDecimal.ZERO);
|
rgs.setBalance(BigDecimal.ZERO);
|
||||||
rgs.setDebit(BigDecimal.ZERO);
|
rgs.setDebit(BigDecimal.ZERO);
|
||||||
|
|
|
||||||
|
|
@ -107,13 +107,14 @@ public class FormingPaymentInstructionSecurities implements ISessionStage {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private Collection<Registry> selectSecurityRegistries() {
|
private Collection<Registry> selectSecurityRegistries(Long sessionId) {
|
||||||
ImdgPredicateBuilder rgsPb = registryImdg.predicateBuilder();
|
ImdgPredicateBuilder rgsPb = registryImdg.predicateBuilder();
|
||||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(
|
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(
|
||||||
CS_T, LS_T
|
CS_T, LS_T
|
||||||
);
|
);
|
||||||
ImdgPredicate rgsCodePrdct = rgsPb.and(
|
ImdgPredicate rgsCodePrdct = rgsPb.and(
|
||||||
rgsPb.sql(registryCodeSqlBuilder.build()),
|
rgsPb.sql(registryCodeSqlBuilder.build()),
|
||||||
|
rgsPb.equals("sessionId", sessionId),
|
||||||
rgsPb.equals("settlementDate", LocalDate.now()));
|
rgsPb.equals("settlementDate", LocalDate.now()));
|
||||||
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(rgsCodePrdct);
|
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(rgsCodePrdct);
|
||||||
return registries.stream()
|
return registries.stream()
|
||||||
|
|
@ -143,7 +144,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage {
|
||||||
List<PaymentInstruction> paymentInstructionAll = new ArrayList<>();
|
List<PaymentInstruction> paymentInstructionAll = new ArrayList<>();
|
||||||
Instant now = Instant.now();
|
Instant now = Instant.now();
|
||||||
{
|
{
|
||||||
Collection<Registry> registries = selectSecurityRegistries();
|
Collection<Registry> registries = selectSecurityRegistries(sessionId);
|
||||||
log.debug("found registries.size() = {}", registries.size());
|
log.debug("found registries.size() = {}", registries.size());
|
||||||
//группируем регистры по groupId
|
//группируем регистры по groupId
|
||||||
Map<Long, List<Registry>> groups = registries
|
Map<Long, List<Registry>> groups = registries
|
||||||
|
|
@ -264,7 +265,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage {
|
||||||
debitLegAccount = tranAcc;
|
debitLegAccount = tranAcc;
|
||||||
creditLegAccount = counterAcc;
|
creditLegAccount = counterAcc;
|
||||||
amount = registry.getBalance() == null ? null : registry.getBalance().abs();
|
amount = registry.getBalance() == null ? null : registry.getBalance().abs();
|
||||||
Optional<Registry> payerAmtO = rgsMng.findRelatedAsset(
|
Optional<Registry> payerAmtO = rgsMng.findRelatedAssetTran(
|
||||||
registry.getTradingClearingRegistryId(),
|
registry.getTradingClearingRegistryId(),
|
||||||
registry.getCompanyId(),
|
registry.getCompanyId(),
|
||||||
registry.getSecuritySymbol(),
|
registry.getSecuritySymbol(),
|
||||||
|
|
@ -279,7 +280,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage {
|
||||||
debitLegAccount = counterAcc;
|
debitLegAccount = counterAcc;
|
||||||
creditLegAccount = tranAcc;
|
creditLegAccount = tranAcc;
|
||||||
amount = registry.getBalance() == null ? null : registry.getBalance().abs();
|
amount = registry.getBalance() == null ? null : registry.getBalance().abs();
|
||||||
Optional<Registry> payerAmtO = rgsMng.findRelatedAsset(
|
Optional<Registry> payerAmtO = rgsMng.findRelatedAssetTran(
|
||||||
registry.getTradingClearingRegistryId(),
|
registry.getTradingClearingRegistryId(),
|
||||||
registry.getCompanyId(),
|
registry.getCompanyId(),
|
||||||
registry.getSecuritySymbol(),
|
registry.getSecuritySymbol(),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue