|
|
@@ -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");
|