This commit is contained in:
parent
fd2ba48189
commit
9b81ee6b35
3 changed files with 53 additions and 3 deletions
|
|
@ -2,6 +2,7 @@ package ru.spcex.clearing.reports.builders.ks;
|
|||
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.account.Account;
|
||||
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.misc.Session;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
|
|
@ -31,6 +32,7 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
private final Imdg<RegistryCodeDictionary> registryCodeDictionaryImdg;
|
||||
private final Imdg<Session> sessionImdg;
|
||||
private final Imdg<Account> accountImdg;
|
||||
private final Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||
|
||||
|
||||
private List<KSRepCashRegistersReport> rows = null;
|
||||
|
|
@ -41,6 +43,7 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
registryCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RegistryCodeDictionary, RegistryCodeDictionary.class);
|
||||
sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
||||
clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -153,6 +156,20 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
Set<String> contracts = new HashSet<>();
|
||||
BigDecimal cmtBalanceSum = BigDecimal.ZERO;
|
||||
for (Registry cmtRegistry : cmtRegistries) {
|
||||
Long counterPartyId = cmtRegistry.getCounterPartyId();
|
||||
if (counterPartyId != null) {
|
||||
Collection<ClearingMemberCategory> clearingMemberCategory = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(
|
||||
Map.of("companyId", counterPartyId)
|
||||
);
|
||||
if (!clearingMemberCategory.isEmpty()) {
|
||||
ClearingMemberCategory next = clearingMemberCategory.iterator().next();
|
||||
ClearingCategory category = IEnumKey.getEnumByKey(ClearingCategory.class, next.getClearingMemberCategory());
|
||||
SessionType sessionType = IEnumKey.getEnumByKey(SessionType.class, cmtRegistry.getSessionType());
|
||||
if (category == ClearingCategory.I && sessionType == SessionType.XDEP) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
BigDecimal balance = cmtRegistry.getBalance();
|
||||
cmtBalanceSum = cmtBalanceSum.add(balance);
|
||||
contracts.add(cmtRegistry.getContract());
|
||||
|
|
@ -169,7 +186,24 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
)
|
||||
);
|
||||
BigDecimal dmxBalanceSum = dmxRegistries.stream().map(Registry::getBalance).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal lmtBalanceSum = lmtRegistries.stream().map(Registry::getBalance).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal lmtBalanceSum = lmtRegistries.stream()
|
||||
.filter(reg -> {
|
||||
Long counterPartyId = reg.getCounterPartyId();
|
||||
if (counterPartyId != null) {
|
||||
Collection<ClearingMemberCategory> clearingMemberCategory = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(
|
||||
Map.of("companyId", counterPartyId)
|
||||
);
|
||||
if (!clearingMemberCategory.isEmpty()) {
|
||||
ClearingMemberCategory next = clearingMemberCategory.iterator().next();
|
||||
ClearingCategory category = IEnumKey.getEnumByKey(ClearingCategory.class, next.getClearingMemberCategory());
|
||||
SessionType sessionType = IEnumKey.getEnumByKey(SessionType.class, reg.getSessionType());
|
||||
return category != ClearingCategory.I || sessionType != SessionType.XDEP;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
})
|
||||
.map(Registry::getBalance)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
ksRepCashRegistersReport.setChangeBalance(cmtBalanceSum.subtract(lmtBalanceSum).subtract(dmxBalanceSum));
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import org.springframework.test.context.ContextConfiguration;
|
|||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.account.Account;
|
||||
import ru.clearing.classes.statics.data.account.AccountSymbols;
|
||||
import ru.clearing.classes.statics.data.company.ClearingMemberCategory;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
|
||||
|
|
@ -93,6 +94,7 @@ public class ReportServiceTest_KS {
|
|||
private Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
||||
private Imdg<STrades> sTradesImdg;
|
||||
private Imdg<AccountSymbols> accountSymbolsImdg;
|
||||
private Imdg<ClearingMemberCategory> clearingMemberCategoryImdg;
|
||||
|
||||
private Long COMPANY_ID;
|
||||
@Autowired
|
||||
|
|
@ -200,6 +202,14 @@ public class ReportServiceTest_KS {
|
|||
cmtRegistry_2.setRegistryDesignation(RegistryDesignation.C.getKey());
|
||||
cmtRegistry_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
cmtRegistry_2.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
|
||||
ClearingMemberCategory clearingMemberCategory = new ClearingMemberCategory();
|
||||
clearingMemberCategory.setCompanyId(COMPANY_ID);
|
||||
clearingMemberCategory.setClearingMemberCategory(ClearingCategory.I.getKey());
|
||||
clearingMemberCategoryImdg.insert(clearingMemberCategory);
|
||||
cmtRegistry_2.setSessionType(SessionType.XDEP.getKey());
|
||||
cmtRegistry_2.setCounterPartyId(COMPANY_ID);
|
||||
|
||||
cmtRegistry_2.setSessionId(SESSION_ID_FOR_DAY);
|
||||
cmtRegistry_2.setTradingCode("TRADING_CODE");
|
||||
cmtRegistry_2.setCompanyId(COMPANY_ID);
|
||||
|
|
@ -240,6 +250,10 @@ public class ReportServiceTest_KS {
|
|||
lmtRegistry_2.setRegistryDesignation(RegistryDesignation.L.getKey());
|
||||
lmtRegistry_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
lmtRegistry_2.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
|
||||
lmtRegistry_2.setSessionType(SessionType.XDEP.getKey());
|
||||
lmtRegistry_2.setCounterPartyId(COMPANY_ID);
|
||||
|
||||
lmtRegistry_2.setSessionId(SESSION_ID_FOR_DAY);
|
||||
lmtRegistry_2.setTradingCode("TRADING_CODE");
|
||||
lmtRegistry_2.setCompanyId(COMPANY_ID);
|
||||
|
|
@ -359,6 +373,7 @@ public class ReportServiceTest_KS {
|
|||
registryImdg.delete(dmxRegistry_2);
|
||||
sessionImdg.delete(sessionForDay);
|
||||
accountImdg.delete(account);
|
||||
clearingMemberCategoryImdg.delete(clearingMemberCategory);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -1242,6 +1257,7 @@ public class ReportServiceTest_KS {
|
|||
accountSymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountSymbols, AccountSymbols.class);
|
||||
sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
|
||||
accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
|
||||
clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
|
||||
}
|
||||
|
||||
private void clearTestDir() throws IOException {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
"FIRMID","ACCOUNT","TKR","DATE","REGISTER_CODE","REGISTER_NAME","OPEN_BALANCE","CHANGE_BALANCE","ADD_WITHDRAW","CLOSE_BALANCE","REMARKS","TRADE_NUM"
|
||||
"TRADING_CODE","ACCOUNT_FROM_ACCOUNT","TRADING_CLEARING_REGISTRY","01.11.2023","AM_T","AM_T_NAME","77.78",278.00,"111.00","466.78","",""
|
||||
"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","01.11.2023","AM_T","AM_T_NAME","77.78",278.00,"111.00",466.78,"",""
|
||||
"TRADING_CODE","ACCOUNT_FROM_ACCOUNT","TRADING_CLEARING_REGISTRY","29.12.2023","AM_T","AM_T_NAME","77.78","189.00","111.00","377.78",,
|
||||
"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","29.12.2023","AM_T","AM_T_NAME","77.78","189.00","111.00","377.78",,
|
||||
|
|
|
|||
|
Loading…
Add table
Reference in a new issue