瀏覽代碼

费用计算修改

785834757 2 年之前
父節點
當前提交
5767b3dbb7

+ 24 - 0
src/main/java/com/ydtech/modules/admin/constants/MoneyAttrConstants.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.admin.constants;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @version
+ * @description: 金钱属性
+ * @author: tz
+ * @date: 2024-4-11 17:36:15
+ **/
+@Getter
+@AllArgsConstructor
+public enum MoneyAttrConstants {
+
+    M_1(1, "手续费"),
+    M_2(2,"跟单费"),
+    M_3(3,"推广费");
+
+    private final Integer code;
+
+    private final String desc;
+}

+ 23 - 0
src/main/java/com/ydtech/modules/admin/constants/WithdrawTypeConstants.java

@@ -0,0 +1,23 @@
+package com.ydtech.modules.admin.constants;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @version
+ * @description: 提现类型
+ * @author: tz
+ * @date: 2024-4-11 17:36:15
+ **/
+@Getter
+@AllArgsConstructor
+public enum WithdrawTypeConstants {
+
+    WT_1("1", "提现"),
+    WT_2("2","收入");
+
+    private final String code;
+
+    private final String desc;
+}

+ 0 - 1
src/main/java/com/ydtech/modules/admin/model/SysDeptAccountHistory.java

@@ -3,7 +3,6 @@ package com.ydtech.modules.admin.model;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.ydtech.core.page.PageRequest;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 21 - 16
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.constants.MoneyAttrConstants;
+import com.ydtech.modules.admin.constants.WithdrawTypeConstants;
 import com.ydtech.modules.admin.dao.SysUserAccountMapper;
 import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
