Sfoglia il codice sorgente

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

liyuan 7 mesi fa
parent
commit
2dfc07f67a

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

@@ -1718,51 +1718,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						} else
 							ro = new BigDecimal(BigInteger.ZERO);
 						item.setOverFeeLimit(ro.setScale(2, BigDecimal.ROUND_HALF_UP));
-
-						/*
-						if (ObjectUtils.isNotNull(profitMargin)) {
-							BigDecimal margin = new BigDecimal(profitMargin).divide(new BigDecimal(MagicValues.HUNDRED), 2, RoundingMode.HALF_UP);
-							if (margin.compareTo(item.getGrossMargin()) > 0) {
-								item.setProfitMargin("Profit was low and unfair(DC)!");
-								BigDecimal amountD = feeCenterReports.stream().filter(e -> e.getFeeCnName().equals("海运费"))
-									.map(FeeCenterReports::getAmountD).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-								BigDecimal amountC = feeCenterReports.stream().filter(e -> e.getFeeCnName().equals("海运费"))
-									.map(FeeCenterReports::getAmountC).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-								if (new BigDecimal("0.00").compareTo((amountD.add(amountC))) == 0) {
-									item.setText("(应收/应付)存在RMB海运费");
-								}
-								String status = sysClient.getParamServiceNew("is.profit.margin");
-								if ("1".equals(status)) {
-									BigDecimal amountHYD = item.getFeeCenterList().stream()
-										.filter(e -> e.getFeeCnName().equals("海运费") && "D".equals(e.getDc()))
-										.map(FeeCenterReports::getAmountUsdD).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BigDecimal amountHYC = item.getFeeCenterList().stream()
-										.filter(e -> e.getFeeCnName().equals("海运费") && "C".equals(e.getDc()))
-										.map(FeeCenterReports::getAmountUsdC).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BigDecimal amountPSD = item.getFeeCenterList().stream()
-										.filter(e -> e.getFeeCnName().equals("PS") && "D".equals(e.getDc()))
-										.map(FeeCenterReports::getAmountUsdD).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BigDecimal amountPSC = item.getFeeCenterList().stream()
-										.filter(e -> e.getFeeCnName().equals("PS") && "C".equals(e.getDc()))
-										.map(FeeCenterReports::getAmountUsdC).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BCorps bCorps = bCorpsService.getById(item.getCorpId());
-									BigDecimal PSAmount = amountPSC.subtract(amountPSD);
-									BigDecimal HYAmount = amountHYD.subtract(amountHYC);
-									BigDecimal rate = new BigDecimal("0.00");
-									if (PSAmount.compareTo(new BigDecimal("0.00")) != 0 && HYAmount.compareTo(new BigDecimal("0.00")) != 0) {
-										rate = PSAmount.divide(HYAmount, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP);
-										if (new BigDecimal(bCorps.getPsRate()).compareTo(rate) > 0) {
-											item.setSharingRatio("公司实际分成比例:" + rate + "(" + bCorps.getPsRate() + ")");
-										}
-									}
-								}
-							} else {
-								item.setProfitMargin("");
-							}
-						} else {
-							item.setProfitMargin("");
-						}
-						*/
 						item.setFeeCenterList(feeCenterReports);
 						item.setDept(dept);
 					}
@@ -3715,51 +3670,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 						} else
 							ro = new BigDecimal(BigInteger.ZERO);
 						item.setOverFeeLimit(ro.setScale(2, BigDecimal.ROUND_HALF_UP));
