This commit is contained in:
parent
12ff85188f
commit
c7ad0a181c
5 changed files with 26 additions and 32 deletions
|
|
@ -3,7 +3,9 @@ package ru.spcex.clearing.reports.builders.bean;
|
||||||
import com.opencsv.bean.CsvBindByName;
|
import com.opencsv.bean.CsvBindByName;
|
||||||
import com.opencsv.bean.CsvBindByPosition;
|
import com.opencsv.bean.CsvBindByPosition;
|
||||||
import com.opencsv.bean.CsvDate;
|
import com.opencsv.bean.CsvDate;
|
||||||
|
import com.opencsv.bean.CsvNumber;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
public class UnfulfilledDealReport {
|
public class UnfulfilledDealReport {
|
||||||
|
|
@ -25,6 +27,11 @@ public class UnfulfilledDealReport {
|
||||||
@CsvBindByPosition(position = 3)
|
@CsvBindByPosition(position = 3)
|
||||||
private String settleCode;
|
private String settleCode;
|
||||||
|
|
||||||
|
@CsvBindByName(column = "VALUE")
|
||||||
|
@CsvBindByPosition(position = 4)
|
||||||
|
@CsvNumber(value = "#0.00", writeFormat = "#0.00")
|
||||||
|
private BigDecimal value;
|
||||||
|
|
||||||
|
|
||||||
public String getSecurityId() {
|
public String getSecurityId() {
|
||||||
return securityId;
|
return securityId;
|
||||||
|
|
@ -58,4 +65,11 @@ public class UnfulfilledDealReport {
|
||||||
this.settleCode = settleCode;
|
this.settleCode = settleCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(BigDecimal value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,7 @@ public class UnfulfilledDealReportBuilder extends CSVReportBuilder<SessionIdPara
|
||||||
unfulfilledDealReport.setTradeNo(executionFond.getExchangeExecutionId());
|
unfulfilledDealReport.setTradeNo(executionFond.getExchangeExecutionId());
|
||||||
unfulfilledDealReport.setTradeDate(executionFond.getTradingDate());
|
unfulfilledDealReport.setTradeDate(executionFond.getTradingDate());
|
||||||
unfulfilledDealReport.setSettleCode(executionFond.getSettlementCode());
|
unfulfilledDealReport.setSettleCode(executionFond.getSettlementCode());
|
||||||
|
unfulfilledDealReport.setValue(executionFond.getSettlementAmount());
|
||||||
|
|
||||||
rows.add(unfulfilledDealReport);
|
rows.add(unfulfilledDealReport);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package ru.spcex.clearing.reports.builders.ks;
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.clearing.classes.statics.data.company.Company;
|
import ru.clearing.classes.statics.data.company.Company;
|
||||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
|
||||||
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
|
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
|
||||||
import ru.clearing.classes.statics.data.registry.Registry;
|
import ru.clearing.classes.statics.data.registry.Registry;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
|
|
@ -30,7 +29,6 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
||||||
|
|
||||||
private final Imdg<Registry> registryImdg;
|
private final Imdg<Registry> registryImdg;
|
||||||
private final Imdg<Company> companyImdg;
|
private final Imdg<Company> companyImdg;
|
||||||
private final Imdg<CompanySymbols> companySymbolsImdg;
|
|
||||||
private final Imdg<ExecutionDeposit> executionDepositImdg;
|
private final Imdg<ExecutionDeposit> executionDepositImdg;
|
||||||
|
|
||||||
private List<KSCommissionTradesReport> rows = null;
|
private List<KSCommissionTradesReport> rows = null;
|
||||||
|
|
@ -38,7 +36,6 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
||||||
public KSCommissionTradesReportBuilder(ImdgProvider imdgProvider) {
|
public KSCommissionTradesReportBuilder(ImdgProvider imdgProvider) {
|
||||||
registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||||
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
|
||||||
executionDepositImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class);
|
executionDepositImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -80,9 +77,8 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
||||||
String sql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.TS_T).build();
|
String sql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.TS_T).build();
|
||||||
ImdgPredicate finalPredicate = pb.and(
|
ImdgPredicate finalPredicate = pb.and(
|
||||||
pb.sql(sql),
|
pb.sql(sql),
|
||||||
pb.equals("refundDate", nowDate),
|
pb.greatEqual("refundDate", nowDate),
|
||||||
pb.less("valueDate", nowDate),
|
pb.less("valueDate", nowDate),
|
||||||
pb.equals("registryStatus", RegistryStatus.CLRD.getKey()),
|
|
||||||
pb.or(pb.equals("sessionType", SessionType.XDEP.getKey()), pb.equals("sessionType", SessionType.FINL.getKey()))
|
pb.or(pb.equals("sessionType", SessionType.XDEP.getKey()), pb.equals("sessionType", SessionType.FINL.getKey()))
|
||||||
);
|
);
|
||||||
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
|
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
|
||||||
|
|
@ -125,29 +121,12 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// sql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.OM_T).build();
|
String execStatus = "";
|
||||||
// Registry omtRegistry = registryImdg.getFirstObjectByPredicate(
|
RegistryStatus registryStatus = IEnumKey.getEnumByKey(RegistryStatus.class, registry.getRegistryStatus());
|
||||||
// pb.and(
|
if (registryStatus == RegistryStatus.CLRD) execStatus = "Исполнено";
|
||||||
// pb.sql(sql),
|
else if (registryStatus == RegistryStatus.FAIL) execStatus = "Не исполнено";
|
||||||
// pb.equals("contract", registry.getContract()),
|
else if (registryStatus == RegistryStatus.MNG || registryStatus == RegistryStatus.PROC)
|
||||||
// pb.notNull("groupId")
|
execStatus = "В ожидании";
|
||||||
// )
|
|
||||||
// );
|
|
||||||
// if (omtRegistry == null) {
|
|
||||||
// log.warn("Can't find pair OM_T registry for contract = {}. Registry id = {} skipped",
|
|
||||||
// registry.getContract(),
|
|
||||||
// registry.getId());
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
// String tradeNum = extractPartAgreementNumber(String.valueOf(omtRegistry.getGroupId()));
|
|
||||||
// if (tradeNum == null) {
|
|
||||||
// log.warn("Can't extract TradeNum from GroupId (groupId = {} for OM_T registry id = {}). " +
|
|
||||||
// "Registry id = {} skipped",
|
|
||||||
// omtRegistry.getGroupId(),
|
|
||||||
// omtRegistry.getId(),
|
|
||||||
// registry.getId());
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
|
|
||||||
String agreementNumber = registry.getContract();
|
String agreementNumber = registry.getContract();
|
||||||
if (agreementNumber != null && agreementNumber.contains("~"))
|
if (agreementNumber != null && agreementNumber.contains("~"))
|
||||||
|
|
@ -182,7 +161,7 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
||||||
ksCommissionTradesReport.setAgreementDate(registry.getTradingDate());
|
ksCommissionTradesReport.setAgreementDate(registry.getTradingDate());
|
||||||
ksCommissionTradesReport.setSum(registry.getBalance() != null ? registry.getBalance().negate() : BigDecimal.ZERO);
|
ksCommissionTradesReport.setSum(registry.getBalance() != null ? registry.getBalance().negate() : BigDecimal.ZERO);
|
||||||
ksCommissionTradesReport.setRepaymDate(registry.getRefundDate());
|
ksCommissionTradesReport.setRepaymDate(registry.getRefundDate());
|
||||||
ksCommissionTradesReport.setExecStatus("Исполнено");
|
ksCommissionTradesReport.setExecStatus(execStatus);
|
||||||
|
|
||||||
rows.add(ksCommissionTradesReport);
|
rows.add(ksCommissionTradesReport);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
|
|
|
||||||
|
|
@ -419,7 +419,7 @@ public class ReportServiceTest_BP {
|
||||||
|
|
||||||
File outFile = outFolder.listFiles()[0];
|
File outFile = outFolder.listFiles()[0];
|
||||||
File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/bp/KS_BR_PFX65_DEALS_expected.csv").getFile());
|
File expectedFile = new File(getClass().getClassLoader().getResource("expected_reports_csv/bp/KS_BR_PFX65_DEALS_expected.csv").getFile());
|
||||||
compareCSVFiles(expectedFile, outFile, Arrays.asList("TRADEDATE"));
|
compareCSVFiles(expectedFile, outFile, List.of());
|
||||||
|
|
||||||
testExecutionFond.setSessionId(oldExecutionFondSessionId);
|
testExecutionFond.setSessionId(oldExecutionFondSessionId);
|
||||||
testExecutionFond.setCoverageStatus(oldExecutionFondCoverageStatus);
|
testExecutionFond.setCoverageStatus(oldExecutionFondCoverageStatus);
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
"SECURITYID","TRADENO","TRADEDATE","SETTLECODE"
|
"SECURITYID","TRADENO","TRADEDATE","SETTLECODE","VALUE"
|
||||||
"test-security-symbol-1","777","22.07.2023","test-settlement-code"
|
"test-security-symbol-1","777","2023-10-29","test-settlement-code","7777777.00"
|
||||||
|
|
|
||||||
|
Loading…
Add table
Reference in a new issue