Эх сурвалжийг харах

合伙人费用、比例限制

helixiao 1 жил өмнө
parent
commit
819cdc3ea9

+ 10 - 0
src/main/java/com/ydtech/modules/admin/controller/SysPartnerController.java

@@ -1,6 +1,8 @@
 package com.ydtech.modules.admin.controller;
 
+import com.ydtech.aop.exception.DescribeException;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.SysProportionConfigMapper;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysPartner;
@@ -194,6 +196,14 @@ public class SysPartnerController extends BaseController {
     @PostMapping("/addProportionConfig")
     @ApiOperation(value = "比例配置")
     public HttpResult add(@RequestBody SysProportionConfig sysProportionConfig) {
+        String proportion = sysProportionConfig.getProportion();
+        String proportionNum = sysProportionConfig.getOneProportion()+sysProportionConfig.getTwoProportion()
+                +sysProportionConfig.getThreeProportion()+sysProportionConfig.getFourProportion()
+                +sysProportionConfig.getFiveProportion();
+
+        if (proportion.equals(proportionNum)) {
+            throw new SystemException("总比例必须等于每级合伙人比例和");
+        }
         Long id = sysProportionConfig.getId();
         boolean b =false;
         if (id == null) {

+ 4 - 2
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -938,8 +938,10 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         String userId = BaseController.getUserId();
         SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
                 .eq(SysPartnerAccount::getUserId, userId));
-        appPartnerNumVo.setSumPremium(sysPartnerAccount.getSumPremium());
-        appPartnerNumVo.setExtractFee(sysPartnerAccount.getExtractFee());
+        if (sysPartnerAccount != null) {
+            appPartnerNumVo.setSumPremium(sysPartnerAccount.getSumPremium());
+            appPartnerNumVo.setExtractFee(sysPartnerAccount.getExtractFee());
+        }
         if (type == 1) {
             //下面合伙人(直接+间接)数量
             List<SysRelationPerson> sysRelationPersonList1 = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()

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

@@ -355,31 +355,31 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 }
                 sysChannelCostService.updateBatchById(costList);
             }
-//            //抽层状态修改
-//            sysPremiumDetailsMapper.updateStatus(insAreaCompany.getId());
-//            List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
-//                    .eq(SysPremiumDetails::getCompanyId,insAreaCompany.getId()).eq(SysPremiumDetails::getType,2));
-//            if (sysPremiumDetails.size()>0) {
-//                for (SysPremiumDetails sysPremiumDetail : sysPremiumDetails) {
-//                    SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
-//                            .eq(SysPartnerAccount::getUserId,sysPremiumDetail.getUserId()));
-//                    if (sysPartnerAccount == null) {
-//                        SysPartnerAccount sysPartnerAccount1 = new SysPartnerAccount();
-//                        sysPartnerAccount1.setCreateTime(new Date());
-//                        sysPartnerAccount1.setSumPremium(sysPremiumDetail.getSumpremium());
-//                        sysPartnerAccount1.setExtractFee(sysPremiumDetail.getExtractFee());
-//                        sysPartnerAccount1.setCashFee(sysPremiumDetail.getExtractFee());
-//                        sysPartnerAccount1.setUserId(sysPremiumDetail.getUserId());
-//                        sysPartnerAccountMapper.insert(sysPartnerAccount1);
-//                    }else {
-//                        sysPartnerAccount.setSumPremium(sysPartnerAccount.getSumPremium().add(sysPremiumDetail.getSumpremium()));
-//                        sysPartnerAccount.setExtractFee(sysPartnerAccount.getExtractFee().add(sysPremiumDetail.getExtractFee()));
-//                        sysPartnerAccount.setCashFee(sysPartnerAccount.getCashFee().add(sysPremiumDetail.getExtractFee()));
-//                        sysPartnerAccountMapper.updateById(sysPartnerAccount);
-//                    }
-//                }
-//
-//            }
+            //抽层状态修改
+            sysPremiumDetailsMapper.updateStatus(insAreaCompany.getId());
+            List<SysPremiumDetails> sysPremiumDetails = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
+                    .eq(SysPremiumDetails::getCompanyId,insAreaCompany.getId()).eq(SysPremiumDetails::getType,2));
+            if (sysPremiumDetails.size()>0) {
+                for (SysPremiumDetails sysPremiumDetail : sysPremiumDetails) {
+                    SysPartnerAccount sysPartnerAccount = sysPartnerAccountMapper.selectOne(new LambdaQueryWrapper<SysPartnerAccount>()
+                            .eq(SysPartnerAccount::getUserId,sysPremiumDetail.getUserId()));
+                    if (sysPartnerAccount == null) {
+                        SysPartnerAccount sysPartnerAccount1 = new SysPartnerAccount();
+                        sysPartnerAccount1.setCreateTime(new Date());
+                        sysPartnerAccount1.setSumPremium(sysPremiumDetail.getSumpremium());
+                        sysPartnerAccount1.setExtractFee(sysPremiumDetail.getExtractFee());
+                        sysPartnerAccount1.setCashFee(sysPremiumDetail.getExtractFee());
+                        sysPartnerAccount1.setUserId(sysPremiumDetail.getUserId());
+                        sysPartnerAccountMapper.insert(sysPartnerAccount1);
+                    }else {
+                        sysPartnerAccount.setSumPremium(sysPartnerAccount.getSumPremium().add(sysPremiumDetail.getSumpremium()));
+                        sysPartnerAccount.setExtractFee(sysPartnerAccount.getExtractFee().add(sysPremiumDetail.getExtractFee()));
+                        sysPartnerAccount.setCashFee(sysPartnerAccount.getCashFee().add(sysPremiumDetail.getExtractFee()));
+                        sysPartnerAccountMapper.updateById(sysPartnerAccount);
+                    }
+                }
+
+            }
         } catch (Exception e) {
             throw new SystemException("当前业务繁忙,请稍后重试");
         } finally {

+ 104 - 71
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -197,6 +197,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Resource
     private InsOrdersMapper insOrdersMapper;
 
+    @Resource
+    private SysProportionConfigMapper sysProportionConfigMapper;
+
 
 
     public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
@@ -254,80 +257,110 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             insOrders.setInsCompany(insAreaCompany.getInscompany());
             insOrders.setInsureTime(insAreaCompany.getPayDate());
             //已承保记录保费数据
-//            String userId = insOrders.getUserid();
-//
-//            SysDept sysDept = sysDeptService.getById(insOrders.getDeptid());
-//            if (sysDept != null) {
-//                SysPremiumDetails sysPremiumDetailsInfo = new SysPremiumDetails();
-//                sysPremiumDetailsInfo.setUserId(userId);
-//                sysPremiumDetailsInfo.setUserName(insOrders.getUsername());
-//                sysPremiumDetailsInfo.setCompanyId(insAreaCompany.getId());
-//                sysPremiumDetailsInfo.setOrderno(insAreaCompany.getOrderno());
-//                sysPremiumDetailsInfo.setJqpremium(insAreaCompany.getJqpremium());
-//                sysPremiumDetailsInfo.setJypremium(insAreaCompany.getJypremium());
-//                sysPremiumDetailsInfo.setSypremium(insAreaCompany.getSypremium());
-//                sysPremiumDetailsInfo.setSumpremium(insAreaCompany.getJqpremium().add(insAreaCompany.getJypremium()).add(insAreaCompany.getSypremium()));
-//                sysPremiumDetailsInfo.setStatus(0);
-//                sysPremiumDetailsInfo.setType(1);
-//                sysPremiumDetailsInfo.setCreateTime(new Date());
-//                sysPremiumDetailsInfo.setIndustrySector(1);
-//                sysPremiumDetailsMapper.insert(sysPremiumDetailsInfo);
-//
-//                String deptId=getFiveDeptId(sysDept);
-//                //工作室管理员抽层费用记录
-//                SysAgencyLeader sysAgencyLeader = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>()
-//                        .eq(SysAgencyLeader::getDeptId, deptId).eq(SysAgencyLeader::getDelFlag,1));
-//                if (sysAgencyLeader != null) {
-//                    SysPremiumDetails sysPremiumDetails = new SysPremiumDetails();
-//                    sysPremiumDetails.setUserId(sysAgencyLeader.getUserId());
-//                    sysPremiumDetails.setUserName(sysAgencyLeader.getUserName());
-//                    sysPremiumDetails.setCompanyId(insAreaCompany.getId());
-//                    sysPremiumDetails.setOrderno(insAreaCompany.getOrderno());
-//                    sysPremiumDetails.setJqpremium(insAreaCompany.getJqpremium());
-//                    sysPremiumDetails.setJypremium(insAreaCompany.getJypremium());
-//                    sysPremiumDetails.setSypremium(insAreaCompany.getSypremium());
-//                    sysPremiumDetails.setSumpremium(insAreaCompany.getJqpremium().add(insAreaCompany.getJypremium()).add(insAreaCompany.getSypremium()));
-//                    sysPremiumDetails.setProportional(sysAgencyLeader.getProportional());
-//                    sysPremiumDetails.setStatus(0);
-//                    sysPremiumDetails.setType(2);
-//                    sysPremiumDetails.setIssuerId(userId);
-//                    sysPremiumDetails.setIssuerName(insOrders.getUsername());
-//                    sysPremiumDetails.setExtractFee(sysPremiumDetails.getSumpremium().multiply(new BigDecimal(sysAgencyLeader.getProportional())
-//                            .divide(new BigDecimal("100"))).setScale(5, RoundingMode.DOWN));
-//                    sysPremiumDetails.setCreateTime(new Date());
-//                    sysPremiumDetails.setIndustrySector(1);
-//                    sysPremiumDetailsMapper.insert(sysPremiumDetails);
-//                    //工合伙人抽层费用记录
-//                    List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
-//                            .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeader.getUserId()).eq(SysRelationPerson::getType, 1));
-//                    if (sysRelationPersonList.size()>0) {
-//                        for (SysRelationPerson sysRelationPerson : sysRelationPersonList) {
-//                            SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
-//                                    .eq(SysPartner::getUserId, sysRelationPerson.getSuggestId()).eq(SysPartner::getDelFlag, 1));
-//                            if (sysPartner == null) continue;
-//                            SysPremiumDetails sysPremiumDetail = new SysPremiumDetails();
-//                            sysPremiumDetail.setUserId(sysPartner.getUserId());
-//                            sysPremiumDetail.setUserName(sysPartner.getUserName());
-//                            sysPremiumDetail.setCompanyId(insAreaCompany.getId());
-//                            sysPremiumDetail.setOrderno(insAreaCompany.getOrderno());
-//                            sysPremiumDetail.setJqpremium(insAreaCompany.getJqpremium());
-//                            sysPremiumDetail.setJypremium(insAreaCompany.getJypremium());
-//                            sysPremiumDetail.setSypremium(insAreaCompany.getSypremium());
-//                            sysPremiumDetail.setSumpremium(insAreaCompany.getJqpremium().add(insAreaCompany.getJypremium()).add(insAreaCompany.getSypremium()));
+            String userId = insOrders.getUserid();
+
+            SysDept sysDept = sysDeptService.getById(insOrders.getDeptid());
+            if (sysDept != null) {
+                SysPremiumDetails sysPremiumDetailsInfo = new SysPremiumDetails();
+                sysPremiumDetailsInfo.setUserId(userId);
+                sysPremiumDetailsInfo.setUserName(insOrders.getUsername());
+                sysPremiumDetailsInfo.setCompanyId(insAreaCompany.getId());
+                sysPremiumDetailsInfo.setOrderno(insAreaCompany.getOrderno());
+                sysPremiumDetailsInfo.setJqpremium(insAreaCompany.getJqpremium());
+                sysPremiumDetailsInfo.setJypremium(insAreaCompany.getJypremium());
+                sysPremiumDetailsInfo.setSypremium(insAreaCompany.getSypremium());
+                sysPremiumDetailsInfo.setSumpremium(insAreaCompany.getJqpremium().add(insAreaCompany.getJypremium()).add(insAreaCompany.getSypremium()));
+                sysPremiumDetailsInfo.setStatus(0);
+                sysPremiumDetailsInfo.setType(1);
+                sysPremiumDetailsInfo.setCreateTime(new Date());
+                sysPremiumDetailsInfo.setIndustrySector(1);
+                sysPremiumDetailsMapper.insert(sysPremiumDetailsInfo);
+
+                String deptId=getFiveDeptId(sysDept);
+                //工作室管理员抽层费用记录
+                SysAgencyLeader sysAgencyLeader = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>()
+                        .eq(SysAgencyLeader::getDeptId, deptId).eq(SysAgencyLeader::getDelFlag,1));
+                if (sysAgencyLeader != null) {
+                    SysPremiumDetails sysPremiumDetails = new SysPremiumDetails();
+                    sysPremiumDetails.setUserId(sysAgencyLeader.getUserId());
+                    sysPremiumDetails.setUserName(sysAgencyLeader.getUserName());
+                    sysPremiumDetails.setCompanyId(insAreaCompany.getId());
+                    sysPremiumDetails.setOrderno(insAreaCompany.getOrderno());
+                    sysPremiumDetails.setJqpremium(insAreaCompany.getJqpremium());
+                    sysPremiumDetails.setJypremium(insAreaCompany.getJypremium());
+                    sysPremiumDetails.setSypremium(insAreaCompany.getSypremium());
+                    sysPremiumDetails.setSumpremium(insAreaCompany.getJqpremium().add(insAreaCompany.getJypremium()).add(insAreaCompany.getSypremium()));
+                    sysPremiumDetails.setProportional(sysAgencyLeader.getProportional());
+                    sysPremiumDetails.setStatus(0);
+                    sysPremiumDetails.setType(2);
+                    sysPremiumDetails.setIssuerId(userId);
+                    sysPremiumDetails.setIssuerName(insOrders.getUsername());
+                    sysPremiumDetails.setExtractFee(sysPremiumDetails.getSumpremium().multiply(new BigDecimal(sysAgencyLeader.getProportional())
+                            .divide(new BigDecimal("100"))).setScale(5, RoundingMode.DOWN));
+                    sysPremiumDetails.setCreateTime(new Date());
+                    sysPremiumDetails.setIndustrySector(1);
+                    sysPremiumDetailsMapper.insert(sysPremiumDetails);
+                    //查询一级合伙人的比例配置
+                    SysRelationPerson sysRelationPerson1 = sysRelationPersonMapper.selectOne(new LambdaQueryWrapper<SysRelationPerson>()
+                            .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeader.getUserId())
+                            .eq(SysRelationPerson::getType, 1).eq(SysRelationPerson::getSuggestLevel, 1));
+                    SysProportionConfig sysProportionConfig = sysProportionConfigMapper.selectOne(new LambdaQueryWrapper<SysProportionConfig>()
+                            .eq(SysProportionConfig::getUserId, sysRelationPerson1.getSuggestId()));
+
+                    //合伙人抽层费用记录
+                    List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                            .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeader.getUserId()).eq(SysRelationPerson::getType, 1));
+
+                    if (sysRelationPersonList.size()>0) {
+                        for (SysRelationPerson sysRelationPerson : sysRelationPersonList) {
+                            SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
+                                    .eq(SysPartner::getUserId, sysRelationPerson.getSuggestId()).eq(SysPartner::getDelFlag, 1));
+                            if (sysPartner == null) continue;
+                            SysPremiumDetails sysPremiumDetail = new SysPremiumDetails();
+                            sysPremiumDetail.setUserId(sysPartner.getUserId());
+                            sysPremiumDetail.setUserName(sysPartner.getUserName());
+                            sysPremiumDetail.setCompanyId(insAreaCompany.getId());
+                            sysPremiumDetail.setOrderno(insAreaCompany.getOrderno());
+                            sysPremiumDetail.setJqpremium(insAreaCompany.getJqpremium());
+                            sysPremiumDetail.setJypremium(insAreaCompany.getJypremium());
+                            sysPremiumDetail.setSypremium(insAreaCompany.getSypremium());
+                            sysPremiumDetail.setSumpremium(insAreaCompany.getJqpremium().add(insAreaCompany.getJypremium()).add(insAreaCompany.getSypremium()));
+                            sysPremiumDetail.setStatus(0);
+                            sysPremiumDetail.setType(2);
+                            sysPremiumDetail.setIssuerId(userId);
+                            sysPremiumDetail.setIssuerName(insOrders.getUsername());
+                            sysPremiumDetail.setCreateTime(new Date());
+                            sysPremiumDetail.setIndustrySector(1);
+                            int suggestLevel = sysRelationPerson.getSuggestLevel();
+                            if (suggestLevel == 1) {
+                                sysPremiumDetail.setProportional(sysProportionConfig.getOneProportion());
+                                sysPremiumDetail.setExtractFee(sysPremiumDetail.getSumpremium().multiply(new BigDecimal(sysProportionConfig.getOneProportion())
+                                        .divide(new BigDecimal("100"))).setScale(5, RoundingMode.DOWN));
+                            }else if (suggestLevel == 2) {
+                                sysPremiumDetail.setProportional(sysProportionConfig.getTwoProportion());
+                                sysPremiumDetail.setExtractFee(sysPremiumDetail.getSumpremium().multiply(new BigDecimal(sysProportionConfig.getTwoProportion())
+                                        .divide(new BigDecimal("100"))).setScale(5, RoundingMode.DOWN));
+                            }else if (suggestLevel == 3) {
+                                sysPremiumDetail.setProportional(sysProportionConfig.getThreeProportion());
+                                sysPremiumDetail.setExtractFee(sysPremiumDetail.getSumpremium().multiply(new BigDecimal(sysProportionConfig.getThreeProportion())
+                                        .divide(new BigDecimal("100"))).setScale(5, RoundingMode.DOWN));
+                            }else if (suggestLevel == 4) {
+                                sysPremiumDetail.setProportional(sysProportionConfig.getFourProportion());
+                                sysPremiumDetail.setExtractFee(sysPremiumDetail.getSumpremium().multiply(new BigDecimal(sysProportionConfig.getFourProportion())
+                                        .divide(new BigDecimal("100"))).setScale(5, RoundingMode.DOWN));
+                            }else if (suggestLevel == 5) {
+                                sysPremiumDetail.setProportional(sysProportionConfig.getFiveProportion());
+                                sysPremiumDetail.setExtractFee(sysPremiumDetail.getSumpremium().multiply(new BigDecimal(sysProportionConfig.getFiveProportion())
+                                        .divide(new BigDecimal("100"))).setScale(5, RoundingMode.DOWN));
+                            }
 //                            sysPremiumDetail.setProportional(sysPartner.getProportional());
-//                            sysPremiumDetail.setStatus(0);
-//                            sysPremiumDetail.setType(2);
-//                            sysPremiumDetail.setIssuerId(userId);
-//                            sysPremiumDetail.setIssuerName(insOrders.getUsername());
 //                            sysPremiumDetail.setExtractFee(sysPremiumDetail.getSumpremium().multiply(new BigDecimal(sysPartner.getProportional())
 //                                    .divide(new BigDecimal("100"))).setScale(5, RoundingMode.DOWN));
-//                            sysPremiumDetail.setCreateTime(new Date());
-//                            sysPremiumDetail.setIndustrySector(1);
-//                            sysPremiumDetailsMapper.insert(sysPremiumDetail);
-//                        }
-//                    }
-//                }
-//            }
+                            sysPremiumDetailsMapper.insert(sysPremiumDetail);
+                        }
+                    }
+                }
+            }
         }
 
         if (InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(insOrders.getOrderstatus())) {