-
-						/*
-						if (ObjectUtils.isNotNull(profitMargin)) {
-							BigDecimal margin = new BigDecimal(profitMargin).divide(new BigDecimal(MagicValues.HUNDRED), 2, RoundingMode.HALF_UP);
-							if (margin.compareTo(item.getGrossMargin()) > 0) {
-								item.setProfitMargin("Profit was low and unfair(DC)!");
-								BigDecimal amountD = feeCenterReports.stream().filter(e -> e.getFeeCnName().equals("海运费"))
-									.map(FeeCenterReports::getAmountD).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-								BigDecimal amountC = feeCenterReports.stream().filter(e -> e.getFeeCnName().equals("海运费"))
-									.map(FeeCenterReports::getAmountC).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
-								if (new BigDecimal("0.00").compareTo((amountD.add(amountC))) == 0) {
-									item.setText("(应收/应付)存在RMB海运费");
-								}
-								String status = sysClient.getParamServiceNew("is.profit.margin");
-								if ("1".equals(status)) {
-									BigDecimal amountHYD = item.getFeeCenterList().stream()
-										.filter(e -> e.getFeeCnName().equals("海运费") && "D".equals(e.getDc()))
-										.map(FeeCenterReports::getAmountUsdD).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BigDecimal amountHYC = item.getFeeCenterList().stream()
-										.filter(e -> e.getFeeCnName().equals("海运费") && "C".equals(e.getDc()))
-										.map(FeeCenterReports::getAmountUsdC).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BigDecimal amountPSD = item.getFeeCenterList().stream()
-										.filter(e -> e.getFeeCnName().equals("PS") && "D".equals(e.getDc()))
-										.map(FeeCenterReports::getAmountUsdD).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BigDecimal amountPSC = item.getFeeCenterList().stream()
-										.filter(e -> e.getFeeCnName().equals("PS") && "C".equals(e.getDc()))
-										.map(FeeCenterReports::getAmountUsdC).reduce(BigDecimal.ZERO, BigDecimal::add);
-									BCorps bCorps = bCorpsService.getById(item.getCorpId());
-									BigDecimal PSAmount = amountPSC.subtract(amountPSD);
-									BigDecimal HYAmount = amountHYD.subtract(amountHYC);
-									BigDecimal rate = new BigDecimal("0.00");
-									if (PSAmount.compareTo(new BigDecimal("0.00")) != 0 && HYAmount.compareTo(new BigDecimal("0.00")) != 0) {
-										rate = PSAmount.divide(HYAmount, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP);
-										if (new BigDecimal(bCorps.getPsRate()).compareTo(rate) > 0) {
-											item.setSharingRatio("公司实际分成比例:" + rate + "(" + bCorps.getPsRate() + ")");
-										}
-									}
-								}
-							} else {
-								item.setProfitMargin("");
-							}
-						} else {
-							item.setProfitMargin("");
-						}
-						*/
 						item.setFeeCenterList(feeCenterReports);
 						item.setDept(dept);
 					}
@@ -5631,10 +5541,6 @@ 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()
-								.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 : feeCenterList) {
 								FeeCenterReports feeCenterReports = new FeeCenterReports();
@@ -5797,10 +5703,6 @@ 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()
-									.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 : feeCenterList) {
 									FeeCenterReports feeCenterReports = new FeeCenterReports();
@@ -5959,10 +5861,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									item.setBillCorpCnName("无");
 								}
 							}
-							/*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 : feeCenterListMh) {
 								FeeCenterReports feeCenterReports = new FeeCenterReports();
@@ -6100,15 +5998,7 @@ 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> 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()
-								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
-									Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));*/
-/*							List<FeeCenterReports> feeCenters1 = feeCenterReportsList1.stream()
-								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
-									Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));*/
 							BigDecimal amountDr = new BigDecimal("0.00");
 							BigDecimal amountCr = new BigDecimal("0.00");
 							BigDecimal amountDrUsd = new BigDecimal("0.00");
@@ -6125,9 +6015,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
 								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
 									Comparator.comparing(f -> f.getFeeCnName() + f.getBillCorpCnName()))), ArrayList::new));
-							/*List<FeeCenterReports> feeCentersD = feeCenterReportsD.stream()
-								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
-									Comparator.comparing(FeeCenterReports::getFeeCnName))), ArrayList::new));*/
 							List<FeeCenterReports> feeCenterReportsNewC = new ArrayList<>();
 							int countC = 0;
 							// 遍历应收,并与应付对应
