helixiao 2 лет назад
Родитель
Сommit
f1a8595fb3

+ 37 - 0
src/main/java/com/ydtech/modules/admin/controller/SysAgencyLeaderController.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.*;
@@ -154,6 +155,18 @@ public class SysAgencyLeaderController extends BaseController {
         return HttpResult.ok("success", this.sysAgencyLeaderService.queryExtractFeeAll(sysAgencyLeaderPageDto));
     }
 
+    @PostMapping("/queryExtractFeeList")
+    @ApiOperation(value = "查询所有机构负责人的保费抽成明细")
+    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryExtractFeeList(@RequestBody SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
+        if (sysAgencyLeaderPageDto.getPageNum() == 0) {
+            sysAgencyLeaderPageDto.setPageNum(1);
+        }
+        if (sysAgencyLeaderPageDto.getPageSize() == 0) {
+            sysAgencyLeaderPageDto.setPageSize(10);
+        }
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryExtractFeeList(sysAgencyLeaderPageDto));
+    }
+
 
     /**
      * 分页查询机构下所有团队的信息
@@ -198,5 +211,29 @@ public class SysAgencyLeaderController extends BaseController {
         return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyLeader(getUserId()));
     }
 
+    /**
+     * 查询机构下的员工
+     * @param deptId
+     * @return
+     */
+    @GetMapping("/queryAgencyUser")
+    @ApiOperation(value = "查询机构下的员工")
+    public HttpResult<List<SysUser>> queryAgencyUser(@RequestParam("deptId") String deptId){
+
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyUser(deptId));
+    }
+
+    @PostMapping("/queryAgencyUserInsAreaPage")
+    @ApiOperation(value = "查询机构下的单个员工的子订单费用")
+    public HttpResult<IPage<AgencyUserInsAreaVo>> queryAgencyUserInsAreaPage(@RequestBody AgencyUserInsAreaDto agencyUserInsAreaDto){
+        if (agencyUserInsAreaDto.getPageNum() == 0) {
+            agencyUserInsAreaDto.setPageNum(1);
+        }
+        if (agencyUserInsAreaDto.getPageSize() == 0) {
+            agencyUserInsAreaDto.setPageSize(10);
+        }
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryAgencyUserInsAreaPage(agencyUserInsAreaDto));
+    }
+
 
 }

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

@@ -1,11 +1,13 @@
 package com.ydtech.modules.admin.controller;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysPartner;
 import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
 import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
+import com.ydtech.modules.admin.model.vo.SysAgencyLeaderVo;
 import com.ydtech.modules.admin.model.vo.SysPartnerAPPPageVo;
 import com.ydtech.modules.admin.model.vo.SysUserPartner;
 import com.ydtech.modules.admin.service.SysPartnerService;
@@ -126,6 +128,17 @@ public class SysPartnerController extends BaseController {
         }
         return HttpResult.ok(this.sysPartnerService.queryPartnerByPage(sysPartnerPageDto));
     }
+    @PostMapping("/queryPartnerByPages")
+    @ApiOperation(value = "所有合伙人的抽层费用信息")
+    public HttpResult<BasePageResult<AgencyExtractFeeVo>> queryPartnerByPages(@RequestBody SysPartnerPageDto sysPartnerPageDto) {
+        if (sysPartnerPageDto.getPageNum() == 0) {
+            sysPartnerPageDto.setPageNum(1);
+        }
+        if (sysPartnerPageDto.getPageSize() == 0) {
+            sysPartnerPageDto.setPageSize(10);
+        }
+        return HttpResult.ok(this.sysPartnerService.queryPartnerByPages(sysPartnerPageDto));
+    }
 
     /**
      * 合伙人查看直接合伙人、间接合伙人分页查询
@@ -143,6 +156,16 @@ public class SysPartnerController extends BaseController {
         return HttpResult.ok(this.sysPartnerService.SysPartnerAPPPage(sysPartnerAPPPageDto));
     }
 
+    /**
+     * 根据合伙人id查询推荐的工作室管理员
+     */
+    @GetMapping("/queryAgencyLeaderById/{userId}")
+    @ApiOperation(value = "根据合伙人id查询推荐的工作室管理员")
+    public HttpResult<List<SysAgencyLeader>> queryAgencyLeaderById(@PathVariable("userId") String userId){
+
+        return HttpResult.ok("success", this.sysPartnerService.queryAgencyLeaderById(userId));
+    }
+
 
 
 

