Browse Source

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

wks 2 years ago
parent
commit
ab8a596935

+ 4 - 1
src/main/java/com/ydtech/modules/fee/service/FeeRuleSchemeService.java

@@ -81,11 +81,14 @@ public interface FeeRuleSchemeService {
     /**
      * 计算分销费用
      * @param jqPremiums
+     * @param jqProportion
      * @param syPremiums
+     * @param syProportion
      * @param noPremiums
+     * @param noProportion
      * @param proportion
      */
-    public BigDecimal calcRetail(BigDecimal jqPremiums, BigDecimal syPremiums, BigDecimal noPremiums, BigDecimal proportion);
+    public BigDecimal calcRetail(BigDecimal jqPremiums,BigDecimal jqProportion, BigDecimal syPremiums,BigDecimal syProportion, BigDecimal noPremiums,BigDecimal noProportion, BigDecimal proportion);
 
 
     FeeOrderNewVo newConvertOrderFeeVoData(InsFeeOrderNew insFeeOrderNew, PtlAgreementProductCostsNew ptlAgreementProductCostsNew);

+ 14 - 4
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -2840,13 +2840,23 @@ BigDecimal.ROUND_DOWN));
     }
 
     @Override
-    public BigDecimal calcRetail(BigDecimal jqPremiums, BigDecimal syPremiums, BigDecimal noPremiums, BigDecimal proportion) {
+    public BigDecimal calcRetail(BigDecimal jqPremiums,BigDecimal jqProportion, BigDecimal syPremiums,BigDecimal syProportion, BigDecimal noPremiums,
+                                 BigDecimal noProportion, BigDecimal proportion) {
+        BigDecimal jqRetail = new BigDecimal(0);
+        BigDecimal syRetail = new BigDecimal(0);
+        BigDecimal noRetail = new BigDecimal(0);
         //计算交强险分销
-        BigDecimal jqRetail = jqPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        if(jqProportion.compareTo(new BigDecimal(0)) > 0) {
+            jqRetail = jqPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
+        }
         //计算商业险分销
-        BigDecimal syRetail = syPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        if(syProportion.compareTo(new BigDecimal(0)) > 0) {
+            syRetail = syPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
+        }
         //计算非车险分销
-        BigDecimal noRetail = noPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        if(syProportion.compareTo(new BigDecimal(0)) > 0) {
+            noRetail = noPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_DOWN);
+        }
         //总分销
         BigDecimal totalRetail = jqRetail.add(syRetail).add(noRetail).setScale(2,BigDecimal.ROUND_DOWN);
         return totalRetail;

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

@@ -259,7 +259,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 3) {
                     insFeeOrderNew.setThirdDetailProportion(new BigDecimal(String.valueOf(esmRetail.getDisrate3())));
                     retailRadio = retailRadio.add(insFeeOrderNew.getThirdDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    BigDecimal thirdDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getThirdDetailProportion());
+                    BigDecimal thirdDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion().add(insFeeOrderNew.getJqOtherCostsProportion()),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            insFeeOrderNew.getThirdDetailProportion());
                     insFeeOrderNew.setThirdDetailPremiums(thirdDetailPremiums);
                     if (parents != null && parents.size() > 2) {
                         insFeeOrderNew.setThreeLevelUserId(parents.get(2).getId());
@@ -270,7 +276,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 2) {
                     insFeeOrderNew.setSecondDetailProportion(new BigDecimal(String.valueOf(esmRetail.getDisrate2())));
                     retailRadio = retailRadio.add(insFeeOrderNew.getSecondDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    BigDecimal secondDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getSecondDetailProportion());
+                    BigDecimal secondDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion().add(insFeeOrderNew.getJqOtherCostsProportion()),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            insFeeOrderNew.getSecondDetailProportion());
                     insFeeOrderNew.setSecondDetailPremiums(secondDetailPremiums);
                     if (parents != null && parents.size() > 1) {
                         insFeeOrderNew.setTwoLevelUserId(parents.get(1).getId());
@@ -281,7 +293,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 1) {
                     insFeeOrderNew.setFirstDetailProportion(new BigDecimal(String.valueOf(esmRetail.getDisrate1())));
                     retailRadio = retailRadio.add(insFeeOrderNew.getFirstDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    BigDecimal firstDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getFirstDetailProportion());
+                    BigDecimal firstDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion().add(insFeeOrderNew.getJqOtherCostsProportion()),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            insFeeOrderNew.getFirstDetailProportion());
                     insFeeOrderNew.setFirstDetailPremiums(firstDetailPremiums);
                     if (parents != null && parents.size() > 0) {
                         insFeeOrderNew.setFirstLevelUserId(parents.get(0).getId());
@@ -564,7 +582,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 3) {
                     insFeeOrderNew.setThirdDetailProportion(new BigDecimal(String.valueOf(esmRetail.getDisrate3())));
                     retailRadio = retailRadio.add(insFeeOrderNew.getThirdDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    BigDecimal thirdDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getThirdDetailProportion());
+                    BigDecimal thirdDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion().add(insFeeOrderNew.getJqOtherCostsProportion()),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            insFeeOrderNew.getThirdDetailProportion());
                     insFeeOrderNew.setThirdDetailPremiums(thirdDetailPremiums);
                     if (parents != null && parents.size() > 2) {
                         insFeeOrderNew.setThreeLevelUserId(parents.get(2).getId());
@@ -575,7 +599,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 2) {
                     insFeeOrderNew.setSecondDetailProportion(new BigDecimal(String.valueOf(esmRetail.getDisrate2())));
                     retailRadio = retailRadio.add(insFeeOrderNew.getSecondDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    BigDecimal secondDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getSecondDetailProportion());
+                    BigDecimal secondDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion().add(insFeeOrderNew.getJqOtherCostsProportion()),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            insFeeOrderNew.getSecondDetailProportion());
                     insFeeOrderNew.setSecondDetailPremiums(secondDetailPremiums);
                     if (parents != null && parents.size() > 1) {
                         insFeeOrderNew.setTwoLevelUserId(parents.get(1).getId());
@@ -586,7 +616,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 1) {
                     insFeeOrderNew.setFirstDetailProportion(new BigDecimal(String.valueOf(esmRetail.getDisrate1())));
                     retailRadio = retailRadio.add(insFeeOrderNew.getFirstDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    BigDecimal firstDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getFirstDetailProportion());
+                    BigDecimal firstDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion().add(insFeeOrderNew.getJqOtherCostsProportion()),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            insFeeOrderNew.getFirstDetailProportion());
                     insFeeOrderNew.setFirstDetailPremiums(firstDetailPremiums);
                     if (parents != null && parents.size() > 0) {
                         insFeeOrderNew.setFirstLevelUserId(parents.get(0).getId());
@@ -861,7 +897,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 3) {
                     insFeeOrderNew.setThirdDetailProportion(new BigDecimal(esmRetail.getDisrate3()));
                     retailRadio = retailRadio.add(insFeeOrderNew.getThirdDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    BigDecimal thirdDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getThirdDetailProportion());
+                    BigDecimal thirdDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion().add(insFeeOrderNew.getJqOtherCostsProportion()),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            insFeeOrderNew.getThirdDetailProportion());
                     insFeeOrderNew.setThirdDetailPremiums(thirdDetailPremiums);
                     if (parents != null && parents.size() > 2) {
                         insFeeOrderNew.setThreeLevelUserId(parents.get(2).getId());
@@ -872,7 +914,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 2) {
                     insFeeOrderNew.setSecondDetailProportion(new BigDecimal(esmRetail.getDisrate2()));
                     retailRadio = retailRadio.add(insFeeOrderNew.getSecondDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    BigDecimal secondDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getSecondDetailProportion());
+                    BigDecimal secondDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion().add(insFeeOrderNew.getJqOtherCostsProportion()),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            insFeeOrderNew.getSecondDetailProportion());
                     insFeeOrderNew.setSecondDetailPremiums(secondDetailPremiums);
                     if (parents != null && parents.size() > 1) {
                         insFeeOrderNew.setTwoLevelUserId(parents.get(1).getId());
@@ -883,7 +931,13 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 1) {
                     insFeeOrderNew.setFirstDetailProportion(new BigDecimal(esmRetail.getDisrate1()));
                     retailRadio = retailRadio.add(insFeeOrderNew.getFirstDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    BigDecimal firstDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getFirstDetailProportion());
+                    BigDecimal firstDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(),
+                            insFeeOrderNew.getJqCostsProportion().add(insFeeOrderNew.getJqOtherCostsProportion()),
+                            insFeeOrderNew.getSyPremium(),
+                            insFeeOrderNew.getSyCostsProportion().add(insFeeOrderNew.getSyOtherCostsProportion()),
+                            insFeeOrderNew.getNoPremium(),
+                            insFeeOrderNew.getNoCostsProportion().add(insFeeOrderNew.getNoOtherCostsProportion()),
+                            insFeeOrderNew.getFirstDetailProportion());
                     insFeeOrderNew.setFirstDetailPremiums(firstDetailPremiums);
                     if (parents != null && parents.size() > 0) {
                         insFeeOrderNew.setFirstLevelUserId(parents.get(0).getId());