@@ -6143,14 +6030,12 @@ 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(fee.getAmountD() == null ? BigDecimal.ZERO : fee.getAmountD());
-									feeCenterReports1.setAmountLocD(fee.getAmountLocD() == null ? BigDecimal.ZERO : fee.getAmountLocD());
-									feeCenterReports1.setAmountUsdD(fee.getAmountUsdD() == null ? BigDecimal.ZERO : fee.getAmountUsdD());
+									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));
 									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())).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) {
@@ -6161,34 +6046,6 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 									feeCenterReports1.setAmountUsdC(feeCenterC.getAmountUsdC() == null ? BigDecimal.ZERO : feeCenterC.getAmountUsdC());
 									countC++;
 								}
-/*								if (feeCenterC != null) {
-									for (FeeCenterReports itemC : feeCenterC){
-										itemC.setMark("1");
-										if (ObjectUtils.isNull(feeCenterReports1.getCorpCnName())){
-											feeCenterReports1.setCorpCnName(itemC.getCorpCnName());
-											feeCenterReports1.setAmountC(ObjectUtils.isNotNull(itemC.getAmountC())?itemC.getAmountC():new BigDecimal("0.00"));
-											feeCenterReports1.setAmountLocC(ObjectUtils.isNotNull(itemC.getAmountLocC())?itemC.getAmountLocC():new BigDecimal("0.00"));
-											feeCenterReports1.setAmountUsdC(ObjectUtils.isNotNull(itemC.getAmountUsdC())?itemC.getAmountUsdC():new BigDecimal("0.00"));
-											amountCr = amountCr.add(feeCenterReports1.getAmountC());
-											amountCrUsd = amountCrUsd.add(feeCenterReports1.getAmountUsdC());
-										}else{
-											FeeCenterReports feeCenterReports2 = new FeeCenterReports();
-											feeCenterReports2.setFeeCnName(fee.getFeeCnName());
-											feeCenterReports2.setHblno(fee.getHblno());
-											feeCenterReports2.setPid(fee.getPid());
-											feeCenterReports2.setReportType(fee.getReportType());
-											feeCenterReports2.setDc("C");
-											feeCenterReports2.setCorpCnName(itemC.getCorpCnName());
-											feeCenterReports2.setAmountC(ObjectUtils.isNotNull(itemC.getAmountC())?itemC.getAmountC():new BigDecimal("0.00"));
-											feeCenterReports2.setAmountLocC(ObjectUtils.isNotNull(itemC.getAmountLocC())?itemC.getAmountLocC():new BigDecimal("0.00"));
-											feeCenterReports2.setAmountUsdC(ObjectUtils.isNotNull(itemC.getAmountUsdC())?itemC.getAmountUsdC():new BigDecimal("0.00"));
-											amountCr = amountCr.add(feeCenterReports1.getAmountC());
-											amountCrUsd = amountCrUsd.add(feeCenterReports1.getAmountUsdC());
-											feeCenterReportsNewC.add(feeCenterReports2);
-										}
-										countC++;
-									}
-								}*/
 								feeCenterReports.add(feeCenterReports1);
 							}
 							if (!feeCenterReportsNewC.isEmpty()){
@@ -6210,90 +6067,20 @@ 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"));
 									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()))
