Browse Source

修改分销和分销显示

wks 2 years ago
parent
commit
4514763470

+ 221 - 151
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -15,7 +15,10 @@ import com.ydtech.modules.order.entity.InsFeeOrder;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.service.InsCopyFeeOrderService;
 import com.ydtech.modules.order.service.InsFeeOrderService;
-import com.ydtech.modules.protocol.entity.po.*;
+import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
+import com.ydtech.modules.protocol.entity.po.PtlAgreementProductCosts;
+import com.ydtech.modules.protocol.entity.po.PtlAgreementUndwrtRules;
+import com.ydtech.modules.protocol.entity.po.PtlNewCarJudgeRules;
 import com.ydtech.modules.protocol.service.*;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
@@ -72,7 +75,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
         //先根据业务类别、有效期、协议编码、历史标志代码字段 获取对应费用方案列表
         List<PtlAgreementProductCosts> ptlAgreementProductCosts =
-         ptlAgreementProductCostsService.selectVliadFeeFactor(feeSchemeReqDto.getBusType(), feeSchemeReqDto.getAgreementId());
+                ptlAgreementProductCostsService.selectVliadFeeFactor(feeSchemeReqDto.getBusType(), feeSchemeReqDto.getAgreementId());
         if (ptlAgreementProductCosts.isEmpty()) {
             //如果查询不到费用方案信息,则阻断算费流程,进行提示
             throw new SystemException("未查询到费用配置,请先配置该协议的费用方案!");
@@ -98,7 +101,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                 //先判断匹配到的是不是只有兜底类型,如果不是则过滤掉兜底类型的费用,优先以跟单的为准,如果只有兜底类型,则按同样逻辑进行筛选
                 //根据ProductId去重后的结果集
                 List tempList =
-                 validSchemeList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(PtlAgreementProductCosts::getProductId))), ArrayList::new));
+                        validSchemeList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(PtlAgreementProductCosts::getProductId))), ArrayList::new));
                 if (tempList.size() > 1) {//如果有多种类型,则过滤掉兜底类型的
                     validSchemeList = validSchemeList.stream().filter(x -> !"039999".equals(x.getProductId())).collect(Collectors.toList());
                 }
