From b17dceb7f3dd6f64d24a54dc7e4a3fdac0fa4d16 Mon Sep 17 00:00:00 2001 From: lgl Date: Tue, 15 Jul 2025 11:35:32 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A2=E6=8A=A5=E8=8E=B7=E5=8F=96=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/FinanceReportServiceImpl.java | 48 ++++++++++++++----- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/FinanceReportServiceImpl.java b/irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/FinanceReportServiceImpl.java index 86ffa04..260c93f 100644 --- a/irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/FinanceReportServiceImpl.java +++ b/irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/FinanceReportServiceImpl.java @@ -11,12 +11,16 @@ import irbs.cust.rating.jpa.repository.FinanceReportRepository; import irbs.cust.rating.jpa.repository.RatingCompanyCustomerRepository; import irbs.cust.rating.jpa.vo.FinanceReportVo; import irbs.cust.rating.service.FinanceReportService; +import irbs.cust.rating.service.support.Subject; +import irbs.financialTemplate.enums.AccountingStanard; import irbs.financialTemplate.enums.FinancialTemplate; +import irbs.financialTemplate.jpa.vo.MappingFinancialReportVo; import irbs.financialTemplate.jpa.vo.OriginalFinancialReportVo; import irbs.financialTemplate.service.FinancialMappingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.*; @Service("financeReportService") @@ -102,14 +106,24 @@ public class FinanceReportServiceImpl extends DaoServiceImpl i) { + ofr = new OriginalFinancialReportVo(); + ofr.setFinancialTemplate(financialTemplateType); + // 判断新旧会计准则 + if (reportList.get(i).getAccountingStandard().equals(AccountingStanard.NEW.name())) { + ofr.setAccountingStanard(AccountingStanard.NEW); + } else { + ofr.setAccountingStanard(AccountingStanard.OLD); + } // 获取财报及数据准备 List reportDataList = financeReportDetailRepository.findByReportId(reportList.get(i).getId()); + Subject subject = getSubject(reportDataList); + ofr.setItemCodes(subject.getCodeList()); + // 转换财报科目 + MappingFinancialReportVo mfr = financialMappingService.getMappingResult(ofr); // 组装新的科目号对应的数据值 -// Map dataMap = buildSubjectData(subject.dataMap, mfr.getMappedItemCodes()); - Map dataMap = getSubject(reportDataList); + Map dataMap = buildSubjectData(subject.dataMap, mfr.getMappedItemCodes()); // 科目数据map中追加该期财报新旧会计准则标识 - dataMap.put("_ACCOUNTING_STANDARD_", reportList.get(i).getAccountingStandard()); - dataMap.put("_TEMPLATE_TYPE_", financialTemplateType); + dataMap.put("_ACCOUNTING_STANDARD_", ofr.getAccountingStanard().name()); result[i] = dataMap; } else { result[i] = null; @@ -118,17 +132,27 @@ public class FinanceReportServiceImpl extends DaoServiceImpl buildSubjectData(Map subjectDataMap, LinkedHashMap mappedMap) { + Map map = new HashMap<>(); + Iterator> it = mappedMap.entrySet().iterator(); + while(it.hasNext()) { + java.util.Map.Entry entry = it.next(); + if (entry.getValue()!=null) { + map.put(entry.getValue(), subjectDataMap.get(entry.getKey())); + } + } + return map; + } // 根据财报数据,获得科目编码集合与科目数据map组装的java类 - public Map getSubject(List list) throws Exception { - Map dataMap = new HashMap<>(); + public Subject getSubject(List list) throws Exception { + List codeList = new ArrayList<>(); + Map dataMap = new HashMap<>(); for (FinanceReportDetail detail: list) { - Double itemValue=null; - if(detail.getProjectValue()!=null){ - itemValue=detail.getProjectValue().doubleValue(); - } - dataMap.put(detail.getProjectCode(), itemValue); + codeList.add(detail.getProjectCode()); + dataMap.put(detail.getProjectCode(), detail.getProjectValue()); } - return dataMap; + return new Subject(codeList, dataMap); } }