@@ -65,7 +67,6 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         SysUserAccount newAccount = new SysUserAccount();
 
         if (ObjectUtils.isNotEmpty(sysUserAccountEntity)) {
-
             sysUserAccountEntity.setHandlingFee(sysUserAccount.getHandlingFee().add(sysUserAccountEntity.getHandlingFee()));
             sysUserAccountEntity.setDocumentary(sysUserAccount.getDocumentary().add(sysUserAccountEntity.getDocumentary()));
             sysUserAccountEntity.setPromotion(sysUserAccount.getPromotion().add(sysUserAccountEntity.getPromotion()));
@@ -74,14 +75,15 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             }
             baseMapper.updateById(sysUserAccountEntity);
         } else {
-            newAccount.setUserId(userId);
-            newAccount.setDocumentary(sysUserAccount.getDocumentary());
-            newAccount.setPromotion(sysUserAccount.getPromotion());
-            newAccount.setHandlingFee(sysUserAccount.getHandlingFee());
+            sysUserAccountEntity = new SysUserAccount();
+            sysUserAccountEntity.setUserId(userId);
+            sysUserAccountEntity.setDocumentary(sysUserAccount.getDocumentary());
+            sysUserAccountEntity.setPromotion(sysUserAccount.getPromotion());
+            sysUserAccountEntity.setHandlingFee(sysUserAccount.getHandlingFee());
             if (StringUtils.isNotEmpty(sysUserAccount.getDocumentaryStatus())) {
-                newAccount.setDocumentaryStatus(sysUserAccount.getDocumentaryStatus());
+                sysUserAccountEntity.setDocumentaryStatus(sysUserAccount.getDocumentaryStatus());
             }
-            baseMapper.insert(newAccount);
+            baseMapper.insert(sysUserAccountEntity);
         }
 
         if (StringUtils.isNotEmpty(sysUserAccount.getDocumentaryStatus())) {
@@ -90,36 +92,39 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
             sysUserAccountHistory.setUserId(sysUserAccount.getUserId());
             sysUserAccountHistory.setDocumentary(Integer.valueOf(sysUserAccount.getDocumentaryStatus()));
             sysUserAccountHistory.setSuborder(sysUserAccount.getSuborderId());
+            //跟单费
             if(sysUserAccount.getDocumentary()!=null && sysUserAccount.getDocumentary().compareTo(BigDecimal.ZERO)!=0){
                 sysUserAccountHistory.setAmount(sysUserAccount.getDocumentary());
-                sysUserAccountHistory.setProperty(2);
-                if("2".equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
-                    sysUserAccountHistory.setSurplusAmount(sysUserAccount.getDocumentary().add(newAccount.getDocumentary()));
+                sysUserAccountHistory.setProperty(MoneyAttrConstants.M_2.getCode());
+                if(WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
+                    sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getDocumentary());
                 }else {
                     BigDecimal subtract = newSysAccount.getDocumentary().subtract(sysUserAccount.getDocumentary());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
             }
+            //手续费
             if(sysUserAccount.getHandlingFee()!=null  &&  sysUserAccount.getHandlingFee().compareTo(BigDecimal.ZERO) !=0){
                 sysUserAccountHistory.setId(null);
                 sysUserAccountHistory.setAmount(sysUserAccount.getHandlingFee());
-                sysUserAccountHistory.setProperty(1);
-                if("2".equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
-                    sysUserAccountHistory.setSurplusAmount(sysUserAccount.getHandlingFee().add(newAccount.getHandlingFee()));
+                sysUserAccountHistory.setProperty(MoneyAttrConstants.M_1.getCode());
+                if(WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
+                    sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getHandlingFee());
                 }else {
                     BigDecimal subtract = newSysAccount.getHandlingFee().subtract(sysUserAccount.getHandlingFee());
                     sysUserAccountHistory.setSurplusAmount(subtract);
                 }
                 sysUserAccountHistoryService.updayteByUserAccount(sysUserAccountHistory);
             }
+            //推广费
             if(sysUserAccount.getPromotion() !=null && sysUserAccount.getPromotion().compareTo(BigDecimal.ZERO) !=0){
                 sysUserAccountHistory.setId(null);
 
                 sysUserAccountHistory.setAmount(sysUserAccount.getPromotion());
-                sysUserAccountHistory.setProperty(3);
-                if("2".equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
-                    sysUserAccountHistory.setSurplusAmount(sysUserAccount.getPromotion().add(newAccount.getPromotion()));
+                sysUserAccountHistory.setProperty(MoneyAttrConstants.M_3.getCode());
+                if(WithdrawTypeConstants.WT_2.getCode().equals(sysUserAccount.getDocumentaryStatus())){ // 收入  相加
+                    sysUserAccountHistory.setSurplusAmount(sysUserAccountEntity.getPromotion());
                 }else {
                     BigDecimal subtract = newSysAccount.getPromotion().subtract(sysUserAccount.getPromotion());
                     sysUserAccountHistory.setSurplusAmount(subtract);

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

@@ -2661,8 +2661,20 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                 .add(insFeeOrderNew.getJqDeptProportionLevel4())
                 .add(insFeeOrderNew.getJqDeptProportionLevel5());
 
+        //分销总比例
+        BigDecimal sumRetail = new BigDecimal(0);
+        if(insFeeOrderNew.getFirstDetailProportion().compareTo(new BigDecimal(0)) > 0){
+            sumRetail = sumRetail.add(insFeeOrderNew.getFirstDetailProportion());
+        }
+        if(insFeeOrderNew.getSecondDetailProportion().compareTo(new BigDecimal(0)) > 0){
+            sumRetail = sumRetail.add(insFeeOrderNew.getSecondDetailProportion());
+        }
+        if(insFeeOrderNew.getThirdDetailProportion().compareTo(new BigDecimal(0)) > 0){
+            sumRetail = sumRetail.add(insFeeOrderNew.getThirdDetailProportion());
+        }
+
         //交强总出口费比例
-        BigDecimal jqExportTotalProportion = jqEntranceFee.getTotalProportion().subtract(sumJqDeptProportion);
+        BigDecimal jqExportTotalProportion = jqEntranceFee.getTotalProportion().subtract(sumJqDeptProportion).subtract(sumRetail);
 
         //交强出口手续费比例
         BigDecimal jqExportSuperviseCosts =
@@ -2717,7 +2729,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                 .add(insFeeOrderNew.getSyDeptProportionLevel5());
 
         //商业总出口费比例
-        BigDecimal syExportTotalProportion = syEntranceFee.getTotalProportion().subtract(sumSyDeptProportion);
+        BigDecimal syExportTotalProportion = syEntranceFee.getTotalProportion().subtract(sumSyDeptProportion).subtract(sumRetail);
 
         //商业出口手续费比例
         BigDecimal syExportSuperviseCosts =
@@ -2773,7 +2785,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
                 .add(insFeeOrderNew.getNoDeptProportionLevel5());
 
         //非车总出口费比例
-        BigDecimal nonExportTotalProportion = nonEntranceFee.getTotalProportion().subtract(sumNonDeptProportion);
+        BigDecimal nonExportTotalProportion = nonEntranceFee.getTotalProportion().subtract(sumNonDeptProportion).subtract(sumRetail);
 
         //非车出口手续费比例
         BigDecimal nonExportSuperviseCosts =

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

@@ -400,23 +400,24 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
             List<EsmUserReferrer> parents = esmUserReferrerService.findParents(sysUser.getId());
 
             if (esmRetail != null) {
+                BigDecimal sumPremium = insFeeOrderNew.getJqPremium().add(insFeeOrderNew.getSyPremium()).add(insFeeOrderNew.getNoPremium());
                 if(Integer.parseInt(esmRetail.getRetailtype()) >= 3){
                     insFeeOrderNew.setFirstDetailProportion(new BigDecimal(esmRetail.getDisrate1()));
-                    insFeeOrderNew.setFirstDetailPremiums(insFeeOrderNew.getJqNoTaxPremium().multiply(new BigDecimal(esmRetail.getDisrate1())).divide(new BigDecimal("100")));
+                    insFeeOrderNew.setFirstDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate1())).divide(new BigDecimal("100")));
                     if(parents != null && parents.size() > 2){
                         insFeeOrderNew.setThreeLevelUserId(parents.get(2).getId());
                     }
                 }
                 if(Integer.parseInt(esmRetail.getRetailtype()) >= 2){
                     insFeeOrderNew.setSecondDetailProportion(new BigDecimal(esmRetail.getDisrate2()));
-                    insFeeOrderNew.setSecondDetailPremiums(insFeeOrderNew.getJqNoTaxPremium().multiply(new BigDecimal(esmRetail.getDisrate2())).divide(new BigDecimal("100")));
+                    insFeeOrderNew.setSecondDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate2())).divide(new BigDecimal("100")));
                     if(parents != null && parents.size() > 1){
                         insFeeOrderNew.setTwoLevelUserId(parents.get(1).getId());
                     }
                 }
                 if(Integer.parseInt(esmRetail.getRetailtype()) >= 1){
                     insFeeOrderNew.setThirdDetailProportion(new BigDecimal(esmRetail.getDisrate3()));
-                    insFeeOrderNew.setThirdDetailPremiums(insFeeOrderNew.getJqNoTaxPremium().multiply(new BigDecimal(esmRetail.getDisrate3())).divide(new BigDecimal("100")));
+                    insFeeOrderNew.setThirdDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate3())).divide(new BigDecimal("100")));
                     if(parents != null && parents.size() > 0) {
                         insFeeOrderNew.setFirstLevelUserId(parents.get(0).getId());
                     }

