http://jira.mfd.msk:8088/browse/CLS-497 KSCommissionTradesReportBuilder fix
This commit is contained in:
parent
67d851b5b6
commit
4a08f72d40
3 changed files with 62 additions and 27 deletions
|
|
@ -15,6 +15,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
|
|||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
|
@ -81,12 +82,13 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
pb.sql(sql),
|
||||
pb.equals("refundDate", nowDate),
|
||||
pb.equals("registryStatus", RegistryStatus.OK.getKey()),
|
||||
pb.notNull("clearingDate")
|
||||
pb.notNull("tradingDate")
|
||||
);
|
||||
Collection<Registry> registries = registryImdg.getCollectionObjectsByPredicate(finalPredicate);
|
||||
rows = new ArrayList<>(registries.size());
|
||||
for (Registry registry : registries) {
|
||||
try {
|
||||
RegistryUnit registryUnit = IEnumKey.getEnumByKey(RegistryUnit.class, registry.getRegistryUnit());
|
||||
Company company = companyImdg.getSingleObjectByID(registry.getCompanyId());
|
||||
if (company == null) {
|
||||
log.warn("For registry id = {} company with id = {} not found, registry was skipped",
|
||||
|
|
@ -96,18 +98,48 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
}
|
||||
if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) continue;
|
||||
|
||||
CompanySymbols companySymbols = companySymbolsImdg.getFirstObjectByFieldValues(
|
||||
Map.of(
|
||||
"companyId", registry.getCompanyId(),
|
||||
"companySymbol", CompanySymbol.INTC.getKey()
|
||||
)
|
||||
);
|
||||
if (companySymbols == null) {
|
||||
log.warn("Can't find CompanySymbols {} for companyId = {}. Registry id = {} skipped",
|
||||
CompanySymbol.INTC.getKey(),
|
||||
registry.getCompanyId(),
|
||||
registry.getId());
|
||||
continue;
|
||||
String firmId = "";
|
||||
String firmIdInitiator = "";
|
||||
if (registryUnit == RegistryUnit.X) {
|
||||
if (registry.getCounterPartyId() != null) {
|
||||
Company companyForFirmId = companyImdg.getSingleObjectByID(registry.getCounterPartyId());
|
||||
if (companyForFirmId != null) firmId = companyForFirmId.getClearingCode();
|
||||
else {
|
||||
log.warn("For registry id = {}, counterPartyId = {} company not found, can't set FIRM_ID",
|
||||
registry.getId(),
|
||||
registry.getCounterPartyId());
|
||||
}
|
||||
}
|
||||
CompanySymbols companySymbols = companySymbolsImdg.getFirstObjectByFieldValues(
|
||||
Map.of(
|
||||
"companyId", registry.getCompanyId(),
|
||||
"companySymbol", CompanySymbol.INTC.getKey()
|
||||
)
|
||||
);
|
||||
if (companySymbols != null) firmIdInitiator = companySymbols.getCompanySymbolValue();
|
||||
else {
|
||||
log.warn("For registry id = {} can't find CompanySymbols {} for company.id = {}, can't set FIRM_ID_INITIATOR",
|
||||
registry.getId(),
|
||||
CompanySymbol.INTC.getKey(),
|
||||
registry.getCompanyId());
|
||||
}
|
||||
} else if (registryUnit == RegistryUnit.T) {
|
||||
firmId = registry.getClearingCode();
|
||||
if (registry.getCounterPartyId() != null) {
|
||||
CompanySymbols companySymbols = companySymbolsImdg.getFirstObjectByFieldValues(
|
||||
Map.of(
|
||||
"companyId", registry.getCounterPartyId(),
|
||||
"companySymbol", CompanySymbol.INTC.getKey()
|
||||
)
|
||||
);
|
||||
if (companySymbols != null) firmIdInitiator = companySymbols.getCompanySymbolValue();
|
||||
else {
|
||||
log.warn("For registry id = {} can't find CompanySymbols {} for registry.counterPartyId = {}, can't set FIRM_ID_INITIATOR",
|
||||
registry.getId(),
|
||||
CompanySymbol.INTC.getKey(),
|
||||
registry.getCompanyId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sql = RegistryCodeSqlBuilder.getInstance(RegistryTradingParams.OM_T).build();
|
||||
|
|
@ -128,18 +160,19 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
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",
|
||||
"Registry id = {} skipped",
|
||||
omtRegistry.getGroupId(),
|
||||
omtRegistry.getId(),
|
||||
registry.getId());
|
||||
continue;
|
||||
}
|
||||
String agreementNumber = "%s/%s/%s/%s".formatted(
|
||||
registry.getSecuritySymbol(),
|
||||
dateFormatter_ddMMyy.format(registry.getClearingDate()),
|
||||
registry.getClearingCode(),
|
||||
tradeNum
|
||||
);
|
||||
|
||||
String agreementNumber = registry.getContract();
|
||||
if (agreementNumber != null && agreementNumber.contains("~"))
|
||||
agreementNumber = agreementNumber.substring(0, agreementNumber.indexOf("~"));
|
||||
String agreementNumberPostfix = registry.getContract();
|
||||
if (agreementNumberPostfix != null && !agreementNumberPostfix.contains("~"))
|
||||
agreementNumberPostfix = "";
|
||||
|
||||
pb = sTradesImdg.predicateBuilder();
|
||||
Collection<STrades> sTradesList = sTradesImdg.getCollectionObjectsByPredicate(
|
||||
|
|
@ -156,13 +189,13 @@ public class KSCommissionTradesReportBuilder extends CSVReportBuilder<EmptyParam
|
|||
STrades sTrades = sTradesList.iterator().next();
|
||||
|
||||
KSCommissionTradesReport ksCommissionTradesReport = new KSCommissionTradesReport();
|
||||
ksCommissionTradesReport.setFirmId(registry.getClearingCode());
|
||||
ksCommissionTradesReport.setFirmIdInitiator(companySymbols.getCompanySymbolValue());
|
||||
ksCommissionTradesReport.setFirmId(firmId);
|
||||
ksCommissionTradesReport.setFirmIdInitiator(firmIdInitiator);
|
||||
ksCommissionTradesReport.setSecCode(registry.getSecuritySymbol());
|
||||
ksCommissionTradesReport.setClassCode(sTrades.getClassCode());
|
||||
ksCommissionTradesReport.setAgreementNumber(agreementNumber);
|
||||
ksCommissionTradesReport.setAgreementNumberPostfix("");
|
||||
ksCommissionTradesReport.setAgreementDate(registry.getClearingDate());
|
||||
ksCommissionTradesReport.setAgreementNumberPostfix(agreementNumberPostfix);
|
||||
ksCommissionTradesReport.setAgreementDate(registry.getTradingDate());
|
||||
ksCommissionTradesReport.setSum(registry.getBalance());
|
||||
ksCommissionTradesReport.setRepaymDate(registry.getRefundDate());
|
||||
ksCommissionTradesReport.setExecStatus(registry.getRegistryStatus());
|
||||
|
|
|
|||
|
|
@ -648,7 +648,9 @@ public class ReportServiceTest_KS {
|
|||
registry.setSecuritySymbol("SECURITY_SYMBOL");
|
||||
registry.setClearingDate(LocalDate.of(1991, 1, 1));
|
||||
registry.setRefundDate(LocalDate.now());
|
||||
registry.setContract("CONTRACT");
|
||||
registry.setCounterPartyId(COMPANY_ID);
|
||||
registry.setTradingDate(LocalDate.of(1991, 1, 1));
|
||||
registry.setContract("CONT~RACT");
|
||||
registry.setClearingCode("CLEARING_CODE");
|
||||
registryImdg.insert(registry);
|
||||
|
||||
|
|
@ -657,7 +659,7 @@ public class ReportServiceTest_KS {
|
|||
omtRegistry.setRegistryDesignation(RegistryDesignation.O.getKey());
|
||||
omtRegistry.setRegistryInstrumentType(RegistryInstrumentType.M.getKey());
|
||||
omtRegistry.setRegistryUnit(RegistryUnit.T.getKey());
|
||||
omtRegistry.setContract("CONTRACT");
|
||||
omtRegistry.setContract("CONT~RACT");
|
||||
omtRegistry.setGroupId(23071812300L);
|
||||
registryImdg.insert(omtRegistry);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
"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"
|
||||
"CLEARING_CODE","COMPANY_SYMBOL_VALUE","SECURITY_SYMBOL","CLASS_CODE","CONT","CONT~RACT","01.01.1991","77.78","05.09.2023","OK"
|
||||
|
|
|
|||
|
Loading…
Add table
Reference in a new issue