This commit is contained in:
akulikov 2023-10-31 10:55:48 +03:00
parent 520233356b
commit e7c48f17e6
7 changed files with 72 additions and 19 deletions

View file

@ -27,13 +27,17 @@ public class KSRepCashNettoReport {
@CsvBindByPosition(position = 3)
private String account;
@CsvBindByName(column = "VALUE")
@CsvBindByName(column = "TKR")
@CsvBindByPosition(position = 4)
private String tkr;
@CsvBindByName(column = "VALUE")
@CsvBindByPosition(position = 5)
@CsvNumber(value = "#0.00", writeFormat = "#0.00")
private BigDecimal value;
@CsvBindByName(column = "DATE")
@CsvBindByPosition(position = 5)
@CsvBindByPosition(position = 6)
@CsvDate(value = "dd.MM.yyyy")
private LocalDate date;
@ -70,6 +74,14 @@ public class KSRepCashNettoReport {
this.account = account;
}
public String getTkr() {
return tkr;
}
public void setTkr(String tkr) {
this.tkr = tkr;
}
public BigDecimal getValue() {
return value;
}
@ -85,4 +97,5 @@ public class KSRepCashNettoReport {
public void setDate(LocalDate date) {
this.date = date;
}
}

View file

@ -27,17 +27,21 @@ public class KSRepDepoNettoReport {
@CsvBindByPosition(position = 3)
private String account;
@CsvBindByName(column = "SECURITYID")
@CsvBindByName(column = "TKR")
@CsvBindByPosition(position = 4)
private String tkr;
@CsvBindByName(column = "SECURITYID")
@CsvBindByPosition(position = 5)
private String securityId;
@CsvBindByName(column = "VALUE")
@CsvBindByPosition(position = 5)
@CsvBindByPosition(position = 6)
@CsvNumber(value = "#0", writeFormat = "#0")
private BigDecimal value;
@CsvBindByName(column = "DATE")
@CsvBindByPosition(position = 6)
@CsvBindByPosition(position = 7)
@CsvDate(value = "dd.MM.yyyy")
private LocalDate date;
@ -74,6 +78,14 @@ public class KSRepDepoNettoReport {
this.account = account;
}
public String getTkr() {
return tkr;
}
public void setTkr(String tkr) {
this.tkr = tkr;
}
public String getSecurityId() {
return securityId;
}
@ -97,4 +109,5 @@ public class KSRepDepoNettoReport {
public void setDate(LocalDate date) {
this.date = date;
}
}

View file

@ -111,19 +111,40 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder<SessionIdParam
boolean invalid = false;
if (!cmtRegistries.isEmpty() || !lmtRegistries.isEmpty()) {
String sourceTradingCode = "";
if (!cmtRegistries.isEmpty()) sourceTradingCode = cmtRegistries.iterator().next().getTradingCode();
if (!lmtRegistries.isEmpty()) sourceTradingCode = lmtRegistries.iterator().next().getTradingCode();
String sourceTkr = "";
if (!cmtRegistries.isEmpty()) {
Registry next = cmtRegistries.iterator().next();
sourceTradingCode = next.getTradingCode();
sourceTkr = next.getTradingClearingRegistry();
}
if (!lmtRegistries.isEmpty()) {
Registry next = lmtRegistries.iterator().next();
sourceTradingCode = next.getTradingCode();
sourceTkr = next.getTradingClearingRegistry();
}
for (Registry currRegistry : cmtRegistries) {
if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue;
invalid = true;
log.warn("Invalid CM_T registries set, tradingCode not equals. Registries was skipped");
break;
if (!sourceTradingCode.equals(currRegistry.getTradingCode())) {
invalid = true;
log.warn("Invalid CM_T registries set, tradingCode not equals. Registries was skipped");
break;
}
if (!sourceTkr.equals(currRegistry.getTradingClearingRegistry())) {
invalid = true;
log.warn("Invalid CM_T registries set, tradingClearingRegistry not equals. Registries was skipped");
break;
}
}
for (Registry currRegistry : lmtRegistries) {
if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue;
invalid = true;
log.warn("Invalid LM_T registries set, tradingCode not equals. Registries was skipped");
break;
if (!sourceTradingCode.equals(currRegistry.getTradingCode())) {
invalid = true;
log.warn("Invalid LM_T registries set, tradingCode not equals. Registries was skipped");
break;
}
if (!sourceTkr.equals(currRegistry.getTradingClearingRegistry())) {
invalid = true;
log.warn("Invalid CM_T registries set, tradingClearingRegistry not equals. Registries was skipped");
break;
}
}
if (invalid) continue;
}
@ -138,6 +159,7 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder<SessionIdParam
ksRepCashNettoReport.setSessionDate(LocalDateTime.ofInstant(session.getCreated(), getReportZoneId()));
ksRepCashNettoReport.setAccount(registry.getAccount());
ksRepCashNettoReport.setTkr(registry.getTradingClearingRegistry());
ksRepCashNettoReport.setDate(nowDate);
BigDecimal cmtBalance = BigDecimal.ZERO;

View file

@ -127,6 +127,7 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder<SessionIdParam
KSRepDepoNettoReport ksRepDepoNettoReport = new KSRepDepoNettoReport();
ksRepDepoNettoReport.setFirmId(registry.getTradingCode());
ksRepDepoNettoReport.setSessionId(registry.getSessionId());
ksRepDepoNettoReport.setTkr(registry.getTradingClearingRegistry());
ksRepDepoNettoReport.setAccount(registry.getAccount());
ksRepDepoNettoReport.setSecurityId(registry.getSecuritySymbol());
ksRepDepoNettoReport.setDate(nowDate);

View file

@ -504,6 +504,7 @@ public class ReportServiceTest_KS {
registry_1.setGroupId(Long.MAX_VALUE);
registry_1.setClearingDate(LocalDate.now());
registry_1.setRegistryCode("LM_T");
registry_1.setTradingClearingRegistry("TKR");
registry_1.setRegistryStatus(RegistryStatus.PROC.getKey());
registry_1.setRegistryDesignation(RegistryDesignation.L.getKey());
registry_1.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
@ -520,6 +521,7 @@ public class ReportServiceTest_KS {
registry_2.setGroupId(Long.MAX_VALUE);
registry_2.setClearingDate(LocalDate.now());
registry_2.setRegistryCode("CM_T");
registry_2.setTradingClearingRegistry("TKR");
registry_2.setRegistryStatus(RegistryStatus.PROC.getKey());
registry_2.setRegistryDesignation(RegistryDesignation.C.getKey());
registry_2.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
@ -568,6 +570,7 @@ public class ReportServiceTest_KS {
registry_1.setGroupId(Long.MAX_VALUE);
registry_1.setSettlementDate(LocalDate.now());
registry_1.setRegistryCode("CS_T");
registry_1.setTradingClearingRegistry("TKR");
registry_1.setRegistryDesignation(RegistryDesignation.C.getKey());
registry_1.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
registry_1.setRegistryStatus(RegistryStatus.PROC.getKey());
@ -585,6 +588,7 @@ public class ReportServiceTest_KS {
registry_2.setGroupId(Long.MAX_VALUE);
registry_2.setSettlementDate(LocalDate.now());
registry_2.setRegistryCode("LS_T");
registry_2.setTradingClearingRegistry("TKR");
registry_2.setRegistryDesignation(RegistryDesignation.L.getKey());
registry_2.setRegistryInstrumentType(RegistryInstrumentType.S.getKey());
registry_2.setRegistryUnit(RegistryUnit.T.getKey());

View file

@ -1,2 +1,2 @@
"FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","VALUE","DATE"
"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","22.22","02.10.2023"
"FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","TKR","VALUE","DATE"
"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","TKR","22.22","31.10.2023"

1 FIRMID SESSION_ID SESSION_DATE ACCOUNT TKR VALUE DATE
2 TRADING_CODE 2 20.01.1970T02:49:58 ACCOUNT TKR 22.22 02.10.2023 31.10.2023

View file

@ -1,2 +1,2 @@
"FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","SECURITYID","VALUE","DATE"
"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","SECURITY_SYMBOL","22","07.07.2023"
"FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","TKR","SECURITYID","VALUE","DATE"
"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","TKR","SECURITY_SYMBOL","22","07.07.2023"

1 FIRMID SESSION_ID SESSION_DATE ACCOUNT TKR SECURITYID VALUE DATE
2 TRADING_CODE 2 20.01.1970T02:49:58 ACCOUNT TKR SECURITY_SYMBOL 22 07.07.2023