@@ -142,7 +145,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
      * @return
      */
     private PtlAgreementProductCosts changeSchemeWithSpecialRule(List<PtlAgreementProductCosts> validSchemeList,
-     FeeSchemeReqDto feeSchemeReqDto) {
+                                                                 FeeSchemeReqDto feeSchemeReqDto) {
         PtlAgreementProductCosts finalScheme = null;
         //险种标志,最终取哪个险种费用比例   1取交强   2取商业
         String riskFlag = "";
@@ -221,7 +224,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
      * @return
      */
     private boolean checkFactorValidWithInsuranceInfo(String matchKeyStr, Map<Integer, FeeFactorInfoDto> factorToBeVerified,
-     String productId) {
+                                                      String productId) {
         boolean result = false; //默认没有匹配到
         boolean isConfigFactor = false;//是否配置了因子校验项  默认否
         String[] matchKeys = matchKeyStr.split(",");
@@ -637,7 +640,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         factor8.setMatchType("3");
         factor8.setMatchSequence(8);
         if (checkFactorConfigWithArea(factorCost.getMinApprovedLoadCapacity(), factorCost.getMaxApprovedLoadCapacity(), factor8,
-         factorCost)) {
+                factorCost)) {
             factor8.setNeedMatch(true);
             factor8.setMinRangeVal((double) factorCost.getMinApprovedLoadCapacity());
             factor8.setMaxRangeVal((double) factorCost.getMaxApprovedLoadCapacity());
@@ -652,7 +655,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         factor9.setMatchType("3");
         factor9.setMatchSequence(9);
         if (checkFactorConfigWithArea(factorCost.getMinCompulsoryInsurancePremium(), factorCost.getMaxCompulsoryInsurancePremium(),
-         factor9, factorCost)) {
+                factor9, factorCost)) {
             factor9.setNeedMatch(true);
             factor9.setMinRangeVal((double) factorCost.getMinCompulsoryInsurancePremium());
             factor9.setMaxRangeVal((double) factorCost.getMaxCompulsoryInsurancePremium());
@@ -695,7 +698,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         factor12.setMatchType("3");
         factor12.setMatchSequence(12);
         if (checkFactorConfigWithArea(factorCost.getMinOnboardProductsPremium(), factorCost.getMaxOnboardProductsPremium(), factor12,
-         factorCost)) {
+                factorCost)) {
             factor12.setNeedMatch(true);
             factor12.setMinRangeVal((double) factorCost.getMinOnboardProductsPremium());
             factor12.setMaxRangeVal((double) factorCost.getMaxOnboardProductsPremium());
@@ -711,7 +714,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         factor13.setMatchType("3");
         factor13.setMatchSequence(13);
         if (checkFactorConfigWithArea(factorCost.getMinCommercialInsuranceDiscount(), factorCost.getMaxCommercialInsuranceDiscount(),
-         factor13, factorCost)) {
+                factor13, factorCost)) {
             factor13.setNeedMatch(true);
             factor13.setMinRangeVal((double) factorCost.getMinCommercialInsuranceDiscount());
             factor13.setMaxRangeVal((double) factorCost.getMaxCommercialInsuranceDiscount());
@@ -726,7 +729,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         factor14.setMatchType("3");
         factor14.setMatchSequence(14);
         if (checkFactorConfigWithArea(factorCost.getMinCompulsoryInsuranceDiscount(), factorCost.getMaxCompulsoryInsuranceDiscount(),
-         factor14, factorCost)) {
+                factor14, factorCost)) {
             factor14.setNeedMatch(true);
             factor14.setMinRangeVal(factorCost.getMinCompulsoryInsuranceDiscount());
             factor14.setMaxRangeVal(factorCost.getMaxCompulsoryInsuranceDiscount());
@@ -908,7 +911,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
      * @return
      */
     private boolean checkFactorConfigWithArea(Integer minVal, Integer maxVal, FeeFactorInfoDto factorInfoDto,
-     PtlAgreementProductCosts productCosts) {
+                                              PtlAgreementProductCosts productCosts) {
         boolean result = false; //默认不需要匹配
         if (minVal != null && maxVal != null) {
             if (minVal == 0 && maxVal == 0) {//初始化没有配置的时候,全部默认的0,这种不需要匹配
@@ -938,7 +941,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
      * @return
      */
     private boolean checkFactorConfigWithArea(Double minVal, Double maxVal, FeeFactorInfoDto factorInfoDto,
-     PtlAgreementProductCosts productCosts) {
+                                              PtlAgreementProductCosts productCosts) {
         boolean result = false; //默认不需要匹配
         if (minVal != null && maxVal != null) {
             if (minVal == 0 && maxVal == 0) {//初始化没有配置的时候,全部默认的0,这种不需要匹配
@@ -1045,18 +1048,18 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
             }
         }
         List<PtlNewCarJudgeRules> ptlNewCarJudgeRulesList =
-         ptlNewCarJudgeRulesService.getByCompanyId(ptlAgreementAttribution.getInsCompanyId());
+                ptlNewCarJudgeRulesService.getByCompanyId(ptlAgreementAttribution.getInsCompanyId());
         if (ptlNewCarJudgeRulesList != null && !ptlNewCarJudgeRulesList.isEmpty()) {
             PtlNewCarJudgeRules ptlNewCarJudgeRules = ptlNewCarJudgeRulesList.get(0);
             if ("月".equals(ptlNewCarJudgeRules.getUnitTypeCode())) {
                 LocalDate registerDate =
-                 LocalDate.parse(carInfoVo.getRegisterDate(), formatter).plusMonths(Integer.parseInt(ptlNewCarJudgeRules.getUnitTypeValue()));
+                        LocalDate.parse(carInfoVo.getRegisterDate(), formatter).plusMonths(Integer.parseInt(ptlNewCarJudgeRules.getUnitTypeValue()));
                 if (currentDate.isBefore(registerDate)) {
                     isNewCar = "1";
                 }
             } else {
                 LocalDate registerDate =
-                 LocalDate.parse(carInfoVo.getRegisterDate(), formatter).plusDays(Integer.parseInt(ptlNewCarJudgeRules.getUnitTypeValue()));
+                        LocalDate.parse(carInfoVo.getRegisterDate(), formatter).plusDays(Integer.parseInt(ptlNewCarJudgeRules.getUnitTypeValue()));
                 if (currentDate.isBefore(registerDate)) {
                     isNewCar = "1";
                 }
@@ -1374,37 +1377,56 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 //        InsFeeOrder insFeeOrder = insFeeOrderService.getByInsOrderNo(insAreaCompany.getId());
 //
 //        if (insFeeOrder != null) {
-//            if (insFeeOrder.getJqPremium() != null && insFeeOrder.getJqPremium().doubleValue() > 0 && insFeeOrder.getSyPremium() != null && insFeeOrder.getSyPremium().doubleValue() == 0) {//当为单交业务时
+//            if (insFeeOrder.getJqPremium() != null && insFeeOrder.getJqPremium().doubleValue() > 0 && insFeeOrder.getSyPremium() !=
+//            null && insFeeOrder.getSyPremium().doubleValue() == 0) {//当为单交业务时
 //                jqOrderFeeVo = packageOrderFeeInfoOne(insFeeOrder);
 //                jqOrderFeeVo.setCostsPremiums(convertToString(insFeeOrder.getJqCostsPremiums()));
 //                jqOrderFeeVo.setCostsProportion(convertToString(insFeeOrder.getJqCostsProportion()));
-//                jqOrderFeeVo.setCostsPremiumsAll(convertToString(insFeeOrder.getJqSuperviseCostsPremiums()) + "元 / " + convertToString(insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder.getJqSuperviseCostsPremiums())) + "元 / " + convertToString(insFeeOrder.getJqCostsPremiums()) + "元");
-//                jqOrderFeeVo.setCostsProportionAll(convertToString(insFeeOrder.getJqSuperviseCostsProportion()) + " / " + convertToString(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion())) + " / " + convertToString(insFeeOrder.getJqCostsProportion()));
+//                jqOrderFeeVo.setCostsPremiumsAll(convertToString(insFeeOrder.getJqSuperviseCostsPremiums()) + "元 / " + convertToString
+//                (insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder.getJqSuperviseCostsPremiums())) + "元 / " + convertToString
+//                (insFeeOrder.getJqCostsPremiums()) + "元");
+//                jqOrderFeeVo.setCostsProportionAll(convertToString(insFeeOrder.getJqSuperviseCostsProportion()) + " / " +
+//                convertToString(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion())) + " / " +
+//                convertToString(insFeeOrder.getJqCostsProportion()));
 //                /*出单员手续费比例=总费用比例-各级管理费-各级分销费-溢出费*/
 //                orderCommissionVo = getQueryOrderCommission(orderCommissionVo, insFeeOrder, "JQ");
 //
-//            } else if (insFeeOrder.getSyPremium() != null && insFeeOrder.getSyPremium().doubleValue() > 0 && insFeeOrder.getJqPremium() != null && insFeeOrder.getJqPremium().doubleValue() == 0) {//当为单商业务时
+//            } else if (insFeeOrder.getSyPremium() != null && insFeeOrder.getSyPremium().doubleValue() > 0 && insFeeOrder.getJqPremium()
+//            != null && insFeeOrder.getJqPremium().doubleValue() == 0) {//当为单商业务时
 //                syOrderFeeVo = packageOrderFeeInfoOne(insFeeOrder);
 //                syOrderFeeVo.setCostsPremiums(convertToString(insFeeOrder.getSyCostsPremiums()));
 //                syOrderFeeVo.setCostsProportion(convertToString(insFeeOrder.getSyCostsProportion()));
-//                syOrderFeeVo.setCostsPremiumsAll(convertToString(insFeeOrder.getSySuperviseCostsPremiums()) + "元 / " + convertToString(insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder.getSySuperviseCostsPremiums())) + "元 / " + convertToString(insFeeOrder.getSyCostsPremiums()) + "元");
-//                syOrderFeeVo.setCostsProportionAll(convertToString(insFeeOrder.getSySuperviseCostsProportion()) + " / " + convertToString(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion())) + " / " + convertToString(insFeeOrder.getSyCostsProportion()));
+//                syOrderFeeVo.setCostsPremiumsAll(convertToString(insFeeOrder.getSySuperviseCostsPremiums()) + "元 / " + convertToString
+//                (insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder.getSySuperviseCostsPremiums())) + "元 / " + convertToString
+//                (insFeeOrder.getSyCostsPremiums()) + "元");
+//                syOrderFeeVo.setCostsProportionAll(convertToString(insFeeOrder.getSySuperviseCostsProportion()) + " / " +
+//                convertToString(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion())) + " / " +
+//                convertToString(insFeeOrder.getSyCostsProportion()));
 //                /*出单员手续费比例=总费用比例-各级管理费-各级分销费-溢出费*/
 //                orderCommissionVo = getQueryOrderCommission(orderCommissionVo, insFeeOrder, "SY");
-//            } else if (insFeeOrder.getJqPremium() != null && insFeeOrder.getJqPremium().doubleValue() > 0 && insFeeOrder.getSyPremium() != null && insFeeOrder.getSyPremium().doubleValue() > 0) {//当为交商业务时
+//            } else if (insFeeOrder.getJqPremium() != null && insFeeOrder.getJqPremium().doubleValue() > 0 && insFeeOrder.getSyPremium()
+//            != null && insFeeOrder.getSyPremium().doubleValue() > 0) {//当为交商业务时
 //                QueryOrderFeeVo queryOrderFeeVoTemp = packageOrderFeeInfoAll(insFeeOrder);
 //                //获取交强险费用明细
 //                jqOrderFeeVo = queryOrderFeeVoTemp.getJqCoderFeeVo();
 //                jqOrderFeeVo.setCostsPremiums(convertToString(insFeeOrder.getJqCostsPremiums()));
 //                jqOrderFeeVo.setCostsProportion(convertToString(insFeeOrder.getJqCostsProportion()));
-//                jqOrderFeeVo.setCostsPremiumsAll(convertToString(insFeeOrder.getJqSuperviseCostsPremiums()) + "元 / " + convertToString(insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder.getJqSuperviseCostsPremiums())) + "元 / " + convertToString(insFeeOrder.getJqCostsPremiums()) + "元");
-//                jqOrderFeeVo.setCostsProportionAll(convertToString(insFeeOrder.getJqSuperviseCostsProportion()) + " / " + convertToString(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion())) + " / " + convertToString(insFeeOrder.getJqCostsProportion()));
+//                jqOrderFeeVo.setCostsPremiumsAll(convertToString(insFeeOrder.getJqSuperviseCostsPremiums()) + "元 / " + convertToString
+//                (insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder.getJqSuperviseCostsPremiums())) + "元 / " + convertToString
+//                (insFeeOrder.getJqCostsPremiums()) + "元");
+//                jqOrderFeeVo.setCostsProportionAll(convertToString(insFeeOrder.getJqSuperviseCostsProportion()) + " / " +
+//                convertToString(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion())) + " / " +
+//                convertToString(insFeeOrder.getJqCostsProportion()));
 //                //获取商业险费用明细
 //                syOrderFeeVo = queryOrderFeeVoTemp.getSyCoderFeeVo();
 //                syOrderFeeVo.setCostsPremiums(convertToString(insFeeOrder.getSyCostsPremiums()));
 //                syOrderFeeVo.setCostsProportion(convertToString(insFeeOrder.getSyCostsProportion()));
-//                syOrderFeeVo.setCostsPremiumsAll(convertToString(insFeeOrder.getSySuperviseCostsPremiums()) + "元 / " + convertToString(insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder.getSySuperviseCostsPremiums())) + "元 / " + convertToString(insFeeOrder.getSyCostsPremiums()) + "元");
-//                syOrderFeeVo.setCostsProportionAll(convertToString(insFeeOrder.getSySuperviseCostsProportion()) + " / " + convertToString(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion())) + " / " + convertToString(insFeeOrder.getSyCostsProportion()));
+//                syOrderFeeVo.setCostsPremiumsAll(convertToString(insFeeOrder.getSySuperviseCostsPremiums()) + "元 / " + convertToString
+//                (insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder.getSySuperviseCostsPremiums())) + "元 / " + convertToString
+//                (insFeeOrder.getSyCostsPremiums()) + "元");
+//                syOrderFeeVo.setCostsProportionAll(convertToString(insFeeOrder.getSySuperviseCostsProportion()) + " / " +
+//                convertToString(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion())) + " / " +
+//                convertToString(insFeeOrder.getSyCostsProportion()));
 //                /*出单员手续费比例=总费用比例-各级管理费-各级分销费-溢出费*/
 //                orderCommissionVo = getQueryOrderCommission(orderCommissionVo, insFeeOrder, "ALL");
 //            }
@@ -1417,8 +1439,10 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 //                adjustFeeDescVo.setJqPremium(convertToString(insFeeOrder.getJqNoTaxPremium()));
 //                adjustFeeDescVo.setJqCommissionRate(convertToString(insFeeOrder.getJqSuperviseCostsProportion()));
 //                adjustFeeDescVo.setJqCommissionAmount(convertToString(insFeeOrder.getJqSuperviseCostsPremiums()));
-//                adjustFeeDescVo.setJqOtherFeeRate(convertToString(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder.getJqSuperviseCostsProportion())));
-//                adjustFeeDescVo.setJqOtherFeeAmount(convertToString(insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder.getJqSuperviseCostsPremiums())));
+//                adjustFeeDescVo.setJqOtherFeeRate(convertToString(insFeeOrder.getJqCostsProportion().subtract(insFeeOrder
+//                .getJqSuperviseCostsProportion())));
+//                adjustFeeDescVo.setJqOtherFeeAmount(convertToString(insFeeOrder.getJqCostsPremiums().subtract(insFeeOrder
+//                .getJqSuperviseCostsPremiums())));
 //                adjustFeeDescVo.setJqAllFeeRate(convertToString(insFeeOrder.getJqCostsProportion()));
 //                adjustFeeDescVo.setJqAllFeeAmount(convertToString(insFeeOrder.getJqCostsPremiums()));
 //            }
@@ -1426,8 +1450,10 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 //                adjustFeeDescVo.setSyPremium(convertToString(insFeeOrder.getSyNoTaxPremium()));
 //                adjustFeeDescVo.setSyCommissionRate(convertToString(insFeeOrder.getSySuperviseCostsProportion()));
 //                adjustFeeDescVo.setSyCommissionAmount(convertToString(insFeeOrder.getSySuperviseCostsPremiums()));
-//                adjustFeeDescVo.setSyOtherFeeRate(convertToString(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder.getSySuperviseCostsProportion())));
-//                adjustFeeDescVo.setSyOtherFeeAmount(convertToString(insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder.getSySuperviseCostsPremiums())));
+//                adjustFeeDescVo.setSyOtherFeeRate(convertToString(insFeeOrder.getSyCostsProportion().subtract(insFeeOrder
+//                .getSySuperviseCostsProportion())));
+//                adjustFeeDescVo.setSyOtherFeeAmount(convertToString(insFeeOrder.getSyCostsPremiums().subtract(insFeeOrder
+//                .getSySuperviseCostsPremiums())));
 //                adjustFeeDescVo.setSyAllFeeRate(convertToString(insFeeOrder.getSyCostsProportion()));
 //                adjustFeeDescVo.setSyAllFeeAmount(convertToString(insFeeOrder.getSyCostsPremiums()));
 //            }
@@ -1437,7 +1463,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 //    }
 
     private QueryOrderCommissionVo getQueryOrderCommission(QueryOrderCommissionVo orderCommissionVo, InsFeeOrder insFeeOrder,
-     String businessType) {
+                                                           String businessType) {
         /**
          *单保交商时,insFeeOrder 存的就是单交商的各级管理费及分销费
          *同保交商时,insFeeOrder 存的金额是交商总金额,需要扣减
@@ -1528,21 +1554,21 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         //再利用总费-交强费,得出商业费
         InsFeeOrder syInsFeeOrderTemp = new InsFeeOrder();
         syInsFeeOrderTemp.setFirstDeptPremiums(getPremiumForSubtract(insFeeOrder.getFirstDeptPremiums(),
-         jqInsFeeOrderTemp.getFirstDeptPremiums()));
+                jqInsFeeOrderTemp.getFirstDeptPremiums()));
         syInsFeeOrderTemp.setSecondDeptPremiums(getPremiumForSubtract(insFeeOrder.getSecondDeptPremiums(),
-         jqInsFeeOrderTemp.getSecondDeptPremiums()));
+                jqInsFeeOrderTemp.getSecondDeptPremiums()));
         syInsFeeOrderTemp.setThirdDeptPremiums(getPremiumForSubtract(insFeeOrder.getThirdDeptPremiums(),
-         jqInsFeeOrderTemp.getThirdDeptPremiums()));
+                jqInsFeeOrderTemp.getThirdDeptPremiums()));
         syInsFeeOrderTemp.setForthDeptPremiums(getPremiumForSubtract(insFeeOrder.getForthDeptPremiums(),
-         jqInsFeeOrderTemp.getForthDeptPremiums()));
+                jqInsFeeOrderTemp.getForthDeptPremiums()));
         syInsFeeOrderTemp.setFifthDeptPremiums(getPremiumForSubtract(insFeeOrder.getFifthDeptPremiums(),
-         jqInsFeeOrderTemp.getFifthDeptPremiums()));
+                jqInsFeeOrderTemp.getFifthDeptPremiums()));
         syInsFeeOrderTemp.setFirstRetailPremiums(getPremiumForSubtract(insFeeOrder.getFirstRetailPremiums(),
-         jqInsFeeOrderTemp.getFirstRetailPremiums()));
+                jqInsFeeOrderTemp.getFirstRetailPremiums()));
         syInsFeeOrderTemp.setSecondRetailPremiums(getPremiumForSubtract(insFeeOrder.getSecondRetailPremiums(),
-         jqInsFeeOrderTemp.getSecondRetailPremiums()));
+                jqInsFeeOrderTemp.getSecondRetailPremiums()));
         syInsFeeOrderTemp.setThirdRetailPremiums(getPremiumForSubtract(insFeeOrder.getThirdRetailPremiums(),
-         jqInsFeeOrderTemp.getThirdRetailPremiums()));
+                jqInsFeeOrderTemp.getThirdRetailPremiums()));
         BigDecimal syCostsPremiums = getCostsPremiumsOne(syInsFeeOrderTemp);
         costsPremiumsMap.put("SY", syCostsPremiums);
         return costsPremiumsMap;
@@ -1607,7 +1633,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
     }
 
 
-    public List<QueryOrderFeeResultVo> convertOrderFeeVoData(InsFeeOrderNew insFeeOrderNew){
+    public List<QueryOrderFeeResultVo> convertOrderFeeVoData(InsFeeOrderNew insFeeOrderNew) {
         List<QueryOrderFeeResultVo> queryOrderFeeResultVos = new ArrayList<>();
         QueryOrderFeeResultVo sumFeeResultVo = new QueryOrderFeeResultVo();
         sumFeeResultVo.setDescSerialNo("1");
@@ -1639,9 +1665,9 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         //设置商业费用
         StringBuilder syFeePremium = new StringBuilder();
         syFeePremium.append(insFeeOrderNew.getSySuperviseCostsPremiums()).append(" / ")
-            .append(insFeeOrderNew.getSyOtherCostsPremiums()).append(" / ")
-            .append(insFeeOrderNew.getSyInvestmentCostsPremiums()).append(" / ")
-            .append(insFeeOrderNew.getSyCostsPremiums());
+                .append(insFeeOrderNew.getSyOtherCostsPremiums()).append(" / ")
+                .append(insFeeOrderNew.getSyInvestmentCostsPremiums()).append(" / ")
+                .append(insFeeOrderNew.getSyCostsPremiums());
         sumFeeResultVo.setSyFeeAmountAll(syFeePremium.toString());
 
         //设置非车费用比例
@@ -1724,15 +1750,18 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         QueryOrderFeeResultVo detailLevel1FeeResultVo = new QueryOrderFeeResultVo();
         detailLevel1FeeResultVo.setDescSerialNo("7");
         detailLevel1FeeResultVo.setFeeTypeName("一级分销费");
-         detailLevel1FeeResultVo.setJqFeeRateAll(insFeeOrderNew.getFirstDetailProportion().toString());
+        detailLevel1FeeResultVo.setJqFeeRateAll(insFeeOrderNew.getFirstDetailProportion().toString());
         detailLevel1FeeResultVo.setSyFeeRateAll(insFeeOrderNew.getFirstDetailProportion().toString());
         detailLevel1FeeResultVo.setFcFeeRateAll(insFeeOrderNew.getFirstDetailProportion().toString());
-        BigDecimal jqDetailFeePremium = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getFirstDetailProportion().divide(new BigDecimal("100")));
-        detailLevel1FeeResultVo.setJqFeeAmountAll(jqDetailFeePremium.setScale(2,BigDecimal.ROUND_DOWN).toString());
-        BigDecimal syDetailFeePremium = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getFirstDetailProportion().divide(new BigDecimal("100")));
-        detailLevel1FeeResultVo.setSyFeeAmountAll(syDetailFeePremium.setScale(2,BigDecimal.ROUND_DOWN).toString());
-        BigDecimal fcDetailFeePremium = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getFirstDetailProportion().divide(new BigDecimal("100")));
-        detailLevel1FeeResultVo.setFcFeeAmountAll(fcDetailFeePremium.setScale(2,BigDecimal.ROUND_DOWN).toString());
+        BigDecimal jqDetailFeePremium =
+                insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getFirstDetailProportion().divide(new BigDecimal("100")));
+        detailLevel1FeeResultVo.setJqFeeAmountAll(jqDetailFeePremium.setScale(2, BigDecimal.ROUND_DOWN).toString());
+        BigDecimal syDetailFeePremium =
+                insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getFirstDetailProportion().divide(new BigDecimal("100")));
+        detailLevel1FeeResultVo.setSyFeeAmountAll(syDetailFeePremium.setScale(2, BigDecimal.ROUND_DOWN).toString());
+        BigDecimal fcDetailFeePremium =
+                insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getFirstDetailProportion().divide(new BigDecimal("100")));
+        detailLevel1FeeResultVo.setFcFeeAmountAll(fcDetailFeePremium.setScale(2, BigDecimal.ROUND_DOWN).toString());
         queryOrderFeeResultVos.add(detailLevel1FeeResultVo);
 
         //设置二级分销费用
@@ -1742,12 +1771,15 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         detailLevel2FeeResultVo.setJqFeeRateAll(insFeeOrderNew.getSecondDetailProportion().toString());
         detailLevel2FeeResultVo.setSyFeeRateAll(insFeeOrderNew.getSecondDetailProportion().toString());
         detailLevel2FeeResultVo.setFcFeeRateAll(insFeeOrderNew.getSecondDetailProportion().toString());
-        BigDecimal jqDetailFeePremium2 = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getSecondDetailProportion().divide(new BigDecimal("100")));
-        detailLevel2FeeResultVo.setJqFeeAmountAll(jqDetailFeePremium2.setScale(2,BigDecimal.ROUND_DOWN).toString());
-        BigDecimal syDetailFeePremium2 = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSecondDetailProportion().divide(new BigDecimal("100")));
-        detailLevel2FeeResultVo.setSyFeeAmountAll(syDetailFeePremium2.setScale(2,BigDecimal.ROUND_DOWN).toString());
-        BigDecimal fcDetailFeePremium2 = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getSecondDetailProportion().divide(new BigDecimal("100")));
-        detailLevel2FeeResultVo.setFcFeeAmountAll(fcDetailFeePremium2.setScale(2,BigDecimal.ROUND_DOWN).toString());
+        BigDecimal jqDetailFeePremium2 =
+         insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getSecondDetailProportion().divide(new BigDecimal("100")));
+        detailLevel2FeeResultVo.setJqFeeAmountAll(jqDetailFeePremium2.setScale(2, BigDecimal.ROUND_DOWN).toString());
+        BigDecimal syDetailFeePremium2 =
+         insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSecondDetailProportion().divide(new BigDecimal("100")));
+        detailLevel2FeeResultVo.setSyFeeAmountAll(syDetailFeePremium2.setScale(2, BigDecimal.ROUND_DOWN).toString());
+        BigDecimal fcDetailFeePremium2 =
+                insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getSecondDetailProportion().divide(new BigDecimal("100")));
+        detailLevel2FeeResultVo.setFcFeeAmountAll(fcDetailFeePremium2.setScale(2, BigDecimal.ROUND_DOWN).toString());
         queryOrderFeeResultVos.add(detailLevel2FeeResultVo);
 
         //设置三级分销费用
@@ -1757,15 +1789,18 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         detailLevel3FeeResultVo.setJqFeeRateAll(insFeeOrderNew.getThirdDetailProportion().toString());
         detailLevel3FeeResultVo.setSyFeeRateAll(insFeeOrderNew.getThirdDetailProportion().toString());
         detailLevel3FeeResultVo.setFcFeeRateAll(insFeeOrderNew.getThirdDetailProportion().toString());
-        BigDecimal jqDetailFeePremium3 = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getThirdDetailProportion().divide(new BigDecimal("100")));
+        BigDecimal jqDetailFeePremium3 =
+                insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getThirdDetailProportion().divide(new BigDecimal("100")));
         detailLevel3FeeResultVo.setJqFeeAmountAll(jqDetailFeePremium3.setScale(2, BigDecimal.ROUND_DOWN).toString());
-        BigDecimal syDetailFeePremium3 = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getThirdDetailProportion().divide(new BigDecimal("100")));
-        detailLevel3FeeResultVo.setSyFeeAmountAll(syDetailFeePremium3.setScale(2,BigDecimal.ROUND_DOWN).toString());
-        BigDecimal fcDetailFeePremium3 = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getThirdDetailProportion().divide(new BigDecimal("100")));
-        detailLevel3FeeResultVo.setFcFeeAmountAll(fcDetailFeePremium3.setScale(2,BigDecimal.ROUND_DOWN).toString());
+        BigDecimal syDetailFeePremium3 =
+         insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getThirdDetailProportion().divide(new BigDecimal("100")));
+        detailLevel3FeeResultVo.setSyFeeAmountAll(syDetailFeePremium3.setScale(2, BigDecimal.ROUND_DOWN).toString());
+        BigDecimal fcDetailFeePremium3 =
+         insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getThirdDetailProportion().divide(new BigDecimal("100")));
+        detailLevel3FeeResultVo.setFcFeeAmountAll(fcDetailFeePremium3.setScale(2, BigDecimal.ROUND_DOWN).toString());
         queryOrderFeeResultVos.add(detailLevel3FeeResultVo);
 
-            return queryOrderFeeResultVos;
+        return queryOrderFeeResultVos;
     }
 
     //把取出的费用信息转换为页面需要展示的数据
@@ -2099,7 +2134,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
         //根据协议号获取有效的规则
         List<PtlAgreementUndwrtRules> ptlAgreementUndwrtRulesList =
-         ptlAgreementUndwrtRulesService.selectVliadRules(feeSchemeReqDto.getAgreementId());
+                ptlAgreementUndwrtRulesService.selectVliadRules(feeSchemeReqDto.getAgreementId());
         if (ptlAgreementUndwrtRulesList.isEmpty()) {
             //没有有效的核保规则,直接抛出
             return;
@@ -2257,7 +2292,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         factor9.setMatchType("3");
         factor9.setMatchSequence(9);
         if (checkFactorConfigWithAreaForRules(rulesFactor.getMinCompulsoryInsurancePremium(),
-         rulesFactor.getMaxCompulsoryInsurancePremium())) {
+                rulesFactor.getMaxCompulsoryInsurancePremium())) {
             factor9.setNeedMatch(true);
             factor9.setMinRangeVal((double) rulesFactor.getMinCompulsoryInsurancePremium());
             factor9.setMaxRangeVal((double) rulesFactor.getMaxCompulsoryInsurancePremium());
@@ -2315,7 +2350,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         factor13.setMatchType("3");
         factor13.setMatchSequence(13);
         if (checkFactorConfigWithAreaForRules(rulesFactor.getMinCommercialInsuranceDiscount(),
-         rulesFactor.getMaxCommercialInsuranceDiscount())) {
+                rulesFactor.getMaxCommercialInsuranceDiscount())) {
             factor13.setNeedMatch(true);
             factor13.setMinRangeVal((double) rulesFactor.getMinCommercialInsuranceDiscount());
             factor13.setMaxRangeVal((double) rulesFactor.getMaxCommercialInsuranceDiscount());
@@ -2330,7 +2365,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         factor14.setMatchType("3");
         factor14.setMatchSequence(14);
         if (checkFactorConfigWithAreaForRules(rulesFactor.getMinCompulsoryInsuranceDiscount(),
-         rulesFactor.getMaxCompulsoryInsuranceDiscount())) {
+                rulesFactor.getMaxCompulsoryInsuranceDiscount())) {
             factor14.setNeedMatch(true);
             factor14.setMinRangeVal(rulesFactor.getMinCompulsoryInsuranceDiscount());
             factor14.setMaxRangeVal(rulesFactor.getMaxCompulsoryInsuranceDiscount());
@@ -2602,20 +2637,26 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
         //region 入口费用
         //交强
-        FeeOrderNewVo.EntranceFee jqEntranceFee = this.assignEntranceFee("交强险", insFeeOrderNew.getJqPremium(), insFeeOrderNew.getJqSuperviseCostsProportion(),
-                insFeeOrderNew.getJqOtherCostsProportion(), insFeeOrderNew.getJqCostsProportion(), insFeeOrderNew.getJqSuperviseCostsPremiums(),
+        FeeOrderNewVo.EntranceFee jqEntranceFee = this.assignEntranceFee("交强险", insFeeOrderNew.getJqPremium(),
+                insFeeOrderNew.getJqSuperviseCostsProportion(),
+                insFeeOrderNew.getJqOtherCostsProportion(), insFeeOrderNew.getJqCostsProportion(),
+                 insFeeOrderNew.getJqSuperviseCostsPremiums(),
                 insFeeOrderNew.getJqOtherCostsPremiums(), insFeeOrderNew.getJqCostsPremiums());
         entranceFeeList.add(jqEntranceFee);
 
         //商业
-        FeeOrderNewVo.EntranceFee syEntranceFee = this.assignEntranceFee("商业险", insFeeOrderNew.getSyPremium(), insFeeOrderNew.getSySuperviseCostsProportion(),
-                insFeeOrderNew.getSyOtherCostsProportion(), insFeeOrderNew.getSyCostsProportion(), insFeeOrderNew.getSySuperviseCostsPremiums(),
+        FeeOrderNewVo.EntranceFee syEntranceFee = this.assignEntranceFee("商业险", insFeeOrderNew.getSyPremium(),
+                insFeeOrderNew.getSySuperviseCostsProportion(),
+                insFeeOrderNew.getSyOtherCostsProportion(), insFeeOrderNew.getSyCostsProportion(),
+                 insFeeOrderNew.getSySuperviseCostsPremiums(),
                 insFeeOrderNew.getSyOtherCostsPremiums(), insFeeOrderNew.getSyCostsPremiums());
         entranceFeeList.add(syEntranceFee);
 
         //非车
-        FeeOrderNewVo.EntranceFee noEntranceFee = this.assignEntranceFee("非车险", insFeeOrderNew.getNoPremium(), insFeeOrderNew.getNoSuperviseCostsProportion(),
-                insFeeOrderNew.getNoOtherCostsProportion(), insFeeOrderNew.getNoCostsProportion(), insFeeOrderNew.getNoSuperviseCostsPremiums(),
+        FeeOrderNewVo.EntranceFee noEntranceFee = this.assignEntranceFee("非车险", insFeeOrderNew.getNoPremium(),
+         insFeeOrderNew.getNoSuperviseCostsProportion(),
+                insFeeOrderNew.getNoOtherCostsProportion(), insFeeOrderNew.getNoCostsProportion(),
+                insFeeOrderNew.getNoSuperviseCostsPremiums(),
                 insFeeOrderNew.getNoOtherCostsPremiums(), insFeeOrderNew.getNoCostsPremiums());
         entranceFeeList.add(noEntranceFee);
         //endregion
@@ -2656,24 +2697,26 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         //endregion
 
 
-
         //region 出口费用
         //交强
         FeeOrderNewVo.ExportFee jqExportFee = this.assignExportFee("交强险",
-                insFeeOrderNew.getJqPremium(), insFeeOrderNew.getJqCostsExportProportion(), insFeeOrderNew.getJqExportOtherCostsProportion(),
+                insFeeOrderNew.getJqPremium(), insFeeOrderNew.getJqCostsExportProportion(),
+                 insFeeOrderNew.getJqExportOtherCostsProportion(),
                 insFeeOrderNew.getJqExportSuperviseCostsPremiums(), insFeeOrderNew.getJqExportOtherCostsPremiums());
         exportFeeList.add(jqExportFee);
 
         //交强
         FeeOrderNewVo.ExportFee syExportFee = this.assignExportFee("商业险",
-                insFeeOrderNew.getSyPremium(), insFeeOrderNew.getSyCostsExportProportion(), insFeeOrderNew.getSyExportOtherCostsProportion(),
+                insFeeOrderNew.getSyPremium(), insFeeOrderNew.getSyCostsExportProportion(),
+                insFeeOrderNew.getSyExportOtherCostsProportion(),
                 insFeeOrderNew.getSyExportSuperviseCostsPremiums(), insFeeOrderNew.getSyExportOtherCostsPremiums());
         exportFeeList.add(syExportFee);
 
 
         //交强
         FeeOrderNewVo.ExportFee noExportFee = this.assignExportFee("非车险",
-                insFeeOrderNew.getNoPremium(), insFeeOrderNew.getNoCostsExportProportion(), insFeeOrderNew.getNoExportOtherCostsProportion(),
+                insFeeOrderNew.getNoPremium(), insFeeOrderNew.getNoCostsExportProportion(),
+insFeeOrderNew.getNoExportOtherCostsProportion(),
                 insFeeOrderNew.getNoExportSuperviseCostsPremiums(), insFeeOrderNew.getNoExportOtherCostsPremiums());
         exportFeeList.add(noExportFee);
 
@@ -2688,19 +2731,23 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
     /**
      * 计算入口费用
-     * @param premium    保费
-     * @param superviseCostsProportion  手续费比例
-     * @param otherCostsProportion      跟单比例
+     *
+     * @param premium                  保费
+     * @param superviseCostsProportion 手续费比例
+     * @param otherCostsProportion     跟单比例
      */
-    public FeeOrderNewVo.EntranceFee calcEntranceFee(BigDecimal premium, BigDecimal superviseCostsProportion, BigDecimal otherCostsProportion, BigDecimal taxRate){
+    public FeeOrderNewVo.EntranceFee calcEntranceFee(BigDecimal premium, BigDecimal superviseCostsProportion,
+     BigDecimal otherCostsProportion, BigDecimal taxRate) {
         FeeOrderNewVo.EntranceFee entranceFee = new FeeOrderNewVo.EntranceFee();
         entranceFee.setPremium(premium);
-        premium = premium.divide(taxRate,5,RoundingMode.HALF_UP);
+        premium = premium.divide(taxRate, 5, RoundingMode.HALF_UP);
         //手续费
-        entranceFee.setSuperviseCostsPremiums(premium.multiply(superviseCostsProportion.divide(new BigDecimal(100))).setScale(5,BigDecimal.ROUND_DOWN));
+        entranceFee.setSuperviseCostsPremiums(premium.multiply(superviseCostsProportion.divide(new BigDecimal(100))).setScale(5,
+BigDecimal.ROUND_DOWN));
         entranceFee.setSuperviseCosts(superviseCostsProportion);
         //跟单费
-        entranceFee.setOtherCostsPremiums(premium.multiply(otherCostsProportion.divide(new BigDecimal(100))).setScale(5,BigDecimal.ROUND_DOWN));
+        entranceFee.setOtherCostsPremiums(premium.multiply(otherCostsProportion.divide(new BigDecimal(100))).setScale(5,
+BigDecimal.ROUND_DOWN));
         entranceFee.setOtherCostsProportion(otherCostsProportion);
         //总费用比例
         BigDecimal totalCostsProportion = superviseCostsProportion.add(otherCostsProportion);
@@ -2711,109 +2758,124 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
     /**
      * 计算机构管理费用
-     * @param premium   保费
-     * @param level1Proportion  一级比例
-     * @param level2Proportion  二级比例
-     * @param level3Proportion  三级比例
-     * @param level4Proportion  四级比例
-     * @param level5Proportion  五级比例
+     *
+     * @param premium          保费
+     * @param level1Proportion 一级比例
+     * @param level2Proportion 二级比例
+     * @param level3Proportion 三级比例
+     * @param level4Proportion 四级比例
+     * @param level5Proportion 五级比例
      * @return
      */
-    public FeeOrderNewVo.DeptManagerFee calcDeptManagerFee(BigDecimal premium, BigDecimal level1Proportion,BigDecimal level2Proportion,
-                                                           BigDecimal level3Proportion,BigDecimal level4Proportion,BigDecimal level5Proportion){
+    public FeeOrderNewVo.DeptManagerFee calcDeptManagerFee(BigDecimal premium, BigDecimal level1Proportion, BigDecimal level2Proportion,
+                                                           BigDecimal level3Proportion, BigDecimal level4Proportion,
+                                                           BigDecimal level5Proportion) {
         FeeOrderNewVo.DeptManagerFee deptManagerFee = new FeeOrderNewVo.DeptManagerFee();
         //一级管理费
-        deptManagerFee.setDeptPremiumsLevelOne(premium.multiply(level1Proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptPremiumsLevelOne(premium.multiply(level1Proportion.divide(new BigDecimal(100))).setScale(2,
+         BigDecimal.ROUND_DOWN));
         deptManagerFee.setDeptProportionLevelOne(level1Proportion);
         //二级管理费
-        deptManagerFee.setDeptPremiumsLevelTwo(premium.multiply(level2Proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptPremiumsLevelTwo(premium.multiply(level2Proportion.divide(new BigDecimal(100))).setScale(2,
+        BigDecimal.ROUND_DOWN));
         deptManagerFee.setDeptProportionLevelTwo(level2Proportion);
         //三级管理费
-        deptManagerFee.setDeptPremiumsLevelThree(premium.multiply(level3Proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptPremiumsLevelThree(premium.multiply(level3Proportion.divide(new BigDecimal(100))).setScale(2,
+                BigDecimal.ROUND_DOWN));
         deptManagerFee.setDeptProportionLevelThree(level3Proportion);
         //四级管理费
-        deptManagerFee.setDeptPremiumsLevelFoure(premium.multiply(level4Proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptPremiumsLevelFoure(premium.multiply(level4Proportion.divide(new BigDecimal(100))).setScale(2,
+                BigDecimal.ROUND_DOWN));
         deptManagerFee.setDeptProportionLevelFoure(level4Proportion);
         //五级管理费
-        deptManagerFee.setDeptPremiumsLevelFive(premium.multiply(level5Proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
+        deptManagerFee.setDeptPremiumsLevelFive(premium.multiply(level5Proportion.divide(new BigDecimal(100))).setScale(2,
+                BigDecimal.ROUND_DOWN));
         deptManagerFee.setDeptProportionLevelFive(level5Proportion);
         return deptManagerFee;
     }
 
     /**
      * 计算出口费用
-     * @param premium   保费
-     * @param superviseCostsProportion  出口手续费
-     * @param entranceTotalProportion   入口总比例
-     * @param deptTotalProportion       机构管理费总比例
-     * @param retailTotalProportion     分销总比例
-     * @param taxRate                   税率
+     *
+     * @param premium                  保费
+     * @param superviseCostsProportion 出口手续费
+     * @param entranceTotalProportion  入口总比例
+     * @param deptTotalProportion      机构管理费总比例
+     * @param retailTotalProportion    分销总比例
+     * @param taxRate                  税率
      * @return
      */
-    public FeeOrderNewVo.ExportFee calcExportFee(BigDecimal premium, BigDecimal superviseCostsProportion, BigDecimal entranceTotalProportion,
-                                                 BigDecimal deptTotalProportion,BigDecimal retailTotalProportion,BigDecimal taxRate){
+    public FeeOrderNewVo.ExportFee calcExportFee(BigDecimal premium, BigDecimal superviseCostsProportion,
+     BigDecimal entranceTotalProportion,
+                                                 BigDecimal deptTotalProportion, BigDecimal retailTotalProportion, BigDecimal taxRate) {
         FeeOrderNewVo.ExportFee exportFee = new FeeOrderNewVo.ExportFee();
         exportFee.setPremium(premium);
         //去税后的入口比例
-        BigDecimal noTaxEntranceTotalProportion = entranceTotalProportion.divide(taxRate,2,RoundingMode.DOWN);
+        BigDecimal noTaxEntranceTotalProportion = entranceTotalProportion.divide(taxRate, 2, RoundingMode.DOWN);
         //出口的总比例
         BigDecimal exportTotalProportion = noTaxEntranceTotalProportion.subtract(deptTotalProportion).subtract(retailTotalProportion);
-        if(exportTotalProportion.compareTo(BigDecimal.ZERO) < 0 && premium.compareTo(BigDecimal.ZERO) == 0){
+        if (exportTotalProportion.compareTo(BigDecimal.ZERO) < 0 && premium.compareTo(BigDecimal.ZERO) == 0) {
             //出口比例为负数了
             exportTotalProportion = new BigDecimal(0);
         }
         //如果手续费 大于 总比例 则出口手续费等于总比例
-        if(superviseCostsProportion.compareTo(exportTotalProportion) >= 0 ){
+        if (superviseCostsProportion.compareTo(exportTotalProportion) >= 0) {
             superviseCostsProportion = exportTotalProportion;
             exportFee.setSuperviseCosts(superviseCostsProportion);
             exportFee.setOtherCostsProportion(new BigDecimal(0));
             exportFee.setTotalProportion(superviseCostsProportion);
-        }else{
+        } else {
             exportFee.setTotalProportion(exportTotalProportion);
             exportFee.setOtherCostsProportion(exportTotalProportion.subtract(superviseCostsProportion));
             exportFee.setSuperviseCosts(superviseCostsProportion);
         }
-        exportFee.setSuperviseCostsPremiums(premium.multiply(exportFee.getSuperviseCosts().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
-        exportFee.setOtherCostsPremiums(premium.multiply(exportFee.getOtherCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
-        exportFee.setTotalAmount(premium.multiply(exportFee.getTotalProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN));
+        exportFee.setSuperviseCostsPremiums(premium.multiply(exportFee.getSuperviseCosts().divide(new BigDecimal(100))).setScale(2,
+BigDecimal.ROUND_DOWN));
+        exportFee.setOtherCostsPremiums(premium.multiply(exportFee.getOtherCostsProportion().divide(new BigDecimal(100))).setScale(2,
+                BigDecimal.ROUND_DOWN));
+        exportFee.setTotalAmount(premium.multiply(exportFee.getTotalProportion().divide(new BigDecimal(100))).setScale(2,
+                BigDecimal.ROUND_DOWN));
 
         return exportFee;
     }
 
     public List<DistributionLevelVo> converDistrbutionData(InsFeeOrderNew insFeeOrderNew) {
         ArrayList<DistributionLevelVo> resultList = new ArrayList<>();
-        DistributionLevelVo  levelOne  =  new DistributionLevelVo();
+        DistributionLevelVo levelOne = new DistributionLevelVo();
         levelOne.setDistributionLevel("一级分销");
-        String oneUserName=  this.getUserName(insFeeOrderNew.getFirstLevelUserId());
+        String oneUserName = this.getUserName(insFeeOrderNew.getFirstLevelUserId());
         levelOne.setUserName(oneUserName);  //分销人
         levelOne.setDistributionRatio(insFeeOrderNew.getFirstDetailProportion());  // 分销比例
-        levelOne.setAmount(StringUtils.isNotEmpty(oneUserName)?insFeeOrderNew.getFirstDetailPremiums():new BigDecimal(0));   // 分销金额
+        BigDecimal firstDetailPremiums = Optional.ofNullable(insFeeOrderNew.getFirstDetailPremiums()).orElse(new BigDecimal(0));
+        levelOne.setAmount(firstDetailPremiums);   // 分销金额
         resultList.add(levelOne);
 
 
         DistributionLevelVo levelTwo = new DistributionLevelVo();
         levelTwo.setDistributionLevel("二级分销");
-        String twoUserName=  this.getUserName(insFeeOrderNew.getTwoLevelUserId());
+        String twoUserName = this.getUserName(insFeeOrderNew.getTwoLevelUserId());
         levelTwo.setUserName(twoUserName);  //分销人
         levelTwo.setDistributionRatio(insFeeOrderNew.getSecondDetailProportion());  // 分销比例
-        levelTwo.setAmount(StringUtils.isNotEmpty(twoUserName)?insFeeOrderNew.getSecondDetailPremiums():new BigDecimal(0));   // 分销金额
+        BigDecimal secondDetailPremiums = Optional.ofNullable(insFeeOrderNew.getSecondDetailPremiums()).orElse(new BigDecimal(0));
+        levelTwo.setAmount(secondDetailPremiums);   // 分销金额
         resultList.add(levelTwo);
 
 
         DistributionLevelVo levelThree = new DistributionLevelVo();
         levelThree.setDistributionLevel("三级分销");
-        String threeUserName=  this.getUserName(insFeeOrderNew.getThreeLevelUserId());
+        String threeUserName = this.getUserName(insFeeOrderNew.getThreeLevelUserId());
         levelThree.setUserName(threeUserName);  //分销人
         levelThree.setDistributionRatio(insFeeOrderNew.getThirdDetailProportion());  // 分销比例
-        levelThree.setAmount(StringUtils.isNotEmpty(threeUserName)?insFeeOrderNew.getThirdDetailPremiums():new BigDecimal(0));   // 分销金额
+        BigDecimal thirdDetailPremiums = Optional.ofNullable(insFeeOrderNew.getSecondDetailPremiums()).orElse(new BigDecimal(0));
+        levelThree.setAmount(thirdDetailPremiums);   // 分销金额
         resultList.add(levelThree);
         return resultList;
     }
 
     private String getUserName(String firstLevelUserId) {
-        if(StringUtils.isNotEmpty(firstLevelUserId)){
+        if (StringUtils.isNotEmpty(firstLevelUserId)) {
             SysUser sysUser = sysUserService.getBaseMapper().selectById(firstLevelUserId);
-            if(ObjectUtils.isNotEmpty(sysUser)){
+            if (ObjectUtils.isNotEmpty(sysUser)) {
                 return sysUser.getName() + "(" + sysUser.getId() + ")";
             }
         }
@@ -2822,19 +2884,22 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
     /**
      * 从insFeeOrderNew表中拉取入口费用
-     * @param title     险种
-     * @param premium   保费
-     * @param superviseCostsProportion  手续费比例
-     * @param otherCostsProportion      跟单比例
-     * @param costsProportion           总比例
-     * @param superviseCostsPremiums    手续费
-     * @param otherCostsPremiums        跟单费
-     * @param costsPremiums             总费用
+     *
+     * @param title                    险种
+     * @param premium                  保费
+     * @param superviseCostsProportion 手续费比例
+     * @param otherCostsProportion     跟单比例
+     * @param costsProportion          总比例
+     * @param superviseCostsPremiums   手续费
+     * @param otherCostsPremiums       跟单费
+     * @param costsPremiums            总费用
      * @return
      */
-    public FeeOrderNewVo.EntranceFee assignEntranceFee(String title,BigDecimal premium,BigDecimal superviseCostsProportion,BigDecimal otherCostsProportion,
-                                                       BigDecimal costsProportion,BigDecimal superviseCostsPremiums,BigDecimal otherCostsPremiums,
-                                                       BigDecimal costsPremiums){
+    public FeeOrderNewVo.EntranceFee assignEntranceFee(String title, BigDecimal premium, BigDecimal superviseCostsProportion,
+     BigDecimal otherCostsProportion,
+                                                       BigDecimal costsProportion, BigDecimal superviseCostsPremiums,
+                                                        BigDecimal otherCostsPremiums,
+                                                       BigDecimal costsPremiums) {
         FeeOrderNewVo.EntranceFee entranceFee = new FeeOrderNewVo.EntranceFee();
         entranceFee.setInsuranceType(title);
         //保费
@@ -2856,9 +2921,10 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
     /**
      * 从insFeeOrderNew表中拉取机构管理费用
+     *
      * @param title
-     * @param level1Proportion  1级机构管理比例
-     * @param level1Premium     1级机构管理费用
+     * @param level1Proportion 1级机构管理比例
+     * @param level1Premium    1级机构管理费用
      * @param level2Proportion
      * @param level2Premium
      * @param level3Proportion
@@ -2869,12 +2935,12 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
      * @param level5Premium
      * @return
      */
-    public FeeOrderNewVo.DeptManagerFee assignDeptFee(String title,BigDecimal level1Proportion,BigDecimal level1Premium,
-                                                   BigDecimal level2Proportion,BigDecimal level2Premium,
-                                                   BigDecimal level3Proportion,BigDecimal level3Premium,
-                                                   BigDecimal level4Proportion,BigDecimal level4Premium,
-                                                   BigDecimal level5Proportion,BigDecimal level5Premium,
-                                                  BigDecimal profitMarginPremiums){
+    public FeeOrderNewVo.DeptManagerFee assignDeptFee(String title, BigDecimal level1Proportion, BigDecimal level1Premium,
+                                                      BigDecimal level2Proportion, BigDecimal level2Premium,
+                                                      BigDecimal level3Proportion, BigDecimal level3Premium,
+                                                      BigDecimal level4Proportion, BigDecimal level4Premium,
+                                                      BigDecimal level5Proportion, BigDecimal level5Premium,
+                                                      BigDecimal profitMarginPremiums) {
         FeeOrderNewVo.DeptManagerFee deptManagerFee = new FeeOrderNewVo.DeptManagerFee();
         deptManagerFee.setInsuranceType(title);
         deptManagerFee.setDeptProportionLevelOne(level1Proportion);
@@ -2893,6 +2959,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
     /**
      * 出口费用赋值
+     *
      * @param title
      * @param premium
      * @param superviseCostsProportion
@@ -2901,8 +2968,9 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
      * @param otherCostsPremiums
      * @return
      */
-    public FeeOrderNewVo.ExportFee assignExportFee(String title,BigDecimal premium,BigDecimal superviseCostsProportion,BigDecimal otherCostsProportion,
-                                                       BigDecimal superviseCostsPremiums,BigDecimal otherCostsPremiums){
+    public FeeOrderNewVo.ExportFee assignExportFee(String title, BigDecimal premium, BigDecimal superviseCostsProportion,
+     BigDecimal otherCostsProportion,
+                                                   BigDecimal superviseCostsPremiums, BigDecimal otherCostsPremiums) {
         FeeOrderNewVo.ExportFee exportFee = new FeeOrderNewVo.ExportFee();
         exportFee.setInsuranceType(title);
         //保费
@@ -2924,23 +2992,25 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
     /**
      * 推算比例是否正确
-     * @param entranceFee     入口
-     * @param deptManagerFee  机构管理
-     * @param exportFee       出口
-     * @param retailRadio     分销比例
-     * @param premiums        保费
+     *
+     * @param entranceFee    入口
+     * @param deptManagerFee 机构管理
+     * @param exportFee      出口
+     * @param retailRadio    分销比例
+     * @param premiums       保费
      * @return
      */
     @Override
-    public boolean calculateProportion(FeeOrderNewVo.EntranceFee entranceFee, FeeOrderNewVo.DeptManagerFee deptManagerFee, FeeOrderNewVo.ExportFee exportFee, BigDecimal retailRadio,BigDecimal taxRadio, BigDecimal premiums) {
-        if(entranceFee.getTotalAmount().compareTo(BigDecimal.ZERO) == 0)
+    public boolean calculateProportion(FeeOrderNewVo.EntranceFee entranceFee, FeeOrderNewVo.DeptManagerFee deptManagerFee,
+     FeeOrderNewVo.ExportFee exportFee, BigDecimal retailRadio, BigDecimal taxRadio, BigDecimal premiums) {
+        if (entranceFee.getTotalAmount().compareTo(BigDecimal.ZERO) == 0)
             return true;
         //去税入口比例
-        BigDecimal noTaxEntranceTotalProportion = entranceFee.getTotalProportion().divide(taxRadio,2,BigDecimal.ROUND_DOWN);
-        if(noTaxEntranceTotalProportion.subtract(exportFee.getTotalProportion()).subtract(deptManagerFee.getDeptProportionLevelOne())
+        BigDecimal noTaxEntranceTotalProportion = entranceFee.getTotalProportion().divide(taxRadio, 2, BigDecimal.ROUND_DOWN);
+        if (noTaxEntranceTotalProportion.subtract(exportFee.getTotalProportion()).subtract(deptManagerFee.getDeptProportionLevelOne())
                 .subtract(deptManagerFee.getDeptProportionLevelTwo()).subtract(deptManagerFee.getDeptProportionLevelThree())
                 .subtract(deptManagerFee.getDeptProportionLevelFoure()).subtract(deptManagerFee.getDeptProportionLevelFive())
-                .subtract(retailRadio).compareTo(BigDecimal.ZERO) == 0){
+                .subtract(retailRadio).compareTo(BigDecimal.ZERO) == 0) {
             return true;
         }
         return false;

+ 3 - 3
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -385,11 +385,11 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //入口 - 出口 - 机构管理费 1-5级 - 分销费  = 差值
 
         //分销交强费用
-        BigDecimal jqFenXiao = insFeeOrderNew.getJqPremium().multiply(retailRadio.divide(new BigDecimal(100)));
+        BigDecimal jqFenXiao = insFeeOrderNew.getJqPremium().multiply(retailRadio.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
         //分销商业费用
-        BigDecimal syFenXiao = insFeeOrderNew.getSyPremium().multiply(retailRadio.divide(new BigDecimal(100)));
+        BigDecimal syFenXiao = insFeeOrderNew.getSyPremium().multiply(retailRadio.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
         //分销非车费用
-        BigDecimal noFenXiao = insFeeOrderNew.getNoPremium().multiply(retailRadio.divide(new BigDecimal(100)));
+        BigDecimal noFenXiao = insFeeOrderNew.getNoPremium().multiply(retailRadio.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
 
         BigDecimal jqDifference = jqEntranceFee.getTotalAmount().subtract(
                 (jqExportFee.getSuperviseCostsPremiums().add(jqExportFee.getOtherCostsPremiums())))