+ 77 - 8
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -153,18 +153,87 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             if (ObjectUtils.isNotEmpty(insFeeOrderNew) ) {
 //                手续非佣金  =  交强监管费用 + 商业监管费用 + 非车监管费用
 //                非跟单费用  = 交强非跟单费用 + 商业非跟单费用 + 非车非跟单费用
+                //手续费入口费用
+//                BigDecimal jqPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getJqSuperviseCostsPremiums());//交强监管费
+//                BigDecimal syPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getSySuperviseCostsPremiums());//商业监管费
+//                BigDecimal noPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getNoSuperviseCostsPremiums());//非车监管费用
+//                BigDecimal totalPremiumAmount = jqPremiumAmount.add(syPremiumAmount).add(noPremiumAmount);    // 手续非佣金
+//                //其他费用入口费用
+//                BigDecimal jqOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getJqOtherCostsPremiums());//交强其他费用
+//                BigDecimal syOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getSyOtherCostsPremiums()); //商业其他费用
+//                BigDecimal noOtherCostsProportion = this.zeroBigdecimal(insFeeOrderNew.getNoOtherCostsPremiums());//非车其他费用
+//                BigDecimal totalOtherPremiumAmount = jqOtherCostsPremiums.add(syOtherCostsPremiums).add(noOtherCostsProportion);  //非跟单费用
+
+                //总机构 交强管理比例
+                BigDecimal sumJqDeptProportion = insFeeOrderNew.getJqDeptProportionLevel1()
+                        .add(insFeeOrderNew.getJqDeptProportionLevel2())
+                        .add(insFeeOrderNew.getJqDeptProportionLevel3())
+                        .add(insFeeOrderNew.getJqDeptProportionLevel4())
+                        .add(insFeeOrderNew.getJqDeptProportionLevel5());
+
+                //总机构 商业管理比例
+                BigDecimal sumSyDeptProportion = insFeeOrderNew.getSyDeptProportionLevel1()
+                        .add(insFeeOrderNew.getSyDeptProportionLevel2())
+                        .add(insFeeOrderNew.getSyDeptProportionLevel3())
+                        .add(insFeeOrderNew.getSyDeptProportionLevel4())
+                        .add(insFeeOrderNew.getSyDeptProportionLevel5());
+
+                //总机构 非车管理比例
+                BigDecimal sumNoDeptProportion = insFeeOrderNew.getNoDeptProportionLevel1()
+                        .add(insFeeOrderNew.getNoDeptProportionLevel2())
+                        .add(insFeeOrderNew.getNoDeptProportionLevel3())
+                        .add(insFeeOrderNew.getNoDeptProportionLevel4())
+                        .add(insFeeOrderNew.getNoDeptProportionLevel5());
+
+                //总分销比例
+                BigDecimal sumRetail = insFeeOrderNew.getFirstDetailProportion().add(insFeeOrderNew.getSecondDetailProportion()).add(insFeeOrderNew.getThirdDetailProportion());
+
+                //交强出口比例
+                BigDecimal jqExportProceduresProportion = new BigDecimal(0);
+                if(insFeeOrderNew.getJqCostsProportion().compareTo(sumJqDeptProportion.add(sumRetail))>0){
+                    jqExportProceduresProportion = insFeeOrderNew.getJqCostsProportion().subtract(sumJqDeptProportion).subtract(sumRetail);
+                }
+                //商业出口比例
+                BigDecimal syExportProceduresProportion = new BigDecimal(0);
+                if(insFeeOrderNew.getSyCostsProportion().compareTo(sumSyDeptProportion.add(sumRetail))>0){
+                    syExportProceduresProportion = insFeeOrderNew.getSyCostsProportion().subtract(sumSyDeptProportion).subtract(sumRetail);
+                }
+                //非车出口比例
+                BigDecimal noExportProceduresProportion = new BigDecimal(0);
+                if(insFeeOrderNew.getNoCostsProportion().compareTo(sumNoDeptProportion.add(sumRetail))>0){
+                    noExportProceduresProportion = insFeeOrderNew.getNoCostsProportion().subtract(sumNoDeptProportion).subtract(sumRetail);
+                }
+
+                //交强手续费出口比例
+                BigDecimal jqExportProceduresFee = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqSuperviseCostsProportion().divide(new BigDecimal(100)));
+                //交强跟单出口费用
+                BigDecimal jqExportOtherFee = insFeeOrderNew.getJqPremium()
+                        .multiply(jqExportProceduresProportion
+                                .subtract(insFeeOrderNew.getJqSuperviseCostsProportion()).divide(new BigDecimal(100)));
+
+                //商业手续费出口比例
+                BigDecimal syExportProceduresFee = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSySuperviseCostsProportion().divide(new BigDecimal(100)));
+                //商业跟单出口比例
+                BigDecimal syExportOtherFee = insFeeOrderNew.getSyPremium()
+                        .multiply(syExportProceduresProportion
+                                .subtract(insFeeOrderNew.getSySuperviseCostsProportion()).divide(new BigDecimal(100)));
+
+                //非车手续费出口比例
+                BigDecimal noExportProceduresFee = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoSuperviseCostsProportion().divide(new BigDecimal(100)));
+                //非车跟单出口比例
+                BigDecimal noExportOtherFee = insFeeOrderNew.getNoPremium()
+                        .multiply(noExportProceduresProportion
+                                .subtract(insFeeOrderNew.getNoSuperviseCostsProportion()).divide(new BigDecimal(100)));
 
