Selaa lähdekoodia

1. 审核生成用户 手续费佣金

wuhp 2 vuotta sitten
vanhempi
commit
02b848e6e8

+ 118 - 1
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -29,6 +29,7 @@ import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.protocol.entity.po.*;
 import com.ydtech.modules.protocol.service.*;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.math.NumberUtils;
 import org.springframework.stereotype.Service;
@@ -1779,7 +1780,7 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         detailLevel3FeeResultVo.setFcFeeAmountAll(fcDetailFeePremium3.setScale(2,BigDecimal.ROUND_DOWN).toString());
         queryOrderFeeResultVos.add(detailLevel3FeeResultVo);
 
-        return queryOrderFeeResultVos;
+            return queryOrderFeeResultVos;
     }
 
     //把取出的费用信息转换为页面需要展示的数据
@@ -2607,4 +2608,120 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         result.append(feeSchemeReqDto.getBusType());
         return result.toString();
     }
+
+    public List<FeeOrderNewVo> newConvertOrderFeeVoData(InsFeeOrderNew insFeeOrderNew) {
+        ArrayList<FeeOrderNewVo> returnList = new ArrayList<>();
+        FeeOrderNewVo jqfeeOrderNewVo = new FeeOrderNewVo();
+
+        jqfeeOrderNewVo.setInsuranceType("交强险");  // 险种
+        jqfeeOrderNewVo.setPremium(insFeeOrderNew.getJqPremium());  //保费
+        jqfeeOrderNewVo.setTotalAmount(insFeeOrderNew.getJqCostsPremiums());   //总费用
+        jqfeeOrderNewVo.setTotalProportion(insFeeOrderNew.getJqCostsProportion()); //总保费
+        jqfeeOrderNewVo.setSySuperviseCostsPremiums(insFeeOrderNew.getJqSuperviseCostsPremiums());   //手续费
+        jqfeeOrderNewVo.setOtherCostsProportion(insFeeOrderNew.getJqOtherCostsProportion());   // 跟单比例
+        jqfeeOrderNewVo.setOtherCostsPremiums(insFeeOrderNew.getJqOtherCostsPremiums());      // 跟单费
+        jqfeeOrderNewVo.setSuperviseCosts(insFeeOrderNew.getJqSuperviseCostsProportion());  // 手续费比例
+        // 五级管理费
+        jqfeeOrderNewVo.setDeptProportionLevelOne(insFeeOrderNew.getJqDeptProportionLevel1());
+        jqfeeOrderNewVo.setDeptPremiumsLevelOne(insFeeOrderNew.getJqDeptPremiumsLevel1());
+        jqfeeOrderNewVo.setDeptProportionLevelTwo(insFeeOrderNew.getJqDeptProportionLevel2());
+        jqfeeOrderNewVo.setDeptPremiumsLevelTwo(insFeeOrderNew.getJqDeptPremiumsLevel2());
+        jqfeeOrderNewVo.setDeptProportionLevelThree(insFeeOrderNew.getJqDeptProportionLevel3());
+        jqfeeOrderNewVo.setDeptPremiumsLevelThree(insFeeOrderNew.getJqDeptPremiumsLevel3());
+        jqfeeOrderNewVo.setDeptProportionLevelFoure(insFeeOrderNew.getJqDeptProportionLevel4());
+        jqfeeOrderNewVo.setDeptPremiumsLevelFoure(insFeeOrderNew.getJqDeptPremiumsLevel4());
+        jqfeeOrderNewVo.setDeptProportionLevelFive(insFeeOrderNew.getJqDeptProportionLevel5());
+        jqfeeOrderNewVo.setDeptPremiumsLevelFive(insFeeOrderNew.getJqDeptPremiumsLevel5());
+        returnList.add(jqfeeOrderNewVo);
+
+        FeeOrderNewVo syfeeOrderNewVo = new FeeOrderNewVo();
+
+        syfeeOrderNewVo.setInsuranceType("商业险");  // 险种
+        syfeeOrderNewVo.setPremium(insFeeOrderNew.getSyPremium());  //保费
+        syfeeOrderNewVo.setTotalProportion(insFeeOrderNew.getSyCostsProportion()); //总保费
+        syfeeOrderNewVo.setTotalAmount(insFeeOrderNew.getSyCostsPremiums());   //总费用
+        syfeeOrderNewVo.setSySuperviseCostsPremiums(insFeeOrderNew.getSySuperviseCostsPremiums());   //手续费
+        syfeeOrderNewVo.setOtherCostsProportion(insFeeOrderNew.getSyOtherCostsProportion());   // 跟单比例
+        syfeeOrderNewVo.setOtherCostsPremiums(insFeeOrderNew.getSyOtherCostsPremiums());      // 跟单费
+        syfeeOrderNewVo.setSuperviseCosts(insFeeOrderNew.getSySuperviseCostsProportion());  // 手续费比例
+
+        // 五级管理费
+        syfeeOrderNewVo.setDeptProportionLevelOne(insFeeOrderNew.getSyDeptProportionLevel1());
+        syfeeOrderNewVo.setDeptPremiumsLevelOne(insFeeOrderNew.getSyDeptPremiumsLevel1());
+        syfeeOrderNewVo.setDeptProportionLevelTwo(insFeeOrderNew.getSyDeptProportionLevel2());
+        syfeeOrderNewVo.setDeptPremiumsLevelTwo(insFeeOrderNew.getSyDeptPremiumsLevel2());
+        syfeeOrderNewVo.setDeptProportionLevelThree(insFeeOrderNew.getSyDeptProportionLevel3());
+        syfeeOrderNewVo.setDeptPremiumsLevelThree(insFeeOrderNew.getSyDeptPremiumsLevel3());
+        syfeeOrderNewVo.setDeptProportionLevelFoure(insFeeOrderNew.getSyDeptProportionLevel4());
+        syfeeOrderNewVo.setDeptPremiumsLevelFoure(insFeeOrderNew.getSyDeptPremiumsLevel4());
+        syfeeOrderNewVo.setDeptProportionLevelFive(insFeeOrderNew.getSyDeptProportionLevel5());
+        syfeeOrderNewVo.setDeptPremiumsLevelFive(insFeeOrderNew.getSyDeptPremiumsLevel5());
+        returnList.add(syfeeOrderNewVo);
+
+
+        FeeOrderNewVo nofeeOrderNewVo = new FeeOrderNewVo();
+
+        nofeeOrderNewVo.setInsuranceType("非车险");  // 险种
+        nofeeOrderNewVo.setPremium(insFeeOrderNew.getNoPremium());  //保费
+        nofeeOrderNewVo.setTotalProportion(insFeeOrderNew.getNoCostsProportion()); //总保费
+        nofeeOrderNewVo.setTotalAmount(insFeeOrderNew.getNoCostsPremiums());   //总费用
+        nofeeOrderNewVo.setSySuperviseCostsPremiums(insFeeOrderNew.getNoSuperviseCostsPremiums());   //手续费
+        nofeeOrderNewVo.setOtherCostsProportion(insFeeOrderNew.getNoOtherCostsProportion());   // 跟单比例
+        nofeeOrderNewVo.setOtherCostsPremiums(insFeeOrderNew.getNoOtherCostsPremiums());      // 跟单费
+        nofeeOrderNewVo.setSuperviseCosts(insFeeOrderNew.getNoSuperviseCostsProportion());  // 手续费比例
+
+        // 五级管理费
+        nofeeOrderNewVo.setDeptProportionLevelOne(insFeeOrderNew.getNoDeptProportionLevel1());
+        nofeeOrderNewVo.setDeptPremiumsLevelOne(insFeeOrderNew.getNoDeptPremiumsLevel1());
+        nofeeOrderNewVo.setDeptProportionLevelTwo(insFeeOrderNew.getNoDeptProportionLevel2());
+        nofeeOrderNewVo.setDeptPremiumsLevelTwo(insFeeOrderNew.getNoDeptPremiumsLevel2());
+        nofeeOrderNewVo.setDeptProportionLevelThree(insFeeOrderNew.getNoDeptProportionLevel3());
+        nofeeOrderNewVo.setDeptPremiumsLevelThree(insFeeOrderNew.getNoDeptPremiumsLevel3());
+        nofeeOrderNewVo.setDeptProportionLevelFoure(insFeeOrderNew.getNoDeptProportionLevel4());
+        nofeeOrderNewVo.setDeptPremiumsLevelFoure(insFeeOrderNew.getNoDeptPremiumsLevel4());
+        nofeeOrderNewVo.setDeptProportionLevelFive(insFeeOrderNew.getNoDeptProportionLevel5());
+        nofeeOrderNewVo.setDeptPremiumsLevelFive(insFeeOrderNew.getNoDeptPremiumsLevel5());
+        returnList.add(nofeeOrderNewVo);
+        return returnList;
+    }
+
+    public List<DistributionLevelVo> converDistrbutionData(InsFeeOrderNew insFeeOrderNew) {
+        ArrayList<DistributionLevelVo> resultList = new ArrayList<>();
+        DistributionLevelVo  levelOne  =  new DistributionLevelVo();
+        levelOne.setDistributionLevel("一级分销");
+        String oneUserName=  this.getUserName(insFeeOrderNew.getFirstLevelUserId());
+        levelOne.setUserName(oneUserName);  //分销人
+        levelOne.setDistributionRatio(insFeeOrderNew.getFirstDetailProportion());  // 分销比例
+        levelOne.setAmount(insFeeOrderNew.getFirstDetailPremiums());   // 分销金额
+        resultList.add(levelOne);
+
+
+        DistributionLevelVo levelTwo = new DistributionLevelVo();
+        levelTwo.setDistributionLevel("二级分销");
+        String twoUserName=  this.getUserName(insFeeOrderNew.getTwoLevelUserId());
+        levelTwo.setUserName(twoUserName);  //分销人
+        levelTwo.setDistributionRatio(insFeeOrderNew.getSecondDetailProportion());  // 分销比例
+        levelTwo.setAmount(insFeeOrderNew.getSecondDetailPremiums());   // 分销金额
+        resultList.add(levelTwo);
+
+
+        DistributionLevelVo levelThree = new DistributionLevelVo();
+        levelThree.setDistributionLevel("三级分销");
+        String threeUserName=  this.getUserName(insFeeOrderNew.getThreeLevelUserId());
+        levelThree.setUserName(threeUserName);  //分销人
+        levelThree.setDistributionRatio(insFeeOrderNew.getThirdDetailProportion());  // 分销比例
+        levelThree.setAmount(insFeeOrderNew.getThirdDetailPremiums());   // 分销金额
+        resultList.add(levelThree);
+        return resultList;
+    }
+
+    private String getUserName(String firstLevelUserId) {
+        if(StringUtils.isNotEmpty(firstLevelUserId)){
+            SysUser sysUser = sysUserService.getBaseMapper().selectById(firstLevelUserId);
+            if(ObjectUtils.isNotEmpty(sysUser)){
+                return sysUser.getName();
+            }
+        }
+        return null;
+    }
 }

