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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,2 +1,2 @@
"FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","VALUE","DATE" "FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","TKR","VALUE","DATE"
"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","22.22","02.10.2023" "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" "FIRMID","SESSION_ID","SESSION_DATE","ACCOUNT","TKR","SECURITYID","VALUE","DATE"
"TRADING_CODE","2","20.01.1970T02:49:58","ACCOUNT","SECURITY_SYMBOL","22","07.07.2023" "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