+ 7 - 0
src/main/java/com/ydtech/modules/admin/dao/SysAgencyLeaderMapper.java

@@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.dto.DeptBalanceDto;
+import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
+import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
 import com.ydtech.modules.admin.model.vo.DeptBalanceVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -28,5 +32,8 @@ public interface SysAgencyLeaderMapper extends BaseMapper<SysAgencyLeader> {
      *  @Description: 分页查询机构负责人
      */
     IPage<DeptBalanceDto> queryPage(Page page, @Param("vo") DeptBalanceVo deptBalanceVo);
+
+
+    HashMap<String, BigDecimal> getBigDecimalNum(@Param("deptId") String deptId, @Param("createTime")  String createTime);
 }
 

+ 30 - 0
src/main/java/com/ydtech/modules/admin/model/dto/AgencyUserInsAreaDto.java

@@ -0,0 +1,30 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+@Data
+@ApiModel(value = "个人分页查询子订单")
+public class AgencyUserInsAreaDto {
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+    @ApiModelProperty(value = "每页条数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "机构ID")
+    private String deptId;
+
+    @ApiModelProperty(value = "人员ID")
+    private String userId;
+
+    @ApiModelProperty(value = "保费提层计算开始时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String startTime;
+
+
+
+
+}

+ 48 - 0
src/main/java/com/ydtech/modules/admin/model/vo/AgencyUserInsAreaVo.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel(value = "个人分页查询子订单实体")
+public class AgencyUserInsAreaVo {
+
+    @ApiModelProperty(value = "员工id")
+    private String userId;
+
+    @ApiModelProperty(value = "员工姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "车牌号")
+    private String licenseno;
+
+    @ApiModelProperty(value = "子订单id")
+    private String companyId;
+
+    @ApiModelProperty(value = "交强险费用")
+    private BigDecimal jqpremium;
+
+    @ApiModelProperty(value = "商业险费用")
+    private BigDecimal sypremium;
+
+    @ApiModelProperty(value = "驾意险费用")
+    private BigDecimal jypremium;
+
+    @ApiModelProperty(value = "总保费")
+    private BigDecimal sumpremium;
+
+    @ApiModelProperty(value = "订单状态(0 报价中 1 待核保 2 已核保待缴费 3已承保 4 核保退回)")
+    private String orderstatus;
+
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @ApiModelProperty(value = "子订单创建时间")
+    private Date createtime;
+
+
+
+}

+ 6 - 0
src/main/java/com/ydtech/modules/admin/service/SysAgencyLeaderService.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysDept;
@@ -43,6 +44,7 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
     AgencyExtractFee queryExtractFee(String userId);
 
     BasePageResult<AgencyExtractFeeVo> queryExtractFeeAll(SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
+    BasePageResult<AgencyExtractFeeVo> queryExtractFeeList(SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
 
     BasePageResult<TeamUserInfoVo> queryTeamUser(TeamUserInfoDto teamUserInfoDto);
 
@@ -54,4 +56,8 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
     List<SysUser> getLevelUser(String id);
 
     List<SysAgencyLeader> getByUserIdList(List<String> collect);
+
+    List<SysUser> queryAgencyUser(String deptId);
+
+    IPage<AgencyUserInsAreaVo> queryAgencyUserInsAreaPage(AgencyUserInsAreaDto agencyUserInsAreaDto);
 }

+ 4 - 0
src/main/java/com/ydtech/modules/admin/service/SysPartnerService.java

@@ -2,6 +2,7 @@ package com.ydtech.modules.admin.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysAgencyLeader;
 import com.ydtech.modules.admin.model.SysPartner;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
@@ -36,8 +37,11 @@ public interface SysPartnerService extends IService<SysPartner> {
     boolean deleteById(String id);
 
     BasePageResult<AgencyExtractFeeVo> queryPartnerByPage(SysPartnerPageDto sysPartnerPageDto);
+    BasePageResult<AgencyExtractFeeVo> queryPartnerByPages(SysPartnerPageDto sysPartnerPageDto);
 
     BasePageResult<SysPartnerAPPPageVo> SysPartnerAPPPage(SysPartnerAPPPageDto sysPartnerAPPPageDto);
 
     boolean edit(SysPartnerDto sysPartnerDto);
+
+    List<SysAgencyLeader> queryAgencyLeaderById(String userId);
 }

+ 126 - 29
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.aop.exception.DescribeException;
@@ -30,10 +31,8 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -130,7 +129,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                     sysRelationPerson1.setSuggestId(sysRelation.getSuggestId());
                     sysRelationPerson1.setSource(1);
                     sysRelationPerson1.setType(1);
-                    b =sysRelationPersonMapper.insert(sysRelationPerson1)>0;
+                    b = sysRelationPersonMapper.insert(sysRelationPerson1) > 0;
                 }
 
             }
@@ -162,12 +161,12 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
 
         //工作室管理员: 已是管理员不能再成为管理员,已是合伙人的也不能设置为管理员
         List<SysPartner> sysPartnerList = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
-        if (sysPartnerList.size()>0) {
+        if (sysPartnerList.size() > 0) {
             List<String> stringList = sysPartnerList.stream().map(SysPartner::getUserId).collect(Collectors.toList());
             sysUserList = sysUserList.stream().filter(SysUser -> !stringList.contains(SysUser.getId())).collect(Collectors.toList());
         }
         List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getDelFlag, 1));
-        if (sysAgencyLeaders.size()>0) {
+        if (sysAgencyLeaders.size() > 0) {
             List<String> stringList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
             sysUserList = sysUserList.stream().filter(SysUser -> !stringList.contains(SysUser.getId())).collect(Collectors.toList());
         }
@@ -217,7 +216,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
             sysAgencyLeader.setUpdateTime(new Date());
             sysAgencyLeader.setUpdateBy(loginId);
             sysAgencyLeaderMapper.updateById(sysAgencyLeader);
-            if (!sysAgencyLeaderDto.getSuggestId().isEmpty()){
+            if (!sysAgencyLeaderDto.getSuggestId().isEmpty()) {
                 //sysRelationPerson1为空是无上级
                 SysRelationPerson sysRelationPerson = new SysRelationPerson();
                 sysRelationPerson.setAgencyLeaderId(sysAgencyLeader.getUserId());
@@ -241,19 +240,19 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                         sysRelationPerson1.setSuggestId(sysRelation.getSuggestId());
                         sysRelationPerson1.setSource(1);
                         sysRelationPerson1.setType(1);
-                        b = sysRelationPersonMapper.insert(sysRelationPerson1)>0;
+                        b = sysRelationPersonMapper.insert(sysRelationPerson1) > 0;
                     }
 
                 }
             }
 
 
-        }else {
+        } else {
             if (StringUtils.isNullOrEmpty(sysAgencyLeader1.getSuggestId()) && !sysAgencyLeaderDto.getSuggestId().isEmpty()) {
                 //之前推荐人为空。可以修改
                 SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeaderDto, SysAgencyLeader.class);
                 sysAgencyLeader.setUpdateBy(loginId);
-                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader)>0;
+                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
 
                 //sysRelationPerson1为空是无上级
                 SysRelationPerson sysRelationPerson = new SysRelationPerson();
