This commit is contained in:
parent
f253caf3d2
commit
d1082874cb
4 changed files with 60 additions and 21 deletions
|
|
@ -9,43 +9,47 @@ import java.math.BigDecimal;
|
|||
import java.time.LocalDate;
|
||||
|
||||
public class KSCommissionTradesReport {
|
||||
@CsvBindByName(column = "FIRMID")
|
||||
@CsvBindByName(column = "FIRM_ID")
|
||||
@CsvBindByPosition(position = 0)
|
||||
private String firmId;
|
||||
|
||||
@CsvBindByName(column = "FIRM_INITIATOR")
|
||||
@CsvBindByName(column = "FIRM_ID_INITIATOR")
|
||||
@CsvBindByPosition(position = 1)
|
||||
private String firmInitiator;
|
||||
private String firmIdInitiator;
|
||||
|
||||
@CsvBindByName(column = "SECCODE")
|
||||
@CsvBindByPosition(position = 2)
|
||||
private String secCode;
|
||||
|
||||
@CsvBindByName(column = "AGREEMENT_NUMBER")
|
||||
@CsvBindByName(column = "CLASS_CODE")
|
||||
@CsvBindByPosition(position = 3)
|
||||
private String classCode;
|
||||
|
||||
@CsvBindByName(column = "AGREEMENT_NUMBER")
|
||||
@CsvBindByPosition(position = 4)
|
||||
private String agreementNumber;
|
||||
|
||||
@CsvBindByName(column = "AGREEMENT_NUMBER_POSTFIX")
|
||||
@CsvBindByPosition(position = 4)
|
||||
@CsvBindByPosition(position = 5)
|
||||
private String agreementNumberPostfix;
|
||||
|
||||
@CsvBindByName(column = "AGREEMENT_DATE")
|
||||
@CsvBindByPosition(position = 5)
|
||||
@CsvBindByPosition(position = 6)
|
||||
@CsvDate(value = "dd.MM.yyyy")
|
||||
private LocalDate agreementDate;
|
||||
|
||||
@CsvBindByName(column = "SUM")
|
||||
@CsvBindByPosition(position = 6)
|
||||
@CsvBindByPosition(position = 7)
|
||||
@CsvNumber(value = "#0.00", writeFormat = "#0.00")
|
||||
private BigDecimal sum;
|
||||
|
||||
@CsvBindByName(column = "REPAYM_DATE")
|
||||
@CsvBindByPosition(position = 7)
|
||||
@CsvBindByPosition(position = 8)
|
||||
@CsvDate(value = "dd.MM.yyyy")
|
||||
private LocalDate repaymDate;
|
||||
|
||||
@CsvBindByName(column = "EXEC_STATUS")
|
||||
@CsvBindByPosition(position = 8)
|
||||
@CsvBindByPosition(position = 9)
|
||||
private String execStatus;
|
||||
|
||||
|
||||
|
|
@ -57,12 +61,12 @@ public class KSCommissionTradesReport {
|
|||
this.firmId = firmId;
|
||||
}
|
||||
|
||||
public String getFirmInitiator() {
|
||||
return firmInitiator;
|
||||
public String getFirmIdInitiator() {
|
||||
return firmIdInitiator;
|
||||
}
|
||||
|
||||
public void setFirmInitiator(String firmInitiator) {
|
||||
this.firmInitiator = firmInitiator;
|
||||
public void setFirmIdInitiator(String firmIdInitiator) {
|
||||
this.firmIdInitiator = firmIdInitiator;
|
||||
}
|
||||
|
||||
public String getSecCode() {
|
||||
|
|
@ -120,4 +124,12 @@ public class KSCommissionTradesReport {
|
|||
public void setExecStatus(String execStatus) {
|
||||
this.execStatus = execStatus;
|
||||
}
|
||||
|
||||
public String getClassCode() {
|
||||
return classCode;
|
||||
}
|
||||
|
||||
public void setClassCode(String classCode) {
|
||||
this.classCode = classCode;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package ru.spcex.clearing.reports.reports.ks;
|
|||
import org.springframework.stereotype.Component;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.clearing.classes.statics.data.misc.STrades;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.reports.reports.CSVReportBuilder;
|
||||
|
|
@ -29,6 +30,7 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
private final Imdg<Registry> registryImdg;
|
||||
private final Imdg<Company> companyImdg;
|
||||
private final Imdg<CompanySymbols> companySymbolsImdg;
|
||||
private final Imdg<STrades> sTradesImdg;
|
||||
|
||||
private List<KSCommissionTradesReport> rows = null;
|
||||
|
||||
|
|
@ -36,6 +38,7 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -122,8 +125,8 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
continue;
|
||||
}
|
||||
|
||||
String extracted = extractPartAgreementNumber(String.valueOf(omtRegistry.getGroupId()));
|
||||
if (extracted == null) {
|
||||
String tradeNum = extractPartAgreementNumber(String.valueOf(omtRegistry.getGroupId()));
|
||||
if (tradeNum == null) {
|
||||
log.warn("Can't extract ExchangeExecutionId from GroupId (groupId = {} for OM_T registry id = {}). " +
|
||||
"Registry id = {} skipped",
|
||||
omtRegistry.getGroupId(),
|
||||
|
|
@ -135,13 +138,28 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
registry.getSecuritySymbol(),
|
||||
dateFormatter_ddMMyy.format(registry.getClearingDate()),
|
||||
registry.getClearingCode(),
|
||||
extracted
|
||||
tradeNum
|
||||
);
|
||||
|
||||
pb = sTradesImdg.predicateBuilder();
|
||||
Collection<STrades> sTradesList = sTradesImdg.getCollectionObjectsByPredicate(
|
||||
pb.and(
|
||||
pb.equals("tradeNum", tradeNum),
|
||||
pb.notNull("classCode")
|
||||
)
|
||||
);
|
||||
if (sTradesList.isEmpty()) {
|
||||
log.warn("Not found STrades for registry (id = {}), tradeNum: {}. Registry skipped", registry.getId(), tradeNum);
|
||||
continue;
|
||||
}
|
||||
if (sTradesList.size() > 1) log.warn("sTrades[tradeNum = {}].size > 1, use first", tradeNum);
|
||||
STrades sTrades = sTradesList.iterator().next();
|
||||
|
||||
KSCommissionTradesReport ksCommissionTradesReport = new KSCommissionTradesReport();
|
||||
ksCommissionTradesReport.setFirmId(registry.getClearingCode());
|
||||
ksCommissionTradesReport.setFirmInitiator(companySymbols.getCompanySymbolValue());
|
||||
ksCommissionTradesReport.setFirmIdInitiator(companySymbols.getCompanySymbolValue());
|
||||
ksCommissionTradesReport.setSecCode(registry.getSecuritySymbol());
|
||||
ksCommissionTradesReport.setClassCode(sTrades.getClassCode());
|
||||
ksCommissionTradesReport.setAgreementNumber(agreementNumber);
|
||||
ksCommissionTradesReport.setAgreementNumberPostfix("");
|
||||
ksCommissionTradesReport.setAgreementDate(registry.getClearingDate());
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
|
|||
import ru.clearing.classes.statics.data.execution.ExecutionFond;
|
||||
import ru.clearing.classes.statics.data.instrument.issue.EquitySecurity;
|
||||
import ru.clearing.classes.statics.data.misc.Market;
|
||||
import ru.clearing.classes.statics.data.misc.STrades;
|
||||
import ru.clearing.classes.statics.data.misc.Session;
|
||||
import ru.clearing.classes.statics.data.profile.ProfileDocument;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
|
|
@ -87,6 +88,7 @@ public class ReportServiceTest_KS {
|
|||
private Imdg<ProfileDocument> profileDocumentImdg;
|
||||
private Imdg<EquitySecurity> equitySecurityImdg;
|
||||
private Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
||||
private Imdg<STrades> sTradesImdg;
|
||||
|
||||
private Long COMPANY_ID;
|
||||
@Autowired
|
||||
|
|
@ -655,9 +657,14 @@ public class ReportServiceTest_KS {
|
|||
omtRegistry.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
omtRegistry.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
omtRegistry.setContract("CONTRACT");
|
||||
omtRegistry.setGroupId(23071877700L);
|
||||
omtRegistry.setGroupId(23071812300L);
|
||||
registryImdg.insert(omtRegistry);
|
||||
|
||||
STrades sTrades = new STrades();
|
||||
sTrades.setTradeNum(123L);
|
||||
sTrades.setClassCode("CLASS_CODE");
|
||||
sTradesImdg.insert(sTrades);
|
||||
|
||||
String jsonString = TestUtils.getJsonStringForSystem(reportRequest, 0L);
|
||||
|
||||
TestUtils.addRecordToKafka((MockConsumer) reportService.getConsumer(),
|
||||
|
|
@ -674,7 +681,8 @@ public class ReportServiceTest_KS {
|
|||
|
||||
registryImdg.delete(registry);
|
||||
registryImdg.delete(omtRegistry);
|
||||
companySymbolsImdg.insert(companySymbols);
|
||||
companySymbolsImdg.delete(companySymbols);
|
||||
sTradesImdg.delete(sTrades);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -741,6 +749,7 @@ public class ReportServiceTest_KS {
|
|||
statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class);
|
||||
equitySecurityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class);
|
||||
tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||
sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
|
||||
}
|
||||
|
||||
private void clearTestDir() throws IOException {
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
"FIRMID","FIRM_INITIATOR","SECCODE","AGREEMENT_NUMBER","AGREEMENT_NUMBER_POSTFIX","AGREEMENT_DATE","SUM","REPAYM_DATE","EXEC_STATUS"
|
||||
"CLEARING_CODE","COMPANY_SYMBOL_VALUE","SECURITY_SYMBOL","SECURITY_SYMBOL/010191/CLEARING_CODE/777","","01.01.1991","77.78","01.08.2023","OK"
|
||||
"FIRM_ID","FIRM_ID_INITIATOR","SECCODE","CLASS_CODE","AGREEMENT_NUMBER","AGREEMENT_NUMBER_POSTFIX","AGREEMENT_DATE","SUM","REPAYM_DATE","EXEC_STATUS"
|
||||
"CLEARING_CODE","COMPANY_SYMBOL_VALUE","SECURITY_SYMBOL","CLASS_CODE","SECURITY_SYMBOL/010191/CLEARING_CODE/123","","01.01.1991","77.78","23.08.2023","OK"
|
||||
|
|
|
|||
|
Loading…
Add table
Reference in a new issue