Преглед изворни кода

五级机构存储各级管理费

cuixinpeng пре 2 година
родитељ
комит
b5d73aab3b

+ 34 - 20
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -1128,26 +1128,40 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
 
             //判断出单员归属机构层级
             String parentId = sysUser.getDeptId();
-            SysDept sysDeptTemp = sysDeptService.getById(parentId);
-
-            //当机构层级为五级的时候,获取所有的机构费用比例
-            if(sysDeptTemp!=null && "5".equals(sysDeptTemp.getComlevel())){
-                //五级机构管理费用比例
-                insFeeOrder.setFifthDeptProportion(new BigDecimal(sysDeptTemp.getManagementFeeFifth()));
-                insFeeOrder.setFifthDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getFifthDeptProportion()));
-                //四级机构管理费用比例
-                insFeeOrder.setForthDeptProportion(new BigDecimal(sysDeptTemp.getManagementFeeForth()));
-                insFeeOrder.setForthDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getForthDeptProportion()));
-                //三级机构管理费用比例
-                insFeeOrder.setThirdDeptProportion(new BigDecimal(sysDeptTemp.getManagementFeeThird()));
-                insFeeOrder.setThirdDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getThirdDeptProportion()));
-                //二级机构管理费用比例
-                insFeeOrder.setSecondDeptProportion(new BigDecimal(sysDeptTemp.getManagementFeeSecond()));
-                insFeeOrder.setSecondDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getSecondDeptProportion()));
-                //一级机构管理费用比例
-                insFeeOrder.setFirstDeptProportion(new BigDecimal(sysDeptTemp.getManagementFee()));
-                insFeeOrder.setFirstDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getFirstDeptProportion()));
-            }
+            String comlevel = "";
+            do{//循环操作
+                SysDept sysDeptTemp = sysDeptService.getById(parentId);
+                if(sysDeptTemp!=null&&StringUtils.isNotEmpty(sysDeptTemp.getParentId())){
+                    parentId = sysDeptTemp.getParentId();
+                }else{
+                    break;
+                }
+                if(StringUtils.isEmpty(sysDeptTemp.getComlevel())){
+                    continue;
+                }else {
+                    comlevel = sysDeptTemp.getComlevel();
+                }
+                //当机构层级为五级的时候,获取所有的机构费用比例
+                if(sysDeptTemp!=null && "5".equals(sysDeptTemp.getComlevel())){
+                    //五级机构管理费用比例
+                    insFeeOrder.setFifthDeptProportion(new BigDecimal(sysDeptTemp.getManagementFeeFifth()));
+                    insFeeOrder.setFifthDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getFifthDeptProportion()));
+                    //四级机构管理费用比例
+                    insFeeOrder.setForthDeptProportion(new BigDecimal(sysDeptTemp.getManagementFeeForth()));
+                    insFeeOrder.setForthDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getForthDeptProportion()));
+                    //三级机构管理费用比例
+                    insFeeOrder.setThirdDeptProportion(new BigDecimal(sysDeptTemp.getManagementFeeThird()));
+                    insFeeOrder.setThirdDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getThirdDeptProportion()));
+                    //二级机构管理费用比例
+                    insFeeOrder.setSecondDeptProportion(new BigDecimal(sysDeptTemp.getManagementFeeSecond()));
+                    insFeeOrder.setSecondDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getSecondDeptProportion()));
+                    //一级机构管理费用比例
+                    insFeeOrder.setFirstDeptProportion(new BigDecimal(sysDeptTemp.getManagementFee()));
+                    insFeeOrder.setFirstDeptPremiums(getPremium(totalNoTaxPremium,insFeeOrder.getFirstDeptProportion()));
+                    //取到第一层级时结束
+                    break;
+                }
+            }while (!"1".equals(comlevel));
 
             //一级分销比例   推荐人
             //二级分销比例