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));
|
||||
}
|
||||
|
||||
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) {
|
||||
rgs.setBalance(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();
|
||||
RegistryCodeSqlBuilder registryCodeSqlBuilder = RegistryCodeSqlBuilder.getInstance(
|
||||
CS_T, LS_T
|
||||
);
|
||||
ImdgPredicate rgsCodePrdct = rgsPb.and(
|
||||
rgsPb.sql(registryCodeSqlBuilder.build()),
|
||||
rgsPb.equals("sessionId", sessionId),
|
||||
rgsPb.equals("settlementDate", LocalDate.now()));
|
||||
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(rgsCodePrdct);
|
||||
return registries.stream()
|
||||
|
|
@ -143,7 +144,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage {
|
|||
List<PaymentInstruction> paymentInstructionAll = new ArrayList<>();
|
||||
Instant now = Instant.now();
|
||||
{
|
||||
Collection<Registry> registries = selectSecurityRegistries();
|
||||
Collection<Registry> registries = selectSecurityRegistries(sessionId);
|
||||
log.debug("found registries.size() = {}", registries.size());
|
||||
//группируем регистры по groupId
|
||||
Map<Long, List<Registry>> groups = registries
|
||||
|
|
@ -264,7 +265,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage {
|
|||
debitLegAccount = tranAcc;
|
||||
creditLegAccount = counterAcc;
|
||||
amount = registry.getBalance() == null ? null : registry.getBalance().abs();
|
||||
Optional<Registry> payerAmtO = rgsMng.findRelatedAsset(
|
||||
Optional<Registry> payerAmtO = rgsMng.findRelatedAssetTran(
|
||||
registry.getTradingClearingRegistryId(),
|
||||
registry.getCompanyId(),
|
||||
registry.getSecuritySymbol(),
|
||||
|
|
@ -279,7 +280,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage {
|
|||
debitLegAccount = counterAcc;
|
||||
creditLegAccount = tranAcc;
|
||||
amount = registry.getBalance() == null ? null : registry.getBalance().abs();
|
||||
Optional<Registry> payerAmtO = rgsMng.findRelatedAsset(
|
||||
Optional<Registry> payerAmtO = rgsMng.findRelatedAssetTran(
|
||||
registry.getTradingClearingRegistryId(),
|
||||
registry.getCompanyId(),
|
||||
registry.getSecuritySymbol(),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue