Browse Source

2024年1月26日18:46:08

纪新园 1 year ago
parent
commit
195a1f9243

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

@@ -466,32 +466,49 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 								Comparator.comparing(e -> e.getFeeCnName()))), ArrayList::new));
 						int count = 0;
 						for (FeeCenterReports fee : feeCenters) {
-							FeeCenterReports feeCenterReportsD = feeCenterReportsList.stream()
-								.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.D.equals(e.getDc()))
-								.findFirst().orElse(null);
-							FeeCenterReports feeCenterReportsC = feeCenterReportsList.stream()
-								.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.C.equals(e.getDc()))
-								.findFirst().orElse(null);
+							List<FeeCenterReports> feeCenterReportsD = feeCenterReportsList.stream()
+								.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
+							List<FeeCenterReports> feeCenterReportsC = feeCenterReportsList.stream()
+								.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
 							FeeCenterReports feeCenterReports1 = new FeeCenterReports();
 							feeCenterReports1.setFeeCnName(fee.getFeeCnName());
 							feeCenterReports1.setHblno(fee.getHblno());
 							feeCenterReports1.setPid(fee.getPid());
-							if (feeCenterReportsD != null) {
-								feeCenterReports1.setBillCorpCnName(feeCenterReportsD.getBillCorpCnName());
-								feeCenterReports1.setAmountD(feeCenterReportsD.getAmountD());
-								feeCenterReports1.setAmountLocD(feeCenterReportsD.getAmountLocD());
-								feeCenterReports1.setAmountUsdD(feeCenterReportsD.getAmountUsdD());
-								System.out.println("+++++++" + count + feeCenterReportsD.getBillCorpCnName());
-								System.out.println("+++++++" + count + feeCenterReportsD.getCorpCnName());
-
+							if (feeCenterReportsD != null && feeCenterReportsD.size() > 0) {
+								if (feeCenterReportsD.stream().map(FeeCenterReports::getBillCorpCnName).distinct().count() > 1) {
+									for (FeeCenterReports feeCenterReports2 :feeCenterReportsD){
+										feeCenterReports1.setBillCorpCnName(feeCenterReports2.getBillCorpCnName());
+										feeCenterReports1.setAmountD(feeCenterReports2.getAmountD());
+										feeCenterReports1.setAmountLocD(feeCenterReports2.getAmountLocD());
+										feeCenterReports1.setAmountUsdD(feeCenterReports2.getAmountUsdD());
+										feeCenterReports.add(feeCenterReports1);
+									}
+								}else{
+									feeCenterReports1.setBillCorpCnName(feeCenterReportsD.get(0).getBillCorpCnName());
+									feeCenterReports1.setAmountD(feeCenterReportsD.get(0).getAmountD());
+									feeCenterReports1.setAmountLocD(feeCenterReportsD.get(0).getAmountLocD());
+									feeCenterReports1.setAmountUsdD(feeCenterReportsD.get(0).getAmountUsdD());
+								}
+								System.out.println("+++++++" + count + feeCenterReportsD.get(0).getBillCorpCnName());
+								System.out.println("+++++++" + count + feeCenterReportsD.get(0).getCorpCnName());
 							}
 							if (feeCenterReportsC != null) {
-								feeCenterReports1.setCorpCnName(feeCenterReportsC.getCorpCnName());
-								feeCenterReports1.setAmountC(feeCenterReportsC.getAmountC());
-								feeCenterReports1.setAmountLocC(feeCenterReportsC.getAmountLocC());
-								feeCenterReports1.setAmountUsdC(feeCenterReportsC.getAmountUsdC());
-								System.out.println("+++++++" + count + feeCenterReportsC.getBillCorpCnName());
-								System.out.println("+++++++" + count + feeCenterReportsC.getCorpCnName());
+								if (feeCenterReportsD.stream().map(FeeCenterReports::getBillCorpCnName).distinct().count() > 1) {
+									for (FeeCenterReports feeCenterReports2 :feeCenterReportsC){
+										feeCenterReports1.setCorpCnName(feeCenterReports2.getCorpCnName());
+										feeCenterReports1.setAmountC(feeCenterReports2.getAmountC());
+										feeCenterReports1.setAmountLocC(feeCenterReports2.getAmountLocC());
+										feeCenterReports1.setAmountUsdC(feeCenterReports2.getAmountUsdC());
+										feeCenterReports.add(feeCenterReports1);
+									}
+								}else{
+									feeCenterReports1.setCorpCnName(feeCenterReportsC.get(0).getCorpCnName());
+									feeCenterReports1.setAmountC(feeCenterReportsC.get(0).getAmountC());
+									feeCenterReports1.setAmountLocC(feeCenterReportsC.get(0).getAmountLocC());
+									feeCenterReports1.setAmountUsdC(feeCenterReportsC.get(0).getAmountUsdC());
+								}
+								System.out.println("+++++++" + count + feeCenterReportsC.get(0).getBillCorpCnName());
+								System.out.println("+++++++" + count + feeCenterReportsC.get(0).getCorpCnName());
 							}
 							feeCenterReports.add(feeCenterReports1);
 							count++;

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FinAccBillsController.java

@@ -334,7 +334,7 @@ public class FinAccBillsController extends BladeController {
 			listAccBillVO.setIsSignfor(null);
 		}
 		if (ObjectUtils.isNotNull(listAccBillVO.getInvoiceStatus()) && 0 == listAccBillVO.getInvoiceStatus()) {
-			listAccBillVO.setIsChecked(null);
+			listAccBillVO.setInvoiceStatus(null);
 		}
 		if (ObjectUtils.isNotNull(listAccBillVO.getAuditStatus()) && "0".equals(listAccBillVO.getAuditStatus())) {
 			listAccBillVO.setAuditStatus(null);

+ 33 - 3
blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java

@@ -308,6 +308,9 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 						}
 					}
 					finAccBills.setUninvoicedAmount(finAccBills.getUninvoicedAmount().add(item.getCurrentAmount()));
