akulikov 2023-11-08 15:47:30 +03:00
parent 12ff85188f
commit c7ad0a181c
5 changed files with 26 additions and 32 deletions

View file

@ -3,7 +3,9 @@ package ru.spcex.clearing.reports.builders.bean;
import com.opencsv.bean.CsvBindByName;
import com.opencsv.bean.CsvBindByPosition;
import com.opencsv.bean.CsvDate;
import com.opencsv.bean.CsvNumber;
import java.math.BigDecimal;
import java.time.LocalDate;
public class UnfulfilledDealReport {
@ -25,6 +27,11 @@ public class UnfulfilledDealReport {
@CsvBindByPosition(position = 3)
private String settleCode;
@CsvBindByName(column = "VALUE")
@CsvBindByPosition(position = 4)
@CsvNumber(value = "#0.00", writeFormat = "#0.00")
private BigDecimal value;
public String getSecurityId() {
return securityId;
@ -58,4 +65,11 @@ public class UnfulfilledDealReport {
this.settleCode = settleCode;
}
public BigDecimal getValue() {
return value;
}
public void setValue(BigDecimal value) {
this.value = value;
}
}

View file

@ -89,6 +89,7 @@ public class UnfulfilledDealReportBuilder extends CSVReportBuilder<SessionIdPara
unfulfilledDealReport.setTradeNo(executionFond.getExchangeExecutionId());
unfulfilledDealReport.setTradeDate(executionFond.getTradingDate());
unfulfilledDealReport.setSettleCode(executionFond.getSettlementCode());
unfulfilledDealReport.setValue(executionFond.getSettlementAmount());
rows.add(unfulfilledDealReport);
} catch (Throwable e) {

View file

@ -2,7 +2,6 @@ package ru.spcex.clearing.reports.builders.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.execution.ExecutionDeposit;
import ru.clearing.classes.statics.data.registry.Registry;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
@ -30,7 +29,6 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
private final Imdg<Registry> registryImdg;
private final Imdg<Company> companyImdg;
private final Imdg<CompanySymbols> companySymbolsImdg;
private final Imdg<ExecutionDeposit> executionDepositImdg;
private List<KSCommissionTradesReport> rows = null;
@ -38,7 +36,6 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
public KSCommissionTradesReportBuilder(ImdgProvider imdgProvider) {
registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.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);
}
@ -80,9 +77,8 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
String sql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.TS_T).build();
ImdgPredicate finalPredicate = pb.and(
pb.sql(sql),
pb.equals("refundDate", nowDate),
pb.greatEqual("refundDate", 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()))
);
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
@ -125,29 +121,12 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
}
}
// sql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.OM_T).build();
// Registry omtRegistry = registryImdg.getFirstObjectByPredicate(
// pb.and(
// pb.sql(sql),
// pb.equals("contract", registry.getContract()),
// pb.notNull("groupId")
// )
// );
// 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 execStatus = "";
RegistryStatus registryStatus = IEnumKey.getEnumByKey(RegistryStatus.class, registry.getRegistryStatus());
if (registryStatus == RegistryStatus.CLRD) execStatus = "Исполнено";
else if (registryStatus == RegistryStatus.FAIL) execStatus = "Не исполнено";
else if (registryStatus == RegistryStatus.MNG || registryStatus == RegistryStatus.PROC)
execStatus = "В ожидании";
String agreementNumber = registry.getContract();
if (agreementNumber != null && agreementNumber.contains("~"))
@ -182,7 +161,7 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
ksCommissionTradesReport.setAgreementDate(registry.getTradingDate());
ksCommissionTradesReport.setSum(registry.getBalance() != null ? registry.getBalance().negate() : BigDecimal.ZERO);
ksCommissionTradesReport.setRepaymDate(registry.getRefundDate());
ksCommissionTradesReport.setExecStatus("Исполнено");
ksCommissionTradesReport.setExecStatus(execStatus);
rows.add(ksCommissionTradesReport);
} catch (Throwable e) {

View file

@ -419,7 +419,7 @@ public class ReportServiceTest_BP {
File outFile = outFolder.listFiles()[0];
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.setCoverageStatus(oldExecutionFondCoverageStatus);

View file

@ -1,2 +1,2 @@
"SECURITYID","TRADENO","TRADEDATE","SETTLECODE"
"test-security-symbol-1","777","22.07.2023","test-settlement-code"
"SECURITYID","TRADENO","TRADEDATE","SETTLECODE","VALUE"
"test-security-symbol-1","777","2023-10-29","test-settlement-code","7777777.00"

1 SECURITYID TRADENO TRADEDATE SETTLECODE VALUE
2 test-security-symbol-1 777 22.07.2023 2023-10-29 test-settlement-code 7777777.00