This commit is contained in:
akulikov 2023-01-10 13:36:05 +03:00
parent 003024af9a
commit 2c74e24232
5 changed files with 31 additions and 30 deletions

View file

@ -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()
); );
} }

View file

@ -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) {
} }
} }

View file

@ -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));

View file

@ -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" но потом могут быть несколько

View file

@ -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;