+					if (ObjectUtils.isNull(item.getApplySrcId())) {
+						finAccBills.setAppliedInvoiceAmountStl(finAccBills.getAppliedInvoiceAmountStl().add(item.getCurrentAmount()));
+					}
 				} else {
 					if ("C".equals(finAccBills.getAccountDc())) {
 						if (ObjectUtils.isNull(item.getApplySrcId())) {
@@ -322,6 +325,9 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 							}
 						}
 					}
+					if (ObjectUtils.isNull(item.getApplySrcId())) {
+						finAccBills.setAppliedInvoiceAmountStlUsd(finAccBills.getAppliedInvoiceAmountStlUsd().add(item.getCurrentAmount()));
+					}
 					finAccBills.setUninvoicedAmountUsd(finAccBills.getUninvoicedAmountUsd().add(item.getCurrentAmount()));
 				}
 				finAccBillsList.add(finAccBills);
@@ -348,12 +354,21 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 					feeCenter.setInvoiceByName(detail.getCreateUserName());
 					if (feeCenter.getAmount().subtract(feeCenter.getUninvoicedAmount()).compareTo(currentStlAmount) > 0) {
 						feeCenter.setUninvoicedAmount(feeCenter.getUninvoicedAmount().add(currentStlAmount));
+						if (ObjectUtils.isNull(item.getApplySrcId())) {
+							feeCenter.setAppliedInvoiceAmountStl(feeCenter.getAmount().subtract(feeCenter.getUnsettledAmount()).subtract(feeCenter.getAppliedInvoiceAmountStl()));
+						}
 						currentStlAmount = new BigDecimal("0.00");
 					} else if (feeCenter.getAmount().subtract(feeCenter.getStlTtlAmount()).compareTo(currentStlAmount) == 0) {
 						feeCenter.setUninvoicedAmount(feeCenter.getAmount());
+						if (ObjectUtils.isNull(item.getApplySrcId())) {
+							feeCenter.setAppliedInvoiceAmountStl(feeCenter.getAmount().subtract(feeCenter.getUnsettledAmount()).subtract(feeCenter.getAppliedInvoiceAmountStl()));
+						}
 						currentStlAmount = new BigDecimal("0.00");
 					} else {
 						feeCenter.setUninvoicedAmount(feeCenter.getAmount());
+						if (ObjectUtils.isNull(item.getApplySrcId())) {
+							feeCenter.setAppliedInvoiceAmountStl(feeCenter.getAmount().subtract(feeCenter.getUnsettledAmount()).subtract(feeCenter.getAppliedInvoiceAmountStl()));
+						}
 						currentStlAmount = currentStlAmount.subtract(feeCenter.getAmount());
 					}
 					feeCenterList.add(feeCenter);
