|
|
@@ -0,0 +1,783 @@
|
|
|
+package com.ydtech.modules.admin.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+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.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.ydtech.aop.exception.DescribeException;
|
|
|
+import com.ydtech.modules.admin.dao.*;
|
|
|
+import com.ydtech.modules.admin.model.*;
|
|
|
+import com.ydtech.modules.admin.model.dto.SysAgencyLeaderDto;
|
|
|
+import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
|
|
|
+import com.ydtech.modules.admin.model.dto.TeamUserInfoDto;
|
|
|
+import com.ydtech.modules.admin.model.vo.*;
|
|
|
+import com.ydtech.modules.admin.service.SysAgencyLeaderService;
|
|
|
+import com.ydtech.modules.admin.service.SysPartnerService;
|
|
|
+import com.ydtech.modules.base.controller.BaseController;
|
|
|
+import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
|
|
|
+import com.ydtech.modules.order.dao.InsOrdersMapper;
|
|
|
+import com.ydtech.modules.order.entity.BasePageResult;
|
|
|
+import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
+import com.ydtech.modules.order.entity.InsOrders;
|
|
|
+import com.ydtech.utils.StringUtils;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@Slf4j
|
|
|
+@Service("sysAgencyLeaderService")
|
|
|
+public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMapper, SysAgencyLeader> implements SysAgencyLeaderService {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysAgencyLeaderMapper sysAgencyLeaderMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysDeptMapper sysDeptMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysUserMapper sysUserMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private InsOrdersMapper insOrdersMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private InsAreaCompanyMapper insAreaCompanyMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysAgencyFeeApprovalMapper sysAgencyFeeApprovalMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysRelationPersonMapper sysRelationPersonMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysPartnerService sysPartnerService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SysPartnerMapper sysPartnerMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean insert(SysAgencyLeaderDto sysAgencyLeaderDto) {
|
|
|
+ //校验一个用户只能是一个机构的负责人,每个机构只有一个负责人
|
|
|
+ List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new QueryWrapper<SysAgencyLeader>().lambda().eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
+ if (sysAgencyLeaders.size() > 0) {
|
|
|
+ //校验用户是否已经机构负责人
|
|
|
+ List<String> userIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
|
|
|
+ if (userIdList.contains(sysAgencyLeaderDto.getUserId())) {
|
|
|
+ throw new DescribeException(sysAgencyLeaderDto.getUserName() + "已是机构负责人,不可重复配置");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> deptIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getDeptId).collect(Collectors.toList());
|
|
|
+ if (deptIdList.contains(sysAgencyLeaderDto.getDeptId())) {
|
|
|
+ throw new DescribeException(sysAgencyLeaderDto.getDeptName() + "机构已配置负责人,不可重复配置");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<SysPartner> sysPartners = sysPartnerMapper.selectList(new LambdaQueryWrapper<SysPartner>().eq(SysPartner::getDelFlag, 1));
|
|
|
+ if (sysPartners.size() > 0) {
|
|
|
+ List<String> userIdList = sysPartners.stream().map(SysPartner::getUserId).collect(Collectors.toList());
|
|
|
+ if (userIdList.contains(sysAgencyLeaderDto.getUserId())) {
|
|
|
+ throw new DescribeException(sysAgencyLeaderDto.getUserName() + "已是合伙人,不可设置为机构负责人");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeaderDto, SysAgencyLeader.class);
|
|
|
+ String[] source = sysAgencyLeaderDto.getSource();
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ if (source != null) {
|
|
|
+ int size = source.length;
|
|
|
+ if (size == 3) {
|
|
|
+ stringBuilder.append(source[0]).append(",").append(source[1]).append(",").append(source[2]);
|
|
|
+
|
|
|
+ } else if (size == 2) {
|
|
|
+ stringBuilder.append(source[0]).append(",").append(source[1]);
|
|
|
+ } else {
|
|
|
+ stringBuilder.append(source[0]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysAgencyLeader.setSource(stringBuilder.toString());
|
|
|
+ sysAgencyLeader.setCreateTime(new Date());
|
|
|
+ SysUser user = BaseController.getUser();
|
|
|
+ sysAgencyLeader.setCreateBy(user.getId());
|
|
|
+ sysAgencyLeaderMapper.insert(sysAgencyLeader);
|
|
|
+ //sysRelationPerson1为空是无上级
|
|
|
+ SysRelationPerson sysRelationPerson = new SysRelationPerson();
|
|
|
+ sysRelationPerson.setAgencyLeaderId(sysAgencyLeader.getUserId());
|
|
|
+ sysRelationPerson.setCreateBy(user.getId());
|
|
|
+ sysRelationPerson.setCreateTime(new Date());
|
|
|
+ sysRelationPerson.setSuggestId(sysAgencyLeaderDto.getSuggestId());
|
|
|
+ sysRelationPerson.setSource(0);
|
|
|
+ sysRelationPerson.setType(1);
|
|
|
+ boolean b = sysRelationPersonMapper.insert(sysRelationPerson) > 0;
|
|
|
+ //查询推荐人是否有上级 :满足合伙人有多层关系
|
|
|
+ List<SysRelationPerson> sysRelationPersonList = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
+ .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeaderDto.getSuggestId())
|
|
|
+ .eq(SysRelationPerson::getType, 0));
|
|
|
+
|
|
|
+ if (sysRelationPersonList.size() > 0) {
|
|
|
+ for (SysRelationPerson sysRelation : sysRelationPersonList) {
|
|
|
+ SysRelationPerson sysRelationPerson1 = new SysRelationPerson();
|
|
|
+ sysRelationPerson1.setAgencyLeaderId(sysAgencyLeader.getUserId());
|
|
|
+ sysRelationPerson1.setCreateBy(user.getId());
|
|
|
+ sysRelationPerson1.setCreateTime(new Date());
|
|
|
+ sysRelationPerson1.setSuggestId(sysRelation.getSuggestId());
|
|
|
+ sysRelationPerson1.setSource(1);
|
|
|
+ sysRelationPerson1.setType(1);
|
|
|
+ sysRelationPersonMapper.insert(sysRelationPerson1);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return b;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysDept> getDeptInfo() {
|
|
|
+ return sysDeptMapper.selectList(new QueryWrapper<SysDept>().lambda().eq(SysDept::getDelFlag, 0).isNotNull(SysDept::getComlevel));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysUser> getUserInfo() {
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new QueryWrapper<SysUser>().lambda().eq(SysUser::getStatus, 1));
|
|
|
+ String id = BaseController.getUser().getId();
|
|
|
+ List<SysUser> sysUserList = null;
|
|
|
+ if (sysUsers.size() > 0) {
|
|
|
+ sysUserList = sysUsers.stream().filter(SysUser -> !SysUser.getId().equals(id)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ return sysUserList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean edit(SysAgencyLeaderDto sysAgencyLeaderDto) {
|
|
|
+ //不修改负责人userId传null
|
|
|
+ String userId = sysAgencyLeaderDto.getUserId();
|
|
|
+ SysAgencyLeader sysAgencyLeader1 = sysAgencyLeaderMapper.selectById(sysAgencyLeaderDto.getId());
|
|
|
+ if (StringUtils.isNotEmpty(userId) && !sysAgencyLeader1.getUserId().equals(userId)) {
|
|
|
+ List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new QueryWrapper<SysAgencyLeader>().lambda().eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
+ List<String> userIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
|
|
|
+ if (userIdList.contains(sysAgencyLeaderDto.getUserId())) {
|
|
|
+ throw new DescribeException(sysAgencyLeaderDto.getUserName() + "已是机构负责人,不可重复配置");
|
|
|
+ }
|
|
|
+ //修改负责人时解除合伙人或者推荐人与机构负责人的关系
|
|
|
+ List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
+ .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeader1.getUserId())
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
+ if (sysRelationPeople.size() > 0) {
|
|
|
+ throw new DescribeException(sysAgencyLeaderDto.getUserName() + "有推荐关系,不允许修改");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ SysAgencyLeader sysAgencyLeader = BeanUtil.copyProperties(sysAgencyLeaderDto, SysAgencyLeader.class);
|
|
|
+ String[] source = sysAgencyLeaderDto.getSource();
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ if (source != null) {
|
|
|
+ int size = source.length;
|
|
|
+ if (size == 3) {
|
|
|
+ stringBuilder.append(source[0]).append(",").append(source[1]).append(",").append(source[2]);
|
|
|
+ } else if (size == 2) {
|
|
|
+ stringBuilder.append(source[0]).append(",").append(source[1]);
|
|
|
+ } else {
|
|
|
+ stringBuilder.append(source[0]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sysAgencyLeader.setSource(stringBuilder.toString());
|
|
|
+ sysAgencyLeader.setUpdateTime(new Date());
|
|
|
+ SysUser user = BaseController.getUser();
|
|
|
+ sysAgencyLeader.setUpdateBy(user.getId());
|
|
|
+ return sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean delById(Integer id) {
|
|
|
+ SysAgencyLeader sysAgencyLeader1 = sysAgencyLeaderMapper.selectById(id);
|
|
|
+ List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new UpdateWrapper<SysRelationPerson>().lambda()
|
|
|
+ .eq(SysRelationPerson::getAgencyLeaderId, sysAgencyLeader1.getUserId())
|
|
|
+ .eq(SysRelationPerson::getDelFlag, 1)
|
|
|
+ .eq(SysRelationPerson::getType, 1));
|
|
|
+ if (sysRelationPeople.size() > 0) {
|
|
|
+ throw new DescribeException(sysAgencyLeader1.getUserName() + "有推荐人,不允许删除");
|
|
|
+ }
|
|
|
+ SysAgencyLeader sysAgencyLeader = new SysAgencyLeader();
|
|
|
+ sysAgencyLeader.setId(id);
|
|
|
+ sysAgencyLeader.setDelFlag(0);
|
|
|
+
|
|
|
+ return sysAgencyLeaderMapper.updateById(sysAgencyLeader) > 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysAgencyLeaderVo> queryInfo() {
|
|
|
+ List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new QueryWrapper<SysAgencyLeader>().lambda().eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
+ List<SysAgencyLeaderVo> sysAgencyLeaderVos = BeanUtil.copyToList(sysAgencyLeaders, SysAgencyLeaderVo.class);
|
|
|
+ if (sysAgencyLeaders.size() > 0) {
|
|
|
+ for (SysAgencyLeader record : sysAgencyLeaders) {
|
|
|
+ for (SysAgencyLeaderVo sysAgencyLeaderVo : sysAgencyLeaderVos) {
|
|
|
+ if (record.getId().equals(sysAgencyLeaderVo.getId()) ) {
|
|
|
+ String source = record.getSource();
|
|
|
+ if (!StringUtils.isNullOrEmpty(source)) {
|
|
|
+ String[] split = source.split(",");
|
|
|
+ sysAgencyLeaderVo.setSource(split);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sysAgencyLeaderVos;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public BasePageResult<SysAgencyLeaderVo> queryPage(SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
|
|
|
+ Page<SysAgencyLeader> page = new Page<>(sysAgencyLeaderPageDto.getPageNum(), sysAgencyLeaderPageDto.getPageSize());
|
|
|
+ LambdaQueryWrapper<SysAgencyLeader> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(SysAgencyLeader::getDelFlag, 1);
|
|
|
+ wrapper.eq(!StringUtils.isNullOrEmpty(sysAgencyLeaderPageDto.getDeptId()), SysAgencyLeader::getDeptId, sysAgencyLeaderPageDto.getDeptId());
|
|
|
+ wrapper.eq(!StringUtils.isNullOrEmpty(sysAgencyLeaderPageDto.getUserId()), SysAgencyLeader::getUserId, sysAgencyLeaderPageDto.getUserId());
|
|
|
+ wrapper.eq(!StringUtils.isNullOrEmpty(sysAgencyLeaderPageDto.getSuggestId()), SysAgencyLeader::getSuggestId, sysAgencyLeaderPageDto.getSuggestId());
|
|
|
+ wrapper.orderByAsc(SysAgencyLeader::getId);
|
|
|
+
|
|
|
+ Page<SysAgencyLeader> insOrdersPage = page(page, wrapper);
|
|
|
+ List<SysAgencyLeader> records = insOrdersPage.getRecords();
|
|
|
+ List<SysAgencyLeaderVo> sysAgencyLeaderVos = BeanUtil.copyToList(records, SysAgencyLeaderVo.class);
|
|
|
+ if (records.size() > 0) {
|
|
|
+ for (SysAgencyLeader record : records) {
|
|
|
+ for (SysAgencyLeaderVo sysAgencyLeaderVo : sysAgencyLeaderVos) {
|
|
|
+ if (record.getId().equals(sysAgencyLeaderVo.getId()) ) {
|
|
|
+ String source = record.getSource();
|
|
|
+ if (!StringUtils.isNullOrEmpty(source)) {
|
|
|
+ String[] split = source.split(",");
|
|
|
+ sysAgencyLeaderVo.setSource(split);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
|
|
|
+ sysAgencyLeaderVos);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SysAgencyLeaderVo queryById(Integer id) {
|
|
|
+ SysAgencyLeader sysAgencyLeader = new SysAgencyLeader();
|
|
|
+ sysAgencyLeader.setId(id);
|
|
|
+ SysAgencyLeader sysAgencyLeader1 = sysAgencyLeaderMapper.selectById(sysAgencyLeader);
|
|
|
+ SysAgencyLeaderVo sysAgencyLeaderVo = BeanUtil.copyProperties(sysAgencyLeader1, SysAgencyLeaderVo.class);
|
|
|
+ String source = sysAgencyLeader1.getSource();
|
|
|
+ if (!StringUtils.isNullOrEmpty(source)) {
|
|
|
+ String[] split = source.split(",");
|
|
|
+ sysAgencyLeaderVo.setSource(split);
|
|
|
+ }
|
|
|
+ return sysAgencyLeaderVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean checkUserId(String userId) {
|
|
|
+ List<SysAgencyLeader> sysAgencyLeaders = sysAgencyLeaderMapper.selectList(new QueryWrapper<SysAgencyLeader>().lambda().eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
+ if (sysAgencyLeaders.size() > 0) {
|
|
|
+ //校验用户是否已经配置机构负责人
|
|
|
+ List<String> userIdList = sysAgencyLeaders.stream().map(SysAgencyLeader::getUserId).collect(Collectors.toList());
|
|
|
+ return userIdList.contains(userId);
|
|
|
+
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AgencyExtractFee queryExtractFee(String userId) {
|
|
|
+ AgencyExtractFee agencyExtractFee = new AgencyExtractFee();
|
|
|
+ //判断当前登录用户是合伙人还是机构负责人
|
|
|
+ boolean b1 = sysPartnerService.checkPartner(userId);
|
|
|
+ if (b1) {
|
|
|
+ //总保费
|
|
|
+ BigDecimal bigDecimal = new BigDecimal("0.00");
|
|
|
+ //已提现抽成费用
|
|
|
+ BigDecimal historyFee = new BigDecimal("0.00");
|
|
|
+ //合伙人信息
|
|
|
+ SysPartner sysPartner = sysPartnerMapper.selectOne(new LambdaQueryWrapper<SysPartner>()
|
|
|
+ .eq(SysPartner::getUserId, userId));
|
|
|
+ //填充查询人的姓名和机构
|
|
|
+ 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, userId).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());
|
|
|
+ List<InsOrders> insOrderList;
|
|
|
+ //筛选订单,选择时间
|
|
|
+ Date updateTime = sysAgencyLeaders.getUpdateTime();
|
|
|
+ if (updateTime == null) {
|
|
|
+ //机构下所有订单
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
|
|
|
+ .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
|
|
|
+ agencyExtractFee.setStartTime(sysAgencyLeaders.getCreateTime());
|
|
|
+ } else {
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
|
|
|
+ .ge(InsOrders::getCreatetime, updateTime));
|
|
|
+ agencyExtractFee.setStartTime(updateTime);
|
|
|
+ }
|
|
|
+ if (insOrderList.size() > 0) {
|
|
|
+ for (InsOrders insOrders : insOrderList) {
|
|
|
+ //查询订单下的所有子订单
|
|
|
+ List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getOrderno, insOrders.getOrderno())
|
|
|
+ .eq(InsAreaCompany::getOrderstatus, 3));
|
|
|
+ if (insAreaCompanies.size() > 0) {
|
|
|
+ for (InsAreaCompany insAreaCompany : insAreaCompanies) {
|
|
|
+ //累加每一个子订单的交强险费用+商业险费用+驾意险费用
|
|
|
+ bigDecimal = bigDecimal.add(insAreaCompany.getJqpremium()).add(insAreaCompany.getSypremium()).add(insAreaCompany.getJypremium());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ agencyExtractFee.setSumpremium(bigDecimal);
|
|
|
+ BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional()));
|
|
|
+ agencyExtractFee.setExtractFee(multiply);
|
|
|
+ // 填充 已提现抽成费用和可提现抽成费用
|
|
|
+ List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
|
|
|
+ .eq(SysAgencyFeeApproval::getUserId, userId)
|
|
|
+ .eq(SysAgencyFeeApproval::getStatus, 1));
|
|
|
+ if (sysAgencyFeeApprovals.size() > 0) {
|
|
|
+ for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
|
|
|
+ historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!bigDecimal.equals(new BigDecimal("0.00"))) {
|
|
|
+ //已提现
|
|
|
+ agencyExtractFee.setHistoryFee(historyFee);
|
|
|
+ //可提现 = 总抽成-已提现
|
|
|
+ agencyExtractFee.setCashFee(multiply.subtract(historyFee));
|
|
|
+ }else {
|
|
|
+ agencyExtractFee.setHistoryFee(new BigDecimal("0.00"));
|
|
|
+ agencyExtractFee.setCashFee(multiply.subtract(new BigDecimal("0.00")));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return agencyExtractFee;
|
|
|
+ }
|
|
|
+ //校验是否为机构负责人
|
|
|
+ boolean b = this.checkUserId(userId);
|
|
|
+ if (b) {
|
|
|
+ SysAgencyLeader sysAgencyLeaders = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getUserId, userId).eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
+ if (sysAgencyLeaders != null) {
|
|
|
+ //填充查询人的姓名和机构
|
|
|
+ agencyExtractFee.setUserId(sysAgencyLeaders.getUserId());
|
|
|
+ agencyExtractFee.setUserName(sysAgencyLeaders.getUserName());
|
|
|
+ SysUser sysUser = sysUserMapper.selectOne(new LambdaQueryWrapper<SysUser>()
|
|
|
+ .eq(SysUser::getId, sysAgencyLeaders.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());
|
|
|
+ //总保费
|
|
|
+ BigDecimal bigDecimal = new BigDecimal("0.00");
|
|
|
+ //已提现抽成费用
|
|
|
+ BigDecimal historyFee = new BigDecimal("0.00");
|
|
|
+
|
|
|
+ agencyExtractFee.setProportional(sysAgencyLeaders.getProportional());
|
|
|
+ List<InsOrders> insOrderList;
|
|
|
+ //筛选订单,选择时间
|
|
|
+ Date updateTime = sysAgencyLeaders.getUpdateTime();
|
|
|
+ if (updateTime == null) {
|
|
|
+ //机构下所有订单
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
|
|
|
+ .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
|
|
|
+ agencyExtractFee.setStartTime(sysAgencyLeaders.getCreateTime());
|
|
|
+ } else {
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
|
|
|
+ .ge(InsOrders::getCreatetime, updateTime));
|
|
|
+ agencyExtractFee.setStartTime(updateTime);
|
|
|
+ }
|
|
|
+ if (insOrderList.size() > 0) {
|
|
|
+ for (InsOrders insOrders : insOrderList) {
|
|
|
+ //查询订单下的所有子订单
|
|
|
+ List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getOrderno, insOrders.getOrderno())
|
|
|
+ .eq(InsAreaCompany::getOrderstatus, 3));
|
|
|
+ if (insAreaCompanies.size() > 0) {
|
|
|
+ for (InsAreaCompany insAreaCompany : insAreaCompanies) {
|
|
|
+ //累加每一个子订单的交强险费用+商业险费用+驾意险费用
|
|
|
+ bigDecimal = bigDecimal.add(insAreaCompany.getJqpremium()).add(insAreaCompany.getSypremium()).add(insAreaCompany.getJypremium());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ agencyExtractFee.setSumpremium(bigDecimal);
|
|
|
+ BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional()));
|
|
|
+ agencyExtractFee.setExtractFee(multiply);
|
|
|
+ // 填充 已提现抽成费用和可提现抽成费用
|
|
|
+ List<SysAgencyFeeApproval> sysAgencyFeeApprovals = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
|
|
|
+ .eq(SysAgencyFeeApproval::getUserId, userId)
|
|
|
+ .eq(SysAgencyFeeApproval::getStatus, 1));
|
|
|
+ if (sysAgencyFeeApprovals.size() > 0) {
|
|
|
+ for (SysAgencyFeeApproval sysAgencyFeeApproval : sysAgencyFeeApprovals) {
|
|
|
+ historyFee = historyFee.add(sysAgencyFeeApproval.getHistoryFee());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!bigDecimal.equals(new BigDecimal("0.00"))) {
|
|
|
+ //已提现
|
|
|
+ agencyExtractFee.setHistoryFee(historyFee);
|
|
|
+ //可提现 = 总抽成-已提现
|
|
|
+ agencyExtractFee.setCashFee(multiply.subtract(historyFee));
|
|
|
+ }else {
|
|
|
+ agencyExtractFee.setHistoryFee(new BigDecimal("0.00"));
|
|
|
+ agencyExtractFee.setCashFee(multiply.subtract(new BigDecimal("0.00")));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return agencyExtractFee;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return agencyExtractFee;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public BasePageResult<AgencyExtractFeeVo> queryExtractFeeAll(SysAgencyLeaderPageDto sysAgencyLeaderPageDto) {
|
|
|
+ List<AgencyExtractFeeVo> agencyExtractFeeList = new ArrayList<>();
|
|
|
+
|
|
|
+ Page<SysAgencyLeader> page = new Page<>(sysAgencyLeaderPageDto.getPageNum(), sysAgencyLeaderPageDto.getPageSize());
|
|
|
+ LambdaQueryWrapper<SysAgencyLeader> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(SysAgencyLeader::getDelFlag, 1);
|
|
|
+
|
|
|
+ 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 = new BigDecimal("0.00");
|
|
|
+ //已提现抽成费用
|
|
|
+ BigDecimal historyFee = new BigDecimal("0.00");
|
|
|
+
|
|
|
+ agencyExtractFee.setUserId(sysAgencyLeaders.getUserId());
|
|
|
+ agencyExtractFee.setUserName(sysAgencyLeaders.getUserName());
|
|
|
+ agencyExtractFee.setDeptId(sysAgencyLeaders.getDeptId());
|
|
|
+ agencyExtractFee.setDeptName(sysAgencyLeaders.getDeptName());
|
|
|
+ agencyExtractFee.setProportional(sysAgencyLeaders.getProportional());
|
|
|
+ List<InsOrders> insOrderList;
|
|
|
+ //筛选订单,选择时间
|
|
|
+ Date updateTime = sysAgencyLeaders.getUpdateTime();
|
|
|
+ if (updateTime == null) {
|
|
|
+ //机构下所有订单
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
|
|
|
+ .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
|
|
|
+ agencyExtractFee.setStartTime(sysAgencyLeaders.getCreateTime());
|
|
|
+ } else {
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(StringUtils.isNotEmpty(sysAgencyLeaders.getDeptId()), InsOrders::getDeptid, sysAgencyLeaders.getDeptId())
|
|
|
+ .ge(InsOrders::getCreatetime, updateTime));
|
|
|
+ agencyExtractFee.setStartTime(updateTime);
|
|
|
+ }
|
|
|
+ if (insOrderList.size() > 0) {
|
|
|
+ for (InsOrders insOrders : insOrderList) {
|
|
|
+ //查询订单下的所有子订单
|
|
|
+ List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getOrderno, insOrders.getOrderno())
|
|
|
+ .eq(InsAreaCompany::getOrderstatus, 3));
|
|
|
+ if (insAreaCompanies.size() > 0) {
|
|
|
+ for (InsAreaCompany insAreaCompany : insAreaCompanies) {
|
|
|
+ //累加每一个子订单的交强险费用+商业险费用+驾意险费用
|
|
|
+ bigDecimal = bigDecimal.add(insAreaCompany.getJqpremium()).add(insAreaCompany.getSypremium()).add(insAreaCompany.getJypremium());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ agencyExtractFee.setSumpremium(bigDecimal);
|
|
|
+ BigDecimal multiply = bigDecimal.multiply(new BigDecimal(agencyExtractFee.getProportional()));
|
|
|
+ agencyExtractFee.setExtractFee(multiply);
|
|
|
+ // 填充 已提现抽成费用和可提现抽成费用
|
|
|
+ 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(new BigDecimal("0.00"))) {
|
|
|
+ //已提现
|
|
|
+ agencyExtractFee.setHistoryFee(historyFee);
|
|
|
+ //可提现 = 总抽成-已提现
|
|
|
+ agencyExtractFee.setCashFee(multiply.subtract(historyFee));
|
|
|
+ }else {
|
|
|
+ agencyExtractFee.setHistoryFee(new BigDecimal("0.00"));
|
|
|
+ agencyExtractFee.setCashFee(multiply.subtract(new BigDecimal("0.00")));
|
|
|
+ }
|
|
|
+ agencyExtractFeeList.add(agencyExtractFee);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return new BasePageResult<>(sysAgencyLeaderPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
|
|
|
+ agencyExtractFeeList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<TeamInformation> queryTeamInfo(String userId) {
|
|
|
+ List<TeamInformation> informationList = new ArrayList<>();
|
|
|
+ //合伙人
|
|
|
+ boolean c = sysPartnerService.checkPartner(userId);
|
|
|
+ if (c) {
|
|
|
+ extracted(userId, informationList);
|
|
|
+ return informationList;
|
|
|
+ }
|
|
|
+ //校验当前用户是否为机构负责人
|
|
|
+ boolean b = this.checkUserId(userId);
|
|
|
+ if (b) {
|
|
|
+ //机构负责人查询机构下的团队
|
|
|
+ SysAgencyLeader sysAgencyLeaders = sysAgencyLeaderMapper.selectOne(new LambdaQueryWrapper<SysAgencyLeader>().eq(SysAgencyLeader::getUserId, userId)
|
|
|
+ .eq(SysAgencyLeader::getDelFlag, 1));
|
|
|
+ String[] split = sysAgencyLeaders.getSource().split(",");
|
|
|
+ //根据当前机构id查询出下面的团队,条件:机构来源相同,机构等级为null的团队
|
|
|
+ List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>().likeRight(SysDept::getId, sysAgencyLeaders.getDeptId())
|
|
|
+ .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0).in(SysDept::getManagementSource, split));
|
|
|
+ if (sysDeptList.size() > 0) {
|
|
|
+ //总保费
|
|
|
+ BigDecimal bigDecimal = new BigDecimal("0.00");
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
+ TeamInformation teamInformation = new TeamInformation();
|
|
|
+ teamInformation.setDeptId(sysDept.getId());
|
|
|
+ teamInformation.setDeptName(sysDept.getName());
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>().likeRight(SysUser::getId, sysDept.getId()).eq(SysUser::getStatus, 1));
|
|
|
+ teamInformation.setDeptManNum(sysUsers.size());
|
|
|
+ List<InsOrders> insOrderList;
|
|
|
+ //筛选订单,选择时间
|
|
|
+ Date updateTime = sysAgencyLeaders.getUpdateTime();
|
|
|
+ if (updateTime == null) {
|
|
|
+ //机构下所有订单
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(InsOrders::getDeptid, sysDept.getId())
|
|
|
+ .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
|
|
|
+ teamInformation.setStartTime(sysAgencyLeaders.getCreateTime());
|
|
|
+
|
|
|
+ } else {
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(InsOrders::getDeptid, sysDept.getId())
|
|
|
+ .ge(InsOrders::getCreatetime, updateTime));
|
|
|
+ teamInformation.setStartTime(updateTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (insOrderList.size() > 0) {
|
|
|
+ for (InsOrders insOrders : insOrderList) {
|
|
|
+ //查询订单下的所有子订单
|
|
|
+ List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getOrderno, insOrders.getOrderno())
|
|
|
+ .eq(InsAreaCompany::getOrderstatus, 3));
|
|
|
+ if (insAreaCompanies.size() > 0) {
|
|
|
+ for (InsAreaCompany insAreaCompany : insAreaCompanies) {
|
|
|
+ //累加每一个子订单的交强险费用+商业险费用+驾意险费用
|
|
|
+ bigDecimal = bigDecimal.add(insAreaCompany.getJqpremium()).add(insAreaCompany.getSypremium()).add(insAreaCompany.getJypremium());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ teamInformation.setSumpremium(bigDecimal);
|
|
|
+ int num = 0;
|
|
|
+ // 查团队有几人出单 :订单表中userid相等同时在 子订单表中状态为3已承保才为出单
|
|
|
+ List<String> userIdList = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
|
|
|
+ for (String s : userIdList) {
|
|
|
+ List<InsOrders> collect = insOrderList.stream().filter(InsOrders -> InsOrders.getUserid().equals(s)).collect(Collectors.toList());
|
|
|
+ if (collect.size() > 0) {
|
|
|
+ InsOrders insOrders = collect.get(0);
|
|
|
+ List<InsAreaCompany> insAreaCompanies1 = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getOrderno, insOrders.getOrderno())
|
|
|
+ .eq(InsAreaCompany::getOrderstatus, 3));
|
|
|
+ if (insAreaCompanies1.size() > 0) {
|
|
|
+ num++;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ teamInformation.setOrderManNum(num);
|
|
|
+ informationList.add(teamInformation);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return informationList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return informationList;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void extracted(String userId, List<TeamInformation> informationList) {
|
|
|
+ //查询所有推荐的机构负责人核算总保费
|
|
|
+ List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
|
|
|
+ .eq(SysRelationPerson::getSuggestId, userId).eq(SysRelationPerson::getType, 1));
|
|
|
+ if (sysRelationPeople.size() > 0) {
|
|
|
+ //总保费
|
|
|
+ BigDecimal bigDecimal = new BigDecimal("0.00");
|
|
|
+ //获取所有推荐的机构负责人id
|
|
|
+ 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));
|
|
|
+ String[] split = sysAgencyLeaders.getSource().split(",");
|
|
|
+ //根据当前机构id查询出下面的团队,条件:机构来源相同,机构等级为null的团队
|
|
|
+ List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
|
|
|
+ .likeRight(SysDept::getId, sysAgencyLeaders.getDeptId())
|
|
|
+ .isNull(SysDept::getComlevel)
|
|
|
+ .eq(SysDept::getDelFlag, 0)
|
|
|
+ .in(SysDept::getManagementSource, split));
|
|
|
+ if (sysDeptList.size() > 0) {
|
|
|
+ for (SysDept sysDept : sysDeptList) {
|
|
|
+ TeamInformation teamInformation = new TeamInformation();
|
|
|
+ teamInformation.setDeptId(sysDept.getId());
|
|
|
+ teamInformation.setDeptName(sysDept.getName());
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
+ .likeRight(SysUser::getId, sysDept.getId())
|
|
|
+ .eq(SysUser::getStatus, 1));
|
|
|
+ teamInformation.setDeptManNum(sysUsers.size());
|
|
|
+ List<InsOrders> insOrderList;
|
|
|
+ //筛选订单,选择时间
|
|
|
+ Date updateTime = sysAgencyLeaders.getUpdateTime();
|
|
|
+ if (updateTime == null) {
|
|
|
+ //机构下所有订单
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(InsOrders::getDeptid, sysDept.getId())
|
|
|
+ .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
|
|
|
+ teamInformation.setStartTime(sysAgencyLeaders.getCreateTime());
|
|
|
+ } else {
|
|
|
+ insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .likeRight(InsOrders::getDeptid, sysDept.getId())
|
|
|
+ .ge(InsOrders::getCreatetime, updateTime));
|
|
|
+ teamInformation.setStartTime(updateTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (insOrderList.size() > 0) {
|
|
|
+ for (InsOrders insOrders : insOrderList) {
|
|
|
+ //查询订单下的所有子订单
|
|
|
+ List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
|
|
|
+ .eq(InsAreaCompany::getOrderno, insOrders.getOrderno())
|
|
|
+ .eq(InsAreaCompany::getOrderstatus, 3));
|
|
|
+ if (insAreaCompanies.size() > 0) {
|
|
|
+ for (InsAreaCompany insAreaCompany : insAreaCompanies) {
|
|
|
+ //累加每一个子订单的交强险费用+商业险费用+驾意险费用
|
|
|
+ bigDecimal = bigDecimal.add(insAreaCompany.getJqpremium()).add(insAreaCompany.getSypremium()).add(insAreaCompany.getJypremium());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ teamInformation.setSumpremium(bigDecimal);
|
|
|
+ int num = 0;
|
|
|
+ // 查团队有几人出单 :子订单中userid相等同时在 子订单表中状态为3已承保才为出单
|
|
|
+ List<String> userIdList = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
|
|
|
+ for (String s : userIdList) {
|
|
|
+ List<InsOrders> collect = insOrderList.stream().filter(InsOrders -> InsOrders.getUserid().equals(s)).collect(Collectors.toList());
|
|
|
+ if (collect.size() > 0) {
|
|
|
+ InsOrders insOrders = collect.get(0);
|
|
|
+ List<InsAreaCompany> insAreaCompanies1 = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
|
|
|
+ .eq(InsAreaCompany::getOrderno, insOrders.getOrderno())
|
|
|
+ .eq(InsAreaCompany::getOrderstatus, 3));
|
|
|
+ if (insAreaCompanies1.size() > 0) {
|
|
|
+ num++;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ teamInformation.setOrderManNum(num);
|
|
|
+ informationList.add(teamInformation);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<TeamUserInfoVo> queryTeamUser(TeamUserInfoDto teamUserInfoDto) {
|
|
|
+ List<TeamUserInfoVo> teamUserInfoVoList = new ArrayList<>();
|
|
|
+ //团队下的人员 报价笔数 核保笔数 出单笔数 签单保费
|
|
|
+ List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
|
|
|
+ .likeRight(SysUser::getId, teamUserInfoDto.getDeptId())
|
|
|
+ .eq(SysUser::getStatus, 1));
|
|
|
+ //总保费
|
|
|
+ for (SysUser sysUser : sysUsers) {
|
|
|
+ List<InsOrders> insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
|
|
|
+ .ge(InsOrders::getCreatetime, teamUserInfoDto.getStartTime())
|
|
|
+ .eq(InsOrders::getUserid, sysUser.getId()));
|
|
|
+ //总保费
|
|
|
+ BigDecimal bigDecimal = new BigDecimal("0.00");
|
|
|
+ TeamUserInfoVo teamUserInfoVo = new TeamUserInfoVo();
|
|
|
+ teamUserInfoVo.setUserId(sysUser.getId());
|
|
|
+ teamUserInfoVo.setUserName(sysUser.getName());
|
|
|
+ if (insOrderList.size() > 0) {
|
|
|
+ List<String> orderNoList = insOrderList.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
|
|
|
+ //单个人员查询订单下的所有子订单总保费 '订单状态(0 报价 1 待核保 2 已核保待缴费 3 核保退回 4 核保不通过)',
|
|
|
+ List<InsAreaCompany> insAreaCompanies = insAreaCompanyMapper.selectList(new LambdaQueryWrapper<InsAreaCompany>()
|
|
|
+ .in(InsAreaCompany::getOrderno, orderNoList)
|
|
|
+ .eq(InsAreaCompany::getOrderstatus, 3));
|
|
|
+ if (insAreaCompanies.size() > 0) {
|
|
|
+ //
|
|
|
+ for (InsAreaCompany insAreaCompany : insAreaCompanies) {
|
|
|
+ //累加每一个子订单的交强险费用+商业险费用+驾意险费用
|
|
|
+ bigDecimal = bigDecimal.add(insAreaCompany.getJqpremium()).add(insAreaCompany.getSypremium()).add(insAreaCompany.getJypremium());
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //出单笔数
|
|
|
+ teamUserInfoVo.setIssueNum(insAreaCompanies.size());
|
|
|
+ teamUserInfoVo.setSumpremium(bigDecimal);
|
|
|
+ //报价笔数
|
|
|
+ Long quoteNum = insAreaCompanyMapper.selectCount(new LambdaQueryWrapper<InsAreaCompany>()
|
|
|
+ .in(InsAreaCompany::getOrderno, orderNoList));
|
|
|
+ teamUserInfoVo.setQuoteNum(quoteNum);
|
|
|
+ //核保笔数 订单状态(0 报价中 1 待核保 2 已核保待缴费 3已承保 4 核保退回)
|
|
|
+ List<Integer> integers = Arrays.asList(2, 3, 4);
|
|
|
+ Long underwriteNum = insAreaCompanyMapper.selectCount(new LambdaQueryWrapper<InsAreaCompany>()
|
|
|
+ .in(InsAreaCompany::getOrderno, orderNoList)
|
|
|
+ .in(InsAreaCompany::getOrderstatus, integers));
|
|
|
+ teamUserInfoVo.setUnderwriteNum(underwriteNum);
|
|
|
+ teamUserInfoVoList.add(teamUserInfoVo);
|
|
|
+ } else {
|
|
|
+ teamUserInfoVo.setIssueNum(0);
|
|
|
+ teamUserInfoVo.setSumpremium(bigDecimal);
|
|
|
+ teamUserInfoVo.setQuoteNum(Long.valueOf("0"));
|
|
|
+ teamUserInfoVo.setUnderwriteNum(Long.valueOf("0"));
|
|
|
+ teamUserInfoVoList.add(teamUserInfoVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return teamUserInfoVoList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|