@@ -278,18 +277,18 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                         sysRelationPerson1.setSuggestId(sysRelation.getSuggestId());
                         sysRelationPerson1.setSource(1);
                         sysRelationPerson1.setType(1);
-                        b = sysRelationPersonMapper.insert(sysRelationPerson1)>0;
+                        b = sysRelationPersonMapper.insert(sysRelationPerson1) > 0;
                     }
 
                 }
 
-            }else {
+            } else {
 
                 SysAgencyLeader sysAgencyLeader = new SysAgencyLeader();
                 sysAgencyLeader.setId(sysAgencyLeaderDto.getId());
                 sysAgencyLeader.setProportional(sysAgencyLeaderDto.getProportional());
                 sysAgencyLeader.setUpdateBy(loginId);
-                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader)>0;
+                b = sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
             }
 
         }
@@ -320,7 +319,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
     @Override
     public List<SysAgencyLeaderVo> queryInfo(String id) {
         List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
-                .eq(SysAgencyLeader::getDelFlag, 1).likeRight(StringUtils.isNotEmpty(id),SysAgencyLeader::getDeptId,id));
+                .eq(SysAgencyLeader::getDelFlag, 1).likeRight(StringUtils.isNotEmpty(id), SysAgencyLeader::getDeptId, id));
 
         return BeanUtil.copyToList(sysAgencyLeaders, SysAgencyLeaderVo.class);
     }
