Browse Source

feat:财务管理-费用校验-待审核订单-费用明细合计

wrj 1 năm trước cách đây
mục cha
commit
3477b472ff

+ 44 - 0
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -2669,6 +2669,11 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                 insFeeOrderNew.getNoSuperviseCostsPremiums(),
                 insFeeOrderNew.getNoOtherCostsPremiums(), insFeeOrderNew.getNoCostsPremiums());
         entranceFeeList.add(noEntranceFee);
+
+        //入口费用合计
+        FeeOrderNewVo.EntranceFee entranceFeeTotal = assignEntranceFeeTotal(entranceFeeList);
+        entranceFeeList.add(entranceFeeTotal);
+
         //endregion
 
         //region 机构管理对象
@@ -2803,6 +2808,9 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         exportFeeList.add(jqExportFee);
         exportFeeList.add(syExportFee);
         exportFeeList.add(noExportFee);
+        //出口费用合计
+        FeeOrderNewVo.ExportFee exportFeeTotal = assignExportFeeTotal(exportFeeList);
+        exportFeeList.add(exportFeeTotal);
         //endregion
 
         feeOrderNewVo.setEntranceFee(entranceFeeList);
@@ -2812,6 +2820,42 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         return feeOrderNewVo;
     }
 
+    private FeeOrderNewVo.ExportFee assignExportFeeTotal(List<FeeOrderNewVo.ExportFee> exportFeeList) {
+        FeeOrderNewVo.ExportFee exportFee = new FeeOrderNewVo.ExportFee();
+        exportFee.setInsuranceType("合计");
+        //保费合计
+        BigDecimal premium = exportFeeList.stream().map(FeeOrderNewVo.ExportFee::getPremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+        exportFee.setPremium(Optional.of(premium).orElse(BigDecimal.ZERO));
+        //跟单费合计
+        BigDecimal otherCostsPremiums = exportFeeList.stream().map(FeeOrderNewVo.ExportFee::getOtherCostsPremiums).reduce(BigDecimal.ZERO, BigDecimal::add);
+        exportFee.setOtherCostsPremiums(Optional.of(otherCostsPremiums).orElse(BigDecimal.ZERO));
+        //手续费合计
+        BigDecimal superviseCostsPremiums = exportFeeList.stream().map(FeeOrderNewVo.ExportFee::getSuperviseCostsPremiums).reduce(BigDecimal.ZERO, BigDecimal::add);
+        exportFee.setSuperviseCostsPremiums(Optional.of(superviseCostsPremiums).orElse(BigDecimal.ZERO));
+        //总费用合计
+        BigDecimal totalAmount = exportFeeList.stream().map(FeeOrderNewVo.ExportFee::getTotalAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        exportFee.setTotalAmount(Optional.of(totalAmount).orElse(BigDecimal.ZERO));
+        return exportFee;
+    }
+
+    private static FeeOrderNewVo.EntranceFee assignEntranceFeeTotal(List<FeeOrderNewVo.EntranceFee> entranceFeeList) {
+        FeeOrderNewVo.EntranceFee entranceFeeTotal = new FeeOrderNewVo.EntranceFee();
+        entranceFeeTotal.setInsuranceType("合计");
+        //保费合计
+        BigDecimal premium = entranceFeeList.stream().map(FeeOrderNewVo.EntranceFee::getPremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+        entranceFeeTotal.setPremium(Optional.of(premium).orElse(BigDecimal.ZERO));
+        //跟单费合计
+        BigDecimal otherCostsPremiums = entranceFeeList.stream().map(FeeOrderNewVo.EntranceFee::getOtherCostsPremiums).reduce(BigDecimal.ZERO, BigDecimal::add);
+        entranceFeeTotal.setOtherCostsPremiums(Optional.of(otherCostsPremiums).orElse(BigDecimal.ZERO));
+        //手续费合计
+        BigDecimal superviseCostsPremiums = entranceFeeList.stream().map(FeeOrderNewVo.EntranceFee::getSuperviseCostsPremiums).reduce(BigDecimal.ZERO, BigDecimal::add);
+        entranceFeeTotal.setSuperviseCostsPremiums(Optional.of(superviseCostsPremiums).orElse(BigDecimal.ZERO));
+        //总费用合计
+        BigDecimal totalAmount = entranceFeeList.stream().map(FeeOrderNewVo.EntranceFee::getTotalAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+        entranceFeeTotal.setTotalAmount(Optional.of(totalAmount).orElse(BigDecimal.ZERO));
+        return entranceFeeTotal;
+    }
+
     /**
      * 计算入口费用
      *