-									.findFirst().orElse(null);
-								FeeCenterReports feeCenterReports1 = new FeeCenterReports();
-								feeCenterReports1.setFeeCnName(fee.getFeeCnName());
-								feeCenterReports1.setHblno(fee.getHblno());
-								feeCenterReports1.setPid(fee.getPid());
-								feeCenterReports1.setReportType(fee.getReportType());
-								feeCenterReports1.setDc(fee.getDc());
-								if (feeReports != null) {
-									if ((ObjectUtils.isNotNull(feeReports.getAmountD()) && feeReports.getAmountD().compareTo(new BigDecimal("0.00")) != 0)
-										|| (ObjectUtils.isNotNull(feeReports.getAmountUsdD()) && feeReports.getAmountUsdD().compareTo(new BigDecimal("0.00")) != 0)
-									) {
-										feeCenterReports1.setBillCorpCnName(feeReports.getBillCorpCnName());
-										feeCenterReports1.setAmountD(feeReports.getAmountD());
-										feeCenterReports1.setAmountLocD(feeReports.getAmountLocD());
-										feeCenterReports1.setAmountUsdD(feeReports.getAmountUsdD());
-										amountDr = amountDr.add(ObjectUtils.isNotNull(feeReports.getAmountD()) ? feeReports.getAmountD() : new BigDecimal("0.00"));
-										amountDrUsd = amountDrUsd.add(ObjectUtils.isNotNull(feeReports.getAmountUsdD()) ? feeReports.getAmountUsdD() : new BigDecimal("0.00"));
-									}
-									if ((ObjectUtils.isNotNull(feeReports.getAmountC()) && feeReports.getAmountC().compareTo(new BigDecimal("0.00")) != 0)
-										|| (ObjectUtils.isNotNull(feeReports.getAmountUsdC()) && feeReports.getAmountUsdC().compareTo(new BigDecimal("0.00")) != 0)
-									) {
-										feeCenterReports1.setCorpCnName(feeReports.getCorpCnName());
-										feeCenterReports1.setAmountC(feeReports.getAmountC());
-										feeCenterReports1.setAmountLocC(feeReports.getAmountLocC());
-										feeCenterReports1.setAmountUsdC(feeReports.getAmountUsdC());
-										amountCr = amountCr.add(ObjectUtils.isNotNull(feeReports.getAmountC()) ? feeReports.getAmountC() : new BigDecimal("0.00"));
-										amountCrUsd = amountCrUsd.add(ObjectUtils.isNotNull(feeReports.getAmountUsdC()) ? feeReports.getAmountUsdC() : new BigDecimal("0.00"));
-									}
-								}
-								feeCenterReports.add(feeCenterReports1);
-							}
-							for (FeeCenterReports fee : feeCenters2) {
-								FeeCenterReports feeReports = feeCenterReportsList2.stream()
-									.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()))
-									.findFirst().orElse(null);
-								FeeCenterReports feeCenterReports1 = new FeeCenterReports();
-								feeCenterReports1.setFeeCnName(fee.getFeeCnName());
-								feeCenterReports1.setHblno(fee.getHblno());
-								feeCenterReports1.setPid(fee.getPid());
-								feeCenterReports1.setReportType(fee.getReportType());
-								feeCenterReports1.setDc(fee.getDc());
-								if (feeReports != null) {
-									if ((ObjectUtils.isNotNull(feeReports.getAmountD()) && feeReports.getAmountD().compareTo(new BigDecimal("0.00")) != 0)
-										|| (ObjectUtils.isNotNull(feeReports.getAmountUsdD()) && feeReports.getAmountUsdD().compareTo(new BigDecimal("0.00")) != 0)
-									) {
-										feeCenterReports1.setBillCorpCnName(feeReports.getBillCorpCnName());
-										feeCenterReports1.setAmountD(feeReports.getAmountD());
-										feeCenterReports1.setAmountLocD(feeReports.getAmountLocD());
-										feeCenterReports1.setAmountUsdD(feeReports.getAmountUsdD());
-										amountDr = amountDr.add(ObjectUtils.isNotNull(feeReports.getAmountD()) ? feeReports.getAmountD() : new BigDecimal("0.00"));
-										amountDrUsd = amountDrUsd.add(ObjectUtils.isNotNull(feeReports.getAmountUsdD()) ? feeReports.getAmountUsdD() : new BigDecimal("0.00"));
-									}
-									if ((ObjectUtils.isNotNull(feeReports.getAmountC()) && feeReports.getAmountC().compareTo(new BigDecimal("0.00")) != 0)
-										|| (ObjectUtils.isNotNull(feeReports.getAmountUsdC()) && feeReports.getAmountUsdC().compareTo(new BigDecimal("0.00")) != 0)
-									) {
-										feeCenterReports1.setCorpCnName(feeReports.getCorpCnName());
-										feeCenterReports1.setAmountC(feeReports.getAmountC());
-										feeCenterReports1.setAmountLocC(feeReports.getAmountLocC());
-										feeCenterReports1.setAmountUsdC(feeReports.getAmountUsdC());
-										amountCr = amountCr.add(ObjectUtils.isNotNull(feeReports.getAmountC()) ? feeReports.getAmountC() : new BigDecimal("0.00"));
-										amountCrUsd = amountCrUsd.add(ObjectUtils.isNotNull(feeReports.getAmountUsdC()) ? feeReports.getAmountUsdC() : new BigDecimal("0.00"));
-									}
-								}
-								feeCenterReports.add(feeCenterReports1);
-							}*/
 							item.setAmountProfit(amountDr.subtract(amountCr));
 							item.setAmountProfitUsd(amountDrUsd.subtract(amountCrUsd));
 							BigDecimal amountDrCny = ibCurrencyService.converterCny(MagicValues.USD, amountDrUsd, MagicValues.D, "1");
 							BigDecimal amountCrCny = ibCurrencyService.converterCny(MagicValues.USD, amountCrUsd, MagicValues.C, "1");
 							item.setAmountProfitLoc(amountDr.subtract(amountCr).add(amountDrCny.subtract(amountCrCny)));
