reports-service поправил CLS-27

This commit is contained in:
AKurakin 2023-01-10 19:06:37 +03:00
parent 31959cd753
commit 521749db7c
3 changed files with 63 additions and 37 deletions

View file

@ -51,10 +51,9 @@ public class ReportBR_0420318 extends ReportWithClearingStatus {
@XStreamAsAttribute @XStreamAlias("companySymbols_code") String companySymbolsCode,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_countryCode") String liabilitiesClaimsAssetsCountryCode,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_settlementDate") String liabilitiesClaimsAssetsSettlementDate,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_accountType") String liabilitiesClaimsAssetsAccountType,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_Contract") String liabilitiesClaimsAssetsContract,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsMoney_currencyCode") String liabilitiesClaimsMoneyCurrencyCode,
@XStreamAsAttribute @XStreamAlias("liabilitiesAmount_amount") String liabilitiesAmountAmount,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilitiesQuantity") String liabilitiesClaimsAssetsLiabilitiesQuantity,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsMoney_name") String liabilitiesClaimsMoneyName,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_liabilities") String liabilitiesClaimsAssetsLiabilities,
@XStreamAsAttribute @XStreamAlias("liabilitiesClaimsAssets_comment") String liabilitiesClaimsAssetsComment,

View file

@ -19,8 +19,8 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDate;
import java.util.Collection;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
public class ReportBR_0420318_Collector extends ReportWithPeriodCollector<ReportBR_0420318> {
@ -34,7 +34,8 @@ public class ReportBR_0420318_Collector extends ReportWithPeriodCollector<Report
@Autowired
public ReportBR_0420318_Collector(ImdgProvider imdgProvider) {
liabilitiesClaimsAssetsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class);
//liabilitiesClaimsMoneyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsMoney, LiabilitiesClaimsMoney.class);//fixme MapStore!!!!
liabilitiesClaimsMoneyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_LiabilitiesClaimsMoney, LiabilitiesClaimsMoney.class);
clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
companySymbolsImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
}
@ -63,14 +64,17 @@ public class ReportBR_0420318_Collector extends ReportWithPeriodCollector<Report
@Override
public ReportBR_0420318 collectReportWithPeriod(LocalDate startDate, LocalDate endDate) {
validateDateRange(startDate, endDate);
Collection<LiabilitiesClaimsAssets> liabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
Collection<LiabilitiesClaimsAssets> allLiabilities = searchLiabilitiesClaimsAssets(startDate, endDate);
ReportBR_0420318 reportBR_0420318 = new ReportBR_0420318(startDate, endDate);
for (LiabilitiesClaimsAssets liability: liabilities) {
final Long companyId = liability.getCompanyId();
Map<Long, List<LiabilitiesClaimsAssets>> indexByCompany = MapUtil.indexList(allLiabilities, LiabilitiesClaimsAssets::getCompanyId);
for (Map.Entry<Long, List<LiabilitiesClaimsAssets>> liabilitysByCompanyE : indexByCompany.entrySet()) {
final Long companyId = liabilitysByCompanyE.getKey();
final List<LiabilitiesClaimsAssets> liabilitysByCompany = liabilitysByCompanyE.getValue();
Company company = companyImdg.getSingleObjectByID(companyId);
CompanySymbols companySymbolCntr = findSymbol(DocumentTypes.cntr, company.getId());
CompanySymbols companySymbolINN = findSymbol(DocumentTypes.inn, company.getId());
CompanySymbols companySymbolOGRN = findSymbol(DocumentTypes.ogrn, company.getId());
@ -78,35 +82,57 @@ public class ReportBR_0420318_Collector extends ReportWithPeriodCollector<Report
Collection<ClearingMemberCategory> cmcLst = clearingMemberCategoryImdg.getCollectionObjectsByFieldValues(Map.of("companyId", companyId));
boolean checkCategoryB = cmcLst.stream().anyMatch(cmc -> ClearingCategory.B.equalsByKey(cmc.getClearingMemberCategory()));
boolean checkCategoryIV = cmcLst.stream().anyMatch(cmc -> ClearingCategory.I.equalsByKey(cmc.getClearingMemberCategory()) || ClearingCategory.V.equalsByKey(cmc.getClearingMemberCategory()));
if (checkCategoryB) {
liabilitiesClaimsAssets_settlementDate = liability.getRefundDate();
boolean checkCategoryIV = cmcLst.stream().anyMatch(cmc -> ClearingCategory.I.equalsByKey(cmc.getClearingMemberCategory()) || ClearingCategory.V.equalsByKey(cmc.getClearingMemberCategory()));
Map<String, List<LiabilitiesClaimsAssets>> indexByCurrency = MapUtil.indexList(liabilitysByCompany, LiabilitiesClaimsAssets::getCurrency);
for (Map.Entry<String, List<LiabilitiesClaimsAssets>> entryCurrency: indexByCurrency.entrySet()) {
final String currencyCode = entryCurrency.getKey();
final List<LiabilitiesClaimsAssets> claimsAssets = entryCurrency.getValue();
LiabilitiesClaimsAssets firstLiability = claimsAssets.get(0);
if (checkCategoryB) {
liabilitiesClaimsAssets_settlementDate = firstLiability.getRefundDate();
}
if (checkCategoryIV) {
liabilitiesClaimsAssets_settlementDate = firstLiability.getSettlementDate();
}
BigDecimal liabilitiesClaimsAssets_liabilitiesQuantity = claimsAssets.stream()
.map(LiabilitiesClaimsAssets::getLiabilitiesQuantity)
.filter(Objects::nonNull)
.reduce(BigDecimal::add)
.orElse(BigDecimal.ZERO);
LiabilitiesClaimsMoney liabilitiesClaimsMoney = liabilitiesClaimsMoneyImdg.getSingleObjectByFieldValues(Map.of("currency", currencyCode));
long liabilitiesCount = claimsAssets.size();
String contracts = claimsAssets.stream()
.map(LiabilitiesClaimsAssets::getContract)
.distinct()
.collect(Collectors.joining(","));
String comments = claimsAssets.stream()
.map(LiabilitiesClaimsAssets::getContract)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.joining(","));
ReportBR_0420318.Info_0420318 info_0420318 = new ReportBR_0420318.Info_0420318(
toString(firstLiability.getFullName()),
toString(companySymbolINN == null ? null : companySymbolINN.getCompanySymbolValue()),
company.getProfile().getCountryCode(),
toString(liabilitiesClaimsAssets_settlementDate),
contracts,
currencyCode,
toString(liabilitiesClaimsAssets_liabilitiesQuantity),
(liabilitiesClaimsMoney == null ? null : liabilitiesClaimsMoney.getFullName()),
toString(liabilitiesCount),
comments,
toString(companySymbolINN == null ? null : companySymbolINN.getCompanySymbolValue()), // второй раз по ТЗ
firstLiability.getFullName()
);
reportBR_0420318.getRows().add(info_0420318);
}
if (checkCategoryIV) {
liabilitiesClaimsAssets_settlementDate = liability.getSettlementDate();
}
BigDecimal liabilitiesQuantity = liability.getLiabilitiesQuantity(); //todo summ?
final String currencyCode = liability.getCurrency();
LiabilitiesClaimsMoney liabilitiesClaimsMoney = liabilitiesClaimsMoneyImdg.getSingleObjectByFieldValues(Map.of("currency", currencyCode));
ReportBR_0420318.Info_0420318 info_0420318 = new ReportBR_0420318.Info_0420318(
toString(liability.getFullName()),
toString(companySymbolINN == null? null: companySymbolINN.getCompanySymbolValue()),
company.getProfile().getCountryCode(),
toString(liabilitiesClaimsAssets_settlementDate),
"liabilitiesClaimsAssets_accountType",
liability.getContract(),
currencyCode,
"liabilitiesAmount_amount",//fixme liabilitiesClaimsAssets_liabilitiesQuantity toString(liabilitiesQuantity)
(liabilitiesClaimsMoney == null ? null : liabilitiesClaimsMoney.getFullName()),//todo уточнить объект ли "liabilitiesClaimsMoney_name", использовать?
"liabilitiesClaimsAssets_liabilities",
"liabilitiesClaimsAssets_comment",
"companySymbol_value",
"liabilitiesClaimsAssets_fullNames"
);
reportBR_0420318.getRows().add(info_0420318);
}

View file

@ -108,6 +108,7 @@ public final class IMDGDistributedNames {
public static final String Map_Session = "Map_Session";
public static final String Map_Notification = "Map_Notification";
public static final String Map_LiabilitiesClaimsAssets = "Map_LiabilitiesClaimsAssets";
public static final String Map_LiabilitiesClaimsMoney = "Map_LiabilitiesClaimsMoney";
public static final String Map_ClearMemberRegister = "Map_ClearMemberRegister";
public static final String Map_BalanceRegister = "Map_BalanceRegister";
public static final String Map_ExecutionDeposit = "Map_ExecutionDeposit";