Browse Source

华翰报表amend预览跳转

liyuan 8 months ago
parent
commit
196c9acb82

+ 23 - 14
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java

@@ -863,7 +863,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 		// 销售报告 SALES REPORT
 		if (MagicValues.BUSINESS.equals(reportCode) && MagicValues.SALES_REPORT.equals(groupCode) && (MagicValues.HYCK.equals(type) || MagicValues.HYJK.equals(type))) {
 			List<Bills> list = new ArrayList<>();
-			String profitMargin = sysClient.getParamServiceNew(MagicValues.PROFIT_MARGIN);
+			// String profitMargin = sysClient.getParamServiceNew(MagicValues.PROFIT_MARGIN);
 			Bills bills = billsService.getById(billId);
 			if (bills != null) {
 				R<String> biz = dictBizClient.getOneValue("src_type_los", bills.getSrcType(), AuthUtil.getTenantId());
@@ -6072,11 +6072,11 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							// 应收
 							List<FeeCenterReports> feeCenterReportsD = item.getFeeCenterList().stream()
 								.filter(e -> MagicValues.D.equals(e.getDc()) && !MagicValues.ONE.equals(e.getReportType())).collect(Collectors.toList()) == null ? new ArrayList<>() :
-								item.getFeeCenterList().stream().filter(e -> MagicValues.D.equals(e.getDc()) && !MagicValues.ONE.equals(e.getReportType())).collect(Collectors.toList());
+								item.getFeeCenterList().stream().filter(e -> MagicValues.D.equals(e.getDc()) && !MagicValues.ONE.equals(e.getReportType())).distinct().collect(Collectors.toList());
 							// 应付
 							List<FeeCenterReports> feeCenterReportsC = item.getFeeCenterList().stream()
 								.filter(e -> MagicValues.C.equals(e.getDc()) && !MagicValues.ONE.equals(e.getReportType())).collect(Collectors.toList()) == null ? new ArrayList<>() :
-								item.getFeeCenterList().stream().filter(e -> MagicValues.C.equals(e.getDc()) && !MagicValues.ONE.equals(e.getReportType())).collect(Collectors.toList());
+								item.getFeeCenterList().stream().filter(e -> MagicValues.C.equals(e.getDc()) && !MagicValues.ONE.equals(e.getReportType())).distinct().collect(Collectors.toList());
 							// 排序
 							List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
 								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
@@ -6099,18 +6099,25 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 								List<FeeCenterReports> feeCenterD = feeCenterReportsD.stream().filter(e -> e.getFeeCnName().equals(fee.getFeeCnName())
 										&& fee.getBillCorpCnName().equals(e.getBillCorpCnName())).collect(Collectors.toList());
 								if (!feeCenterD.isEmpty()) {
-									feeCenterReports1.setAmountD(feeCenterD.stream().map(FeeCenterReports::getAmountD)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
-									feeCenterReports1.setAmountLocD(feeCenterD.stream().map(FeeCenterReports::getAmountLocD)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
-									feeCenterReports1.setAmountUsdD(feeCenterD.stream().map(FeeCenterReports::getAmountUsdD)
-										.filter(Objects::nonNull).reduce(BigDecimal.ZERO,BigDecimal::add));
+									feeCenterReports1.setAmountD(fee.getAmountD());
+									feeCenterReports1.setAmountLocD(fee.getAmountLocD());
+									feeCenterReports1.setAmountUsdD(fee.getAmountUsdD() == null ? BigDecimal.ZERO : fee.getAmountUsdD());
 									amountDr = amountDr.add(feeCenterReports1.getAmountD());
 									amountDrUsd = amountDrUsd.add(feeCenterReports1.getAmountUsdD());
 								}
-								List<FeeCenterReports> feeCenterC = feeCenterReportsC.stream().filter(e -> e.getFeeCnName().equals(fee.getFeeCnName())
-									&&  !"1".equals(e.getMark())).collect(Collectors.toList());
+								/*List<FeeCenterReports> feeCenterC = feeCenterReportsC.stream().filter(e -> e.getFeeCnName().equals(fee.getFeeCnName())
+									&&  !"1".equals(e.getMark())).distinct().collect(Collectors.toList());*/
+								FeeCenterReports feeCenterC = feeCenterReportsC.stream().filter(e -> e.getFeeCnName().equals(fee.getFeeCnName())
+									&&  !"1".equals(e.getMark())).distinct().findFirst().orElse(null);
 								if (feeCenterC != null) {
+									feeCenterC.setMark("1");
+									feeCenterReports1.setCorpCnName(feeCenterC.getCorpCnName());
+									feeCenterReports1.setAmountC(feeCenterC.getAmountC());
+									feeCenterReports1.setAmountLocC(feeCenterC.getAmountLocC());
+									feeCenterReports1.setAmountUsdC(feeCenterC.getAmountUsdC());
+									countC++;
+								}
+/*								if (feeCenterC != null) {
 									for (FeeCenterReports itemC : feeCenterC){
 										itemC.setMark("1");
 										if (ObjectUtils.isNull(feeCenterReports1.getCorpCnName())){
@@ -6137,7 +6144,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 										}
 										countC++;
 									}
-								}
+								}*/
 								feeCenterReports.add(feeCenterReports1);
 							}
 							if (!feeCenterReportsNewC.isEmpty()){
@@ -6159,11 +6166,13 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									feeCenterReports1.setAmountC(fee.getAmountC());
 									feeCenterReports1.setAmountLocC(fee.getAmountLocC());
 									feeCenterReports1.setAmountUsdC(fee.getAmountUsdC());
-									amountCr = amountCr.add(ObjectUtils.isNotNull(fee.getAmountC()) ? fee.getAmountC() : new BigDecimal("0.00"));
-									amountCrUsd = amountCrUsd.add(ObjectUtils.isNotNull(fee.getAmountUsdC()) ? fee.getAmountUsdC() : new BigDecimal("0.00"));
+									// amountCr = amountCr.add(ObjectUtils.isNotNull(fee.getAmountC()) ? fee.getAmountC() : new BigDecimal("0.00"));
+									// amountCrUsd = amountCrUsd.add(ObjectUtils.isNotNull(fee.getAmountUsdC()) ? fee.getAmountUsdC() : new BigDecimal("0.00"));
 									feeCenterReports.add(feeCenterReports1);
 								}
 							}
+							amountCr = feeCenterReportsC.stream().map(FeeCenterReports::getAmountC).filter(ObjectUtils::isNotNull).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
+							amountCrUsd = feeCenterReportsC.stream().map(FeeCenterReports::getAmountUsdC).filter(ObjectUtils::isNotNull).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
 							/*for (FeeCenterReports fee : feeCenters) {
 								FeeCenterReports feeReports = item.getFeeCenterList().stream()
 									.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()))