+ 21 - 4
src/main/java/com/ydtech/modules/fnc/service/impl/InsPlySettleServiceImpl.java

@@ -74,9 +74,13 @@ public class InsPlySettleServiceImpl extends ServiceImpl<InsPlySettleMapper, Ins
     @Transactional
     public HttpResult generateSettleAndDetail(GenerateSettleVo generateSettleVo) {
 
+
+//      保单号数组
         List<String> plyNoList= generateSettleVo.getPlyNoList();
+//      保险公司
         String companyId=generateSettleVo.getCompanyId();
         String deptId =generateSettleVo.getDeptId();
+//      结算月份
         String settleMonth=generateSettleVo.getSettleMonth();
         if(StringUtils.isNullOrEmpty(companyId)
                 ||StringUtils.isNullOrEmpty(deptId)
@@ -90,31 +94,42 @@ public class InsPlySettleServiceImpl extends ServiceImpl<InsPlySettleMapper, Ins
         if(plyNoList==null || plyNoList.size()==0){
             return HttpResult.error("结算清单不能传空");
         }
-        // 生成结算单号
-//        InsPlyIncome insPlyIncome_t=insPlyIncomeMapper.selectByPlyno(plyNoList.get(0));
+//      生成结算单号
+//      InsPlyIncome insPlyIncome_t=insPlyIncomeMapper.selectByPlyno(plyNoList.get(0));
         settleno = companyId+ DateUtil.yyyyMMddHHmmss(new Date());
         for(String plyNo:plyNoList){
             InsPlyIncome insPlyIncome=insPlyIncomeMapper.selectByPlyno(plyNo);
             InsPlySettleDetail insPlySettleDetail =new InsPlySettleDetail();
+
+
+
             insPlySettleDetail.setSettleno(settleno);
+//          订单号
             insPlySettleDetail.setOrderno(insPlyIncome.getOrderno());
+//          保单号
             insPlySettleDetail.setPolicyno(insPlyIncome.getPolicyno());
             insPlySettleDetail.setDeptId(insPlyIncome.getDeptId());
+//          手续费
             insPlySettleDetail.setCommissionFeevalue(insPlyIncome.getCommissionFeevalue());
+//          其他费用金额
             insPlySettleDetail.setOtherFeevalue(insPlyIncome.getOtherFeevalue());
+//          总费用
             insPlySettleDetail.setAllFeeValue(insPlyIncome.getAllFeeValue());
             insPlySettleDetail.setCreateTime(LocalDateTime.now());
             insPlySettleDetailMapper.insert(insPlySettleDetail);
-            //修改ins_ply_income
+            //修改ins_ply_income   将总费用转成计算费用
             insPlyIncome.setFinalFeeValue(insPlyIncome.getAllFeeValue());
             LambdaQueryWrapper<InsPlyIncome> queryWrapper=new LambdaQueryWrapper();
             queryWrapper.eq(InsPlyIncome::getPolicyno,plyNo);
             insPlyIncomeMapper.update(insPlyIncome,queryWrapper);
-
+//          手续费金额
             commissionFeevalue=commissionFeevalue.add(insPlyIncome.getCommissionFeevalue());
+//          其他费用金额
             otherFeevalue=otherFeevalue.add(insPlyIncome.getOtherFeevalue());
+//          总费用
             allFeeValue=allFeeValue.add(insPlyIncome.getAllFeeValue());
         }
+//      月度结算单汇总表
         InsPlySettle insPlySettle =new InsPlySettle();
         insPlySettle.setSettleno(settleno);
         insPlySettle.setCompanyId(companyId);
@@ -183,10 +198,12 @@ public class InsPlySettleServiceImpl extends ServiceImpl<InsPlySettleMapper, Ins
         insPlySettle.setHxamount(insPlySettle.getHxamount() ==null ? BigDecimal.ZERO:insPlySettle.getHxamount());
         insPlySettle.setCommissionHxamount(insPlySettle.getCommissionHxamount() ==null ? BigDecimal.ZERO:insPlySettle.getCommissionHxamount());
         insPlySettle.setOtherHxamount(insPlySettle.getOtherHxamount() ==null ? BigDecimal.ZERO:insPlySettle.getOtherHxamount());
+//       如果等于手续费时   核销金额  比  手续费 >0
         if(insPlySettleHx.getFeeType().equals("S")
                 &&insPlySettle.getCommissionHxamount().add(insPlySettleHx.getAmount()).compareTo(insPlySettle.getCommissionFeevalue())>0){
             return HttpResult.error("核销手续费金额已超过结算单手续费,请修改");
         }
+//      其他费用    核销金额 比 其他费用
         if(insPlySettleHx.getFeeType().equals("O")
                 &&insPlySettle.getOtherHxamount().add(insPlySettleHx.getAmount()).compareTo(insPlySettle.getOtherFeevalue())>0){
             return HttpResult.error("核销其他费用金额已超过结算单其他费用,请修改");

+ 25 - 0
src/main/java/com/ydtech/modules/order/entity/vo/DistributionLevelVo.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.order.entity.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(description = "分销明细")
+public class DistributionLevelVo implements Serializable {
+    @ApiModelProperty("分销等级")
+    private String distributionLevel;
+
+    @ApiModelProperty("接收人")
+    private String userName;
+
+    @ApiModelProperty("分销比例")
+    private BigDecimal distributionRatio;
+
+    @ApiModelProperty("金额")
+    private BigDecimal amount;
+}

+ 52 - 0
src/main/java/com/ydtech/modules/order/entity/vo/FeeOrderNewVo.java

@@ -0,0 +1,52 @@
+package com.ydtech.modules.order.entity.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.poi.hpsf.Decimal;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+@ApiModel(description = "费用明细")
+@Data
+public class FeeOrderNewVo implements Serializable {
+    @ApiModelProperty("险种")
+    private  String insuranceType;
+    @ApiModelProperty("保费")
+    private BigDecimal premium ;
+    @ApiModelProperty("总比例")
+    private BigDecimal totalProportion;
+    @ApiModelProperty("总费用")
+    private BigDecimal totalAmount;
+    @ApiModelProperty("手续费比例")
+    private BigDecimal superviseCosts;
+    @ApiModelProperty("手续费")
+    private  BigDecimal  sySuperviseCostsPremiums;
+    @ApiModelProperty("跟单比例")
+    private  BigDecimal otherCostsProportion;
+    @ApiModelProperty("跟单费")
+    private  BigDecimal otherCostsPremiums;
+    @ApiModelProperty("一级管理费比例")
+    private BigDecimal deptProportionLevelOne;
+    @ApiModelProperty("一级管理费")
+    private BigDecimal deptPremiumsLevelOne;
+    @ApiModelProperty("二级管理费比例")
+    private BigDecimal deptProportionLevelTwo;
+    @ApiModelProperty("二级管理费")
+    private BigDecimal deptPremiumsLevelTwo;
+    @ApiModelProperty("三级管理费比例")
+    private BigDecimal deptProportionLevelThree;
+    @ApiModelProperty("三级管理费")
+    private BigDecimal deptPremiumsLevelThree;
+    @ApiModelProperty("四级管理费比例")
+    private BigDecimal deptProportionLevelFoure;
+    @ApiModelProperty("四级管理费")
+    private BigDecimal deptPremiumsLevelFoure;
+    @ApiModelProperty("五级管理费比例")
+    private BigDecimal deptProportionLevelFive;
+    @ApiModelProperty("五级管理费")
+    private BigDecimal deptPremiumsLevelFive;
+
+}

+ 9 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderVo.java

@@ -350,5 +350,14 @@ public class OrderVo implements Serializable {
      * 费用审核时调整费用使用
      */
     private AdjustFeeDescVo adjustFeeDescVo;
+    /**
+     * 费用信息
+     */
+    private List<FeeOrderNewVo> feeOrderNewVoList;
+
+    /**
+     * 分销明细
+     */
+    private List<DistributionLevelVo>  distributionLevelVoList;
 
 }

+ 4 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -608,6 +608,10 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if (!Objects.isNull(insFeeOrderNew)) {
             List<QueryOrderFeeResultVo> orderFeeVoList = feeRuleSchemeService.convertOrderFeeVoData(insFeeOrderNew);
             orderAndAreaCompany.setOrderFeeResult(orderFeeVoList);
+            List<FeeOrderNewVo>  feeOrderNewVoList =   feeRuleSchemeService.newConvertOrderFeeVoData(insFeeOrderNew);
+            orderAndAreaCompany.setFeeOrderNewVoList(feeOrderNewVoList);
+            List<DistributionLevelVo> distributionLevelVoList = feeRuleSchemeService.converDistrbutionData(insFeeOrderNew);
+            orderAndAreaCompany.setDistributionLevelVoList(distributionLevelVoList);
         }
         //查询费用审核状态
         List<InsFeeAudit> feeAuditList = insFeeAuditService.query().eq("ins_order_no", companyId).list();