+                //用户出口手续费
+                BigDecimal totalPremiumAmount = new BigDecimal(0);
+                totalPremiumAmount = totalPremiumAmount.add(jqExportProceduresFee).add(syExportProceduresFee).add(noExportProceduresFee);
 
-                BigDecimal jqPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getJqSuperviseCostsPremiums());//交强监管费
-                BigDecimal syPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getSySuperviseCostsPremiums());//商业监管费
-                BigDecimal noPremiumAmount = this.zeroBigdecimal(insFeeOrderNew.getNoSuperviseCostsPremiums());//非车监管费用
-                BigDecimal totalPremiumAmount = jqPremiumAmount.add(syPremiumAmount).add(noPremiumAmount);    // 手续非佣金
+                //用户出口跟单费
+                BigDecimal totalOtherPremiumAmount = new BigDecimal(0);
+                totalOtherPremiumAmount = totalOtherPremiumAmount.add(jqExportOtherFee).add(syExportOtherFee).add(noExportOtherFee);
 
-                BigDecimal jqOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getJqOtherCostsPremiums());//交强其他费用
-                BigDecimal syOtherCostsPremiums  =this.zeroBigdecimal(insFeeOrderNew.getSyOtherCostsPremiums()); //商业其他费用
-                BigDecimal noOtherCostsProportion = this.zeroBigdecimal(insFeeOrderNew.getNoOtherCostsPremiums());//非车其他费用
 
-                BigDecimal totalOtherPremiumAmount = jqOtherCostsPremiums.add(syOtherCostsPremiums).add(noOtherCostsProportion);  //非跟单费用
 //              用戶
                 sysUserAccount.setHandlingFee(totalPremiumAmount);
                 sysUserAccount.setDocumentary(totalOtherPremiumAmount);