@@ -383,7 +382,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
             BigDecimal historyFee = new BigDecimal("0.00");
             //合伙人信息
             SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
-                    .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag,1));
+                    .eq(SysPartner::getUserId, userId).eq(SysPartner::getDelFlag, 1));
             //填充查询人的姓名和机构
             agencyExtractFee.setUserId(sysPartner.getUserId());
             agencyExtractFee.setUserName(sysPartner.getUserName());
@@ -634,6 +633,81 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                 agencyExtractFeeList);
     }
 
+    @Override
+    public BasePageResult<AgencyExtractFeeVo> queryExtractFeeList(SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
+        List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
+
+        Page<SysAgencyLeader> page = new Page<>(sysAgencyLeaderPageDto.getPageNum(), sysAgencyLeaderPageDto.getPageSize());
+        LambdaQueryWrapper<SysAgencyLeader> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(StringUtils.isNotEmpty(sysAgencyLeaderPageDto.getUserId()), SysAgencyLeader::getUserId, sysAgencyLeaderPageDto.getUserId());
+        wrapper.like(StringUtils.isNotEmpty(sysAgencyLeaderPageDto.getUserName()), SysAgencyLeader::getUserName, sysAgencyLeaderPageDto.getUserName());
+        wrapper.eq(SysAgencyLeader::getDelFlag, 1);
+        wrapper.orderByDesc(SysAgencyLeader::getId);
+
+        Page<SysAgencyLeader> insOrdersPage = page(page, wrapper);
+        List<SysAgencyLeader> records = insOrdersPage.getRecords();
+        if (records.size() > 0) {
+            for (SysAgencyLeader sysAgencyLeaders : records) {
+                AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
+                //总保费
+                BigDecimal bigDecimal = BigDecimal.ZERO;
+                //抽层费用
+                BigDecimal multiply = BigDecimal.ZERO;
+                //已提现抽成费用
+                BigDecimal historyFee = BigDecimal.ZERO;
+
+                agencyExtractFee.setUserId(sysAgencyLeaders.getUserId());
+                agencyExtractFee.setUserName(sysAgencyLeaders.getUserName());
+                agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId());
+                agencyExtractFee.setDeptName(sysAgencyLeaders.getDeptName());
+                agencyExtractFee.setProportional(sysAgencyLeaders.getProportional());
+                //筛选订单,选择时间
+                Date updateTime = sysAgencyLeaders.getUpdateTime();
+                Date createTime = sysAgencyLeaders.getCreateTime();
+                String dateStr = "";
+                if (updateTime != null) {
+                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
+                } else {
+                    dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
+                }
+                HashMap<String, BigDecimal> map = baseMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr);
+                if (CollectionUtil.isNotEmpty(map)) {
+                    bigDecimal = map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal");
+                    agencyExtractFee.setSumpremium(bigDecimal);
+                    multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional())
+                            .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
+                    agencyExtractFee.setExtractFee(multiply);
+                    bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
+                }
+                // 填充 已提现抽成费用和可提现抽成费用
+                List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
+                        .eq(SysAgencyFeeApproval::getUserId, sysAgencyLeaders.getUserId())
+                        .eq(SysAgencyFeeApproval::getStatus, 1));
+                if (sysAgencyFeeApprovals.size() > 0) {
+                    for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
+                        historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
+                    }
+                }
+
+                if (!bigDecimal.equals(BigDecimal.ZERO)) {
+                    //已提现
+                    agencyExtractFee.setHistoryFee(historyFee);
+                    //可提现 = 总抽成-已提现
+                    agencyExtractFee.setCashFee(multiply.subtract(historyFee));
+                } else {
+                    agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                    agencyExtractFee.setCashFee(multiply.subtract(BigDecimal.ZERO));
+                }
+                agencyExtractFeeList.add(agencyExtractFee);
+
+            }
+
+        }
+
+        return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                agencyExtractFeeList);
+    }
+
 
     @Override
     public BasePageResult<TeamInformation> queryTeamInfoPage(TeamInformationDto teamInformationDto) {
@@ -689,19 +763,19 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                 }
 
                 if (insOrderList.size() > 0) {
-                        List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
-                        //查询订单下的所有子订单
-                        List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
-                                .in(InsAreaCompany::getOrderno, collect)
-                                .eq(InsAreaCompany::getOrderstatus, 3));
-                        if (insAreaCompanies.size() > 0) {
-                                //累加每一个子订单的交强险费用+商业险费用+驾意险费用
-                                BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                                BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
-                                BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    List<String> collect = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
+                    //查询订单下的所有子订单
+                    List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
+                            .in(InsAreaCompany::getOrderno, collect)
+                            .eq(InsAreaCompany::getOrderstatus, 3));
+                    if (insAreaCompanies.size() > 0) {
+                        //累加每一个子订单的交强险费用+商业险费用+驾意险费用
+                        BigDecimal jqpremium = insAreaCompanies.stream().map(InsAreaCompany::getJqpremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                        BigDecimal sypremium = insAreaCompanies.stream().map(InsAreaCompany::getSypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
+                        BigDecimal jypremium = insAreaCompanies.stream().map(InsAreaCompany::getJypremium).reduce(BigDecimal.ZERO, BigDecimal::add);
 
-                                bigDecimal = jqpremium.add(sypremium).add(jypremium);
-                        }
+                        bigDecimal = jqpremium.add(sypremium).add(jypremium);
+                    }
 
                 }
                 teamInformation.setSumpremium(bigDecimal);
