.
This commit is contained in:
parent
003024af9a
commit
2c74e24232
5 changed files with 31 additions and 30 deletions
|
|
@ -38,7 +38,7 @@ public class ReportBR_0420315_P1 extends ReportWithClearingStatus {
|
||||||
this.destination = Destination.BR.getKey();
|
this.destination = Destination.BR.getKey();
|
||||||
this.clearingMemberCategory = "%s,%s".formatted(
|
this.clearingMemberCategory = "%s,%s".formatted(
|
||||||
ClearingMemberCategoryD.I.getKey(),
|
ClearingMemberCategoryD.I.getKey(),
|
||||||
"V"
|
ClearingMemberCategoryD.V.getKey()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,22 +6,21 @@ import ru.spcex.clearing.reports.reports.Destination;
|
||||||
import ru.spcex.clearing.reports.reports.ReportId;
|
import ru.spcex.clearing.reports.reports.ReportId;
|
||||||
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
import ru.spcex.clearing.reports.reports.ReportWithPeriod;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@XStreamAlias("clearedLiabilitiesTotal")
|
@XStreamAlias("clearedLiabilitiesTotal")
|
||||||
public class ReportBR_0420315_P2 extends ReportWithPeriod {
|
public class ReportBR_0420315_P2 extends ReportWithPeriod {
|
||||||
@XStreamAlias("rows")
|
@XStreamAlias("rows")
|
||||||
private final Info_0420315_P2 rows;
|
private Info_0420315_P2 rows;
|
||||||
|
|
||||||
@XStreamAsAttribute
|
@XStreamAsAttribute
|
||||||
@XStreamAlias("destination")
|
@XStreamAlias("destination")
|
||||||
private String destination;
|
private String destination;
|
||||||
|
|
||||||
public ReportBR_0420315_P2(LocalDate startDate,
|
public ReportBR_0420315_P2(LocalDate startDate,
|
||||||
LocalDate endDate,
|
LocalDate endDate) {
|
||||||
String destination,
|
|
||||||
String contractQty,
|
|
||||||
String liabilitiesAmount) {
|
|
||||||
super(ReportId.BR_0420315_P2,
|
super(ReportId.BR_0420315_P2,
|
||||||
"0.0.1",
|
"0.0.1",
|
||||||
"0420315",
|
"0420315",
|
||||||
|
|
@ -29,11 +28,6 @@ public class ReportBR_0420315_P2 extends ReportWithPeriod {
|
||||||
startDate,
|
startDate,
|
||||||
endDate);
|
endDate);
|
||||||
this.destination = Destination.BR.getKey();
|
this.destination = Destination.BR.getKey();
|
||||||
rows = new Info_0420315_P2(contractQty, liabilitiesAmount);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Info_0420315_P2 getRows() {
|
|
||||||
return rows;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -45,8 +39,16 @@ public class ReportBR_0420315_P2 extends ReportWithPeriod {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public record Info_0420315_P2(@XStreamAlias("contract_qty") @XStreamAsAttribute String contractQty,
|
public Info_0420315_P2 getRows() {
|
||||||
@XStreamAlias("liabilities_amount") @XStreamAsAttribute String liabilitiesAmount) {
|
return rows;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRows(Info_0420315_P2 rows) {
|
||||||
|
this.rows = rows;
|
||||||
|
}
|
||||||
|
|
||||||
|
public record Info_0420315_P2(@XStreamAlias("contract_qty") @XStreamAsAttribute BigDecimal contractQty,
|
||||||
|
@XStreamAlias("liabilities_amount") @XStreamAsAttribute BigDecimal liabilitiesAmount) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,12 +66,12 @@ public class ReportsService {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ReportBR_0420315_P2 reportBR_0420315_p2 = new ReportBR_0420315_P2(LocalDate.now(),
|
// ReportBR_0420315_P2 reportBR_0420315_p2 = new ReportBR_0420315_P2(LocalDate.now(),
|
||||||
LocalDate.now(),
|
// LocalDate.now(),
|
||||||
"BR",
|
// "BR",
|
||||||
"contractorQty",
|
// "contractorQty",
|
||||||
"liabilitiesAmount");
|
// "liabilitiesAmount");
|
||||||
log.info("ReportBR_0420315_P2:\n{}\n", xStream.toXML(reportBR_0420315_p2));
|
// log.info("ReportBR_0420315_P2:\n{}\n", xStream.toXML(reportBR_0420315_p2));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||||
import ru.spcex.platform.utils.time.TimeUtil;
|
import ru.spcex.platform.utils.time.TimeUtil;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
@ -27,7 +28,6 @@ import java.util.*;
|
||||||
@Component
|
@Component
|
||||||
public class ReportBR_0420315_Collector extends ReportDataCollector<ReportBR_0420315_P1> {
|
public class ReportBR_0420315_Collector extends ReportDataCollector<ReportBR_0420315_P1> {
|
||||||
protected static final List<String> ALLOW_CLEARING_MEMBER_CATEGORY = Arrays.asList(ClearingCategory.I.getKey(), ClearingCategory.V.getKey());
|
protected static final List<String> ALLOW_CLEARING_MEMBER_CATEGORY = Arrays.asList(ClearingCategory.I.getKey(), ClearingCategory.V.getKey());
|
||||||
protected static final String ALLOW_CLEARING_STATUS = ClearingStatus.OK.getKey();
|
|
||||||
|
|
||||||
private Imdg<Company> companyImdg;
|
private Imdg<Company> companyImdg;
|
||||||
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
private Imdg<LiabilitiesClaimsAssets> liabilitiesClaimsAssetsImdg;
|
||||||
|
|
@ -74,8 +74,7 @@ public class ReportBR_0420315_Collector extends ReportDataCollector<ReportBR_042
|
||||||
public ReportBR_0420315_P1 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
public ReportBR_0420315_P1 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
|
||||||
validateDateRange(startDate, endDate);
|
validateDateRange(startDate, endDate);
|
||||||
ReportBR_0420315_P1 reportBR_0420315_p1 = new ReportBR_0420315_P1(startDate, endDate);
|
ReportBR_0420315_P1 reportBR_0420315_p1 = new ReportBR_0420315_P1(startDate, endDate);
|
||||||
|
final Long allowClearingStatusId = MapUtil.getDictionaryIdByCode(clearingStatusDictionaryImdg, ClearingStatus.OK.getKey());
|
||||||
final Long allowClearingStatusId = MapUtil.getDictionaryIdByCode(clearingStatusDictionaryImdg, ALLOW_CLEARING_STATUS); // "OK"
|
|
||||||
|
|
||||||
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate, allowClearingStatusId);
|
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate, allowClearingStatusId);
|
||||||
|
|
||||||
|
|
@ -99,10 +98,10 @@ public class ReportBR_0420315_Collector extends ReportDataCollector<ReportBR_042
|
||||||
HashSet<String> onMarket = new HashSet<>();
|
HashSet<String> onMarket = new HashSet<>();
|
||||||
|
|
||||||
long contractorQty;
|
long contractorQty;
|
||||||
double liabilitiesAmount = 0;
|
BigDecimal liabilitiesAmount = BigDecimal.ZERO;
|
||||||
{
|
{
|
||||||
HashSet<String> collectedToSumm = new HashSet<>(); // чтобы дважды не посчитать 1 и тот же контракт
|
HashSet<String> collectedToSum = new HashSet<>(); // чтобы дважды не посчитать 1 и тот же контракт
|
||||||
HashSet<Long> onMarketSecurity=new HashSet<>();
|
HashSet<Long> onMarketSecurity = new HashSet<>();
|
||||||
for (LiabilitiesClaimsAssets lContract : liabilitiesOfCompany) {
|
for (LiabilitiesClaimsAssets lContract : liabilitiesOfCompany) {
|
||||||
if (!onMarketSecurity.contains(lContract.getSecurityId())) {
|
if (!onMarketSecurity.contains(lContract.getSecurityId())) {
|
||||||
Listing listing = findListing(Market.mkrs, lContract.getSecurityId());
|
Listing listing = findListing(Market.mkrs, lContract.getSecurityId());
|
||||||
|
|
@ -112,12 +111,12 @@ public class ReportBR_0420315_Collector extends ReportDataCollector<ReportBR_042
|
||||||
onMarketSecurity.add(lContract.getSecurityId());
|
onMarketSecurity.add(lContract.getSecurityId());
|
||||||
}
|
}
|
||||||
if (lContract.getLiabilitiesQuantity() != null && StringUtils.isNotEmpty(lContract.getContract())
|
if (lContract.getLiabilitiesQuantity() != null && StringUtils.isNotEmpty(lContract.getContract())
|
||||||
&& !collectedToSumm.contains(lContract.getContract())) {
|
&& !collectedToSum.contains(lContract.getContract())) {
|
||||||
collectedToSumm.add(lContract.getContract());
|
collectedToSum.add(lContract.getContract());
|
||||||
liabilitiesAmount += lContract.getLiabilitiesQuantity().doubleValue();
|
liabilitiesAmount = liabilitiesAmount.add(lContract.getLiabilitiesQuantity());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
contractorQty = collectedToSumm.size();
|
contractorQty = collectedToSum.size();
|
||||||
}
|
}
|
||||||
String onMarketString = StringUtils.join(onMarket, ",");
|
String onMarketString = StringUtils.join(onMarket, ",");
|
||||||
if (onMarket.size() != 1) { // Сейчас по коду ожидается один listing.market="MKRS" но потом могут быть несколько
|
if (onMarket.size() != 1) { // Сейчас по коду ожидается один listing.market="MKRS" но потом могут быть несколько
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package ru.spcex.platform.enumeration;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
|
|
||||||
public enum ClearingMemberCategoryD implements IEnumKey {
|
public enum ClearingMemberCategoryD implements IEnumKey {
|
||||||
I("I"), B("B");
|
I("I"), V("V"), B("B");
|
||||||
|
|
||||||
private final String key;
|
private final String key;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue