akulikov 2023-11-24 17:12:48 +03:00
parent 99f4dbe292
commit 2da0ac042c
4 changed files with 61 additions and 2 deletions

View file

@ -61,6 +61,18 @@ public class KSCommissionTradesReport {
@CsvBindByPosition(position = 11)
private Long trId;
@CsvBindByName(column = "TKR")
@CsvBindByPosition(position = 12)
private String tkr;
@CsvBindByName(column = "ACCOUNT")
@CsvBindByPosition(position = 13)
private String account;
@CsvBindByName(column = "SESSION_ID")
@CsvBindByPosition(position = 14)
private Long sessionId;
public String getFirmId() {
return firmId;
@ -157,4 +169,28 @@ public class KSCommissionTradesReport {
public void setTrId(Long trId) {
this.trId = trId;
}
public String getTkr() {
return tkr;
}
public void setTkr(String tkr) {
this.tkr = tkr;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public Long getSessionId() {
return sessionId;
}
public void setSessionId(Long sessionId) {
this.sessionId = sessionId;
}
}

View file

@ -1,6 +1,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.Company;
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
import ru.clearing.classes.statics.data.registry.Registry;
@ -21,6 +22,7 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@Component
public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParams, KSCommissionTradesReport> {
@ -29,6 +31,7 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
private final Imdg<Registry> registryImdg;
private final Imdg<Company> companyImdg;
private final Imdg<ExecutionDeposit> executionDepositImdg;
private final Imdg<Account> accountImdg;
private List<KSCommissionTradesReport> rows = null;
@ -36,6 +39,7 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
executionDepositImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class);
accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
}
@Override
@ -157,6 +161,18 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
if (executionDeposits.size() > 1) log.warn("ExecutionDeposit[exchangeExecutionId = {}].size > 1, use first", registry.getGroupId());
ExecutionDeposit executionDeposit = executionDeposits.iterator().next();
String account = null;
AccountType accountType = IEnumKey.getEnumByKey(AccountType.class, registry.getAccountType());
if (accountType == AccountType.Clrn) {
account = registry.getAccount();
} else if (accountType == AccountType.Info) {
Account accountFromImdg = accountImdg.getFirstObjectByFieldValues(Map.of(
"accountType", AccountType.Anlt.getKey(),
"companyId", 1L
));
account = accountFromImdg.getAccount();
}
KSCommissionTradesReport ksCommissionTradesReport = new KSCommissionTradesReport();
ksCommissionTradesReport.setFirmId(firmId);
ksCommissionTradesReport.setFirmIdInitiator(firmIdInitiator);
@ -173,6 +189,9 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
ksCommissionTradesReport.setExecStatus(execStatus);
ksCommissionTradesReport.setAgreementSettlementDate(registry.getValueDate());
ksCommissionTradesReport.setTrId(registry.getGroupId());
ksCommissionTradesReport.setTkr(registry.getTradingClearingRegistry());
ksCommissionTradesReport.setAccount(account);
ksCommissionTradesReport.setSessionId(registry.getSessionId());
rows.add(ksCommissionTradesReport);
} catch (Throwable e) {

View file

@ -1050,6 +1050,10 @@ public class ReportServiceTest_KS {
registry.setSessionType(SessionType.XDEP.getKey());
registry.setValueDate(LocalDate.now().minusDays(10));
registry.setSettlementDate(LocalDate.of(2022, 1, 2));
registry.setTradingClearingRegistry("TRADING_CLEARING_REGISTRY");
registry.setAccountType(AccountType.Clrn.getKey());
registry.setAccount("ACCOUNT");
registry.setSessionId(1L);
registryImdg.insert(registry);
Registry omtRegistry = new Registry();

View file

@ -1,2 +1,2 @@
"FIRM_ID","FIRM_ID_INITIATOR","SECCODE","CLASS_CODE","AGREEMENT_NUMBER","AGREEMENT_NUMBER_POSTFIX","AGREEMENT_DATE","AGREEMENT_SETTLEMENT_DATE","SUM","REPAYM_DATE","EXEC_STATUS","TR_ID"
"CLEARING_CODE","TRADING_CODE","CONT~RACT","market","CONT","CONT~RACT","01.01.1991","13.11.2023","-77.78","23.11.2023","Исполнен","23071812300"
"FIRM_ID","FIRM_ID_INITIATOR","SECCODE","CLASS_CODE","AGREEMENT_NUMBER","AGREEMENT_NUMBER_POSTFIX","AGREEMENT_DATE","AGREEMENT_SETTLEMENT_DATE","SUM","REPAYM_DATE","EXEC_STATUS","TR_ID","TKR","ACCOUNT","SESSION_ID"
"CLEARING_CODE","TRADING_CODE","CONT~RACT","market","CONT","CONT~RACT","01.01.1991","14.11.2023","-77.78","24.11.2023","Исполнен","23071812300","TRADING_CLEARING_REGISTRY","ACCOUNT","1"

1 FIRM_ID FIRM_ID_INITIATOR SECCODE CLASS_CODE AGREEMENT_NUMBER AGREEMENT_NUMBER_POSTFIX AGREEMENT_DATE AGREEMENT_SETTLEMENT_DATE SUM REPAYM_DATE EXEC_STATUS TR_ID TKR ACCOUNT SESSION_ID
2 CLEARING_CODE TRADING_CODE CONT~RACT market CONT CONT~RACT 01.01.1991 13.11.2023 14.11.2023 -77.78 23.11.2023 24.11.2023 Исполнен 23071812300 TRADING_CLEARING_REGISTRY ACCOUNT 1