@@ -829,7 +903,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                         BigDecimal multiply = bigDecimal.multiply(new BigDecimal(sysAgencyLeader.getProportional())
                                 .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
                         agencyTeamVo.setExtractFee(multiply);
-                    }else {
+                    } else {
                         agencyTeamVo.setExtractFee(new BigDecimal("0.00"));
                     }
                     agencyTeamVoList.add(agencyTeamVo);
@@ -932,5 +1006,28 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                 teamUserInfoVoList);
     }
 
+    @Override
+    public List<SysUser> queryAgencyUser(String deptId) {
+
+        return sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+                .eq(SysUser::getStatus, 1)
+                .likeRight(StringUtils.isNotEmpty(deptId), SysUser::getId, deptId));
+    }
+
+    @Override
+    public IPage<AgencyUserInsAreaVo> queryAgencyUserInsAreaPage(AgencyUserInsAreaDto agencyUserInsAreaDto) {
+        Page page = new Page(agencyUserInsAreaDto.getPageNum(), agencyUserInsAreaDto.getPageSize());
+
+        IPage<AgencyUserInsAreaVo> agencyUserInsAreaVoIPage = insAreaCompanyMapper.queryAgencyUserInsAreaPage(page, agencyUserInsAreaDto);
+        List<AgencyUserInsAreaVo> records = agencyUserInsAreaVoIPage.getRecords();
+        if (records.size() > 0) {
+            for (AgencyUserInsAreaVo record : records) {
+                record.setSumpremium(record.getJqpremium().add(record.getJypremium()).add(record.getSypremium()));
+            }
+        }
+
+        return agencyUserInsAreaVoIPage;
+    }
+
 
 }

+ 122 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -15,6 +15,7 @@ import com.ydtech.modules.admin.model.dto.SysPartnerAPPPageDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerDto;
 import com.ydtech.modules.admin.model.dto.SysPartnerPageDto;
 import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
+import com.ydtech.modules.admin.model.vo.SysAgencyLeaderVo;
 import com.ydtech.modules.admin.model.vo.SysPartnerAPPPageVo;
 import com.ydtech.modules.admin.model.vo.SysUserPartner;
 import com.ydtech.modules.admin.service.SysPartnerService;
@@ -32,8 +33,10 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -360,6 +363,107 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
                 agencyExtractFeeList);
 
