This commit is contained in:
parent
a2dcd21867
commit
b5b204bf5f
3 changed files with 123 additions and 4 deletions
|
|
@ -2,6 +2,7 @@ package ru.spcex.clearing.reports.builders.ks;
|
|||
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.misc.Session;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.platform.dictionary.RegistryCodeDictionary;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
|
@ -29,6 +30,7 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
private final Imdg<Registry> registryImdg;
|
||||
private final Imdg<Company> companyImdg;
|
||||
private final Imdg<RegistryCodeDictionary> registryCodeDictionaryImdg;
|
||||
private final Imdg<Session> sessionImdg;
|
||||
|
||||
|
||||
private List<KSRepCashRegistersReport> rows = null;
|
||||
|
|
@ -37,6 +39,7 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
registryCodeDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_RegistryCodeDictionary, RegistryCodeDictionary.class);
|
||||
sessionImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Session, Session.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -108,9 +111,35 @@ public class KSRepCashRegistersReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
RegistryCodeDictionary registryCodeDictionary = registryCodeDictionaryImdg.getFirstObjectByFieldValues(Map.of("code", registry.getRegistryCode()));
|
||||
if (registryCodeDictionary != null) ksRepCashRegistersReport.setRegisterName(registryCodeDictionary.getName());
|
||||
|
||||
BigDecimal settleCredit = registry.getSettledCredit() != null ? registry.getSettledCredit() : BigDecimal.ZERO;
|
||||
BigDecimal settleDebit = registry.getSettledDebit() != null ? registry.getSettledDebit() : BigDecimal.ZERO;
|
||||
ksRepCashRegistersReport.setChangeBalance(settleCredit.subtract(settleDebit));
|
||||
|
||||
Collection<Session> sessionsForDay = sessionImdg.getCollectionObjectsByFieldValues(Map.of("clearingDate", LocalDate.now()));
|
||||
Long[] sessionIds = sessionsForDay.stream().map(Session::getId).toArray(Long[]::new);
|
||||
ImdgPredicate cmtPredicate = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.CM_T).buildPredicate(pb);
|
||||
Collection<Registry> cmtRegistries = registryImdg.getCollectionObjectsByPredicate(
|
||||
pb.and(
|
||||
cmtPredicate,
|
||||
pb.in("sessionId", sessionIds),
|
||||
pb.equals("tradingCode", registry.getTradingCode()),
|
||||
pb.equals("companyId", registry.getCompanyId()),
|
||||
pb.equals("account", registry.getAccount()),
|
||||
pb.equals("registryStatus", RegistryStatus.CLRD.getKey())
|
||||
)
|
||||
);
|
||||
ImdgPredicate lmtPredicate = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.LM_T).buildPredicate(pb);
|
||||
Collection<Registry> lmtRegistries = registryImdg.getCollectionObjectsByPredicate(
|
||||
pb.and(
|
||||
lmtPredicate,
|
||||
pb.in("sessionId", sessionIds),
|
||||
pb.equals("tradingCode", registry.getTradingCode()),
|
||||
pb.equals("companyId", registry.getCompanyId()),
|
||||
pb.equals("account", registry.getAccount()),
|
||||
pb.equals("registryStatus", RegistryStatus.CLRD.getKey())
|
||||
)
|
||||
);
|
||||
BigDecimal cmtBalanceSum = cmtRegistries.stream().map(Registry::getBalance).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
BigDecimal lmtBalanceSum = lmtRegistries.stream().map(Registry::getBalance).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
ksRepCashRegistersReport.setChangeBalance(cmtBalanceSum.subtract(lmtBalanceSum));
|
||||
|
||||
|
||||
registryPredicate = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.DM_I).buildPredicate(pb);
|
||||
Collection<Registry> registriesForAddWithdraw = registryImdg.getCollectionObjectsByPredicate(
|
||||
|
|
|
|||
|
|
@ -150,6 +150,89 @@ public class ReportServiceTest_KS {
|
|||
registry.setCloseBalance(BigDecimal.valueOf(11.11111111));
|
||||
registryImdg.insert(registry);
|
||||
|
||||
Session sessionForDay = new Session();
|
||||
sessionForDay.setClearingDate(LocalDate.now());
|
||||
Long SESSION_ID_FOR_DAY = sessionImdg.insert(sessionForDay);
|
||||
|
||||
Registry cmtRegistry_1 = new Registry();
|
||||
cmtRegistry_1.setRegistryCode("CM_T");
|
||||
cmtRegistry_1.setRegistryDesignation(RegistryDesignation.C.getKey());
|
||||
cmtRegistry_1.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
cmtRegistry_1.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
cmtRegistry_1.setSessionId(SESSION_ID_FOR_DAY);
|
||||
cmtRegistry_1.setTradingCode("TRADING_CODE");
|
||||
cmtRegistry_1.setCompanyId(COMPANY_ID);
|
||||
cmtRegistry_1.setAccount("ACCOUNT");
|
||||
cmtRegistry_1.setRegistryStatus(RegistryStatus.CLRD.getKey());
|
||||
cmtRegistry_1.setBalance(BigDecimal.valueOf(111L));
|
||||
registryImdg.insert(cmtRegistry_1);
|
||||
|
||||
Registry cmtRegistry_2 = new Registry();
|
||||
cmtRegistry_2.setRegistryCode("CM_T");
|
||||
cmtRegistry_2.setRegistryDesignation(RegistryDesignation.C.getKey());
|
||||
cmtRegistry_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
cmtRegistry_2.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
cmtRegistry_2.setSessionId(SESSION_ID_FOR_DAY);
|
||||
cmtRegistry_2.setTradingCode("TRADING_CODE");
|
||||
cmtRegistry_2.setCompanyId(COMPANY_ID);
|
||||
cmtRegistry_2.setAccount("ACCOUNT");
|
||||
cmtRegistry_2.setRegistryStatus(RegistryStatus.CLRD.getKey());
|
||||
cmtRegistry_2.setBalance(BigDecimal.valueOf(111L));
|
||||
registryImdg.insert(cmtRegistry_2);
|
||||
|
||||
Registry cmtRegistry_3 = new Registry();
|
||||
cmtRegistry_3.setRegistryCode("CM_T");
|
||||
cmtRegistry_3.setRegistryDesignation(RegistryDesignation.C.getKey());
|
||||
cmtRegistry_3.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
cmtRegistry_3.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
cmtRegistry_3.setSessionId(SESSION_ID_FOR_DAY);
|
||||
cmtRegistry_3.setTradingCode("TRADING_CODE");
|
||||
cmtRegistry_3.setCompanyId(COMPANY_ID);
|
||||
cmtRegistry_3.setAccount("ACCOUNT");
|
||||
cmtRegistry_3.setRegistryStatus(RegistryStatus.CLRD.getKey());
|
||||
cmtRegistry_3.setBalance(BigDecimal.valueOf(111L));
|
||||
registryImdg.insert(cmtRegistry_3);
|
||||
|
||||
Registry lmtRegistry_1 = new Registry();
|
||||
lmtRegistry_1.setRegistryCode("LM_T");
|
||||
lmtRegistry_1.setRegistryDesignation(RegistryDesignation.L.getKey());
|
||||
lmtRegistry_1.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
lmtRegistry_1.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
lmtRegistry_1.setSessionId(SESSION_ID_FOR_DAY);
|
||||
lmtRegistry_1.setTradingCode("TRADING_CODE");
|
||||
lmtRegistry_1.setCompanyId(COMPANY_ID);
|
||||
lmtRegistry_1.setAccount("ACCOUNT");
|
||||
lmtRegistry_1.setRegistryStatus(RegistryStatus.CLRD.getKey());
|
||||
lmtRegistry_1.setBalance(BigDecimal.valueOf(11L));
|
||||
registryImdg.insert(lmtRegistry_1);
|
||||
|
||||
Registry lmtRegistry_2 = new Registry();
|
||||
lmtRegistry_2.setRegistryCode("LM_T");
|
||||
lmtRegistry_2.setRegistryDesignation(RegistryDesignation.L.getKey());
|
||||
lmtRegistry_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
lmtRegistry_2.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
lmtRegistry_2.setSessionId(SESSION_ID_FOR_DAY);
|
||||
lmtRegistry_2.setTradingCode("TRADING_CODE");
|
||||
lmtRegistry_2.setCompanyId(COMPANY_ID);
|
||||
lmtRegistry_2.setAccount("ACCOUNT");
|
||||
lmtRegistry_2.setRegistryStatus(RegistryStatus.CLRD.getKey());
|
||||
lmtRegistry_2.setBalance(BigDecimal.valueOf(11L));
|
||||
registryImdg.insert(lmtRegistry_2);
|
||||
|
||||
Registry lmtRegistry_3 = new Registry();
|
||||
lmtRegistry_3.setRegistryCode("LM_T");
|
||||
lmtRegistry_3.setRegistryDesignation(RegistryDesignation.L.getKey());
|
||||
lmtRegistry_3.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
lmtRegistry_3.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
lmtRegistry_3.setSessionId(SESSION_ID_FOR_DAY);
|
||||
lmtRegistry_3.setTradingCode("TRADING_CODE");
|
||||
lmtRegistry_3.setCompanyId(COMPANY_ID);
|
||||
lmtRegistry_3.setAccount("ACCOUNT");
|
||||
lmtRegistry_3.setRegistryStatus(RegistryStatus.CLRD.getKey());
|
||||
lmtRegistry_3.setBalance(BigDecimal.valueOf(11L));
|
||||
registryImdg.insert(lmtRegistry_3);
|
||||
|
||||
|
||||
Registry addWithdrawRegistry_1 = new Registry();
|
||||
addWithdrawRegistry_1.setCompanyId(COMPANY_ID);
|
||||
addWithdrawRegistry_1.setSecurityId(777L);
|
||||
|
|
@ -208,6 +291,13 @@ public class ReportServiceTest_KS {
|
|||
registryImdg.delete(addWithdrawRegistry_1);
|
||||
registryImdg.delete(addWithdrawRegistry_2);
|
||||
registryImdg.delete(addWithdrawRegistry_3);
|
||||
registryImdg.delete(cmtRegistry_1);
|
||||
registryImdg.delete(cmtRegistry_2);
|
||||
registryImdg.delete(cmtRegistry_3);
|
||||
registryImdg.delete(lmtRegistry_1);
|
||||
registryImdg.delete(lmtRegistry_2);
|
||||
registryImdg.delete(lmtRegistry_3);
|
||||
sessionImdg.delete(sessionForDay);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
"FIRMID","ACCOUNT","TKR","DATE","REGISTER_CODE","REGISTER_NAME","OPEN_BALANCE","CHANGE_BALANCE","ADD_WITHDRAW","CLOSE_BALANCE","REMARKS","TRADE_NUM"
|
||||
"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","02.10.2023","AM_T","AM_T_NAME","77.78","66.67","111.00","255.44","",""
|
||||
"TRADING_CODE","ACCOUNT","TRADING_CLEARING_REGISTRY","31.10.2023","AM_T","AM_T_NAME","77.78","300.00","111.00","488.78","",""
|
||||
|
|
|
|||
|
Loading…
Add table
Reference in a new issue