فهرست منبع

分页团队查询

helixiao 2 سال پیش
والد
کامیت
f3b4696880

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

@@ -170,6 +170,16 @@ public class SysAgencyLeaderController extends BaseController {
         return HttpResult.ok("success", this.sysAgencyLeaderService.queryTeamInfo(teamInformationDto));
     }
 
+    /**
+     * 分页查询机构下所有团队的信息
+     */
+    @PostMapping("/queryTeamInfoPage")
+    @ApiOperation(value = "分页查询机构下所有团队的信息")
+    public HttpResult<BasePageResult<TeamInformation>> queryTeamInfoPage(@RequestBody TeamInformationDto teamInformationDto){
+
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryTeamInfoPage(teamInformationDto));
+    }
+
     /**
      * 查询团队下人员  报价笔数 核保笔数 出单笔数 签单保费
      */

+ 5 - 0
src/main/java/com/ydtech/modules/admin/model/dto/TeamInformationDto.java

@@ -20,4 +20,9 @@ public class TeamInformationDto {
     @ApiModelProperty(value = "结束时间")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private String endTime;
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+    @ApiModelProperty(value = "每页条数")
+    private int pageSize;
 }

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

@@ -54,4 +54,6 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
     List<TeamInformation> queryTeamInfo(TeamInformationDto teamInformationDto);
 
     List<TeamUserInfoVo> queryTeamUser(TeamUserInfoDto teamUserInfoDto);
+
+    BasePageResult<TeamInformation> queryTeamInfoPage(TeamInformationDto teamInformationDto);
 }

+ 219 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java

@@ -15,6 +15,7 @@ import com.ydtech.modules.admin.model.dto.TeamInformationDto;
 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.SysDeptService;
 import com.ydtech.modules.admin.service.SysPartnerService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
@@ -46,6 +47,8 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
 
     @Resource
     private SysDeptMapper sysDeptMapper;
+    @Resource
+    private SysDeptService sysDeptService;
 
     @Resource
     private SysUserMapper sysUserMapper;
@@ -751,6 +754,222 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
     }
 
 
+    @Override
+    public BasePageResult<TeamInformation> queryTeamInfoPage(TeamInformationDto teamInformationDto) {
+        String userId = BaseController.getUser().getId();
+        List<TeamInformation> informationList = new ArrayList<>();
+        //合伙人
+        boolean c = sysPartnerService.checkPartner(userId);
+        if (c) {
+            //查询所有推荐的机构负责人核算总保费
+            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>()
+                            .in(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)
+                            .like(StringUtils.isNotEmpty(teamInformationDto.getDeptName()),SysDept::getName,teamInformationDto.getDeptName()));
+
+                    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())
+                                        .ge(StringUtils.isNotEmpty(teamInformationDto.getBeginTime()), InsOrders::getCreatetime, teamInformationDto.getBeginTime())
+                                        .le(StringUtils.isNotEmpty(teamInformationDto.getEndTime()), InsOrders::getCreatetime, teamInformationDto.getEndTime()));
+                                teamInformation.setStartTime(sysAgencyLeaders.getCreateTime());
+                            } else {
+                                insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
+                                        .likeRight(InsOrders::getDeptid, sysDept.getId())
+                                        .ge(InsOrders::getCreatetime, updateTime)
+                                        .ge(StringUtils.isNotEmpty(teamInformationDto.getBeginTime()), InsOrders::getCreatetime, teamInformationDto.getBeginTime())
+                                        .le(StringUtils.isNotEmpty(teamInformationDto.getEndTime()), InsOrders::getCreatetime, teamInformationDto.getEndTime()));
+                                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);
+
+                        }
+                    }
+
+                }
+
+                int total = informationList.size();
+                double v = (double) total / 10;
+                long pages = Math.round(v);
+
+
+                int fromIndex = (teamInformationDto.getPageNum() - 1) * teamInformationDto.getPageSize();
+                int toIndex = Math.min(fromIndex + teamInformationDto.getPageSize(), informationList.size());
+
+                if (fromIndex > informationList.size() || fromIndex < 0) {
+                    return new BasePageResult<>(teamInformationDto.getPageNum(), teamInformationDto.getPageSize(), total, pages,
+                            new ArrayList<>());  // 如果页码超出范围,返回空列表
+                }
+
+                List<TeamInformation> list = informationList.subList(fromIndex, toIndex);
+
+                return new BasePageResult<>(teamInformationDto.getPageNum(), teamInformationDto.getPageSize(), total, pages,
+                        list);
+            }
+        }
+        //校验当前用户是否为机构负责人
+        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)
+//                    .like(StringUtils.isNotEmpty(teamInformationDto.getDeptName()),SysDept::getName,teamInformationDto.getDeptName()));
+
+            Page<SysDept> page = new Page<>(teamInformationDto.getPageNum(), teamInformationDto.getPageSize());
+            LambdaQueryWrapper<SysDept> wrapper = new LambdaQueryWrapper<>();
+            wrapper.likeRight(SysDept::getId, sysAgencyLeaders.getDeptId())
+                    .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0).in(SysDept::getManagementSource, split)
+                    .like(StringUtils.isNotEmpty(teamInformationDto.getDeptName()),SysDept::getName,teamInformationDto.getDeptName());
+
+
+            Page<SysDept> insOrdersPage =sysDeptService.page(page, wrapper);
+
+            List<SysDept> sysDeptList = insOrdersPage.getRecords();
+
+            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())
+                                .ge(StringUtils.isNotEmpty(teamInformationDto.getBeginTime()),InsOrders::getCreatetime,teamInformationDto.getBeginTime())
+                                .le(StringUtils.isNotEmpty(teamInformationDto.getEndTime()),InsOrders::getCreatetime,teamInformationDto.getEndTime()));
+                        teamInformation.setStartTime(sysAgencyLeaders.getCreateTime());
+
+                    } else {
+                        insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
+                                .likeRight(InsOrders::getDeptid, sysDept.getId())
+                                .ge(InsOrders::getCreatetime, updateTime)
+                                .ge(StringUtils.isNotEmpty(teamInformationDto.getBeginTime()),InsOrders::getCreatetime,teamInformationDto.getBeginTime())
+                                .le(StringUtils.isNotEmpty(teamInformationDto.getEndTime()),InsOrders::getCreatetime,teamInformationDto.getEndTime()));
+                        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 new BasePageResult<>(teamInformationDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                    informationList);
+        }
+
+
+        return new BasePageResult<>(teamInformationDto.getPageNum(), teamInformationDto.getPageSize(), 0, 0,
+                informationList);
+    }
+
+
     @Override
     public List<TeamUserInfoVo> queryTeamUser(TeamUserInfoDto teamUserInfoDto) {
         List<TeamUserInfoVo> teamUserInfoVoList = new ArrayList<>();