|
@@ -1,16 +1,15 @@
|
|
|
package com.ydtech.modules.fnc.service.impl;
|
|
package com.ydtech.modules.fnc.service.impl;
|
|
|
|
|
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
-import cn.hutool.core.util.NumberUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
+import com.ydtech.constants.enums.dict.ins.InsFeeAuditDistributionStatusEnum;
|
|
|
import com.ydtech.modules.admin.model.SysDept;
|
|
import com.ydtech.modules.admin.model.SysDept;
|
|
|
-import com.ydtech.modules.admin.model.SysDeptAccountEntity;
|
|
|
|
|
|
|
+import com.ydtech.modules.admin.model.SysDeptAccount;
|
|
|
|
|
+import com.ydtech.modules.admin.model.SysDeptAccountHistory;
|
|
|
import com.ydtech.modules.admin.model.SysUser;
|
|
import com.ydtech.modules.admin.model.SysUser;
|
|
|
import com.ydtech.modules.admin.model.po.SysUserAccount;
|
|
import com.ydtech.modules.admin.model.po.SysUserAccount;
|
|
|
-import com.ydtech.modules.admin.service.SysDeptAccountService;
|
|
|
|
|
-import com.ydtech.modules.admin.service.SysDeptService;
|
|
|
|
|
-import com.ydtech.modules.admin.service.SysUserAccountService;
|
|
|
|
|
-import com.ydtech.modules.admin.service.SysUserService;
|
|
|
|
|
|
|
+import com.ydtech.modules.admin.service.*;
|
|
|
|
|
+import com.ydtech.modules.base.controller.BaseController;
|
|
|
import com.ydtech.modules.esm.service.EsmUserReferrerService;
|
|
import com.ydtech.modules.esm.service.EsmUserReferrerService;
|
|
|
import com.ydtech.modules.fnc.dao.FncInsAreaCompanyMapper;
|
|
import com.ydtech.modules.fnc.dao.FncInsAreaCompanyMapper;
|
|
|
import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
|
|
import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
|
|
@@ -30,14 +29,12 @@ import com.ydtech.modules.fnc.entity.InsAreaCompany;
|
|
|
import com.ydtech.modules.order.entity.InsFeeOrder;
|
|
import com.ydtech.modules.order.entity.InsFeeOrder;
|
|
|
import com.ydtech.modules.order.entity.InsOrders;
|
|
import com.ydtech.modules.order.entity.InsOrders;
|
|
|
import com.ydtech.modules.order.service.InsFeeOrderService;
|
|
import com.ydtech.modules.order.service.InsFeeOrderService;
|
|
|
-import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
|
|
import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
|
|
import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
|
|
|
import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
|
|
import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
|
|
|
import com.ydtech.utils.DateUtil;
|
|
import com.ydtech.utils.DateUtil;
|
|
|
import com.ydtech.utils.StringUtils;
|
|
import com.ydtech.utils.StringUtils;
|
|
|
|
|
+import com.ydtech.utils.idgen.IdGenerate;
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
-import org.apache.commons.lang3.math.NumberUtils;
|
|
|
|
|
-import org.apache.poi.hpsf.Decimal;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -84,6 +81,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private SysDeptAccountService sysDeptAccountService;
|
|
private SysDeptAccountService sysDeptAccountService;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private SysDeptAccountHistoryService sysDeptAccountHistoryService;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper, InsFeeOrderService insFeeOrderService,InsDeptFeeService insDeptFeeService,EsmUserReferrerService esmUserReferrerService,SysUserService sysUserService,InsCommissionService insCommissionService,InsCompanyFeeService insCompanyFeeService,InsPlyIncomeMapper insPlyIncomeMapper) {
|
|
public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper, InsFeeOrderService insFeeOrderService,InsDeptFeeService insDeptFeeService,EsmUserReferrerService esmUserReferrerService,SysUserService sysUserService,InsCommissionService insCommissionService,InsCompanyFeeService insCompanyFeeService,InsPlyIncomeMapper insPlyIncomeMapper) {
|
|
|
this.insAreaCompanyMapper = insAreaCompanyMapper;
|
|
this.insAreaCompanyMapper = insAreaCompanyMapper;
|
|
@@ -110,7 +110,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
|
|
|
|
|
|
|
|
|
|
InsOrders order=insOrdersMapper.selectById(orderNo);
|
|
InsOrders order=insOrdersMapper.selectById(orderNo);
|
|
|
- InsFeeOrder insFeeOrder=insFeeOrderService.getByInsOrderNo(insFeeAudit.getInsOrderNo());
|
|
|
|
|
|
|
+ InsFeeOrderNew insFeeOrder=insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insFeeAudit.getInsOrderNo());
|
|
|
InsAreaCompany insAreaCompany=insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
|
|
InsAreaCompany insAreaCompany=insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
|
|
|
|
|
|
|
|
//获取该订单的费用
|
|
//获取该订单的费用
|
|
@@ -133,38 +133,105 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
//bigdecimal为null时设置为0
|
|
//bigdecimal为null时设置为0
|
|
|
// handleBigdecimal(insFeeOrder);
|
|
// handleBigdecimal(insFeeOrder);
|
|
|
//生成保司费用(应收费用)
|
|
//生成保司费用(应收费用)
|
|
|
- gene_orderIncome( order, insFeeOrder,insAreaCompany);
|
|
|
|
|
|
|
+ gene_orderIncome( order, insFeeOrderNew,insAreaCompany);
|
|
|
//生成机构费用
|
|
//生成机构费用
|
|
|
- gene_deptfee( order, insFeeOrder,insAreaCompany);
|
|
|
|
|
|
|
+ gene_deptfee( order, insFeeOrderNew,insAreaCompany);
|
|
|
//生成分销费用
|
|
//生成分销费用
|
|
|
- saveRetail(order,insFeeOrder,insAreaCompany);
|
|
|
|
|
|
|
+// saveRetail(order,insFeeOrderNew,insAreaCompany);
|
|
|
//个代费用生成
|
|
//个代费用生成
|
|
|
- saveInsCompanyFee(order,insFeeOrder,insAreaCompany);
|
|
|
|
|
|
|
+// saveInsCompanyFee(order,insFeeOrderNew,insAreaCompany);
|
|
|
|
|
|
|
|
|
|
|
|
|
// 生成 用户账户表 数据
|
|
// 生成 用户账户表 数据
|
|
|
if(StringUtils.isNotEmpty(order.getUserid())){
|
|
if(StringUtils.isNotEmpty(order.getUserid())){
|
|
|
// 用戶賬戶表
|
|
// 用戶賬戶表
|
|
|
SysUserAccount sysUserAccount = new SysUserAccount();
|
|
SysUserAccount sysUserAccount = new SysUserAccount();
|
|
|
-// 部門金額表
|
|
|
|
|
- SysDeptAccountEntity sysDeptAccountEntity = new SysDeptAccountEntity();
|
|
|
|
|
|
|
+
|
|
|
sysUserAccount.setUserId(order.getUserid());
|
|
sysUserAccount.setUserId(order.getUserid());
|
|
|
if (ObjectUtils.isNotEmpty(insFeeOrderNew) ) {
|
|
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))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
+ //交强跟单出口费用
|
|
|
|
|
+ BigDecimal jqExportOtherFee = insFeeOrderNew.getJqPremium()
|
|
|
|
|
+ .multiply(jqExportProceduresProportion
|
|
|
|
|
+ .subtract(insFeeOrderNew.getJqSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
|
|
|
|
|
+ //商业手续费出口比例
|
|
|
|
|
+ BigDecimal syExportProceduresFee = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSySuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
+ //商业跟单出口比例
|
|
|
|
|
+ BigDecimal syExportOtherFee = insFeeOrderNew.getSyPremium()
|
|
|
|
|
+ .multiply(syExportProceduresProportion
|
|
|
|
|
+ .subtract(insFeeOrderNew.getSySuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
|
|
|
- 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 noExportProceduresFee = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
+ //非车跟单出口比例
|
|
|
|
|
+ BigDecimal noExportOtherFee = insFeeOrderNew.getNoPremium()
|
|
|
|
|
+ .multiply(noExportProceduresProportion
|
|
|
|
|
+ .subtract(insFeeOrderNew.getNoSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
|
|
|
- BigDecimal jqOtherCostsPremiums =this.zeroBigdecimal(insFeeOrderNew.getJqOtherCostsPremiums());//交强其他费用
|
|
|
|
|
- BigDecimal syOtherCostsPremiums =this.zeroBigdecimal(insFeeOrderNew.getSyOtherCostsPremiums()); //商业其他费用
|
|
|
|
|
- BigDecimal noOtherCostsProportion = this.zeroBigdecimal(insFeeOrderNew.getNoOtherCostsPremiums());//非车其他费用
|
|
|
|
|
|
|
+ //用户出口手续费
|
|
|
|
|
+ BigDecimal totalPremiumAmount = new BigDecimal(0);
|
|
|
|
|
+ totalPremiumAmount = totalPremiumAmount.add(jqExportProceduresFee).add(syExportProceduresFee).add(noExportProceduresFee);
|
|
|
|
|
+
|
|
|
|
|
+ //用户出口跟单费
|
|
|
|
|
+ BigDecimal totalOtherPremiumAmount = new BigDecimal(0);
|
|
|
|
|
+ totalOtherPremiumAmount = totalOtherPremiumAmount.add(jqExportOtherFee).add(syExportOtherFee).add(noExportOtherFee);
|
|
|
|
|
|
|
|
|
|
|
|
|
- BigDecimal totalOtherPremiumAmount = jqOtherCostsPremiums.add(syOtherCostsPremiums).add(noOtherCostsProportion); //非跟单费用
|
|
|
|
|
// 用戶
|
|
// 用戶
|
|
|
sysUserAccount.setHandlingFee(totalPremiumAmount);
|
|
sysUserAccount.setHandlingFee(totalPremiumAmount);
|
|
|
sysUserAccount.setDocumentary(totalOtherPremiumAmount);
|
|
sysUserAccount.setDocumentary(totalOtherPremiumAmount);
|
|
@@ -172,93 +239,420 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
this.countUserAmount(insFeeOrderNew,orderNo);
|
|
this.countUserAmount(insFeeOrderNew,orderNo);
|
|
|
sysUserAccount.setDocumentaryStatus("2"); // 收入
|
|
sysUserAccount.setDocumentaryStatus("2"); // 收入
|
|
|
sysUserAccount.setSuborderId(orderNo); // 订单Id
|
|
sysUserAccount.setSuborderId(orderNo); // 订单Id
|
|
|
-// 部门金额
|
|
|
|
|
- sysDeptAccountEntity.setHandlingFee(totalPremiumAmount);
|
|
|
|
|
- sysDeptAccountEntity.setDocumentary(totalOtherPremiumAmount);
|
|
|
|
|
-// sysDeptAccountEntity.setPromotion(noPremium);
|
|
|
|
|
- sysDeptAccountEntity.setDeptId(order.getDeptid());
|
|
|
|
|
sysUserAccountService.addOrUpdate(sysUserAccount);
|
|
sysUserAccountService.addOrUpdate(sysUserAccount);
|
|
|
- sysDeptAccountService.addOrUpdate(sysDeptAccountEntity);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ String deptid = insFeeOrderNew.getDeptId();
|
|
|
|
|
+ String distributionStatus = insFeeOrderNew.getDistributionStatus();
|
|
|
|
|
+ // 定义一个数组来存储各级机构的管理费
|
|
|
|
|
+ BigDecimal[] jqDeptPremiumsLevels = {insFeeOrderNew.getJqDeptPremiumsLevel1(), insFeeOrderNew.getJqDeptPremiumsLevel2(),
|
|
|
|
|
+ insFeeOrderNew.getJqDeptPremiumsLevel3(), insFeeOrderNew.getJqDeptPremiumsLevel4(),
|
|
|
|
|
+ insFeeOrderNew.getJqDeptPremiumsLevel5()};
|
|
|
|
|
+ BigDecimal[] syDeptPremiumsLevels = {insFeeOrderNew.getSyDeptPremiumsLevel1(), insFeeOrderNew.getSyDeptPremiumsLevel2(),
|
|
|
|
|
+ insFeeOrderNew.getSyDeptPremiumsLevel3(), insFeeOrderNew.getSyDeptPremiumsLevel4(),
|
|
|
|
|
+ insFeeOrderNew.getSyDeptPremiumsLevel5()};
|
|
|
|
|
+ BigDecimal[] noDeptPremiumsLevels = {insFeeOrderNew.getNoDeptPremiumsLevel1(), insFeeOrderNew.getNoDeptPremiumsLevel2(),
|
|
|
|
|
+ insFeeOrderNew.getNoDeptPremiumsLevel3(), insFeeOrderNew.getNoDeptPremiumsLevel4(),
|
|
|
|
|
+ insFeeOrderNew.getNoDeptPremiumsLevel5()};
|
|
|
|
|
+
|
|
|
|
|
+ for (int i = 1; i <= 5; i++) {
|
|
|
|
|
+ // 根据循环次数确定机构ID的长度,第五级为11
|
|
|
|
|
+ String levelDeptId = deptid.substring(0, (i == 5) ? 11 : i * 2);
|
|
|
|
|
+ // 获取对应级别的机构信息
|
|
|
|
|
+ SysDeptAccount levelSysDeptAccount = sysDeptAccountService.getOne(new LambdaQueryWrapper<SysDeptAccount>()
|
|
|
|
|
+ .eq(SysDeptAccount::getDeptId, levelDeptId));
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化管理费总额为0
|
|
|
|
|
+ BigDecimal sumManagementFee = BigDecimal.ZERO;
|
|
|
|
|
+
|
|
|
|
|
+ // 根据分销等级和分销用户情况计算分销费用
|
|
|
|
|
+ BigDecimal distributionFee = BigDecimal.ZERO;
|
|
|
|
|
+ if (i == 5) {
|
|
|
|
|
+ if (InsFeeAuditDistributionStatusEnum.DS_2.getCode().equals(distributionStatus) && insFeeOrderNew.getTwoLevelUserId() == null) {
|
|
|
|
|
+ distributionFee = insFeeOrderNew.getSecondDetailPremiums();
|
|
|
|
|
+ } else if (InsFeeAuditDistributionStatusEnum.DS_3.getCode().equals(distributionStatus) && insFeeOrderNew.getThreeLevelUserId() == null) {
|
|
|
|
|
+ distributionFee = insFeeOrderNew.getThirdDetailPremiums();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 根据分销等级计算管理费总额
|
|
|
|
|
+ if (i == 5) {
|
|
|
|
|
+ sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(syDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(noDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(distributionFee);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(syDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(noDeptPremiumsLevels[i - 1]);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 如果机构信息不为空,更新管理费并记录历史
|
|
|
|
|
+ if (levelSysDeptAccount != null) {
|
|
|
|
|
+ levelSysDeptAccount.setManagementFee(levelSysDeptAccount.getManagementFee().add(sumManagementFee));
|
|
|
|
|
+ sysDeptAccountService.updateById(levelSysDeptAccount);
|
|
|
|
|
+ // 记录历史信息
|
|
|
|
|
+ SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
|
|
|
|
|
+ sysDeptAccountHistory.setId(IdGenerate.nextId());
|
|
|
|
|
+ sysDeptAccountHistory.setDeptId(levelDeptId);
|
|
|
|
|
+ sysDeptAccountHistory.setAmount(sumManagementFee);
|
|
|
|
|
+ sysDeptAccountHistory.setSurplusAmount(levelSysDeptAccount.getManagementFee());
|
|
|
|
|
+ sysDeptAccountHistory.setDocumentary("2"); //收入
|
|
|
|
|
+ sysDeptAccountHistory.setSuborder(orderNo);
|
|
|
|
|
+ sysDeptAccountHistory.setFromBankCard(null);
|
|
|
|
|
+ sysDeptAccountHistory.setToBankCard(null);
|
|
|
|
|
+ sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
|
|
|
|
|
+ sysDeptAccountHistory.setCreateTime(new Date());
|
|
|
|
|
+ sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",分销费:" + distributionFee);
|
|
|
|
|
+ sysDeptAccountHistoryService.save(sysDeptAccountHistory);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 如果机构信息为空,新建机构信息并记录历史
|
|
|
|
|
+ SysDeptAccount sysDeptAccount = new SysDeptAccount();
|
|
|
|
|
+ sysDeptAccount.setDeptId(levelDeptId);
|
|
|
|
|
+ sysDeptAccount.setManagementFee(sumManagementFee);
|
|
|
|
|
+ sysDeptAccount.setCreateTime(new Date());
|
|
|
|
|
+ sysDeptAccountService.save(sysDeptAccount);
|
|
|
|
|
+ // 记录历史信息
|
|
|
|
|
+ SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
|
|
|
|
|
+ sysDeptAccountHistory.setId(IdGenerate.nextId());
|
|
|
|
|
+ sysDeptAccountHistory.setDeptId(levelDeptId);
|
|
|
|
|
+ sysDeptAccountHistory.setAmount(sumManagementFee);
|
|
|
|
|
+ sysDeptAccountHistory.setSurplusAmount(sumManagementFee);
|
|
|
|
|
+ sysDeptAccountHistory.setDocumentary("2"); //收入
|
|
|
|
|
+ sysDeptAccountHistory.setSuborder(orderNo);
|
|
|
|
|
+ sysDeptAccountHistory.setFromBankCard(null);
|
|
|
|
|
+ sysDeptAccountHistory.setToBankCard(null);
|
|
|
|
|
+ sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
|
|
|
|
|
+ sysDeptAccountHistory.setCreateTime(new Date());
|
|
|
|
|
+ sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",分销费:" + distributionFee);
|
|
|
|
|
+ sysDeptAccountHistoryService.save(sysDeptAccountHistory);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void countUserAmount(InsFeeOrderNew insFeeOrderNew ,String orderNo) {
|
|
|
|
|
- String distributionStatus = insFeeOrderNew.getDistributionStatus();
|
|
|
|
|
- if(StringUtils.isNotEmpty(distributionStatus)){
|
|
|
|
|
- if("3".equals(distributionStatus)){
|
|
|
|
|
- BigDecimal totalDept = BigDecimal.ZERO;
|
|
|
|
|
- if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
|
|
|
|
|
- String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
|
|
|
|
|
- BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
|
|
|
|
|
- this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
|
|
|
|
|
- }else {
|
|
|
|
|
- totalDept = totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
|
|
|
|
|
- }
|
|
|
|
|
- if(StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())){
|
|
|
|
|
- String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
|
|
|
|
|
- BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
|
|
|
|
|
- this.saveUpdateAccount(twoLevelUserId,secondDetailProportion,orderNo);
|
|
|
|
|
- }else {
|
|
|
|
|
- totalDept =totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
|
|
|
|
|
- }
|
|
|
|
|
- if(StringUtils.isNotEmpty(insFeeOrderNew.getThreeLevelUserId())){
|
|
|
|
|
- String threeLevelUserId = insFeeOrderNew.getThreeLevelUserId();
|
|
|
|
|
- BigDecimal threeDetailPremiums = insFeeOrderNew.getThirdDetailPremiums();
|
|
|
|
|
- this.saveUpdateAccount(threeLevelUserId,threeDetailPremiums,orderNo);
|
|
|
|
|
- }else {
|
|
|
|
|
- totalDept =totalDept.add(insFeeOrderNew.getThirdDetailPremiums());
|
|
|
|
|
- }
|
|
|
|
|
-// 机构管理 费用给五级交钱机构管理费
|
|
|
|
|
- if(totalDept.compareTo(BigDecimal.ZERO) ==0){
|
|
|
|
|
- BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
|
|
|
|
|
- jqDeptPremiumsLevel5.add(totalDept);
|
|
|
|
|
- insFeeOrderNewService.updateById(insFeeOrderNew);
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public boolean autoFeeAudit(String orderNo, String insOrderNo) throws Exception {
|
|
|
|
|
+ //保存审核表
|
|
|
|
|
+ InsFeeAudit insFeeAudit=new InsFeeAudit();
|
|
|
|
|
+ insFeeAudit.setOrderno(orderNo);
|
|
|
|
|
+ insFeeAudit.setInsOrderNo(insOrderNo);
|
|
|
|
|
+ insFeeAudit.setAuditstatus("1");
|
|
|
|
|
+ insFeeAudit.setAudittime(LocalDateTime.now());
|
|
|
|
|
+ insFeeAudit.setAudituser("自动审核");
|
|
|
|
|
+ this.save(insFeeAudit);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ InsOrders order=insOrdersMapper.selectById(orderNo);
|
|
|
|
|
+ InsFeeOrderNew insFeeOrder=insFeeOrderNewService.getInsFeeOrderNewByCompanyId(insFeeAudit.getInsOrderNo());
|
|
|
|
|
+ InsAreaCompany insAreaCompany=insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
|
|
|
|
|
+
|
|
|
|
|
+ //获取该订单的费用
|
|
|
|
|
+ InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
|
|
|
|
|
+ .eq(InsFeeOrderNew::getInsOrderNo, insFeeAudit.getInsOrderNo()));
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //获取操作人员的机构来源
|
|
|
|
|
+ String deptId=order.getDeptid();
|
|
|
|
|
+
|
|
|
|
|
+ List<SysDept> teamList = sysDeptService.findTeamList(deptId);
|
|
|
|
|
+ teamList.forEach(sysDept -> {
|
|
|
|
|
+
|
|
|
|
|
+ if(StringUtils.isNotEmpty(sysDept.getComlevel()) && sysDept.getComlevel().equals("1")){
|
|
|
|
|
+ BigDecimal jqDeptPremiumsLevel1 = insFeeOrderNew.getJqDeptPremiumsLevel1();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //bigdecimal为null时设置为0
|
|
|
|
|
+// handleBigdecimal(insFeeOrder);
|
|
|
|
|
+ //生成保司费用(应收费用)
|
|
|
|
|
+ gene_orderIncome( order, insFeeOrderNew,insAreaCompany);
|
|
|
|
|
+ //生成机构费用
|
|
|
|
|
+ gene_deptfee( order, insFeeOrderNew,insAreaCompany);
|
|
|
|
|
+ //生成分销费用
|
|
|
|
|
+// saveRetail(order,insFeeOrderNew,insAreaCompany);
|
|
|
|
|
+ //个代费用生成
|
|
|
|
|
+// saveInsCompanyFee(order,insFeeOrderNew,insAreaCompany);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// 生成 用户账户表 数据
|
|
|
|
|
+ if(StringUtils.isNotEmpty(order.getUserid())){
|
|
|
|
|
+// 用戶賬戶表
|
|
|
|
|
+ SysUserAccount sysUserAccount = new SysUserAccount();
|
|
|
|
|
+
|
|
|
|
|
+ sysUserAccount.setUserId(order.getUserid());
|
|
|
|
|
+ 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))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
+ //交强跟单出口费用
|
|
|
|
|
+ BigDecimal jqExportOtherFee = insFeeOrderNew.getJqPremium()
|
|
|
|
|
+ .multiply(jqExportProceduresProportion
|
|
|
|
|
+ .subtract(insFeeOrderNew.getJqSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
+
|
|
|
|
|
+ //商业手续费出口比例
|
|
|
|
|
+ BigDecimal syExportProceduresFee = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSySuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
+ //商业跟单出口比例
|
|
|
|
|
+ BigDecimal syExportOtherFee = insFeeOrderNew.getSyPremium()
|
|
|
|
|
+ .multiply(syExportProceduresProportion
|
|
|
|
|
+ .subtract(insFeeOrderNew.getSySuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
+
|
|
|
|
|
+ //非车手续费出口比例
|
|
|
|
|
+ BigDecimal noExportProceduresFee = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
+ //非车跟单出口比例
|
|
|
|
|
+ BigDecimal noExportOtherFee = insFeeOrderNew.getNoPremium()
|
|
|
|
|
+ .multiply(noExportProceduresProportion
|
|
|
|
|
+ .subtract(insFeeOrderNew.getNoSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
|
|
|
|
|
+
|
|
|
|
|
+ //用户出口手续费
|
|
|
|
|
+ BigDecimal totalPremiumAmount = new BigDecimal(0);
|
|
|
|
|
+ totalPremiumAmount = totalPremiumAmount.add(jqExportProceduresFee).add(syExportProceduresFee).add(noExportProceduresFee);
|
|
|
|
|
+
|
|
|
|
|
+ //用户出口跟单费
|
|
|
|
|
+ BigDecimal totalOtherPremiumAmount = new BigDecimal(0);
|
|
|
|
|
+ totalOtherPremiumAmount = totalOtherPremiumAmount.add(jqExportOtherFee).add(syExportOtherFee).add(noExportOtherFee);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+// 用戶
|
|
|
|
|
+ sysUserAccount.setHandlingFee(totalPremiumAmount);
|
|
|
|
|
+ sysUserAccount.setDocumentary(totalOtherPremiumAmount);
|
|
|
|
|
+// 算佣金
|
|
|
|
|
+ this.countUserAmount(insFeeOrderNew,orderNo);
|
|
|
|
|
+ sysUserAccount.setDocumentaryStatus("2"); // 收入
|
|
|
|
|
+ sysUserAccount.setSuborderId(orderNo); // 订单Id
|
|
|
|
|
+ sysUserAccountService.addOrUpdate(sysUserAccount);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ String deptid = insFeeOrderNew.getDeptId();
|
|
|
|
|
+ String distributionStatus = insFeeOrderNew.getDistributionStatus();
|
|
|
|
|
+ // 定义一个数组来存储各级机构的管理费
|
|
|
|
|
+ BigDecimal[] jqDeptPremiumsLevels = {insFeeOrderNew.getJqDeptPremiumsLevel1(), insFeeOrderNew.getJqDeptPremiumsLevel2(),
|
|
|
|
|
+ insFeeOrderNew.getJqDeptPremiumsLevel3(), insFeeOrderNew.getJqDeptPremiumsLevel4(),
|
|
|
|
|
+ insFeeOrderNew.getJqDeptPremiumsLevel5()};
|
|
|
|
|
+ BigDecimal[] syDeptPremiumsLevels = {insFeeOrderNew.getSyDeptPremiumsLevel1(), insFeeOrderNew.getSyDeptPremiumsLevel2(),
|
|
|
|
|
+ insFeeOrderNew.getSyDeptPremiumsLevel3(), insFeeOrderNew.getSyDeptPremiumsLevel4(),
|
|
|
|
|
+ insFeeOrderNew.getSyDeptPremiumsLevel5()};
|
|
|
|
|
+ BigDecimal[] noDeptPremiumsLevels = {insFeeOrderNew.getNoDeptPremiumsLevel1(), insFeeOrderNew.getNoDeptPremiumsLevel2(),
|
|
|
|
|
+ insFeeOrderNew.getNoDeptPremiumsLevel3(), insFeeOrderNew.getNoDeptPremiumsLevel4(),
|
|
|
|
|
+ insFeeOrderNew.getNoDeptPremiumsLevel5()};
|
|
|
|
|
+
|
|
|
|
|
+ for (int i = 1; i <= 5; i++) {
|
|
|
|
|
+ // 根据循环次数确定机构ID的长度,第五级为11
|
|
|
|
|
+ String levelDeptId = deptid.substring(0, (i == 5) ? 11 : i * 2);
|
|
|
|
|
+ // 获取对应级别的机构信息
|
|
|
|
|
+ SysDeptAccount levelSysDeptAccount = sysDeptAccountService.getOne(new LambdaQueryWrapper<SysDeptAccount>()
|
|
|
|
|
+ .eq(SysDeptAccount::getDeptId, levelDeptId));
|
|
|
|
|
+
|
|
|
|
|
+ // 初始化管理费总额为0
|
|
|
|
|
+ BigDecimal sumManagementFee = BigDecimal.ZERO;
|
|
|
|
|
+
|
|
|
|
|
+ // 根据分销等级和分销用户情况计算分销费用
|
|
|
|
|
+ BigDecimal distributionFee = BigDecimal.ZERO;
|
|
|
|
|
+ if (i == 5) {
|
|
|
|
|
+ if (InsFeeAuditDistributionStatusEnum.DS_2.getCode().equals(distributionStatus) && insFeeOrderNew.getTwoLevelUserId() == null) {
|
|
|
|
|
+ distributionFee = insFeeOrderNew.getSecondDetailPremiums();
|
|
|
|
|
+ } else if (InsFeeAuditDistributionStatusEnum.DS_3.getCode().equals(distributionStatus) && insFeeOrderNew.getThreeLevelUserId() == null) {
|
|
|
|
|
+ distributionFee = insFeeOrderNew.getThirdDetailPremiums();
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- } else if ("2".equals(distributionStatus)) {
|
|
|
|
|
- BigDecimal totalDept = BigDecimal.ZERO;
|
|
|
|
|
- if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
|
|
|
|
|
- String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
|
|
|
|
|
- BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
|
|
|
|
|
- this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
|
|
|
|
|
- }else {
|
|
|
|
|
- totalDept = totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 根据分销等级计算管理费总额
|
|
|
|
|
+ if (i == 5) {
|
|
|
|
|
+ sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(syDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(noDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(distributionFee);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sumManagementFee = sumManagementFee.add(jqDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(syDeptPremiumsLevels[i - 1])
|
|
|
|
|
+ .add(noDeptPremiumsLevels[i - 1]);
|
|
|
}
|
|
}
|
|
|
- if(StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())){
|
|
|
|
|
- String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
|
|
|
|
|
- BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
|
|
|
|
|
- this.saveUpdateAccount(twoLevelUserId,secondDetailProportion,orderNo);
|
|
|
|
|
- }else {
|
|
|
|
|
- totalDept =totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 如果机构信息不为空,更新管理费并记录历史
|
|
|
|
|
+ if (levelSysDeptAccount != null) {
|
|
|
|
|
+ levelSysDeptAccount.setManagementFee(levelSysDeptAccount.getManagementFee().add(sumManagementFee));
|
|
|
|
|
+ sysDeptAccountService.updateById(levelSysDeptAccount);
|
|
|
|
|
+ // 记录历史信息
|
|
|
|
|
+ SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
|
|
|
|
|
+ sysDeptAccountHistory.setId(IdGenerate.nextId());
|
|
|
|
|
+ sysDeptAccountHistory.setDeptId(levelDeptId);
|
|
|
|
|
+ sysDeptAccountHistory.setAmount(sumManagementFee);
|
|
|
|
|
+ sysDeptAccountHistory.setSurplusAmount(levelSysDeptAccount.getManagementFee());
|
|
|
|
|
+ sysDeptAccountHistory.setDocumentary("2"); //收入
|
|
|
|
|
+ sysDeptAccountHistory.setSuborder(orderNo);
|
|
|
|
|
+ sysDeptAccountHistory.setFromBankCard(null);
|
|
|
|
|
+ sysDeptAccountHistory.setToBankCard(null);
|
|
|
|
|
+ sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
|
|
|
|
|
+ sysDeptAccountHistory.setCreateTime(new Date());
|
|
|
|
|
+ sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",分销费:" + distributionFee);
|
|
|
|
|
+ sysDeptAccountHistoryService.save(sysDeptAccountHistory);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 如果机构信息为空,新建机构信息并记录历史
|
|
|
|
|
+ SysDeptAccount sysDeptAccount = new SysDeptAccount();
|
|
|
|
|
+ sysDeptAccount.setDeptId(levelDeptId);
|
|
|
|
|
+ sysDeptAccount.setManagementFee(sumManagementFee);
|
|
|
|
|
+ sysDeptAccount.setCreateTime(new Date());
|
|
|
|
|
+ sysDeptAccountService.save(sysDeptAccount);
|
|
|
|
|
+ // 记录历史信息
|
|
|
|
|
+ SysDeptAccountHistory sysDeptAccountHistory = new SysDeptAccountHistory();
|
|
|
|
|
+ sysDeptAccountHistory.setId(IdGenerate.nextId());
|
|
|
|
|
+ sysDeptAccountHistory.setDeptId(levelDeptId);
|
|
|
|
|
+ sysDeptAccountHistory.setAmount(sumManagementFee);
|
|
|
|
|
+ sysDeptAccountHistory.setSurplusAmount(sumManagementFee);
|
|
|
|
|
+ sysDeptAccountHistory.setDocumentary("2"); //收入
|
|
|
|
|
+ sysDeptAccountHistory.setSuborder(orderNo);
|
|
|
|
|
+ sysDeptAccountHistory.setFromBankCard(null);
|
|
|
|
|
+ sysDeptAccountHistory.setToBankCard(null);
|
|
|
|
|
+ sysDeptAccountHistory.setUserId(BaseController.getUser().getId());
|
|
|
|
|
+ sysDeptAccountHistory.setCreateTime(new Date());
|
|
|
|
|
+ sysDeptAccountHistory.setRemark("交强" + i + "级机构管理费:" + jqDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",商业" + i + "级机构管理费:" + syDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",非车" + i + "级机构管理费:" + noDeptPremiumsLevels[i - 1] +
|
|
|
|
|
+ ",分销费:" + distributionFee);
|
|
|
|
|
+ sysDeptAccountHistoryService.save(sysDeptAccountHistory);
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void countUserAmount(InsFeeOrderNew insFeeOrderNew ,String orderNo) {
|
|
|
|
|
+ String distributionStatus = insFeeOrderNew.getDistributionStatus();
|
|
|
|
|
+ if(StringUtils.isNotEmpty(distributionStatus)){
|
|
|
|
|
+ if(InsFeeAuditDistributionStatusEnum.DS_3.getCode().equals(distributionStatus)){
|
|
|
|
|
+ BigDecimal totalDept = BigDecimal.ZERO;
|
|
|
|
|
+ if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
|
|
|
|
|
+ String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
|
|
|
|
|
+ BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
|
|
|
|
|
+ this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ totalDept = totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())){
|
|
|
|
|
+ String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
|
|
|
|
|
+ BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
|
|
|
|
|
+ this.saveUpdateAccount(twoLevelUserId,secondDetailProportion,orderNo);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ totalDept =totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotEmpty(insFeeOrderNew.getThreeLevelUserId())){
|
|
|
|
|
+ String threeLevelUserId = insFeeOrderNew.getThreeLevelUserId();
|
|
|
|
|
+ BigDecimal threeDetailPremiums = insFeeOrderNew.getThirdDetailPremiums();
|
|
|
|
|
+ this.saveUpdateAccount(threeLevelUserId,threeDetailPremiums,orderNo);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ totalDept =totalDept.add(insFeeOrderNew.getThirdDetailPremiums());
|
|
|
|
|
+ }
|
|
|
// 机构管理 费用给五级交钱机构管理费
|
|
// 机构管理 费用给五级交钱机构管理费
|
|
|
- if(totalDept.compareTo(BigDecimal.ZERO) ==0){
|
|
|
|
|
- BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
|
|
|
|
|
- jqDeptPremiumsLevel5.add(totalDept);
|
|
|
|
|
- insFeeOrderNewService.updateById(insFeeOrderNew);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(totalDept.compareTo(BigDecimal.ZERO) ==0){
|
|
|
|
|
+ BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
|
|
|
|
|
+ jqDeptPremiumsLevel5.add(totalDept);
|
|
|
|
|
+ insFeeOrderNewService.updateById(insFeeOrderNew);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else if (InsFeeAuditDistributionStatusEnum.DS_2.getCode().equals(distributionStatus)) {
|
|
|
|
|
+ BigDecimal totalDept = BigDecimal.ZERO;
|
|
|
|
|
+ if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
|
|
|
|
|
+ String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
|
|
|
|
|
+ BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
|
|
|
|
|
+ this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
|
|
|
}else {
|
|
}else {
|
|
|
|
|
+ totalDept = totalDept.add(insFeeOrderNew.getFirstDetailPremiums());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(StringUtils.isNotEmpty(insFeeOrderNew.getTwoLevelUserId())){
|
|
|
|
|
+ String twoLevelUserId = insFeeOrderNew.getTwoLevelUserId();
|
|
|
|
|
+ BigDecimal secondDetailProportion = insFeeOrderNew.getSecondDetailPremiums();
|
|
|
|
|
+ this.saveUpdateAccount(twoLevelUserId,secondDetailProportion,orderNo);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ totalDept =totalDept.add(insFeeOrderNew.getSecondDetailPremiums());
|
|
|
|
|
+ }
|
|
|
|
|
+// 机构管理 费用给五级交钱机构管理费
|
|
|
|
|
+ if(totalDept.compareTo(BigDecimal.ZERO) ==0){
|
|
|
|
|
+ BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
|
|
|
|
|
+ jqDeptPremiumsLevel5.add(totalDept);
|
|
|
|
|
+ insFeeOrderNewService.updateById(insFeeOrderNew);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else {
|
|
|
// 一级分销
|
|
// 一级分销
|
|
|
|
|
|
|
|
- if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
|
|
|
|
|
- String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
|
|
|
|
|
- BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
|
|
|
|
|
- this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
|
|
|
|
|
- }else {
|
|
|
|
|
- if(insFeeOrderNew.getFirstDetailPremiums().compareTo(BigDecimal.ZERO) ==0){
|
|
|
|
|
- BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
|
|
|
|
|
- jqDeptPremiumsLevel5.add(insFeeOrderNew.getFirstDetailPremiums());
|
|
|
|
|
- insFeeOrderNewService.updateById(insFeeOrderNew);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
|
|
|
|
|
+ String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
|
|
|
|
|
+ BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();
|
|
|
|
|
+ this.saveUpdateAccount(firstLevelUserId,firstDetailPremiums,orderNo);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ if(insFeeOrderNew.getFirstDetailPremiums().compareTo(BigDecimal.ZERO) ==0){
|
|
|
|
|
+ BigDecimal jqDeptPremiumsLevel5 = insFeeOrderNew.getJqDeptPremiumsLevel5();
|
|
|
|
|
+ jqDeptPremiumsLevel5.add(insFeeOrderNew.getFirstDetailPremiums());
|
|
|
|
|
+ insFeeOrderNewService.updateById(insFeeOrderNew);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private void saveUpdateAccount(String userId, BigDecimal amount, String orderNo) {
|
|
private void saveUpdateAccount(String userId, BigDecimal amount, String orderNo) {
|
|
|
SysUserAccount sysUserAccount = new SysUserAccount();
|
|
SysUserAccount sysUserAccount = new SysUserAccount();
|
|
|
sysUserAccount.setUserId(userId);
|
|
sysUserAccount.setUserId(userId);
|
|
@@ -284,7 +678,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
* @param insFeeOrder
|
|
* @param insFeeOrder
|
|
|
* @throws Exception
|
|
* @throws Exception
|
|
|
*/
|
|
*/
|
|
|
- private void gene_orderIncome( InsOrders order, InsFeeOrder insFeeOrder,InsAreaCompany plyDto) throws Exception{
|
|
|
|
|
|
|
+ private void gene_orderIncome( InsOrders order, InsFeeOrderNew insFeeOrder,InsAreaCompany plyDto) throws Exception{
|
|
|
|
|
|
|
|
InsPlyIncome insPlyIncome =new InsPlyIncome();
|
|
InsPlyIncome insPlyIncome =new InsPlyIncome();
|
|
|
insPlyIncome.setOrderno(order.getOrderno());
|
|
insPlyIncome.setOrderno(order.getOrderno());
|
|
@@ -331,7 +725,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
* @param insFeeOrder
|
|
* @param insFeeOrder
|
|
|
* @throws Exception
|
|
* @throws Exception
|
|
|
*/
|
|
*/
|
|
|
- private void gene_deptfee( InsOrders order, InsFeeOrder insFeeOrder,InsAreaCompany plyDto) throws Exception{
|
|
|
|
|
|
|
+ private void gene_deptfee( InsOrders order, InsFeeOrderNew insFeeOrder,InsAreaCompany plyDto) throws Exception{
|
|
|
InsDeptFee deptFee = new InsDeptFee();
|
|
InsDeptFee deptFee = new InsDeptFee();
|
|
|
deptFee.setOrderno(order.getOrderno());
|
|
deptFee.setOrderno(order.getOrderno());
|
|
|
if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
@@ -349,40 +743,70 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
|
|
|
deptFee.setPolicyno(plyDto.getJqpolicyno());
|
|
deptFee.setPolicyno(plyDto.getJqpolicyno());
|
|
|
deptFee.setRiskcode("交强");
|
|
deptFee.setRiskcode("交强");
|
|
|
deptFee.setLicenseno(order.getLicenseno());
|
|
deptFee.setLicenseno(order.getLicenseno());
|
|
|
- geneInsDeptFee(order, insFeeOrder, deptFee);
|
|
|
|
|
|
|
+ geneJqInsDeptFee(order, insFeeOrder, deptFee);
|
|
|
}
|
|
}
|
|
|
if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
|
|
if(StringUtils.isNotEmpty(plyDto.getSypolicyno())){
|
|
|
deptFee.setPolicyno(plyDto.getSypolicyno());
|
|
deptFee.setPolicyno(plyDto.getSypolicyno());
|
|
|
deptFee.setRiskcode("商业");
|
|
deptFee.setRiskcode("商业");
|
|
|
deptFee.setLicenseno(order.getLicenseno());
|
|
deptFee.setLicenseno(order.getLicenseno());
|
|
|
- geneInsDeptFee(order, insFeeOrder, deptFee);
|
|
|
|
|
|
|
+ geneSyInsDeptFee(order, insFeeOrder, deptFee);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private void geneInsDeptFee(InsOrders order, InsFeeOrder insFeeOrder, InsDeptFee deptFee) {
|
|
|
|
|
|
|
+ private void geneJqInsDeptFee(InsOrders order, InsFeeOrderNew insFeeOrder, InsDeptFee deptFee) {
|
|
|
|
|
+ if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
|
|
|
+ if (insFeeOrder.getJqDeptPremiumsLevel1().doubleValue() > 0) {
|
|
|
|
|
+ deptFee.setComcode(order.getDeptid().substring(0, 2)); //99140302M01D01
|
|
|
|
|
+ deptFee.setComlevel("一级");
|
|
|
|
|
+ insDeptFeeService.insert(deptFee);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (insFeeOrder.getJqDeptPremiumsLevel2().doubleValue() > 0) {
|
|
|
|
|
+ deptFee.setComcode(order.getDeptid().substring(0, 4)); //99140302M01D01
|
|
|
|
|
+ deptFee.setComlevel("二级");
|
|
|
|
|
+ insDeptFeeService.insert(deptFee);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (insFeeOrder.getJqDeptPremiumsLevel3().doubleValue() > 0) {
|
|
|
|
|
+ deptFee.setComcode(order.getDeptid().substring(0, 6)); //99140302M01D01
|
|
|
|
|
+ deptFee.setComlevel("三级");
|
|
|
|
|
+ insDeptFeeService.insert(deptFee);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (insFeeOrder.getJqDeptPremiumsLevel4().doubleValue() > 0) {
|
|
|
|
|
+ deptFee.setComcode(order.getDeptid().substring(0, 8)); //99140302M01D01
|
|
|
|
|
+ deptFee.setComlevel("四级");
|
|
|
|
|
+ insDeptFeeService.insert(deptFee);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (insFeeOrder.getJqDeptPremiumsLevel5().doubleValue() > 0) {
|
|
|
|
|
+ deptFee.setComcode(order.getDeptid().substring(0, 11)); //99140302M01D01
|
|
|
|
|
+ deptFee.setComlevel("五级");
|
|
|
|
|
+ insDeptFeeService.insert(deptFee);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void geneSyInsDeptFee(InsOrders order, InsFeeOrderNew insFeeOrder, InsDeptFee deptFee) {
|
|
|
if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
if(!ObjectUtils.isEmpty(insFeeOrder)){
|
|
|
- if (insFeeOrder.getFirstDeptPremiums().doubleValue() > 0) {
|
|
|
|
|
|
|
+ if (insFeeOrder.getSyDeptPremiumsLevel1().doubleValue() > 0) {
|
|
|
deptFee.setComcode(order.getDeptid().substring(0, 2)); //99140302M01D01
|
|
deptFee.setComcode(order.getDeptid().substring(0, 2)); //99140302M01D01
|
|
|
deptFee.setComlevel("一级");
|
|
deptFee.setComlevel("一级");
|
|
|
insDeptFeeService.insert(deptFee);
|
|
insDeptFeeService.insert(deptFee);
|
|
|
}
|
|
}
|
|
|
- if (insFeeOrder.getSecondDeptPremiums().doubleValue() > 0) {
|
|
|
|
|
|
|
+ if (insFeeOrder.getSyDeptPremiumsLevel2().doubleValue() > 0) {
|
|
|
deptFee.setComcode(order.getDeptid().substring(0, 4)); //99140302M01D01
|
|
deptFee.setComcode(order.getDeptid().substring(0, 4)); //99140302M01D01
|
|
|
deptFee.setComlevel("二级");
|
|
deptFee.setComlevel("二级");
|
|
|
insDeptFeeService.insert(deptFee);
|
|
insDeptFeeService.insert(deptFee);
|
|
|
}
|
|
}
|
|
|
- if (insFeeOrder.getThirdDeptPremiums().doubleValue() > 0) {
|
|
|
|
|
|
|
+ if (insFeeOrder.getSyDeptPremiumsLevel3().doubleValue() > 0) {
|
|
|
deptFee.setComcode(order.getDeptid().substring(0, 6)); //99140302M01D01
|
|
deptFee.setComcode(order.getDeptid().substring(0, 6)); //99140302M01D01
|
|
|
deptFee.setComlevel("三级");
|
|
deptFee.setComlevel("三级");
|
|
|
insDeptFeeService.insert(deptFee);
|
|
insDeptFeeService.insert(deptFee);
|
|
|
}
|
|
}
|
|
|
- if (insFeeOrder.getForthDeptPremiums().doubleValue() > 0) {
|
|
|
|
|
|
|
+ if (insFeeOrder.getSyDeptPremiumsLevel4().doubleValue() > 0) {
|
|
|
deptFee.setComcode(order.getDeptid().substring(0, 8)); //99140302M01D01
|
|
deptFee.setComcode(order.getDeptid().substring(0, 8)); //99140302M01D01
|
|
|
deptFee.setComlevel("四级");
|
|
deptFee.setComlevel("四级");
|
|
|
insDeptFeeService.insert(deptFee);
|
|
insDeptFeeService.insert(deptFee);
|
|
|
}
|
|
}
|
|
|
- if (insFeeOrder.getFifthDeptPremiums().doubleValue() > 0) {
|
|
|
|
|
|
|
+ if (insFeeOrder.getSyDeptPremiumsLevel5().doubleValue() > 0) {
|
|
|
deptFee.setComcode(order.getDeptid().substring(0, 11)); //99140302M01D01
|
|
deptFee.setComcode(order.getDeptid().substring(0, 11)); //99140302M01D01
|
|
|
deptFee.setComlevel("五级");
|
|
deptFee.setComlevel("五级");
|
|
|
insDeptFeeService.insert(deptFee);
|
|
insDeptFeeService.insert(deptFee);
|