-							for (FeeCenterReports fee : feeCenterReportsList1) {
-/*								FeeCenterReports feeReports = feeCenterReportsList1.stream()
-									.filter(e -> e.getFeeCnName().equals(fee.getFeeCnName()))
-									.findFirst().orElse(null);*/
+							List<FeeCenterReports> feeCenterReportsArrayList = feeCenterReportsList1.stream()
+								.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
+									Comparator.comparing(f -> f.getFeeCnName() + f.getBillCorpCnName() + f.getDc()))), ArrayList::new));
+							for (FeeCenterReports fee : feeCenterReportsArrayList) {
 								FeeCenterReports feeReports = fee;
 								FeeCenterReports feeCenterReports1 = new FeeCenterReports();
 								feeCenterReports1.setFeeCnName(fee.getFeeCnName());

+ 45 - 3
blade-service/blade-los/src/main/java/org/springblade/los/business/update/service/impl/UpdateServiceImpl.java

@@ -81,6 +81,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.lang.reflect.Field;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -665,6 +667,16 @@ public class UpdateServiceImpl extends ServiceImpl<UpdateMapper, Update> impleme
 				fieldId.setAccessible(true); // 使私有字段可访问
 				fieldId.set(bills, item.getFieldValueNew());
 			}
+		} else if ("日期选择器".equals(item.getFieldValueType())){
+			Field fieldId = bills.getClass().getDeclaredField(item.getField());
+			fieldId.setAccessible(true); // 使私有字段可访问
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+			try {
+				Date date = sdf.parse(item.getFieldValueNew());
+				fieldId.set(bills, date);
+			} catch (ParseException e) {
+				e.printStackTrace();
+			}
 		} else {
 			Field fieldId = bills.getClass().getDeclaredField(item.getField());
 			fieldId.setAccessible(true); // 使私有字段可访问
@@ -1268,7 +1280,17 @@ public class UpdateServiceImpl extends ServiceImpl<UpdateMapper, Update> impleme
 					fieldId.setAccessible(true); // 使私有字段可访问
 					fieldId.set(amends, item.getFieldValueNew());
 				}