+    }
+    @Override
+    public BasePageResult<AgencyExtractFeeVo> queryPartnerByPages(SysPartnerPageDto sysPartnerPageDto) {
+        List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
+
+        Page<SysPartner> page = new Page<>(sysPartnerPageDto.getPageNum(), sysPartnerPageDto.getPageSize());
+        LambdaQueryWrapper<SysPartner> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysPartner::getDelFlag, 1);
+        wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserId()), SysPartner::getUserId, sysPartnerPageDto.getUserId());
+        wrapper.like(StringUtils.isNotEmpty(sysPartnerPageDto.getUserName()), SysPartner::getUserName, sysPartnerPageDto.getUserName());
+        wrapper.orderByDesc(SysPartner::getId);
+
+        Page<SysPartner> insOrdersPage = page(page, wrapper);
+        List<SysPartner> sysPartnerList = insOrdersPage.getRecords();
+        if (sysPartnerList.size() > 0) {
+            for (SysPartner sysPartner : sysPartnerList) {
+                AgencyExtractFeeVo agencyExtractFee = new AgencyExtractFeeVo();
+                //总保费
+                BigDecimal bigDecimal = BigDecimal.ZERO;
+                BigDecimal extractFee = BigDecimal.ZERO;
+                //已提现抽成费用
+                BigDecimal historyFee = BigDecimal.ZERO;
+                //填充查询人的姓名和机构
+                agencyExtractFee.setProportional(sysPartner.getProportional());
+                agencyExtractFee.setUserId(sysPartner.getUserId());
+                agencyExtractFee.setUserName(sysPartner.getUserName());
+                SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>()
+                        .eq(SysUser::getId, sysPartner.getUserId())
+                        .eq(SysUser::getStatus, 1));
+                agencyExtractFee.setDeptId(sysUser.getDeptId());
+                SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
+                        .eq(SysDept::getId, sysUser.getDeptId()).eq(SysDept::getDelFlag, 0));
+                agencyExtractFee.setDeptName(sysDept.getName());
+                //查询所有推荐的机构负责人核算总保费
+                List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                        .eq(SysRelationPerson::getSuggestId, sysPartner.getUserId()).eq(SysRelationPerson::getType, 1));
+                if (sysRelationPeople.size() > 0) {
+                    List<String> agencyLeaderIds = sysRelationPeople.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+                    for (String agencyLeaderId : agencyLeaderIds) {
+
+                        SysAgencyLeader sysAgencyLeaders = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>()
+                                .eq(SysAgencyLeader::getUserId, agencyLeaderId)
+                                .eq(SysAgencyLeader::getDelFlag, 1));
+                        if (sysAgencyLeaders != null) {
+                            agencyExtractFee.setProportional(sysPartner.getProportional());
+
+                            //筛选订单,选择时间
+                            Date updateTime = sysAgencyLeaders.getUpdateTime();
+                            Date createTime = sysAgencyLeaders.getCreateTime();
+                            String dateStr = "";
+                            if (updateTime != null) {
+                                dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(updateTime);
+                            } else {
+                                dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime);
+                            }
+                            HashMap<String, BigDecimal> map = sysAgencyLeaderMapper.getBigDecimalNum(sysAgencyLeaders.getDeptId(), dateStr);
+                            if (CollectionUtil.isNotEmpty(map)) {
+                                bigDecimal = bigDecimal.add(map.get("bigDecimal") == null ? BigDecimal.ZERO : map.get("bigDecimal"));
+                            }
+                        }
+                    }
+                    // 填充 已提现抽成费用和可提现抽成费用
+                    List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
+                            .eq(SysAgencyFeeApproval::getUserId, sysPartner.getUserId())
+                            .eq(SysAgencyFeeApproval::getStatus, 1));
+                    if (sysAgencyFeeApprovals.size() > 0) {
+                        for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
+                            historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
+                        }
+                    }
+                    agencyExtractFee.setSumpremium(bigDecimal);
+                    if (!bigDecimal.equals(BigDecimal.ZERO)) {
+
+                        BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional())
+                                .divide(new BigDecimal("100"))).setScale(2, RoundingMode.DOWN);
+                        agencyExtractFee.setExtractFee(multiply);
+                        //已提现
+                        agencyExtractFee.setHistoryFee(historyFee);
+                        extractFee = agencyExtractFee.getExtractFee();
+                        //可提现 = 总抽成-已提现
+                        agencyExtractFee.setCashFee(extractFee.subtract(historyFee));
+                    } else {
+                        agencyExtractFee.setExtractFee(BigDecimal.ZERO);
+                        agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                        agencyExtractFee.setCashFee(extractFee);
+                    }
+
+                } else {
+                    agencyExtractFee.setSumpremium(BigDecimal.ZERO);
+                    agencyExtractFee.setExtractFee(BigDecimal.ZERO);
+                    agencyExtractFee.setHistoryFee(BigDecimal.ZERO);
+                    agencyExtractFee.setCashFee(BigDecimal.ZERO);
+                }
+                agencyExtractFeeList.add(agencyExtractFee);
+
+            }
+        }
+
+        return new BasePageResult<>(sysPartnerPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                agencyExtractFeeList);
+
     }
 
     @Override
