Browse Source

Merge remote-tracking branch 'origin/dev' into dev

liyuan 9 months ago
parent
commit
9735d9155d

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

@@ -1062,10 +1062,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					allFeeCenter.addAll(feeCenterList);
 
 					List<FeeCenter> feeD = feeCenterList.stream().filter(e -> MagicValues.D.equals(e.getDc())).collect(Collectors.toList());
-					;
 					bills.setFeeCenterListD(feeD);
 					List<FeeCenter> feeC = feeCenterList.stream().filter(e -> MagicValues.C.equals(e.getDc())).collect(Collectors.toList());
-					;
 					bills.setFeeCenterListC(feeC);
 
 					for (FeeCenter item : feeCenterList) {
@@ -1146,8 +1144,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						throw new RuntimeException("请先维护费用");
 					}
 					list.add(0, bills);
-				}
-				else if (MagicValues.MH.equals(bills.getBillType())) {
+				} else if (MagicValues.MH.equals(bills.getBillType())) {
 					// 分单
 					Bills details = billsService.getOne(new LambdaQueryWrapper<Bills>()
 						.eq(Bills::getId, bills.getMasterId())
@@ -1881,7 +1878,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						.append(item.getQuantity()).append(item.getPackingUnit()).append("/")
 						.append(item.getGrossWeight()).append(item.getPackingUnit()).append("/")
 						.append(item.getMeasurement()).append("CBM");
-					if (ObjectUtils.isNotNull(item.getCntrNo()) || ObjectUtils.isNotNull(item.getSealNo())){
+					if (ObjectUtils.isNotNull(item.getCntrNo()) || ObjectUtils.isNotNull(item.getSealNo())) {
 						cntrSealNo.append(item.getCntrNo()).append("/").append(item.getSealNo()).append("  ");
 					}
 				}
@@ -1996,7 +1993,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						.append(item.getQuantity()).append(item.getPackingUnit()).append("/")
 						.append(item.getGrossWeight()).append(item.getPackingUnit()).append("/")
 						.append(item.getMeasurement()).append("CBM");
-					if (ObjectUtils.isNotNull(item.getCntrNo()) || ObjectUtils.isNotNull(item.getSealNo())){
+					if (ObjectUtils.isNotNull(item.getCntrNo()) || ObjectUtils.isNotNull(item.getSealNo())) {
 						cntrSealNo.append(item.getCntrNo()).append("/").append(item.getSealNo()).append("  ");
 					}
 				}
@@ -4662,11 +4659,11 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 								}
 							}
 							feeCenterList.stream().filter(e -> ObjectUtils.isNull(e.getReportType())).forEach(e -> e.setReportType("0"));
-							List<FeeCenter> feeCenters = feeCenterList.stream()
+							/*List<FeeCenter> feeCenters = feeCenterList.stream()
 								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
 									Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getReportType()))), ArrayList::new));
-							List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
-							for (FeeCenter fee : feeCenters) {
+							*/List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
+							for (FeeCenter fee : feeCenterList) {
 								FeeCenterReports feeCenterReports = new FeeCenterReports();
 								feeCenterReports.setRemarks(fee.getRemarks());
 								feeCenterReports.setPid(bills.getId());
@@ -4827,11 +4824,11 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									}
 								}
 								feeCenterList.stream().filter(e -> ObjectUtils.isNull(e.getReportType())).forEach(e -> e.setReportType("0"));
-								List<FeeCenter> feeCenters = feeCenterList.stream()
+								/*List<FeeCenter> feeCenters = feeCenterList.stream()
 									.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
 										Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getReportType()))), ArrayList::new));
-								List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
-								for (FeeCenter fee : feeCenters) {
+								*/List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
+								for (FeeCenter fee : feeCenterList) {
 									FeeCenterReports feeCenterReports = new FeeCenterReports();
 									feeCenterReports.setRemarks(fee.getRemarks());
 									feeCenterReports.setPid(bills.getId());
@@ -4988,11 +4985,11 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									item.setBillCorpCnName("无");
 								}
 							}