-			} else {
+			} else if ("日期选择器".equals(item.getFieldValueType())){
+				Field fieldId = amends.getClass().getDeclaredField(item.getField());
+				fieldId.setAccessible(true); // 使私有字段可访问
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+				try {
+					Date date = sdf.parse(item.getFieldValueNew());
+					fieldId.set(amends, date);
+				} catch (ParseException e) {
+					e.printStackTrace();
+				}
+			}else {
 				if (ObjectUtils.isNotNull(item.getAmendsFieldCname())) {
 					Field fieldId = amends.getClass().getDeclaredField(item.getAmendsFieldCname());
 					fieldId.setAccessible(true); // 使私有字段可访问
@@ -1440,7 +1462,17 @@ public class UpdateServiceImpl extends ServiceImpl<UpdateMapper, Update> impleme
 					fieldId.setAccessible(true); // 使私有字段可访问
 					fieldId.set(feeCenter, item.getFieldValueNew());
 				}
-			} else {
+			} else if ("日期选择器".equals(item.getFieldValueType())){
+				Field fieldId = feeCenter.getClass().getDeclaredField(item.getField());
+				fieldId.setAccessible(true); // 使私有字段可访问
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+				try {
+					Date date = sdf.parse(item.getFieldValueNew());
+					fieldId.set(feeCenter, date);
+				} catch (ParseException e) {
+					e.printStackTrace();
+				}
+			}else {
 				if (ObjectUtils.isNotNull(item.getFeeCenterFieldCname())) {
 					Field fieldId = feeCenter.getClass().getDeclaredField(item.getFeeCenterFieldCname());
 					fieldId.setAccessible(true); // 使私有字段可访问
@@ -1613,7 +1645,17 @@ public class UpdateServiceImpl extends ServiceImpl<UpdateMapper, Update> impleme
 					fieldId.setAccessible(true); // 使私有字段可访问
 					fieldId.set(accBills, item.getFieldValueNew());
 				}
-			} else {
+			} else if ("日期选择器".equals(item.getFieldValueType())){
+				Field fieldId = accBills.getClass().getDeclaredField(item.getField());
+				fieldId.setAccessible(true); // 使私有字段可访问
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+				try {
+					Date date = sdf.parse(item.getFieldValueNew());
+					fieldId.set(accBills, date);
+				} catch (ParseException e) {
+					e.printStackTrace();
+				}
+			}else {
 				if (ObjectUtils.isNotNull(item.getFinAccBillsFieldCname())) {
 					Field fieldId = accBills.getClass().getDeclaredField(item.getFinAccBillsFieldCname());
 					fieldId.setAccessible(true); // 使私有字段可访问

+ 39 - 39
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -1895,22 +1895,18 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				if ("1".equals(goodsDesc.getWhether()) && ObjectUtils.isNull(item.getDot())) {
 					throw new RuntimeException("商品:" + goodsDesc.getCname() + ",请选择批次号");
 				}
-				PjOrderItems orderItems = pjOrderItems.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
-				if (orderItems != null) {
-					if (ship.getBillno().contains("TK")) {
-						if (orderItems.getSendNum().subtract(item.getSendNum()).compareTo(new BigDecimal("0.00")) < 0) {
-							throw new RuntimeException("商品:" + goodsDesc.getCname() + "退货数量为负数");
-						}
-					} else {
+				if (!"TKSHGD".contains(ship.getBizTypeName())) {
+					PjOrderItems orderItems = pjOrderItems.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
+					if (orderItems != null) {
 						if (orderItems.getGoodsNum().compareTo(orderItems.getSendNum().add(item.getSendNum())) < 0) {
 							throw new RuntimeException("商品:" + goodsDesc.getCname() + "已入库数量超过订单数量");
 						}
+						orderItems.setSendNum(orderItems.getSendNum().add(item.getSendNum()));
+						orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
+						pjOrderItemsList.add(orderItems);
+					} else {
+						throw new RuntimeException("数据异常请联系管理员");
 					}
-					orderItems.setSendNum(orderItems.getSendNum().add(item.getSendNum()));
-					orderItems.setGoodsTotalShipAmount(orderItems.getSendNum().multiply(orderItems.getPrice()));
-					pjOrderItemsList.add(orderItems);
-				} else {
-					throw new RuntimeException("数据异常请联系管理员");
 				}
 				//生成库存账
 				PjStockDesc stockDesc = new PjStockDesc();
@@ -2010,7 +2006,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			if (!pjStockDescArrayListUpdate.isEmpty()) {
 				iStockDescService.updateBatchById(pjStockDescArrayListUpdate);
 			}
-			orderItemsService.updateBatchById(pjOrderItemsList);
+			if (!"TKSHGD".contains(ship.getBizTypeName())) {
+				orderItemsService.updateBatchById(pjOrderItemsList);
+			}
 			//查询所有上架商品
 			LambdaQueryWrapper<PjProductLaunch> productLaunchQueryWrapper = new LambdaQueryWrapper<>();
 			productLaunchQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
@@ -2073,32 +2071,34 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			rwShip.setUpdateTime(new Date());
 			baseMapper.updateById(rwShip);
 		}
-		PjOrder order = orderMapper.selectById(ship.getOrdId());
-		List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
-			.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
-			.eq(PjOrderItems::getIsDeleted, 0)
-			.eq(PjOrderItems::getPid, order.getId()));
-		if (!orderItemsList.isEmpty()) {
-			//数量和
-			BigDecimal goodsNum = orderItemsList.stream().map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
-				.reduce(BigDecimal.ZERO, BigDecimal::add);
-			//发货数量和
-			BigDecimal sendNum = orderItemsList.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull)
-				.reduce(BigDecimal.ZERO, BigDecimal::add);
-			//发货金额和
-			BigDecimal goodsTotalShipAmount = orderItemsList.stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull)
-				.reduce(BigDecimal.ZERO, BigDecimal::add);
-			if (ObjectUtil.isNotEmpty(order)) {
-				order.setGoodsTotalShipNum(sendNum);
-				order.setGoodsTotalShipAmount(goodsTotalShipAmount);
-				if (goodsNum.compareTo(sendNum) == 0) {//数量等于发货数量修改销售订单状态
-					order.setStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
-					order.setXcxStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
-					order.setDeliveryBusinesDate(new Date());
-					orderMapper.updateById(order);
-				} else {
-					order.setStorageId(ship.getStorageId());
-					orderMapper.updateById(order);
+		if (!"TKSHGD".contains(ship.getBizTypeName())) {
+			PjOrder order = orderMapper.selectById(ship.getOrdId());
+			List<PjOrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<PjOrderItems>()
+				.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(PjOrderItems::getIsDeleted, 0)
+				.eq(PjOrderItems::getPid, order.getId()));
+			if (!orderItemsList.isEmpty()) {
+				//数量和
+				BigDecimal goodsNum = orderItemsList.stream().map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
+					.reduce(BigDecimal.ZERO, BigDecimal::add);
+				//发货数量和
+				BigDecimal sendNum = orderItemsList.stream().map(PjOrderItems::getSendNum).filter(Objects::nonNull)
+					.reduce(BigDecimal.ZERO, BigDecimal::add);
+				//发货金额和
+				BigDecimal goodsTotalShipAmount = orderItemsList.stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull)
+					.reduce(BigDecimal.ZERO, BigDecimal::add);
+				if (ObjectUtil.isNotEmpty(order)) {
+					order.setGoodsTotalShipNum(sendNum);
+					order.setGoodsTotalShipAmount(goodsTotalShipAmount);
+					if (goodsNum.compareTo(sendNum) == 0) {//数量等于发货数量修改销售订单状态
+						order.setStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
+						order.setXcxStatus(OrderTypeEnum.RECEIVEDGOODS.getType());
+						order.setDeliveryBusinesDate(new Date());
+						orderMapper.updateById(order);
+					} else {
+						order.setStorageId(ship.getStorageId());
+						orderMapper.updateById(order);
+					}
 				}
 			}
 		}