@@ -544,5 +648,23 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         return b;
     }
 
+    @Override
+    public List<SysAgencyLeader> queryAgencyLeaderById(String userId) {
+        List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
+                .eq(SysRelationPerson::getSuggestId, userId).eq(SysRelationPerson::getType, 1));
+
+            //获取所有推荐的机构负责人id
+            List<String> agencyLeaderIds = sysRelationPeople.stream().map(SysRelationPerson::getAgencyLeaderId).collect(Collectors.toList());
+
+            //获取机构负责人信息
+            List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new LambdaQueryWrapper<SysAgencyLeader>()
+                    .in(SysAgencyLeader::getUserId, agencyLeaderIds)
+                    .eq(SysAgencyLeader::getDelFlag, 1)
+                    .orderByDesc(SysAgencyLeader::getId));
+
+            return sysAgencyLeaders;
+
+    }
+
 
 }

+ 4 - 0
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -3,12 +3,14 @@ package com.ydtech.modules.order.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.report.company.*;
 import com.ydtech.modules.admin.model.report.opetationData.BusinessDataDto;
 import com.ydtech.modules.admin.model.report.opetationData.BusinessDataQueryDto;
 import com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto;
 import com.ydtech.modules.admin.model.report.opetationData.QuotationCountQueryDto;
+import com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo;
 import com.ydtech.modules.admin.model.vo.OrdersDataVo;
 import com.ydtech.modules.admin.model.vo.SubOrder;
 import com.ydtech.modules.admin.model.vo.TaskStatisticsVo;
@@ -298,6 +300,8 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      **/
     List<InsuranceCompanyExcel> insuranceCompanyExcel(@Param("taskStatisticsVo") TaskStatisticsVo taskStatisticsVo);
 
+    IPage<AgencyUserInsAreaVo> queryAgencyUserInsAreaPage(Page page, @Param("dto")AgencyUserInsAreaDto agencyUserInsAreaDto);
+
     /** 通过 车牌号车架号获取小定单已承保数据
      *
      * @param ordersDataDto

+ 18 - 0
src/main/resources/mapper/modules/admin/SysAgencyLeaderMapper.xml

@@ -69,5 +69,23 @@
         </where>
     </select>
 
+    <select id="getBigDecimalNum" resultType="java.util.HashMap">
+        SELECT
+        sum(IFNULL(iac.jqpremium,0) + IFNULL(iac.sypremium,0) + IFNULL(iac.jypremium,0))  as bigDecimal
+        FROM
+        ins_area_company iac
+        left join ins_orders io on iac.orderno = io.orderno
+        <where>
+            iac.orderstatus ='3'
+            <if test="deptId  != null  and  deptId !=''">
+                and io.deptid like CONCAT( #{deptId}, '%' )
+            </if>
+            <if test="createTime  != null  and  createTime !=''">
+                and io.createtime >= #{createTime}
+            </if>
+        </where>
+
+    </select>
+
 </mapper>
 

+ 33 - 0
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -2140,4 +2140,37 @@
             </if>
         </where>
     </select>
+    <select id="queryAgencyUserInsAreaPage" resultType="com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo">
+        select
+            io.userid as userId,
+            io.username as userName,
+            io.licenseno as licenseno,
+            iac.id as companyId,
+            iac.jqpremium as jqpremium,
+            iac.sypremium as sypremium,
+            iac.jypremium as jypremium,
+            iac.createtime as createtime,
+            iac.orderstatus as orderstatus
+
+        from ins_area_company iac
+        left join ins_orders io on io.orderno = iac.orderno
+        <where>
+            iac.orderstatus=3
+            <if test="dto.userId !=null  and  dto.userId !=''">
+                and io.userid = #{dto.userId}
+            </if>
+            <if test="dto.deptId !=null  and  dto.deptId !=''">
+                and io.deptid = #{dto.deptId}
+            </if>
+            <if test="dto.startTime !=null  and  dto.startTime !=''">
+                and io.createtime >= #{dto.startTime}
+            </if>
+
+        </where>
+        ORDER BY iac.createtime
+
+    </select>
+
+
+
 </mapper>