@@ -475,14 +490,17 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				finAccBills.setUpdateUserName(AuthUtil.getUserName());
 				if ("CNY".equals(item.getCurCode())) {
 					if ("C".equals(finAccBills.getAccountDc())) {
-						if (item.getCurrentAmount().compareTo(finAccBills.getUninvoicedAmount()) > 0) {
-							throw new RuntimeException("本次开票金额大于已开票金额");
-						}
+							if (item.getCurrentAmount().compareTo(finAccBills.getUninvoicedAmount()) > 0) {
+								throw new RuntimeException("本次开票金额大于已开票金额");
+							}
 					} else {
 						if (item.getCurrentAmount().compareTo(finAccBills.getUninvoicedAmount()) > 0) {
 							throw new RuntimeException("本次开票金额大于已开票金额");
 						}
 					}
+					if (ObjectUtils.isNull(item.getApplySrcId())) {
+						finAccBills.setAppliedInvoiceAmountStl(finAccBills.getAppliedInvoiceAmountStl().subtract(item.getCurrentAmount()));
+					}
 					finAccBills.setUninvoicedAmount(finAccBills.getUninvoicedAmount().subtract(item.getCurrentAmount()));
 				} else {
 					if ("C".equals(finAccBills.getAccountDc())) {
@@ -494,6 +512,9 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 							throw new RuntimeException("本次开票金额大于已开票金额");
 						}
 					}
+					if (ObjectUtils.isNull(item.getApplySrcId())) {
+						finAccBills.setAppliedInvoiceAmountStlUsd(finAccBills.getAppliedInvoiceAmountStl().subtract(item.getCurrentAmount()));
+					}
 					finAccBills.setUninvoicedAmountUsd(finAccBills.getUninvoicedAmountUsd().subtract(item.getCurrentAmount()));
 				}
 				finAccBillsList.add(finAccBills);
@@ -521,12 +542,21 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 					feeCenter.setInvoiceByName(detail.getCreateUserName());
 					if (feeCenter.getAmount().subtract(feeCenter.getUninvoicedAmount()).compareTo(currentStlAmount) > 0) {
 						feeCenter.setUninvoicedAmount(feeCenter.getUninvoicedAmount().subtract(currentStlAmount));
+						if (ObjectUtils.isNull(item.getApplySrcId())) {
+							feeCenter.setAppliedInvoiceAmountStl(feeCenter.getAppliedInvoiceAmountStl().subtract(currentStlAmount));
+						}
 						currentStlAmount = new BigDecimal("0.00");
 					} else if (feeCenter.getAmount().subtract(feeCenter.getStlTtlAmount()).compareTo(currentStlAmount) == 0) {
 						feeCenter.setUninvoicedAmount(feeCenter.getUninvoicedAmount().subtract(currentStlAmount));
+						if (ObjectUtils.isNull(item.getApplySrcId())) {
+							feeCenter.setAppliedInvoiceAmountStl(feeCenter.getAppliedInvoiceAmountStl().subtract(currentStlAmount));
+						}
 						currentStlAmount = new BigDecimal("0.00");
 					} else {
 						feeCenter.setUninvoicedAmount(feeCenter.getUninvoicedAmount().subtract(currentStlAmount));
+						if (ObjectUtils.isNull(item.getApplySrcId())) {
+							feeCenter.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
+						}
 						currentStlAmount = currentStlAmount.subtract(item.getAmount());
 					}
 					feeCenterList.add(feeCenter);

+ 0 - 24
blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java

@@ -651,16 +651,10 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					if ("CNY".equals(item.getCurCode())) {
 						finAccBills.setStlAmountDr(finAccBills.getStlAmountDr().add(item.getCurrentStlAmount().add(item.getCurrentStlDiscount())));
 						finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().add(finAccBills.getStlAmountDr().add(item.getCurrentStlDiscount())));
-						if (ids.size() > 0) {
-							finAccBills.setAppliedInvoiceAmountStl(finAccBills.getAppliedInvoiceAmountStl().add(item.getCurrentStlDiscount()));
-						}
 					} else {
 						finAccBills.setStlAmountDrUsd(finAccBills.getStlAmountDrUsd().add(item.getCurrentStlAmount().add(item.getCurrentStlDiscount())));
 						BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount().add(item.getCurrentStlDiscount()), "D");
 						finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().add(cny));