-							List<FeeCenter> feeCenterList1 = feeCenterListMh.stream()
+							/*List<FeeCenter> feeCenterList1 = feeCenterListMh.stream()
 								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
 									Comparator.comparing(f -> f.getFeeId() + f.getCorpId() + f.getCurCode() + f.getReportType()))), ArrayList::new));
-							List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
-							for (FeeCenter fee : feeCenterList1) {
+							*/List<FeeCenterReports> feeCenterReportList = new ArrayList<>();
+							for (FeeCenter fee : feeCenterListMh) {
 								FeeCenterReports feeCenterReports = new FeeCenterReports();
 								feeCenterReports.setRemarks(fee.getRemarks());
 								feeCenterReports.setPid(details.getId());
@@ -5128,23 +5125,86 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 					if (!list.isEmpty()) {
 						for (Bills item : list) {
 							List<FeeCenterReports> feeCenterReports = new ArrayList<>();
-							List<FeeCenterReports> feeCenterReportsList = item.getFeeCenterList().stream().filter(e -> !MagicValues.ONE.equals(e.getReportType()) && !MagicValues.TWO.equals(e.getReportType())).collect(Collectors.toList());
+//							List<FeeCenterReports> feeCenterReportsList = item.getFeeCenterList().stream().filter(e -> !MagicValues.ONE.equals(e.getReportType()) && !MagicValues.TWO.equals(e.getReportType())).collect(Collectors.toList());
 							List<FeeCenterReports> feeCenterReportsList1 = item.getFeeCenterList().stream().filter(e -> MagicValues.ONE.equals(e.getReportType())).collect(Collectors.toList());
-							List<FeeCenterReports> feeCenterReportsList2 = item.getFeeCenterList().stream().filter(e -> MagicValues.TWO.equals(e.getReportType())).collect(Collectors.toList());
-							List<FeeCenterReports> feeCenters = feeCenterReportsList.stream()
+//							List<FeeCenterReports> feeCenterReportsList2 = item.getFeeCenterList().stream().filter(e -> MagicValues.TWO.equals(e.getReportType())).collect(Collectors.toList());
+						/*	List<FeeCenterReports> feeCenters = feeCenterReportsList.stream()
 								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
-									Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));
+									Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));*/
 							List<FeeCenterReports> feeCenters1 = feeCenterReportsList1.stream()
 								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
 									Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));
-							List<FeeCenterReports> feeCenters2 = feeCenterReportsList2.stream()
+							/*List<FeeCenterReports> feeCenters2 = feeCenterReportsList2.stream()
 								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
-									Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));
+									Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));*/
 							BigDecimal amountDr = new BigDecimal("0.00");
 							BigDecimal amountCr = new BigDecimal("0.00");
 							BigDecimal amountDrUsd = new BigDecimal("0.00");
 							BigDecimal amountCrUsd = new BigDecimal("0.00");
-							for (FeeCenterReports fee : feeCenters) {
+							// 应收
+							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());
+							// 应付
+							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());
+							// 排序
+							List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
+								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
+									Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));
+							int countC = 0;
+							// 遍历应收,并与应付对应
+							for (int i = 0; i < feeCentersD.size(); i++) {
+								FeeCenterReports fee = feeCentersD.get(i);
+								FeeCenterReports feeCenterReports1 = new FeeCenterReports();
+								feeCenterReports1.setFeeCnName(fee.getFeeCnName());
+								feeCenterReports1.setHblno(fee.getHblno());
+								feeCenterReports1.setPid(fee.getPid());
+								feeCenterReports1.setReportType(fee.getReportType());
+								feeCenterReports1.setDc(fee.getDc());
+								feeCenterReports1.setBillCorpCnName(fee.getBillCorpCnName());
+								feeCenterReports1.setAmountD(fee.getAmountD());
+								feeCenterReports1.setAmountLocD(fee.getAmountLocD());
+								feeCenterReports1.setAmountUsdD(fee.getAmountUsdD());
+								amountDr = amountDr.add(ObjectUtils.isNotNull(fee.getAmountD()) ? fee.getAmountD() : new BigDecimal("0.00"));
+								amountDrUsd = amountDrUsd.add(ObjectUtils.isNotNull(fee.getAmountUsdD()) ? fee.getAmountUsdD() : new BigDecimal("0.00"));
+								FeeCenterReports feeCenterC = feeCenterReportsC.stream()
+									.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()) && !"1".equals(e.getMark())).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());
+									amountCr = amountCr.add(ObjectUtils.isNotNull(feeCenterC.getAmountC()) ? feeCenterC.getAmountC() : new BigDecimal("0.00"));
+									amountCrUsd = amountCrUsd.add(ObjectUtils.isNotNull(feeCenterC.getAmountUsdC()) ? feeCenterC.getAmountUsdC() : new BigDecimal("0.00"));
+									countC++;
+								}
+								feeCenterReports.add(feeCenterReports1);
+							}
+							// 如果存在未对应的应付,添加应付费用
+							if (countC < feeCenterReportsC.size()) {
+								List<FeeCenterReports> feeCe = feeCenterReportsC.stream()
+									.filter(e -> !"1".equals(e.getMark())).collect(Collectors.toList());
+								for (FeeCenterReports fee : feeCe) {
+									FeeCenterReports feeCenterReports1 = new FeeCenterReports();
+									feeCenterReports1.setFeeCnName(fee.getFeeCnName());
+									feeCenterReports1.setHblno(fee.getHblno());
+									feeCenterReports1.setPid(fee.getPid());
+									feeCenterReports1.setReportType(fee.getReportType());
+									feeCenterReports1.setDc(fee.getDc());
+									fee.setMark("1");
+									feeCenterReports1.setCorpCnName(fee.getCorpCnName());
+									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"));
+									feeCenterReports.add(feeCenterReports1);
+								}
+							}
+							/*for (FeeCenterReports fee : feeCenters) {
 								FeeCenterReports feeReports = item.getFeeCenterList().stream()
 									.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()))
 									.findFirst().orElse(null);
@@ -5211,7 +5271,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									}
 								}
 								feeCenterReports.add(feeCenterReports1);
-							}
+							}*/
 							item.setAmountProfit(amountDr.subtract(amountCr));
 							item.setAmountProfitUsd(amountDrUsd.subtract(amountCrUsd));
 							BigDecimal amountDrCny = ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D, "1");

+ 3 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/amends/service/impl/AmendsServiceImpl.java

@@ -340,8 +340,10 @@ public class AmendsServiceImpl extends ServiceImpl<AmendsMapper, Amends> impleme
 			auditProecessDTO.setGrossProfit(amountCnyD.subtract(amountCnyC));
 			auditProecessDTO.setGrossProfitUsd(amountUsdD.subtract(amountUsdC));
 			auditProecessDTO.setGrossProfitLoc(auditProecessDTO.getGrossProfit().add(bCurrencyService.converterCny("USD", auditProecessDTO.getGrossProfitUsd(), "","1")));
-
 			auditProecessDTO.setSalesCompanyName(declare.getCreateDeptName());
+			auditProecessDTO.setSrcId(declare.getSrcId());
+			auditProecessDTO.setSrcCnName(declare.getSrcCnName());
+			auditProecessDTO.setSrcEnName(declare.getSrcEnName());
 			List<FeeCenter> feeCenterBills = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 				.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 				.eq(FeeCenter::getIsDeleted, 0)