-						if (ids.size() > 0) {
-							finAccBills.setAppliedInvoiceAmountStlUsd(finAccBills.getAppliedInvoiceAmountStlUsd().add(item.getCurrentStlDiscount()));
-						}
 					}
 					if (finAccBills.getAmountDr().compareTo(finAccBills.getStlAmountDr()) == 0 &&
 						finAccBills.getAmountDrUsd().compareTo(finAccBills.getStlAmountDrUsd()) == 0) {
@@ -748,19 +742,13 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 						if (ids.size() > 0) {
 							if ("D".equals(e.getDc())) {
 								if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) > 0) {
-									e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()).subtract(currentStlAmount));
 									e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
-									e.setAppliedInvoiceAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedInvoiceAmountStl()));
 									currentStlAmount = new BigDecimal("0.00");
 								} else if (e.getAmount().subtract(e.getStlTtlAmount()).compareTo(currentStlAmount) == 0) {
-									e.setUnsettledAmount(new BigDecimal("0.00"));
 									e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
-									e.setAppliedInvoiceAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedInvoiceAmountStl()));
 									currentStlAmount = new BigDecimal("0.00");
 								} else {
-									e.setUnsettledAmount(new BigDecimal("0.00"));
 									e.setStlTtlAmount(e.getAmount().subtract(e.getUnsettledAmount()));
-									e.setAppliedInvoiceAmountStl(e.getAmount().subtract(e.getUnsettledAmount()).subtract(e.getAppliedInvoiceAmountStl()));
 									currentStlAmount = currentStlAmount.subtract(e.getAmount());
 								}
 							} else {
@@ -917,16 +905,10 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					if ("CNY".equals(item.getCurCode())) {
 						finAccBills.setStlAmountDr(finAccBills.getStlAmountDr().subtract(item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount())));
 						finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().subtract(finAccBills.getStlAmountDr().subtract(item.getCurrentStlDiscount())));
-						if (ids.size() > 0) {
-							finAccBills.setAppliedInvoiceAmountStl(finAccBills.getAppliedInvoiceAmountStl().subtract(item.getCurrentStlDiscount()));
-						}
 					} else {
 						finAccBills.setStlAmountDrUsd(finAccBills.getStlAmountDrUsd().subtract(item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount())));
 						BigDecimal cny = bCurrencyService.converterCny(item.getCurCode(), item.getCurrentStlAmount().subtract(item.getCurrentStlDiscount()), "D");
 						finAccBills.setStlAmountDrLoc(finAccBills.getStlAmountDrLoc().subtract(cny));
-						if (ids.size() > 0) {
-							finAccBills.setAppliedInvoiceAmountStlUsd(finAccBills.getAppliedInvoiceAmountStlUsd().subtract(item.getCurrentStlDiscount()));
-						}
 					}
 					if (finAccBills.getAmountDr().compareTo(new BigDecimal("0.00")) == 0 &&
 						finAccBills.getAmountDrUsd().compareTo(new BigDecimal("0.00")) == 0) {
@@ -1030,18 +1012,12 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 							if ("D".equals(e.getDc())) {
 								if (e.getStlTtlAmount().compareTo(currentStlAmount) > 0) {
 									e.setStlTtlAmount(e.getStlTtlAmount().subtract(currentStlAmount));
-									e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
-									e.setAppliedInvoiceAmountStl(e.getAppliedInvoiceAmountStl().subtract(currentStlAmount));
 									currentStlAmount = new BigDecimal("0.00");
 								} else if (e.getStlTtlAmount().compareTo(currentStlAmount) == 0) {
 									e.setStlTtlAmount(new BigDecimal("0.00"));
-									e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
-									e.setAppliedInvoiceAmountStl(e.getAppliedInvoiceAmountStl().subtract(currentStlAmount));
 									currentStlAmount = new BigDecimal("0.00");
 								} else {
 									e.setStlTtlAmount(new BigDecimal("0.00"));
-									e.setUnsettledAmount(e.getAmount().subtract(e.getStlTtlAmount()));
-									e.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
 									currentStlAmount = currentStlAmount.subtract(e.getAmount());
 								}
 							} else {